«Modulation sequencing» by grirgz
on 01 Sep'15 22:24 inTwo simple ways to set a different modulation per step in a pattern
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
(
SynthDef(\rlpf, { arg out=0, amp=0.1, gate=1, pan=0, spread=0.8, freq=200, doneAction=2, ffreq=4000, rq=0.3;
var sig, sig1, sig2, sig3;
sig = LFSaw.ar(freq * [1.01,1,0.99]);
sig = RLPF.ar(sig, ffreq, rq);
sig = sig * EnvGen.ar(\adsr.kr(Env.adsr(0.01,0.1,0.8,0.1)),gate,doneAction:doneAction);
sig = Splay.ar(sig, spread, amp, pan);
Out.ar(out, sig);
}).add;
);
///////// lfo communicating with main pattern
(
Ndef(\lfo1, { EnvGen.kr(Env([1,4,1],[0.1,0.2]), \trig.tr(0)) * \lforange.kr(1000); });
Pdef(\main, Pbind(
\instrument, \rlpf,
\midinote, Pseq([60, 62, 64], inf),
\legato, 0.5,
\move, Pseq([0,1,0, 1,0,0],inf),
\lforange, Pseq([1000,2000,3000],inf).stutter(8),
\ffreq, Pfunc({ arg ev;
Ndef(\lfo1).set(\trig, ev[\move], \lforange, ev[\lforange]);
Ndef(\lfo1);
}),
\dur, 0.5
)).play
)
////// sub pattern way
(
Pdef(\micro, { arg midinote, move;
Pbind(
\instrument, \rlpf,
\midinote, midinote +
switch(move,
\up, Pseq((0..7)),
\down, Pseq((7..0)),
Pseq(0!8),
),
\dur, 1/16,
)
});
Pdef(\main,
Pbind(
\instrument, \micro,
\move, Pseq([\n, \n, \up, \n, \n, \down],inf),
\type, \phrase,
\midinote, Pseq([60, 62, 64], inf),
\dur, 1/2,
)
).play;
)
//////// same in mono
(
Pdef(\micro, { arg midinote, move;
Pmono(
\rlpf,
\midinote, midinote +
switch(move,
\up, Pseq((0..7)),
\down, Pseq((7..0)),
Pseq(0!8),
),
\dur, 1/16,
)
});
Pdef(\main,
Pbind(
\instrument, \micro,
\move, Pseq([\n, \n, \up, \n, \n, \down],inf),
\type, \phrase,
\midinote, Pseq([60, 62, 64], inf),
\dur, 1/2,
)
).play;
)
reception
comments