From 2c9d06d8d7dcf264650feaf4d89e487ccd235290 Mon Sep 17 00:00:00 2001 From: b1rdmania <102524336+b1rdmania@users.noreply.github.com> Date: Thu, 18 Dec 2025 14:25:38 +0000 Subject: [PATCH] Improve MIDI search and add browser playback engines. --- .gitignore | 6 +- index.html | 55 ++++- package-lock.json | 105 ++++++++- package.json | 6 +- server/package-lock.json | 37 +++- server/package.json | 11 +- server/src/adapters/BitMidiAdapter.ts | 167 ++++++++++++--- server/src/adapters/MockAdapter.ts | 38 ++++ server/src/server.ts | 4 +- server/src/services/MIDIFetchService.ts | 14 ++ server/src/services/MIDISearchService.ts | 3 + server/src/types.ts | 2 +- server/src/utils/ProperMIDI.ts | 141 ++++++++++++ server/src/utils/SimpleMIDI.ts | 72 +++++++ server/src/utils/SyntheticMIDI.ts | 110 ++++++++++ server/tsconfig.json | 7 +- src/core/MotifEngine.ts | 8 +- src/core/RoleMapper.ts | 4 +- src/main-simple.ts | 42 ++++ src/main-working.ts | 189 +++++++++++++++++ src/main.ts | 162 +++++++++++--- src/midi/MIDIParser.ts | 3 +- src/services/MIDIService.ts | 1 - src/synthesis/EnhancedMIDIPlayer.ts | 259 +++++++++++++++++++++++ src/synthesis/SimpleMIDIPlayer.ts | 215 +++++++++++++++++++ src/synthesis/SoundfontMIDIPlayer.ts | 196 +++++++++++++++++ src/synthesis/SynthesisEngine.ts | 14 +- src/synthesis/ToneJSMIDIPlayer.ts | 174 +++++++++++++++ test.html | 21 ++ thursday-aims-progress-problems.md | 107 ++++++++++ 30 files changed, 2080 insertions(+), 93 deletions(-) create mode 100644 server/src/adapters/MockAdapter.ts create mode 100644 server/src/utils/ProperMIDI.ts create mode 100644 server/src/utils/SimpleMIDI.ts create mode 100644 server/src/utils/SyntheticMIDI.ts create mode 100644 src/main-simple.ts create mode 100644 src/main-working.ts create mode 100644 src/synthesis/EnhancedMIDIPlayer.ts create mode 100644 src/synthesis/SimpleMIDIPlayer.ts create mode 100644 src/synthesis/SoundfontMIDIPlayer.ts create mode 100644 src/synthesis/ToneJSMIDIPlayer.ts create mode 100644 test.html create mode 100644 thursday-aims-progress-problems.md diff --git a/.gitignore b/.gitignore index 9c85dcb..67e450a 100644 --- a/.gitignore +++ b/.gitignore @@ -32,4 +32,8 @@ logs/ # Runtime .cache/ -.tmp/ \ No newline at end of file +.tmp/ +.vercel + +# Backend runtime cache (downloaded MIDI files) +server/cache/ diff --git a/index.html b/index.html index 75ba016..780f327 100644 --- a/index.html +++ b/index.html @@ -132,6 +132,39 @@ color: #ffaa44; font-size: 0.9em; } + + .volume-control { + margin-top: 10px; + display: flex; + align-items: center; + gap: 10px; + } + .volume-control label { + font-size: 0.9em; + color: #aaa; + } + .volume-control input[type="range"] { + flex: 1; + margin: 0; + } + + .engine-selector { + margin-top: 10px; + font-size: 0.9em; + } + .engine-selector label { + color: #aaa; + display: block; + margin-bottom: 5px; + } + .engine-selector select { + background: #333; + color: #e0e0e0; + border: 1px solid #555; + padding: 5px 10px; + font-family: inherit; + width: 100%; + }
@@ -175,15 +208,31 @@Plays original MIDI as-is
- +Procedural synthesis from structure
- + +