The Github Guitar: Your Mobile Browser as a Distributed Musical Instrument

Long Form


Almost everyone has a smartphone, and the majority can run Chrome or Safari.

Wouldn't it be great if we could use our mobile devices as tools to allow non-musicians in on the act of performing... by generating harmonious tones or presenting lyrics in time with musicians playing traditional instruments? What if we could synchronize multimedia events over dozens if not thousands of devices, simultaneously?

Well, we can! The technology exists today, in your pocket. The singalong.js suite enables these types of ad-hoc musical collaborations in various combinations, in real time, with no perceptible latency, and without the use of a click track or other such draconian control system. The best thing is, it’s licensed under the GPL and uses lots of open libraries to make it happen.


Websockets. The web audio API. The device orientation API. Next-generation web technologies are here, today, in your mobile phone’s browser. What if we could combine them to create a new kind of musical instrument – one that allows an unprecedented level of improvisation and audience participation?

In this talk, I’ll chronicle my journey as a musician and amateur coder in creating singalong.js, an open-source platform for synchronizing multimedia events in real time across across multiple mobile browsers. We’ll explore the inherent challenges in reliably synchronizing multimedia events across multiple devices, check out the handy libraries that stitch together these new browser technologies, and demonstrate the engine on audience members’ mobile devices.

The talk will culminate with an hour-long singalong/karaoke demonstration wherein the audience “becomes the band” using a combination of cell phones, tablets, and traditional musical instruments.

This talk is ideal for those interested learning more about the current state of browser multimedia APIs, using open-source javascript libraries to generate music, Karaoke enthusiasts, musicians, or anyone who ever wished they could play in a band but never learned how to play an instrument.

We’ll touch on each following technologies:

  • Nodejs
  • jQuery
  • gyro.js
  • howler.js
  • teoria.js
  • hammer.js
  • the Fluid (R3) SoundFont,
  • socket-ntp-krcmod


web audio, karaoke, singalong, fakebook, socketio, socket-ntp, performance, concert

Speaking experience

I've presented and performed three times on next-generation Karaoke technologies at Bellingham, WA's now-defunct Winter Commission event. I did a talk on the history and future of Karaoke in 2011. Although I don't have a recording of this presentation, I've included the excerpt from a segment of the talk wherein I used Karaoke as a presentation tool (as opposed to PowerPoint) to explain the early origins of Karaoke-like technologies:

In 2012, I used an prototype of singalong.js to enable around 10 guitarists and the audience to engage in an ad-hoc singalong with few or no rehearsals. The audio's pretty bad in this video, but you can see an early version, before virtual instruments and time synchronization were added of how the system works:


  • Ross

    Ross Brackett

    The Karaoke Research Council


    Ross Brackett is a musician, Karaoke enthusiast, begrudging javascript coder, and weirdo-at-large in his already weird hometown of Bellingham WA. His day job involves writing perl scripts to manipulate the flat-formatted text files dreams are made of.