Mobile browsers that implement the Web Audio API use the native playback (case 1). Those that don't fall back to an Audio server, and send messages to a Web Audio capable desktop browser over a web socket (case 2).
At the time of writing, no mobile browsers support the Web Audio API.
/instruments
: Musical instruments with separated touch-enabled UI and
Web Audio API synthesizer components.
/player
: The component responsible for playback if there's no Web
Audio support in the mobile browser (case 2).
/shared
: JavaScript shared between the player and instruments.
/server
: A python-based web socket server that accepts messages and
re-broadcasts them to all connected clients.
Need more musical instruments. Get creative!
- Clone repository
- Add a new directory in
instruments/
- Create a README.md in there
- Develop your instrument, ensuring that your audio playback component is clearly separated from your instrument's UI.
- Once you are ready, register your synth with the player in
/player
. - Test thoroughly and submit a pull request.