midi
Type Aliases
NoteKey
type NoteKey = typeof noteKeys[number];
Defined in: midi.ts:22
ScaleName
type ScaleName = keyof typeof scaleIntervals;
Defined in: midi.ts:131
WhiteKey
type WhiteKey = typeof whiteKeys[number];
Defined in: midi.ts:5
Variables
noteKeys
const noteKeys: readonly ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"];
Defined in: midi.ts:7
scaleIntervals
const scaleIntervals: object;
Defined in: midi.ts:109
Semitones above the root, for each supported scale.
Every entry starts at 0 and stays inside one octave, so a scale is a set of pitch classes rather than a set of notes: inScale compares against it with the octave taken out.
ionian and aeolian are the same sets as major and naturalMinor; both
spellings are here because both are what someone reaches for depending on
whether they are thinking in keys or in modes.
Type Declaration
aeolian
readonly aeolian: readonly [0, 2, 3, 5, 7, 8, 10];
blues
readonly blues: readonly [0, 3, 5, 6, 7, 10];
chromatic
readonly chromatic: readonly [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11];
dorian
readonly dorian: readonly [0, 2, 3, 5, 7, 9, 10];
harmonicMinor
readonly harmonicMinor: readonly [0, 2, 3, 5, 7, 8, 11];
ionian
readonly ionian: readonly [0, 2, 4, 5, 7, 9, 11];
locrian
readonly locrian: readonly [0, 1, 3, 5, 6, 8, 10];
lydian
readonly lydian: readonly [0, 2, 4, 6, 7, 9, 11];
major
readonly major: readonly [0, 2, 4, 5, 7, 9, 11];
majorPentatonic
readonly majorPentatonic: readonly [0, 2, 4, 7, 9];
melodicMinor
readonly melodicMinor: readonly [0, 2, 3, 5, 7, 9, 11];
minorPentatonic
readonly minorPentatonic: readonly [0, 3, 5, 7, 10];
mixolydian
readonly mixolydian: readonly [0, 2, 4, 5, 7, 9, 10];
naturalMinor
readonly naturalMinor: readonly [0, 2, 3, 5, 7, 8, 10];
phrygian
readonly phrygian: readonly [0, 1, 3, 5, 7, 8, 10];
wholeTone
readonly wholeTone: readonly [0, 2, 4, 6, 8, 10];
whiteKeys
const whiteKeys: readonly ["A", "B", "C", "D", "E", "F", "G"];
Defined in: midi.ts:3
Functions
inScale()
function inScale(
note,
root,
name
): boolean;
Defined in: midi.ts:144
Whether a note belongs to a scale, regardless of the octave either sits in.
Parameters
| Parameter | Type | Description |
|---|---|---|
note | string | number | noteNumber: 0 ~ 127 or noteName e.g. 'C3' |
root | string | number | the note the scale is built on, in the same two forms |
name | | "major" | "naturalMinor" | "harmonicMinor" | "melodicMinor" | "ionian" | "dorian" | "phrygian" | "lydian" | "mixolydian" | "aeolian" | "locrian" | "majorPentatonic" | "minorPentatonic" | "blues" | "wholeTone" | "chromatic" | - |
Returns
boolean
Example
inScale('F#4', 'D3', 'major') // true
isBlackKey()
function isBlackKey(note): boolean;
Defined in: midi.ts:83
Parameters
| Parameter | Type | Description |
|---|---|---|
note | string | number | noteNumber: 0 ~ 127 or noteName e.g. 'C3' |
Returns
boolean
isWhiteKey()
function isWhiteKey(note): boolean;
Defined in: midi.ts:67
Parameters
| Parameter | Type | Description |
|---|---|---|
note | string | number | noteNumber: 0 ~ 127 or noteName e.g. 'C3' |
Returns
boolean
noteKey()
function noteKey(noteNumber): "A" | "B" | "C" | "D" | "E" | "F" | "G" | "C#" | "D#" | "F#" | "G#" | "A#";
Defined in: midi.ts:60
Convert noteNumber to noteKey
Parameters
| Parameter | Type |
|---|---|
noteNumber | number |
Returns
"A" | "B" | "C" | "D" | "E" | "F" | "G" | "C#" | "D#" | "F#" | "G#" | "A#"
noteName()
function noteName(noteNumber):
| `A${number}`
| `B${number}`
| `C${number}`
| `D${number}`
| `E${number}`
| `F${number}`
| `G${number}`
| `C#${number}`
| `D#${number}`
| `F#${number}`
| `G#${number}`
| `A#${number}`;
Defined in: midi.ts:51
Convert noteNumber to noteName C-1 = 0 G9 = 127
Parameters
| Parameter | Type | Description |
|---|---|---|
noteNumber | number | noteNumber |
Returns
| `A${number}`
| `B${number}`
| `C${number}`
| `D${number}`
| `E${number}`
| `F${number}`
| `G${number}`
| `C#${number}`
| `D#${number}`
| `F#${number}`
| `G#${number}`
| `A#${number}`
noteNumber()
function noteNumber(noteName): number;
Defined in: midi.ts:38
Convert noteName to noteNumber
Parameters
| Parameter | Type |
|---|---|
noteName | string |
Returns
number
noteToFrequency()
function noteToFrequency(
note,
detune?,
a4?
): number;
Defined in: midi.ts:93
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
note | string | number | undefined | noteNumber: 0 ~ 127 or noteName e.g. 'C3' |
detune | number | 0 | [cent] |
a4 | number | 440 | A4 frequency [Hz] |
Returns
number
frequency [Hz]
parseNoteName()
function parseNoteName(noteName): object;
Defined in: midi.ts:24
Parameters
| Parameter | Type |
|---|---|
noteName | string |
Returns
object
accidental
accidental: "" | "b" | "#" | "##" | "bb";
letter
letter: "A" | "B" | "C" | "D" | "E" | "F" | "G";
octave
octave: number;
scaleNotes()
function scaleNotes(
root,
name,
octaves?
): number[];
Defined in: midi.ts:168
The notes of a scale, ascending from root.
The octave above the root is not included: ask for more octaves instead, so
that concatenating the result of two calls does not repeat a note.
Parameters
| Parameter | Type | Default value | Description |
|---|---|---|---|
root | string | number | undefined | noteNumber: 0 ~ 127 or noteName e.g. 'C3' |
name | | "major" | "naturalMinor" | "harmonicMinor" | "melodicMinor" | "ionian" | "dorian" | "phrygian" | "lydian" | "mixolydian" | "aeolian" | "locrian" | "majorPentatonic" | "minorPentatonic" | "blues" | "wholeTone" | "chromatic" | undefined | - |
octaves | number | 1 | how many octaves to cover |
Returns
number[]
Example
scaleNotes('C3', 'majorPentatonic') // [48, 50, 52, 55, 57]