FILTRES
(
s = Server.internal;
s.boot;
p = ProxySpace.push(s);
)
currentEnvironment.clear;
ProxySpace.pop; // restauration de l'environnement originel
Stethoscope(s);
===================
//dictionnaire de fonctions
(
d = ( multiFilter: {|freq = 10000, rq = 2.0, lp = 1.0, bp = 0.0, hp = 0.0|
var sig; sig = ~osc1.ar;
RLPF.ar(sig, freq, rq, lp) + RHPF.ar(sig, freq, rq, hp) + BPF.ar(sig, freq, rq, bp)
});
)
==============================
//State-Variable
/*création d'un hipass par soustraction du pole depuis le signal
~osc1 = {Saw.ar};
~lpPole = { |cutoff = 10000 | LPF.ar(~osc1.ar, cutoff)};
~substract = {~osc1.ar + ~lpPole.ar.neg };
~lpHp = { |balance = 0| ~substract.ar * balance + (~lpPole.ar * (balance - 1).abs) };
~lfo = { |freq = 1.0| SinOsc.kr(freq , 0, 0.5, 0.5) };
~mouseX = {MouseX.kr};
~mouseY = {MouseY.kr(100, 10000)};
~lpPole.map(\cutoff, ~mouseY);
~lpHp.map(\balance, ~mouseX);
~out = {~lpHp.ar.dup * 0.2 };
~out.play;
++++++++++++++++++++++++++++++++
~osc1 = {Saw.ar([200, 201])};
~filter = {|freq = 10000, rq = 2.0, lp = 1.0, bp = 0.0, hp = 0.0|
var sig; sig = ~osc1.ar;
RLPF.ar(sig, freq, rq, lp) + RHPF.ar(sig, freq, rq, hp) + BPF.ar(sig, freq, rq, bp)
};
~mouseX = {MouseX.kr(20, 10000, \exponential)};
~filter.stop;
~filter.set( \lp, 1, \bp, 0, \hp, 0, \rq, 0.1);
~filter.map(\freq, ~lfo1);
~lfo1 = {LFTri.kr(0.2, 0, 4000, SinOsc.kr(4, 0, 500, 5000)) };
~filter.play;
++++++++++++++++++++++++++++++++
(
~osc1 = {|freq| Saw.ar([freq, freq * LFNoise2.kr(3, 0.1).midiratio])};
~filter1 = {|freq = 10000, rq = 2.0, lp = 1.0, bp = 0.0, hp = 0.0|
var sig; sig = ~osc1.ar;
RLPF.ar(sig, freq, rq, lp) + RHPF.ar(sig, freq, rq, hp) + BPF.ar(sig, freq, rq, bp)
};
~ filter2 = {|freq = 10000, rq = 2.0, lp = 1.0, bp = 0.0, hp = 0.0|
var sig; sig = ~distort.ar;
RLPF.ar(sig, freq, rq, lp) + RHPF.ar(sig, freq, rq, hp) + BPF.ar(sig, freq, rq, bp)
};
~mouseX = {MouseX.kr};
~filter.stop;
~filter1.set( \lp, 0, \bp, 0, \hp, 1, \rq, 1);
~filter2.set( \lp, 1, \bp, 0, \hp, 1, \rq, 1);
~filter2.map(\freq, ~lfo1);
~lfo1 = {LFTri.kr(0.2,0, 500, 1000) };
~env = { |t_gate = 1| EnvGen.kr(Env([0, 1, 0.1, 0.1, 0], [0.0001, 0.1, 0.1, 0.1]), t_gate) };
)
(
~distort = {|balance = 0, witch = 0|
var dir; dir = ~filter1.ar;
dir * balance
+
(Select.ar(witch, [\softclip, \distort, \tanh, \abs].collect({|mess| dir.perform(mess) }) )
* (balance - 1).abs )
};
)
(
u.stop;
f = Pxrand([0, 3, 12, Pwrand([10,Pshuf([-2,0,3,5,6,7]+12)], [0.95, 0.05])], inf);f = f.asStream;
r = Prand([1/4], inf); r = r.asStream; //rythme
t = 150; t = t/60; //tempo
u = Routine({
inf.do({ var freq, fond = 36, delta;
freq = f.next; delta = r.next/t;
freq = freq + fond;
[~osc1, ~filter1].do({|item, i|
item.set(\freq, freq.midicps );
});
~env.set(\t_gate, 1);
delta.wait;
})
});
u.play;
//~osc1.play;~oscSlave1.play;
)
~out = { ~distort.ar.dup * ~env.kr };
~out.play;
~distort.set(\witch, 3);
~distort.set(\balance, 1)
==============================================================
(
~osc1 = {|freq| Pulse.ar(freq) };
~lfo = {|freq = 1| LFTri.kr(freq, 0, 0.5, 0.5) };
~filter = {|cutoff = 5000, rq = 2.0| Resonz.ar(~osc1.ar, ~osc1.ar * MouseY.kr(1, 200) * ~lfo.kr + cutoff)};
~filter.stop;
~mouse = {MouseX.kr(20, 10000, \exponential)};
~mouseY = {MouseY.kr(1, 400, \exponential)};
~filter.map(\cutoff, ~mouse);
~osc1.set(\freq, 200);
~lfo.set(\freq, 100);
~out = {~filter.ar.dup};
~ out.play;
)
+++++++++++++++++++++++++++++++++++++++++++++++
//+ subOctave + choix d'onde (Pulse , saw)
(
~osc1 = {|wave = 0, freq|
Select.ar(wave,
[ Pulse.ar([freq, freq * LFNoise2.kr(3, 0.1).midiratio]),
Saw.ar([freq, freq * LFNoise2.kr(3, 0.1).midiratio]).neg
]
)
};
~osc2 = {|freq, rapport = 0.5| LFPulse.ar(freq * rapport)};
~lfo = {|freq = 1| LFTri.kr(freq * 4, 0, 0.5, 0.5) };
~filter = {|cutoff = 5000, modMul = 100, rq = 2.0| RLPF.ar(~osc1.ar, cutoff * (~osc2.ar * modMul * ~lfo.kr).midiratio , rq)};
~filter.stop;
~mouse = {MouseX.kr(100, 5000, \exponential)};
~mouseY = {MouseY.kr(1, 400, \exponential)};
~filter.map(\cutoff, ~mouse);
~filter.set(\cutoff, 500);
~filter.set(\modMul, 24);
~ filter.set(\rq, 1);
[~osc1, ~osc2, ~lfo].do {|item| item.set(\freq, 100)} ;
~lfo.set(\freq, 0.25);
~out = {~filter.ar * ~env.kr};
~env = { |t_gate = 1| EnvGen.kr(Env([0, 1, 0.3, 0.1, 0], [0.0001, 0.01, 0.1, 0.1]), t_gate) };
)
~osc2.set(\rapport, 3/2);
~ osc1.set(\wave, 0);
(
u.stop;
f = Pxrand([0, 3, 12, Pwrand([10,Pshuf([-2,0,3,5,6,7]+12)], [0.95, 0.05])], inf);f = f.asStream;
r = Prand([1/4], inf); r = r.asStream; //rythme
t = 150; t = t/60; //tempo
u = Routine({
inf.do({ var freq, fond = 36, delta;
freq = f.next; delta = r.next/t;
freq = freq + fond;
[~osc1, ~osc2, ~lfo].do({|item, i|
item.set(\freq, freq.midicps );
});
~env.set(\t_gate, 1);
~ osc1.set(\wave, [0, 1].choose);
delta.wait;
})
});
u.play;
//~osc1.play;~oscSlave1.play;
)
~ out.play;
There are no comments on this page. [Add comment]