make bank a normal param

This commit is contained in:
Felix Roos 2022-10-31 23:30:50 +01:00
parent bdbb4cb495
commit 0c5bdd0205
3 changed files with 21 additions and 5 deletions

View File

@ -100,6 +100,22 @@ const generic_params = [
'attack',
'a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample.',
],
/**
* Select the sound bank to use. To be used together with `s`. The bank name (+ "_") will be prepended to the value of `s`.
*
* @name bank
* @param {string | Pattern} bank the name of the bank
* @example
* s("bd sd").bank('RolandTR909') // = s("RolandTR909_bd RolandTR909_sd")
*
*/
[
'f',
'bank',
'selects sound bank to use',
],
// TODO: find out how this works?
/*
* Envelope decay time = the time it takes after the attack time to reach the sustain level.

View File

@ -246,6 +246,7 @@ export const webaudioOutput = async (hap, deadline, hapDuration) => {
let {
freq,
s,
bank,
sf,
clip = 0, // if 1, samples will be cut off when the hap ends
n = 0,
@ -281,6 +282,9 @@ export const webaudioOutput = async (hap, deadline, hapDuration) => {
gain *= velocity; // legacy fix for velocity
// the chain will hold all audio nodes that connect to each other
const chain = [];
if (bank && s) {
s = `${bank}_${s}`;
}
if (typeof s === 'string') {
[s, n] = splitSN(s, n);
}

View File

@ -4979,8 +4979,4 @@ Pattern.prototype.piano = function () {
const pan = panwidth(Math.min(midi / maxPan, 1), 0.5);
return { ...value, pan: (value.pan || 1) * pan };
});
};
Pattern.prototype.soundbank = function (name) {
return this.fmap((v) => ({ ...v, s: `${name}_${v.s}` }));
};
};