Inspiration
Generally, configurable synth patches. But also the Korg-DS10 game which was a synthesizer and sequencer for the Nintendo DS
As I started using web audio API for my other project, I realized it touches on one of my other passions, music! And the hero of electronic music is the synthesizer, which countless artists have tuned in all different ways to create unique sounds. Previously if I wanted to do this I had to buy expensive equipment or download specialized software. But I thought this was a good opportunity to make it in the browser, and allow a Reddit community to get creative with it.
What it does
It allows users to load, save, and remix/build upon songs. Songs are made of sequences of loops, which are sequences of notes, across different tracks
How we built it
Iterated hard generally vibe coding at the start because I didn't even imagine it was possible. A lot of annoying my family with beep boop sounds from my computer.
Challenges we ran into
Mobile browsers have much more limited resources and drop even more when they do power saving. This is still a challenge but we were able to get a baseline polyphony working (4-5 tracks) without too much glitching.
Accomplishments that we're proud of
There is an import and export function where a textual representation of the song, loops, and synth instrument configuration can be taken out, run through your favorite AI, and then put back in as a new song. This allowed some extreme testing of the engine without me having to spend hours composing music and fiddling with loops (however fun that is)
What we learned
There is a fully featured audio capability built into all browsers now. Also, Phaser is good at some things but for some interactions you can't beat the DOM.
What's next for Synthercizer
I am working on the first "challenge" type post, where users will be invited to add to a baseline song and remix its music and choreography. There is still some polish to do as well, and also more finely hone the mobile experience (and gracefully exclude mobile users from whatever just won't be possible on mobile). May have to at some point use blob storage and generate a sound file so that weaker machines can still play the song without needing to run the synthesizers.
Built With
- audio
- cursor
- phaser.js
- typescript
Log in or sign up for Devpost to join the conversation.