Coder Social home page Coder Social logo

decode-universe's People

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

decode-universe's Issues

Record chat

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.

Action required: Greenkeeper could not be activated 🚨

🚨 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.

Chat

Allowing users to communicate by text while recording is incredibly powerful!

Audio recordings browser

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.

Preparation checklist for users before the connect

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:

  • Check for clipping. Ask the user to read from a script and watch their audio visualization. If they are too high or too low they should either adjust their volume or their distance from the mic. We should also let the user know when they are clipping while they are recording. NOTE: if possible the user should be changing the gain on their mic!!! Not the gain slider we provide.
  • Check for cross talk. Ask the user to play some audio. If that audio shows up on their audio visualization then ask them to configure different settings. Some ways to stop cross talk are to enable echo cancellation (Chrome only), lower the volume on your computer, or put in headphones. Headphones are the best option!
  • Check if there is any background noise. This will show up as some constant movement on the user’s audio visualization. If the user can easily turn off that noise (fans, air conditioning) this will help them know that.
  • Silence your phone and computer.
  • Turn off Dropbox or anything else that is hogging bandwidth.
  • Make sure you have enough space on your computer to record (host only).

Report errors that we can’t handle to users

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.

Default audio filters when recording

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.

  • Highpass filter to remove frequencies below 80hz.
  • Compressor. See below for Aaron Dowd’s compressor settings. Use those.
  • Limiter. Output ceiling -0.8

aaron-dowd-compressor

Allow hosts to reserve a room

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.

Don’t allow unsupported browsers

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.

Remove copy shortcut for a proper way to copy links when the host wants to share with a guest

// Add copy functionality. This needs to go below `window.loadURL()`.
//
// TODO: We only have copy functionality for the invite link. We should just
// make a “click to copy” button instead. Or put it in an input that can be
// natively copied.
Menu.setApplicationMenu(Menu.buildFromTemplate([
{
label: 'Edit',
submenu: [{ role: 'copy' }]
},
]));

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.