I have been at parties where people have wanted to sing karaoke but we didn't have the equipment for it. The web app aims at solving that issue taking advantage of the fact that we all carry microphones in our pockets all the time - our smartphones.
What it does
It connects a computer with a smartphone in a session which then using webRTC begins transmitting audio from it's microphone which will then be played by the computer speakers. Esentially turing any phone into a karaoke ready microphone.
How I built it
Using node.js as a simple server that serves the files. WebRTC is used to transmit the audio but in order to use I needed to "connect" the 2 machines through signaling. In this case I used socket.io using the "password" to add the clients to a specific room where they can message each other all the relevant information for the audio stream.
Challenges I ran into
-The webRTC API complexity made it difficult to setup for our use case. -In order to have connections that are not on the same network a TURN server is required which I couldn't get therefore it only works if the machines are in the same network for now. -Setting up the signaling required for the webrtc.
Accomplishments that I'm proud of
-Was able to transmit the audio and use a canvas to show an equalizer to visualize it. -Used node.js and socket.io for the first time. -The western look and file with the fonts, icons and images.
What I learned
-Materialize library for the UI. -Socket.io -WebtRTC -Audio HTML Element -Youtube embedding
What's next for High Noon Karaoke
-Adding options for searching for any song. -Using a TURN server to allow communication of devices in different networks.