Livecoding
De Pontão Nós Digitais
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
Modificando rate e duração, acrescentando novos patterns para tocar o mesmo buffer
Pdef(\p1, Pbind(\instrument, \player, \dur, Pseq([2],inf), \start, Pseq([44100*24], inf), \rate, 0.2)) Pdef(\p1).play Pdef(\p1).stop Pdef(\p2, Pbind(\instrument, \player, \dur, Pseq([2],inf), \start, Pseq([44100*23], inf), \rate, Pseq([0.3, 0.3, 0.3, 0.3, 0.4, 0.4], inf))) Pdef(\p2).play Pdef(\p2).stop Pdef(\p3, Pbind(\instrument, \player, \dur, Pseq([8],inf), \start, Pseq([44100*46], inf), \rate, 0.4)) Pdef(\p3).play Pdef(\p3).stop