Add complete MIDI search and synthesis pipeline

Backend (MVP):
- Express API with /search and /fetch endpoints
- BitMidi and Dongrays search adapters with scoring heuristics
- CORS proxy with disk caching and validation
- Quality assessment and file size limits

Frontend Integration:
- Switch to @tonejs/midi parser for reliable MIDI parsing
- MIDIService for backend API communication
- MotifEngine updated to try real MIDI, fallback to synthetic
- Enhanced error handling and logging

Development:
- Concurrent frontend/backend npm scripts
- Basic project documentation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
b1rdmania
2025-12-17 20:45:40 +00:00
parent 4b7836b925
commit 11c894bd91
14 changed files with 834 additions and 6 deletions
+22
View File
@@ -0,0 +1,22 @@
export interface MIDICandidate {
id: string;
title: string;
source: 'bitmidi' | 'dongrays';
pageUrl: string;
midiUrl: string;
confidence: number;
fileSize?: number;
duration?: number;
}
export interface SearchAdapter {
name: string;
search(query: string): Promise<MIDICandidate[]>;
}
export interface CacheEntry {
hash: string;
filename: string;
size: number;
timestamp: number;
}