mirror of
https://github.com/eliasstepanik/strudel-docker.git
synced 2026-01-26 04:58:27 +00:00
getFreq + midi2note helpers
This commit is contained in:
parent
ce4d2c17a7
commit
fd61001b4d
@ -31,6 +31,19 @@ export const fromMidi = (n) => {
|
|||||||
return Math.pow(2, (n - 69) / 12) * 440;
|
return Math.pow(2, (n - 69) / 12) * 440;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export const getFreq = (noteOrMidi) => {
|
||||||
|
if (typeof noteOrMidi === 'number') {
|
||||||
|
return fromMidi(noteOrMidi);
|
||||||
|
}
|
||||||
|
return fromMidi(toMidi(noteOrMidi));
|
||||||
|
};
|
||||||
|
|
||||||
|
export const midi2note = (n) => {
|
||||||
|
const oct = Math.floor(n / 12) - 1;
|
||||||
|
const pc = ['C', 'Db', 'D', 'Eb', 'E', 'F', 'Gb', 'G', 'Ab', 'A', 'Bb', 'B'][n % 12];
|
||||||
|
return pc + oct;
|
||||||
|
};
|
||||||
|
|
||||||
// modulo that works with negative numbers e.g. mod(-1, 3) = 2
|
// modulo that works with negative numbers e.g. mod(-1, 3) = 2
|
||||||
// const mod = (n: number, m: number): number => (n < 0 ? mod(n + m, m) : n % m);
|
// const mod = (n: number, m: number): number => (n < 0 ? mod(n + m, m) : n % m);
|
||||||
export const mod = (n, m) => ((n % m) + m) % m;
|
export const mod = (n, m) => ((n % m) + m) % m;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user