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', 'attack',
'a pattern of numbers to specify the attack time (in seconds) of an envelope applied to each sample.', '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? // TODO: find out how this works?
/* /*
* Envelope decay time = the time it takes after the attack time to reach the sustain level. * 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 { let {
freq, freq,
s, s,
bank,
sf, sf,
clip = 0, // if 1, samples will be cut off when the hap ends clip = 0, // if 1, samples will be cut off when the hap ends
n = 0, n = 0,
@ -281,6 +282,9 @@ export const webaudioOutput = async (hap, deadline, hapDuration) => {
gain *= velocity; // legacy fix for velocity gain *= velocity; // legacy fix for velocity
// the chain will hold all audio nodes that connect to each other // the chain will hold all audio nodes that connect to each other
const chain = []; const chain = [];
if (bank && s) {
s = `${bank}_${s}`;
}
if (typeof s === 'string') { if (typeof s === 'string') {
[s, n] = splitSN(s, n); [s, n] = splitSN(s, n);
} }

View File

@ -4980,7 +4980,3 @@ Pattern.prototype.piano = function () {
return { ...value, pan: (value.pan || 1) * pan }; return { ...value, pan: (value.pan || 1) * pan };
}); });
}; };
Pattern.prototype.soundbank = function (name) {
return this.fmap((v) => ({ ...v, s: `${name}_${v.s}` }));
};