feat: implemented v1 audio-to-midi conversion (polyphonic only, algorithm-based)

This commit is contained in:
Xiaohan-Tian
2026-07-06 22:56:22 -07:00
parent f4e22e50a4
commit 5aa74e61a8
18 changed files with 1518 additions and 17 deletions
+22
View File
@@ -0,0 +1,22 @@
import {
detectMonophonicNotesFromAudio,
type AudioToMidiDetectedNote,
type AudioToMidiDetectionRequest,
} from '../util/audioToMidiCore';
export interface AudioToMidiWorkerResult {
type: 'result';
notes: AudioToMidiDetectedNote[];
}
type WorkerScopeLike = typeof globalThis & {
onmessage: ((event: MessageEvent<AudioToMidiDetectionRequest>) => void) | null;
postMessage: (message: AudioToMidiWorkerResult) => void;
};
const workerScope = self as WorkerScopeLike;
workerScope.onmessage = (event: MessageEvent<AudioToMidiDetectionRequest>) => {
const notes = detectMonophonicNotesFromAudio(event.data);
workerScope.postMessage({ type: 'result', notes });
};