3 ms·
As someone who's worked on this a lot, this article resonated but I disagree with the conclusions. (Or at any rate I feel like my procedural stuff is listenable
by fenomas 6y ago
As someone who's worked on this a lot, this article resonated but I disagree with the conclusions. (Or at any rate I feel like my procedural stuff is listenable, though I can't read or compose music.)
I think the author's biggest problem is the bottom-up approach of creating lots of raw clips and then at a higher level trying to assemble them. I've found music generation to consistently be a very similar task to text generation, and to me the author's approach seems analogous to generating lots of random sentences and then trying to assemble them into a short story.
Everything I've done that's worked has been completely top down - the core of the engine determines the state of the song (we're in the A section, bar 7, the current chord is V/V, etc.) and the low level parts generate something to match all that. E.g. the melody part might decide to play the root tone of the current chord, but it has to ask the core what note that would be.
The hard thing about this approach is that you need an environment where you can dynamically play notes of an arbitrary pitch/length/instrument, which either means lots of sound fonts or realtime audio gen. I've been doing this with WebAudio, and while it works it's been very painful - for me the "play sounds" part of procedural music has more difficult than the "compose music" part.
- bambax 6y agoHave you tried tone.js? It's pretty easy to setup and play with, and lets one use a few samples to imitate any instrument. Edit: tune -> tone.
- fenomas 6y agoDo you mean tone.js? If so then yes I started out using it, but wound up rolling my own engines. I don't remember specifically why, but something to do with wanting less magic and more low-level control. I wanted everything to be realtime web audio, so I wound up just building instruments out of oscillators and so on. Here's a very old sample to give the idea: https://fenomas.com/2017/12/advent-17/ https://fenomas.com/2017/12/advent-17/
- bambax 6y agoYes, sorry, it's tone.js I find using the sampler very easy and convenient.
- dimmuborgir 6y agoInteresting. Is there anywhere I can listen to the music generated by your algorithm?
- fenomas 6y agoWhat I've done has all been ad-hoc logic to build melodies out of patterns and whatnot, as opposed to an ML-style algorithm that learns from input data. That said, here are some samples: a jazz chiptune: https://fenomas.com/2017/12/advent-17/ https://fenomas.com/2017/12/advent-17/ Zelda as gypsy jazz: https://fenomas.com/2017/12/advent-13/ https://fenomas.com/2017/12/advent-13/ vaguely fuguelike: https://fenomas.com/2017/12/advent-18/ https://fenomas.com/2017/12/advent-18/