Submit
Browse
Anonymous
Login
RSS
SuperCollider Code
Fork Code: Pirmie Soļi
name
code content
// Heavily influenced by one of Nick Collins tutorials // called Server-side Sequencing and Triggers ////////////////////////////////////////////////////////////////////////////////SynthDef ( SynthDef(\stepper, { | midiOct = 0, midiList = 0, beginCycle = 600, endCycle = 1, timeChange = 20, amp = 0.1, pan = 0 | var sig, midi, env; midi = Select.kr(midiList,[ [60,67,65,67,60,64,59,67], [64,71,69,71,64,71,71,71], [67,74,72,74,67,67,65,74], [72,79,77,77,72,76,74,77], [60,67,65,67,60,64,59,55], [64,62,65,65,64,64,62,62], [67,67,69,74,67,67,65,65], [72,71,72,71,72,71,71,71], [60,67,65,67,60,64,59,67], [64,71,69,71,64,67,62,71], [67,74,72,74,67,71,65,74], [72,79,77,77,72,76,71,77] ]); env = Env([0, 1], [7]); env = EnvGen.kr(env); sig = XLine.kr(beginCycle, endCycle, timeChange); sig = Impulse.kr(sig, 0.1); sig = Stepper.kr(sig, 0, 0, 7, 1); sig = Select.kr(sig, (midi + midiOct).midicps); //sig = Saw.ar(sig, amp); ///////////////////choose between SinOsc or Saw sig = SinOsc.ar(sig, 0, amp); sig = sig * env; sig = LPF.ar(sig, 5000); sig = LPF.ar(sig, 5000); sig = HPF.ar(sig, 40); sig = HPF.ar(sig, 40); sig = Pan2.ar(sig, pan); Out.ar(0, sig); }).add; ) ///////////////////////////////////////////////////////////////////////////////Sequence ( { ~one = Synth(\stepper, [\midiOct, -24, \pan, -0.4, \midiList, 8]); 8.25.wait; ~two = Synth(\stepper, [\midiOct, -12, \pan, 0.4, \midiList, 9]); 8.25.wait; ~three = Synth(\stepper, [\midiOct, 0, \pan, -0.9, \midiList, 10]); 8.25.wait; ~four = Synth(\stepper, [\midiOct, 0, \pan, 0.9, \midiList, 11]); 44.75.wait; ["phase 2"].postln; ( 2.do{ ~one.set(\midiList, rand(12), \midiOct, 0); 8.25.wait; ~two.set(\midiList, rand(12), \midiOct, 0); 8.25.wait; ~three.set(\midiList, rand(12), \midiOct, 0); 8.25.wait; ~four.set(\midiList, rand(12), \midiOct, 0); 8.25.wait; } ); 6.wait; ( ~one.set(\midiList, 0, \midiOct, -24); 0.33.wait; ~two.set(\midiList, 1, \midiOct, -12); 0.33.wait; ~three.set(\midiList, 2, \midiOct, 0); 0.33.wait; ~four.set(\midiList, 3, \midiOct, 0); ( 16.do{ ~three.set(\midiList, rand(12), \midiOct, 0); 0.25.wait; } ); ~three.set(\midiList, 2, \midiOct, 0); ); ["phase 2 complete"].postln; 34.wait; ["phase 3"].postln; ( 8.do{ ~one.set(\midiList, rand(12)); rrand(0.1, 2).wait; ~two.set(\midiList, rand(12)); rrand(0.1, 2).wait; ~three.set(\midiList, rand(12)); rrand(0.1, 2).wait; ~four.set(\midiList, rand(12)); rrand(0.1, 2).wait; } ); ["phase 3 complete"].postln; 18.wait; ["phase 4"].postln; ( 240.do{ ~one.set(\midiList, 4); ~two.set(\midiList, 5); ~three.set(\midiList, rand(12)); rrand(0.001, 0.1).wait; ~four.set(\midiList, rand(12)); rrand(0.001, 0.1).wait; } ); ["phase 4 complete"].postln; ( ~one.set(\midiList, 4, \pan, -0.4); ~two.set(\midiList, 5, \pan, 0.4); ~three.set(\midiList, 6, \pan, -0.9); ~four.set(\midiList, 7, \pan, 0.9); ); 18.wait; ["phase 5"].postln; ( 3000.do{arg i; ~four.set(\midiList, rand(12)); i = i + 1; if(i==800){ ~one.free; ~two.free; ~three.free; }; i = 8/i; i.wait; } ); ["phase 5 complete"].postln; ~four.free; }.fork )
code description
Heavily influenced by one of Nick Collins tutorials called Server-side Sequencing and Triggers
use markdown for formating
category tags
comma separated, i.g. "wild, siren" (do not enter default SC class names, please)
ancestor(s)
comma separated identificators, i.g. "1-C,1-1,1-4M,1-x"
Private?
the code will be accessible by direct url and not visible in public activity
signup to submit public code without captcha
comment of change