Merge pull request 'Add strans and scaleTrans as synonyms of scaleTranspose' (#1488) from TodePond/strudel:lu/strans into main
Reviewed-on: https://codeberg.org/uzu/strudel/pulls/1488
This commit is contained in:
commit
03090e399c
1 changed files with 20 additions and 16 deletions
|
|
@ -143,6 +143,7 @@ export const transpose = register(['transpose', 'trans'], function transposeFn(i
|
||||||
* @name scaleTranspose
|
* @name scaleTranspose
|
||||||
* @param {offset} offset number of steps inside the scale
|
* @param {offset} offset number of steps inside the scale
|
||||||
* @returns Pattern
|
* @returns Pattern
|
||||||
|
* @synonyms scaleTrans, strans
|
||||||
* @example
|
* @example
|
||||||
* "-8 [2,4,6]"
|
* "-8 [2,4,6]"
|
||||||
* .scale('C4 bebop major')
|
* .scale('C4 bebop major')
|
||||||
|
|
@ -150,22 +151,25 @@ export const transpose = register(['transpose', 'trans'], function transposeFn(i
|
||||||
* .note()
|
* .note()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
export const scaleTranspose = register('scaleTranspose', function (offset /* : number | string */, pat) {
|
export const scaleTranspose = register(
|
||||||
return pat.withHap((hap) => {
|
['scaleTranspose', 'scaleTrans', 'strans'],
|
||||||
if (!hap.context.scale) {
|
function (offset /* : number | string */, pat) {
|
||||||
throw new Error('can only use scaleTranspose after .scale');
|
return pat.withHap((hap) => {
|
||||||
}
|
if (!hap.context.scale) {
|
||||||
if (typeof hap.value === 'object')
|
throw new Error('can only use scaleTranspose after .scale');
|
||||||
return hap.withValue(() => ({
|
}
|
||||||
...hap.value,
|
if (typeof hap.value === 'object')
|
||||||
note: scaleOffset(hap.context.scale, Number(offset), hap.value.note),
|
return hap.withValue(() => ({
|
||||||
}));
|
...hap.value,
|
||||||
if (typeof hap.value !== 'string') {
|
note: scaleOffset(hap.context.scale, Number(offset), hap.value.note),
|
||||||
throw new Error('can only use scaleTranspose with notes');
|
}));
|
||||||
}
|
if (typeof hap.value !== 'string') {
|
||||||
return hap.withValue(() => scaleOffset(hap.context.scale, Number(offset), hap.value));
|
throw new Error('can only use scaleTranspose with notes');
|
||||||
});
|
}
|
||||||
});
|
return hap.withValue(() => scaleOffset(hap.context.scale, Number(offset), hap.value));
|
||||||
|
});
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Turns numbers into notes in the scale (zero indexed). Also sets scale for other scale operations, like {@link Pattern#scaleTranspose}.
|
* Turns numbers into notes in the scale (zero indexed). Also sets scale for other scale operations, like {@link Pattern#scaleTranspose}.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue