Inspiration
Making music can be difficult. There's a harsh learning curve to most DAWs like Ableton and Logic Pro X. When people have ideas, they want to execute them immediately. What if you could see the music you played, as you played it? What if instead of using $1000 software to make high-quality beats, you could use free software built by a sleep-deprived college student to make simple, fun beats? If that sounds like your thing, welcome to BeatBox!
What it does
BeatBox contains 3 instruments that play on a loop. Two of the instruments are synths with unique visual feedback, while the third instrument is a drum machine that plays samples from a TR-808. The loop length can be changed for each instrument from the main screen, as well as volume levels for each instrument. The user also has full control over the synth envelopes.
How I built it
I built this instrument for VandyHacks, Vanderbilt's hackathon, in November of 2018 It's programmed in Processing API, using the Sound library to control oscillators, envelopes, and samples.
Challenges I ran into
The audio engine starts hitting a wall when it gets overloaded. Samples start clipping, and it often doesn't return to normal functioning, forcing me to close the program. I'm fairly certain this issue is caused by something in the Sound library itself, or at least it's forced to handle more than it was designed for. The only foreseeable solution would be to implement my code around the Minim library instead of the Sound library, as Minim seems to be more robust. However, this could end up taking several hours, and I had a strict time constraint of 36 hours to build this software at the hackathon.
Accomplishments that I'm proud of
I'm proud of implementing all the instruments with such a smooth UI. They feel easy to use, and they look nice, too. I'm also proud of having built everything from scratch, (at least to the extent using Processing is "from scratch").
What I learned
I learned to fully research the capabilities and limitations of a library if I plan on basing my code off said library. In retrospect I likely would have had much more control and a more robust program if I had used the Minim library.

Log in or sign up for Devpost to join the conversation.