The Part events were pre-converted to seconds via Tone.Time().toSeconds(),
making the BPM setting ineffective. Now uses bars:quarters:sixteenths
notation so the Transport BPM actually controls playback speed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix mouse coordinate scaling in piano roll when canvas is zoomed
(getBoundingClientRect returns visual size, now dividing by scale ratio)
- Replace Megaman melody with Super Mario Bros overworld theme
- Tune chiptune preset: faster BPM (200), snappier envelopes, brighter
filter, less delay/distortion for cleaner NES sound
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Fix wires not recalculating positions on zoom until panning
- Add MIDI file import button to Piano Roll (parses .mid files)
- Allow envelope release to go to 0 (was clamped at 0.001)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add step sequencer (16-step with note/gate editing) and piano roll
(canvas-based MIDI editor with draw/erase tools). Includes a Megaman-style
melody in C minor. Chiptune preset now uses piano roll instead of keyboard.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace fragile DOM position matching in finishConnection with
data-module-id/data-port-name/data-port-direction attributes
- Add nearby port detection (8px radius) for easier connections
- Wire glow effects with drop-shadow filters
- Port dots z-index above wires for reliable click targeting
- Chiptune demo preset: 2x square osc, envelopes, VCAs, mixer,
filter, delay, distortion, scope — full 8-bit signal chain
- "Chiptune Demo" toolbar button to load the example
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>