3 ms·
Yeah sure - you're right, it's using a lib built on top of the Web Audio API called Tone Js. This handles scheduling and some instruments, but the sounds themse
by printscreen 4y ago
Yeah sure - you're right, it's using a lib built on top of the Web Audio API called Tone Js. This handles scheduling and some instruments, but the sounds themselves are mostly samples which I record myself from VSTs, then do things in the browser such as filter modulation so that they sound different over time. When a track loads for you, that's the samples being loaded in from cloud storage.
As for static vs dynamic, it's a mix of both. Some tracks are more static than others, and I have learned it actually seems better to try and use randomness sparingly. Almost all tracks will use probabilities of loops firing, and some watch for the status of other loops to create sections (e.g, always fire A if not firing B). Note / Chord selection also often contains randomness, such as a probability to pick each note from a list, then a probability that note itself to fire.
Hope that makes sense!
- bambax 4y agoYeah thanks, it does! I use Tone.js also. (Are "tracks" simple MIDI files or some combination of JSON/JS?) Anyway, nice work! ;-)
- printscreen 4y agoEach track is it's own JS file! With a folder of corresponding samples, which the JS file pieces together as I mentioned before. There's no MIDI, it's all done with the Tone.js scheduler. :)
- tgv 4y agoI quite like the way it sounds. Randomness is difficult, indeed. If you ever want to look at something less random: 1/f noise generates more interesting sequences than white or pink noise.