calebmer / decode-universe Goto Github PK
View Code? Open in Web Editor NEWThe universe of all digital assets used in building, maintaining, and distributing Decode products.
The universe of all digital assets used in building, maintaining, and distributing Decode products.
Sometimes it may take a bit for a peer to start recording. Let the host know if a peer is not recording, or timeout a peer who is taking too long to start.
This, of course, should be done after #6.
We should be recording the chat room if the host has started a recording! This will allow users to create live show notes. For example, if the guests need to let their editor know something then they can add a message in the chat which will be exported with the audio.
When exported we should add a timestamp to every single chat message to know exactly when it was sent.
This means adding assets like fonts as dependencies and shopping polyfills to not depend on http://polyfill.io/.
Add marks for whether the user is hot or cold to this meter. The worst a user can be is 0 dB. -12 dB is right where the user should be. -24 dB is the lowest that a user should be (cold). See the levels/gain meter in Garage Band and Logic for an example.
The key m
should toggle whether or not the guest is muted.
🚨 You need to enable Continuous Integration on all branches of this repository. 🚨
To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.
Since we did not receive a CI status on the greenkeeper/initial
branch, we assume that you still need to configure it.
If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/
.
We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.
This will require some kind of room state that the host can control.
As a part of this we should also provide a timer that counts up after the recording has started.
Allowing users to communicate by text while recording is incredibly powerful!
We need UI for users to select the audio they want to export and to listen back to a recording. Currently I do this manually. While doing this I also want to refactor the file system storage code.
Make it look pretty.
One high leverage thing we can do to provide a better audio quality is give users a preparation checklist before they can connect to a recording room. We want to give users a reason behind each item so that they will be more motivated to listen.
While a user is going through the checklist we should tell the other hosts and guests in the room that they have connected, but are currently setting up.
Some ideas for the items on that checklist:
We want to report any errors that happen to users which we can’t handle. This keeps us honest and gives the user words for any weird things that happens in the app.
This means creating something an ExceptionReporter
singleton and call that wherever we call console.error()
. When replacing console.error()
s with better exception reporting we should also do an audit of all points where there may be an error.
Some of the default audio filters that we should apply. These filters are optimized for users recording at -12 dB otherwise they won’t work very well. All of these options should be toggled with a single click before exporting.
I’ve played around with enabling and disabling echo cancellation. This option should be configurable. Let the user decide! By default it, perhaps, should be disabled.
Sometimes it is useful for a host to generate a room URL that they can give their guests before an interview. Instead of generating a new room on the fly every single time.
This will need some kind of host to guest “command” system. Or we can use room state to implement this.
This happens when we have connected to a peer over the signaling server, but may have never established an RTCPeerConnection
. We should probably look for ways to timeout those peers who we send offer
s to, but never hear answer
s back.
We need an answer to this question.
If a user connects with a browser that is not supported then we should let them know instead of providing a cryptic blank screen or error message.
We use polyfill.io for standard library features in ES2015+, but there are some DOM APIs which we just can’t polyfill.
Things that we should check support for:
AudioContext
: We need the web audio APIs for audio recording and playback.RTCPeerConnection
: We need this for peer-to-peer realtime activity.
RTCPeerConnection#addStream()
: Some browsers don’t support addStream()
for an addTrack()
based API instead.Especially in beta we need to be able to update the desktop app without requiring users to reinstall.
decode-universe/projects/studio-desktop/src/main/index.ts
Lines 42 to 52 in a595dfc
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.