SuperCollider : BuS

SuperCollider :: Categories :: PageIndex :: RecentChanges :: RecentlyCommented :: Login/Register
Ordre d'execution < Index > OSC

Bus





organisation des bus Audio sur le serveur



les premiers bus dans l'array sont respectivement:


In, Out




(
SynthDef.new("tutorial-SinOsc-stereo", { var outArray;
outArray = [SinOsc.ar(440, 0, 0.2), Saw.ar(442, 0.2)];
Out.ar(0, outArray); // ecrit sur les bus 0 et 1
}).play;
)

OutputProxy [~]



AudioIn



Multicanaux




L'objet Bus


[...ex...]
[...ex...]

creation

b = Bus.control(s, 2); // Get a two channel control Bus
c = Bus.audio(s);       // Get a one channel private audio Bus (one is the default)

liberation
b.free
c.free


autres methodes

(
    SynthDef("inFreq", { arg bus, freqOffset = 0;
        Out.ar(0, SinOsc.ar(In.kr(bus) + freqOffset, 0, 0.5));
    }).send(s);
   
    SynthDef("outFreq", { arg freq = 400, bus;
        Out.kr(bus, SinOsc.kr(1, 0, freq/40, freq));
    }).send(s);
   
    b = Bus.control(s,1);
)
   
(
    x = Synth.new("outFreq", [\bus, b.index]);
    y = Synth.after(x, "inFreq", [\bus, b.index]);
    z = Synth.after(x, "inFreq", [\bus, b.index, \freqOffset, 200]);
)

x.free; y.free; z.free; b.free;


(
var busIndex = 0; //vous etes responsable de l'allocation (->verifier que l'index est libre)
    x = Synth.new("outFreq", [\bus, busIndex]);
    y = Synth.after(x, "inFreq", [\bus, busIndex]);
    z = Synth.after(x, "inFreq", [\bus, busIndex, \freqOffset, 200]);
)

x.free; y.free; z.free;


(
    // deux bus de controle, de valeur 880 et 884.
    b = Bus.control(s, 1); b.set(880);
    c = Bus.control(s, 1);  c.set(884);
    // creation d'un synth avec deux arguments de frequence
    x = SynthDef("tutorial-map", { arg freq1 = 440, freq2 = 440;
        Out.ar(0, SinOsc.ar([freq1, freq2], 0, 0.1));
    }).play(s);
)
    // brancher ('map') les deux args de freq sur les deux bus
    x.map(\freq1, b.index, \freq2, c.index);
   
    // Creation d'un Synth ecrivant dans un des bus
    y = {Out.kr(b.index, SinOsc.kr(1, 0, 50, 880))}.play(addAction: \addToHead);

    // liberation de y,  b garde sa derniere valeur
    y.free;
   
    // la methode **Bus-get** permet de visualiser cette valeur (->Post Window)
    b.get({ arg val; val.postln; f = val; });
   
    // changement direct defreq2, cela 'debranche ' l'argument du bus **c**
    x.set(\freq2, f / 2);
   
    // freq2 est debranche, la valeur de c n'a plus d'effet sur le synth
    c.set(200);

    x.free; b.free; c.free;



Ordre d'execution < Index > OSC

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.2772 seconds