Inspiration
Google magenta and the rich history of procedural generation, including artists like Steve Reich and Brian Eno.
What it does
It is essentially an instrument that plays an instrument, the musician controls the meta-instrument which in turn plays different kinds of melodies on the preexisting synths built into the code.
How we built it
We used Javascript for all the programming, with some CSS thrown in for the website. A lot of statistics (multivariate gaussians etc) and matrix mathematics went into making this work. Three.js was used for the 3d visual controller and tone.js was used for the audio rendition. math.js was used for standard mathematical tools. Samples were obtained using an old open source digital audio workstation called Caustic. The site is hosted on Google AppEngine.
Challenges I ran into
Where do I start? Everything that could go wrong, did. For starters we missed the stop on the train, and then had to walk like 30 minutes in the freezing cold once we did eventually get to Princeton. Then, we found that tone.js's synths sounded kinda bad so we had to finick around and get samples. The basic logic of the transition was fundamentally flawed which we only discovered 75% of the way through and so on and so forth.
Accomplishments that I'm proud of
The whole thing! It combines sophisticated mathematics, good design and an interesting idea into a genuinely original and exciting project.
What I learned
three.js, tensor mathematics, music theory, some fractal stuff (for some reason), app engine, gcp usage, version control.
What's next for Bulbul-lite
Provide finer control over transition probabilities Add more parameters into selection matrix Explore how to use predictive capabilities to influence timbre and mimic genre music Use ML to fit this model of generation with curated tracks and generate variations within the meta of a genre We want to compete with Magenta. We believe our model is more expressive with sparse data and computing power Integration with DAWs and Game Development tools are immediate opportunities for this projects development Spice up the GUI
Log in or sign up for Devpost to join the conversation.