SuperCollider : SectionFiltres

SuperCollider :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
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]

Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by Wikka Wakka Wiki 1.1.6.3
Page was generated in 0.1378 seconds