Improvement: sampling syntax

Choosing between the mono or stereo sampler is optional. Just use ~sp
and ~nb and the sampler will be picked based on the number of channels
in the audio file getting played.
This commit is contained in:
2024-02-22 21:36:08 +01:00
parent c56b5c6967
commit a916a183b6
2 changed files with 15 additions and 11 deletions

View File

@ -18,7 +18,6 @@ Bank : Singleton {
})
}
*new {
|path, channels|
^super.new(path, channels);
@ -37,7 +36,9 @@ Bank : Singleton {
}
lazyLoading_{
|lazy|
if (lazyLoading != lazy) {
lazyLoading = lazy;
this.prUpdateBuffers();
@ -178,7 +179,6 @@ Bank : Singleton {
buffers[index] = Buffer.readChannel(Server.default, paths[index], channels:Array.series(channels));
};
};
buffers[index];
}
}

View File

@ -42,8 +42,8 @@ Boot {
this.samplePath = samplePath ? "/Users/bubo/.config/livecoding/samples";
// Setting up the audio samples/buffers manager
Bank.lazyLoading_(true);
Bank.root = this.samplePath;
Bank.lazyLoading = true;
// Post actions: installing behavior after server boot
Server.default.waitForBoot({
@ -66,14 +66,18 @@ Boot {
Server.default.peakCPU.round(2)), 40)
}, Server.default);
Event.addEventType(\buboEvent, {
arg server;
if (~sp.notNil && ~nb.notNil,
{ ~buf = Bank(~sp)[~nb % Bank(~sp).buffers.size]; }
);
if (~nb == nil) {~nb = 0};
if (~sp == nil) {~sp = 'default'};
~type = \note;
currentEnvironment.play;
// This is a custom event that makes it easier to play samples
arg server;
~sp = ~sp ?? 'default';
~nb = ~nb ?? 0;
~buf = Bank(~sp)[~nb % Bank(~sp).buffers.size];
if (~buf.numChannels == 1) {
~instrument = \player;
} {
~instrument = \splayer;
};
~type = \note;
currentEnvironment.play;
});
}
}