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:
@@ -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;
|
||||
}
|
||||
Reference in New Issue
Block a user