Back to replicas
Replica documentation
Chrome Music Lab Song Maker
Local route /interactive-explanation/chrome-music-lab-song-maker/ vendors
Chrome Music Lab’s Song Maker as one standalone sequencer route, keeps the original canvas
runtime and local sample packs, and archives the shipped first-party media inside the route
tree for GitHub Pages hosting.
Upstream snapshot: runtime and asset tree verified 2026-03-21
Source family: musiclab.chromeexperiments.com
Source snapshot
The local route vendors the published Song Maker bundle and the first-party assets needed
by that one experience. The archive build keeps the paint-to-compose grid, transport,
instrument toggles, settings, and mic entry shell where those flows work locally.
- Live original verified against
https://musiclab.chromeexperiments.com/Song-Maker/ on 2026-03-21.
- The public route intentionally ships Song Maker only, not the rest of the Chrome Music Lab shell.
- Remote save and share are disabled in the local archive build because the published handoff depends on non-archived remote services.
Asset handoff
chrome-music-lab-song-maker/index.html owns the local metadata shell, route base handoff, save neutralization, and shared footer wiring.
chrome-music-lab-song-maker/client/build/Main.js preserves the published canvas runtime, patched to use route-local base paths for the archive build.
chrome-music-lab-song-maker/client/audio/ contains the full local instrument and percussion inventory: 110 audio files.
chrome-music-lab-song-maker/client/images/ contains 20 archived images, and client/fonts/ contains 2 archived font files.
Known deviations
- The public route removes the upstream analytics, cookie, and Chrome shell surfaces from the body.
- The save button is replaced with a disabled local-archive variant because remote save and share are intentionally unsupported.
- A local MIDI capability shim is injected before boot so non-MIDI environments do not throw a load-time unhandled rejection.
Validation guidance
- Preserve the published Song Maker runtime and patch path or shell behavior instead of rewriting the sequencer into a custom app.
- Smoke coverage should prove local bundle load, note-entry changes, playback-state updates, one settings change, disabled save behavior, and zero remote playable media requests.
- Run
node interactive-explanation/tools/check-public-surface.mjs, node interactive-explanation/tools/smoke-bundle.mjs --group music, and the full smoke bundle after route changes.
Parity checklist
Loading...
Loading parity contract...