2d4c748d4c0f33931df9668b6e5c403601d5da30
Role Mapping Rewrite: - Replace naive hard thresholds with scored feature analysis - Extract comprehensive track features (polyphony, repetition, phrase continuity) - Add melody vs accompaniment separation logic - Competitive role allocation with fallback handling - Support for 6 roles: bass, drone, ostinato, texture, accents, melody Chord Detection & Polyphony: - Extract chord events from simultaneous notes (50ms window) - Add ChordEvent type with multiple pitches - SynthesisEngine supports both single notes and chords - Drone/texture layers use chords, others remain monophonic Feature Extraction: - medianPitch, pitchRange, noteDensity analysis - polyphonyRatio calculation via note overlap detection - repetitionScore using 4-note pattern matching - phraseContinuity detection via stepwise motion - register classification (low/mid/high) This should dramatically improve "sounds like the song" recognition by using actual musical features instead of arbitrary cutoffs. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
MOTIF
Procedural Music Synthesis from MIDI Structure
Motif extracts structural information from existing music and re-instantiates it as original, real-time audio using the Web Audio API. Music as executable structure, not static audio.
Quick Start
# Install dependencies for both frontend and backend
npm install
cd server && npm install && cd ..
# Run both frontend and backend
npm run dev:all
# Or run separately:
npm run dev:backend # Backend on :3001
npm run dev # Frontend on :3000
Architecture
- Frontend: TypeScript + Vite + Web Audio API
- Backend: Express API for MIDI search and fetching
- MIDI Sources: BitMidi, Dongrays (with synthetic fallback)
- Synthesis: Pure procedural Web Audio (no samples)
How it works
- Search for MIDI by song name
- Extract structural features (tempo, density, roles)
- Map to synthesis layers (bass, drone, ostinato, texture)
- Generate original audio with similar "feel"
Project Structure
src/
├── core/ # MotifEngine, RoleMapper
├── synthesis/ # Web Audio synthesis engine
├── midi/ # MIDI parsing and processing
├── services/ # Backend API client
└── types/ # TypeScript interfaces
server/
├── src/
│ ├── adapters/ # MIDI search adapters
│ ├── services/ # Search and fetch logic
│ └── utils/ # Scoring and validation
└── cache/ # MIDI file cache
API
GET /api/midi/search?q=song- Search for MIDI filesGET /api/midi/fetch?u=url- Fetch and validate MIDI
Built as a technical experiment in procedural audio and Web Audio capabilities.
Description
Wario.Style. Game Boy Midi Synthesis Engine. Search any song. Get the 8-bit Game Boy version.
Readme
3.8 MiB
Languages
TypeScript
69.4%
HTML
30.6%