@chordbook/tuner
Version:
The tuner used by ChordBook.app
35 lines (32 loc) • 904 B
text/typescript
import { PitchDetector } from 'pitchy';
interface TunerConfig {
a4?: number;
clarityThreshold?: number;
minVolumeDecibels?: number;
bufferSize?: number;
smoothingTimeConstant?: number;
minFrequency?: number;
maxFrequency?: number;
updateInterval?: number;
sampleRate?: number;
onNote?: (note: Note) => void;
}
declare const TunerDefaults: TunerConfig;
interface Note {
name: string;
value: number;
cents: number;
octave: number;
frequency: number;
clarity: number;
}
declare function createTuner(config?: TunerConfig): {
start: () => Promise<void>;
stop: () => Promise<void>;
context: AudioContext;
analyser: AnalyserNode;
detector: PitchDetector<Float32Array>;
config: TunerConfig;
getNote: (frequency: number, clarity?: number) => Note;
};
export { type Note, type TunerConfig, TunerDefaults, createTuner };