First mockup of audio looper (==)

I am trying to add an audio looper to play breakbeats. It works .. meh for now but I'm sure that it'll slowly get better!
This commit is contained in:
2024-05-02 23:28:00 +02:00
parent 775e7efed7
commit b497ca13dc
5 changed files with 175 additions and 27 deletions

View File

@ -7,3 +7,6 @@ c = currentEnvironment.clock;
// Space for loading custom SynthDefs
"Loading SynthDefs...".postln;
"Synthdefs.scd".loadRelative;
// Debug during development
// OSCFunc.trace(true);

View File

@ -53,6 +53,55 @@ d.list = { arg obj; obj.keys.do({arg i; i.postln}); };
d.splayer = z;
);
(
/* Crafted with some help from Bruno Gola */
z = SynthDef(\looperMono,
{
arg out;
var sig, env, index;
index = Select.kr(\direction.kr(1) > 0, [\index.kr(0) + 1, \index.kr]);
sig = PlayBuf.ar(
1,
\buf.kr(0),
(BufRateScale.kr(\buf.kr) * (BufSamples.kr(\buf.kr)
/ \slices.kr(1) / BufSampleRate.kr(\buf.kr)) / \time.kr * \direction.kr) / 2,
1, BufSamples.kr(\buf.kr) * (index / \slices.kr), doneAction: 0
);
env = EnvGen.ar(
Env.asr(0.01, 1, 0.01), \gate.kr(1), doneAction: 2
);
sig = sig * env;
sig = sig * \amp.kr(-6.dbamp);
OffsetOut.ar(out,Pan2.ar(sig,\pan.kr(0)));
}).add;
d.looperMono = z;
);
(
/* Crafted with some help from Bruno Gola */
z = SynthDef(\looperStereo,
{
arg out;
var sig, env, index;
index = Select.kr(\direction.kr(1) > 0, [\index.kr(0) + 1, \index.kr]);
sig = PlayBuf.ar(
2,
\buf.kr(0),
(BufRateScale.kr(\buf.kr) * (BufSamples.kr(\buf.kr)
/ \slices.kr(1) / BufSampleRate.kr(\buf.kr)) / \time.kr * \direction.kr) / 2,
1, BufSamples.kr(\buf.kr) * (index / \slices.kr), doneAction: 0
);
env = EnvGen.ar(
Env.asr(0.01, 1, 0.01), \gate.kr(1), doneAction: 2
);
sig = sig * env;
sig = sig * \amp.kr(-6.dbamp);
OffsetOut.ar(out,Pan2.ar(sig,\pan.kr(0)));
}).add;
d.looperStereo = z;
);
(
z = SynthDef(\sinfb, {
arg out;