I have been whittling away at two projects since September, and I am very happy to say that both the Multiplayer Music Project and Synth Museum are complete! Here’s a quick post talking about the MPM project and what it can do.
The MPM project is live and running at mpm.thefunnybrain.com, and I would love some feedback on how the project works, and would welcome anyone to download the project from my Github page and have a look. The aim was to show what’s possible with Web Audio being controlled across the internet, and on a basic level the fundamentals are all there, so I would love to see it taken further by someone with greater enthusiasm and less University workload.
Currently the features include:
- A controllable oscillator for every player, with their pitch controlled by a slider or piano keyboard
- The oscillator can be a sine, triangle, square or sawtooth wave, changable by the user
- 3 step sequencers which are controlled by every user, with changes being reflected in real-time
- The sequencer instruments are: Bass, Lead, and a primitive Drum Machine (kick, snare, hi-hat)
- Each sequencer can be individually lengthened and shortened, leading to wacky timings where each instrument can have their own time signature.
- Changable tempo settings mean that the music can be sped up and slowed using a slider
A few notes:
- The delay feature is a planned element, but the button to select the effect currently does nothing.
- The site should be responsive for mobile devices, but I have had reports of the site acting strangely.
- Running the site on a server or localhost needs NodeJS, but the Raining Chain tutorials I’ve linked below talk through the process better than I ever could!
Here are some resources I found incredibly useful on this journey:
- Opera Dev – Synthesising Drum Sounds with the Web Audio API.
- Sonoport – Synthesising Sounds with Web Audio API.
- Raining Chain – Multiplayer Nodejs Game Tutorial.
- Nexus UI – Documentation
Raining Chain’s tutorial was invaluable, and I can’t recommend it enough for anyone looking to make a multiplayer browser game. I also need to say thank you to Ben Taylor for his incredible Nexus UI project, from which I was able to make the site functional and easy to use. He also incredibly kindly answered a few questions I had with the piano, so major thank you’s are in order! All the pianos, sliders and gadgets in this project and the Synth Museum are from Nexus, and I highly recommend looking into it.