UNPKG

string-fingerings

Version:

Utilities for calculating fingerings on string instruments

34 lines 1.69 kB
import type { Instrument, InstrumentString, Stop, StopCalculationData } from './types.js'; /** * Gets the MIDI note number from a text representation (middle C is 'C4') * @param noteName Can include sharp (#) and flat (b) alterations, like Db5 or F#2. * @returns The MIDI note number or a string with an explanatory error message. */ export declare function noteNumber(noteName: string): number | string; export declare function nn(noteName: string): number; export declare function noteName(noteNumber: number): string; export declare function abcnote(noteNumber: number): string; /** * Returns the stop position relative to a string of length 1 * @param stopIndex semitone index (number of semitones above the open string) */ export declare function getStopRelPos(stopIndex: number): number; declare global { interface Array<T> { pairwise(): Array<[T, T]>; } } export declare function fingeringHardness<TString extends InstrumentString>(instrument: Instrument<TString>, fingering: StopCalculationData[]): number; export declare function hasNoGaps(_instrument: any, fingering: { stringIndex: number; }[]): boolean; export declare function hasPossibleStretch<TString extends InstrumentString>(instrument: Instrument<TString>, fingering: Stop[]): boolean; /** * Calculates the fingerings for an instrument and a set of notes. * @param instrument * @param notes * @param validations * @param includeNaturalHarmonics */ export declare function calculateFingerings<TString extends InstrumentString>(instrument: Instrument<TString>, notes: number[], validations: Function[], includeNaturalHarmonics?: boolean): Stop[][]; //# sourceMappingURL=fingerings.d.ts.map