Livecoding

De Pontão Nós Digitais
Revisão de 00h02min de 18 de setembro de 2011 por VilsonVieira (discussão | contribs)
Ir para navegaçãoIr para pesquisar

Scripts

Dia 1, 17/09/2011

Script para tocar o baixo em loop com uma pausa.

    // duracao do compasso: 2.6746 segundos
     
    // script toca o audio do baixo e faz uma
    // pausa de um ou alguns compassos
     
    // sound file
    "a.wav" => string filename;
    2 => int compassos_pausa;
     
    // the patch
    SndBuf buf => dac;
    // load the file
    filename => buf.read;
     
    // time loop
    while( true )
    {
        1 => buf.rate;
        39*441 => buf.pos;
        10.6985::second => now;
     
        0 => buf.rate;
        (compassos_pausa*2.6746)::second => now;
    }
     
     
    //    Std.rand2f(.2,.9) => buf.gain;
    //    Std.rand2f(.5,1.5) => buf.rate;
    // if( me.args() ) me.arg(0) => filename;

Utilizando uma pulsação qualquer:

// Sincronizando
0.5::second => T;
T - (now%T) => now;

// Pegando o áudio
SndBuf buf => dac;
"data/kick.wav" => buf.read;

// Loop infinito
while(1)
{
    0 => buf.pos;
    T => now;
}

Tocando um arquivo inteiro com o máximo de simplicidade. Amostra por amostra:

SndBuf buf => dac;

"a.wav" => dac;

while(1)
    1::samp => now;

Em SuperCollider, tocando o arquivo durante 22 compassos

TempoClock.default.tempo = 1;

b = Buffer.read(s, "/home/vilson/Samples/ginzburg.wav");

(
SynthDef(\player, { | out=0, bufnum=0, rate=1, start=0, dur=1, amp=0.8 |
    var signal = PlayBuf.ar(1, bufnum, BufRateScale.kr(bufnum)*rate, startPos:start);
    signal = signal * amp * EnvGen.kr(Env.linen(0.01, dur, 0.01), doneAction:2);
    Out.ar(out, signal ! 2)
}).store;
)

Pdef(\p1, Pbind(\instrument, \player, \dur, Pseq([22],inf)))
Pdef(\p1).play
Pdef(\p1).stop