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:
@ -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];
|
||||
}
|
||||
}
|
||||
|
||||
@ -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,12 +66,16 @@ Boot {
|
||||
Server.default.peakCPU.round(2)), 40)
|
||||
}, Server.default);
|
||||
Event.addEventType(\buboEvent, {
|
||||
// This is a custom event that makes it easier to play samples
|
||||
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'};
|
||||
~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;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user