fix: support numbers in piano / sampler

This commit is contained in:
Felix Roos 2022-09-09 21:56:07 +02:00
parent 227dda921c
commit 42922a0d75
2 changed files with 5 additions and 5 deletions

View File

@ -70,9 +70,8 @@ const getSoundfontKey = (s) => {
const getSampleBufferSource = async (s, n, note) => {
let transpose = 0;
if (note) {
transpose = toMidi(note) - 36; // C3 is middle C
}
const midi = typeof note === 'string' ? toMidi(note) : note;
transpose = midi - 36; // C3 is middle C
const ac = getAudioContext();
// is sample from loaded samples(..)
const samples = getLoadedSamples();
@ -93,7 +92,7 @@ const getSampleBufferSource = async (s, n, note) => {
if (!note) {
throw new Error('no note(...) set for sound', s);
}
const midiDiff = (noteA) => toMidi(noteA) - toMidi(note);
const midiDiff = (noteA) => toMidi(noteA) - midi;
// object format will expect keys as notes
const closest = Object.keys(bank)
.filter((k) => !k.startsWith('_'))

View File

@ -55,8 +55,9 @@ Pattern.prototype.piano = function () {
return this.clip(1)
.s('piano')
.fmap((value) => {
const midi = typeof value.note === 'string' ? toMidi(value.note) : value.note;
// pan by pitch
const pan = panwidth(Math.min(toMidi(value.note) / maxPan, 1), 0.5);
const pan = panwidth(Math.min(midi / maxPan, 1), 0.5);
return { ...value, pan: (value.pan || 1) * pan };
});
};