Reconstructing Ligeti's "Poème Symphonique" for 100 metronomes.
en.wikipedia.org/wiki/po%c3%a8me_symphonique
#stresstest #Ligeti
Log in to post a comment.
// Reconstructing Ligeti's "Poème Symphonique" for 100 metronomes. input.bpmMin = 60; // min=30, max=120, step=1 input.bpmMax = 120; // min=30, max=120, step=1 ditty.bpm = 100; const metronome = synth.def( (phase, env, tick) => (Math.sin(phase * Math.PI * 2) + .25 * (Math.random() - .5)) * Math.exp(-tick * 500) * env.value, {attack: 0.0025, release: 0.01, env: adsr2}); function rand(min, max) { return lerp(min, max, Math.random()) | 0; } for (let i=0; i<100; i++) { // each loop is a separate metronome loop( class { constructor() { this.totalTicks = rand(40, 100); this.bpmLerp = Math.random(); this.pan = Math.random() * 2 - 1; this.amp = 4 + Math.random(); this.note = c4 + Math.random() * 4; } process(count) { if (count > this.totalTicks) return false; metronome.play(this.note, { pan: this.pan, amp: this.amp }); sleep(ditty.bpm / lerp(input.bpmMin, input.bpmMax, this.bpmLerp)); } }); }