ts-musical-scale
v1.0.0
Published
This TypeScript library provides classes for representing musical scales and translating musical note names between English, German, and Japanese.
Downloads
3
Readme
MusicalScale TypeScript Library
Overview
This TypeScript library provides classes for representing musical scales and translating musical note names between English, German, and Japanese.
Usage
import { MusicalScale } from 'musical-scale';
// Create a new musical scale instance
const scale = MusicalScale.create();
// Set the scale to A major
scale.la().octave(4);
// Get the frequency of the current note
const frequency = scale.toFrequency();
console.log(`Frequency: ${frequency} Hz`);
// Convert the current note to MIDI note number
const midiNote = scale.toMIDINoteNumber();
console.log(`MIDI Note Number: ${midiNote}`);
// Get the note name in German and Japanese
const germanNote = scale.getNoteName().toGerman();
const japaneseNote = scale.getNoteName().toJapanese();
console.log(`German Note Name: ${germanNote}`);
console.log(`Japanese Note Name: ${japaneseNote}`);
API Document
MusicalScale
Class
Represents a musical scale, allowing manipulation of notes and octaves.
This class is always the note name and octave are initialized. After this, when the pitch and octave to be explained, the sound of A4 is returned.
static create(): MusicalScale
Creates a new instance of MusicalScale.
do(): this
Sets the current note to C. Returns the MusicalScale instance for method chaining.
re(): this
Sets the current note to D. Returns the MusicalScale instance for method chaining.
mi(): this
Sets the current note to E. Returns the MusicalScale instance for method chaining.
fa(): this
Sets the current note to F. Returns the MusicalScale instance for method chaining.
so(): this
Sets the current note to G. Returns the MusicalScale instance for method chaining.
la(): this
Sets the current note to A. Returns the MusicalScale instance for method chaining.
ti(): this
Sets the current note to B. Returns the MusicalScale instance for method chaining.
octave(n: number): this
Sets the current octave to the specified value n. Returns the MusicalScale instance for method chaining.
sharp(): this
Raises the current note by a half step. Returns the MusicalScale instance for method chaining.
flat(): this
Lowers the current note by a half step. Returns the MusicalScale instance for method chaining.
toFrequency(roundFunc?: (x: number) => number): number
Calculates the frequency of the current note in Hertz. Optionally, roundFunc can be provided to round the frequency. Returns the calculated frequency.
toMIDINoteNumber(strict?: boolean): number
Converts the current note to its corresponding MIDI note number. If strict is true, it throws an error for out-of-range MIDI note numbers. Returns the MIDI note number.
getNoteName(): NoteNameTranslator
Returns a NoteNameTranslator instance representing the current note name and octave.
NoteNameTranslator
Class
Translates musical note names between English, German, and Japanese.
constructor(noteName: NoteName, octave: number)
Constructs a new instance of NoteNameTranslator with an initial note name and octave.
toGerman(withOctave?: boolean): string
Returns the German translation of the note name, optionally including the octave.
toJapanese(withOctave?: boolean): string
Returns the Japanese translation of the note name, optionally including the octave.
toString(): string
Returns the original note name including the octave.