«Underwater» by Muse Score
on 24 Jan'23 12:50 inThis is my first piece of music in the world of supercollider.
https://www.youtube.com/watch?v=lpAUKkNgqhU
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
( ~divisors = { arg n; ~divs = List.newClear(0); for( 1, floor(sqrt(n)), {arg i; if(n%i==0,{ i.postln; ~divs.add(i); (i==n.div(i)).postln; if(i==n.div(i),{},{~divs.add(n.div(i))}); },{}); }); ~divs.sort; ~divs; }; SynthDef(\divsynth, { |out=0,divs = #[1],amp=1,sustain=1| var l,sig,env,n,sortedDivs; l = divs; n = divs.at(divs.size-1); sig = SinOsc.ar(1, 0, 0); l.do({ arg item, i; d = item; sig = sig+SinOsc.ar(d, 0, amp ); }); sig = sig*EnvGen.kr(Env.linen(0.001, sustain, 0.1), doneAction: Done.freeSelf); Out.ar(out, sig ! 2) }).add; r =Ppar([ Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/log(x),x<-(1000..1002)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1002)},3*5), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1002)},3*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/log(x),x<-(1000..1003)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1003)},2*5), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1003)},2*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/log(x),x<-(1000..1005)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1005)},2*3), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1005)},2*3) )],1); s =Ppar([ Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(2*log(x)),x<-(500..502)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(500..502)},3*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(2*log(x)),x<-(500..503)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(500..503)},2*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(2*log(x)),x<-(500..505)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(500..505)},2*3) )],1); t =Ppar([ Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(3*log(x)),x<-(1000..1002)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1002)},3*5), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1002)},3*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(3*log(x)),x<-(1000..1003)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1003)},2*5), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1003)},2*5) ), Pbind(\instrument,\divsynth, \amp,0.065, \dur,Pseq(all{:1/(3*log(x)),x<-(1000..1005)},inf), \divs,Pseq(all{:~divisors.value(x),x<-(1000..1005)},2*3), \sustain,Pseq(all{:log(x)/sqrt(x),x<-(1000..1005)},2*3) )],1); m = Pseq([Pseq([s],1), Pseq([t],1), Ppar([t,s],2), Pseq([r],3), Ppar([r,s],1), Ppar([t,r],2), Ppar([r,s,t],3), Ppar([t,r],2), Ppar([r,s],1), Pseq([r],1) ],inf); x= m.play(TempoClock(40/60)); );
reception
comments