feat(editor): instruments by default — a Guitar Pro import sounds out of the box - #281
Merged
Merged
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (15)
🔥 Files not summarized due to errors (2)
📝 WalkthroughWalkthroughAdds a WebAudioFont playback engine and bundled default preset, normalizes guide voice selection to GM instruments, and updates multi-track scheduler behavior, persisted playback preferences, documentation, changelogs, and tests. ChangesGuide voice and multi-track playback
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Editor
participant WebAudioFontLoader
participant WebAudioFontPlayer
participant GuideScheduler
participant AudioOutput
Editor->>WebAudioFontLoader: request default instrument preset
WebAudioFontLoader->>WebAudioFontPlayer: provide decoded preset
Editor->>GuideScheduler: start play-all or band playback
GuideScheduler->>WebAudioFontPlayer: queue transcription and guide notes
WebAudioFontPlayer->>AudioOutput: schedule sampled voices
Possibly related PRs
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
This was referenced Jul 15, 2026
Christian's call: the guide claps are dumb; built-in soundfonts, defaulted ON for each Guitar Pro / MIDI track. - Session-aware defaults: a chart-only session (createMode or no recording) defaults the guide ON and band mode ON — import a GP file, press play, hear the band. Recording-backed sessions keep the quiet defaults. A stored user choice beats the default in BOTH directions (explicit OFF in chartware sticks). - The clap MODE is gone: _gmGuideModePure always reads 'gm' (legacy stored 'clap' prefs migrate), the Clap/Instrument menu radio is removed (per-kind instrument choice rows stay), user-facing copy says 'guide voices'. The clap itself survives ONLY as the loading fallback and the drum-grid tick. - VENDORED the per-kind default presets (~2 MB: WebAudioFontPlayer + FluidR3 0000 piano / 0270 clean electric / 0330 fingered bass) into assets/wafonts — the source chain's plugin rung now serves them, so first play needs zero network. README provenance updated (FluidR3- only contract kept); non-default choices still stream lazily. tests/instruments_default.test.mjs (3 cases, fails on main): the session-aware default matrix, the mode migration, and a pin that the default presets are genuinely on disk with whitelist-exact names. gm_guide + midi_playback suites re-pinned to the new contract. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EBQCHCNA81E9tHmSDHSe2Q
byrongamatos
force-pushed
the
feat/editor-instruments-default
branch
from
July 15, 2026 20:37
1766fc7 to
4512b47
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Import a Guitar Pro or MIDI file, press play, hear music. Today that flow produces silence — the guide is off by default and its default voice was a clap. Christian's call: claps are dumb; built-in soundfonts, on by default for every GP/MIDI track.
_gmGuideModePurereads'gm'for every input (legacy stored'clap'prefs migrate silently), the Clap/Instrument menu radio is removed (the per-kind instrument choice rows stay), and user-facing copy says "guide voices". The clap survives only as the never-silent loading fallback and the drum-grid tick — invisible plumbing, not a feature.assets/wafonts/— WebAudioFontPlayer + FluidR3 grand piano (keys), clean electric (guitar), fingered bass (bass) — so the source chain's first rung serves them and first play needs zero network. The FluidR3-only provenance contract is kept and the README lists every file with source + license; non-default curated choices still stream lazily from org/CDN. This closes the "vendor preset subset" follow-up from feat(editor): pitched GM guide voices + per-kind instrument picker (DAW 1.2/1.5) #217 (the size call: defaults only, ~2 MB).Testing
tests/instruments_default.test.mjs(3 cases, fails on main): the default matrix (chartware ON / recording OFF / stored beats both, both ways), the clap→gm migration, and a pin that the default presets are genuinely on disk with whitelist-exact names and real sizes.gm_guideandmidi_playbacksuites re-pinned to the new contract. Full gates green: 160 files / 0 fail, lint at baseline,test_wafont_route.py4/4.🤖 Generated with Claude Code
https://claude.ai/code/session_01EBQCHCNA81E9tHmSDHSe2Q
Summary by CodeRabbit
New Features
Bug Fixes