Developer postOriginal post (opens in a new tab)

MIDI Playback Overhaul — Sound Canvas Accuracy

Fixed: published builds crashed at launch. A required module was missing from the app package; if the previous build wouldn't start, this one will.

Playback fixes

  • Pitch bends now decode the full 14-bit value. Previously every bend read as nearly full-scale down — with a wide bend range set, whole channels could play an octave low.
  • Drum kits no longer stack every kit layer onto every note (preset-level key ranges are honored), fixing drums that hit up to 34 dB too hot.
  • Restored MIDI messages lost in a refactor: reset-controllers, all-sounds-off / all-notes-off, and zero-velocity note-offs work again.
  • Channel fine and coarse tuning now combine instead of overwriting each other.

GS / Sound Canvas-era playback

Classic 90s-era MIDI files authored for Roland Sound Canvas hardware now sound the way they were written to sound:

  • Bank-select fallback, sustain pedal, always-on reverb, and chorus — matching Sound Canvas behavior.
  • GS drum-setup support: per-note drum pitch, level, pan, and reverb/chorus sends. Files that retune the kick or ride a hot snare reverb get their punch back.
  • Vibrato, reverb, and chorus calibrated against measurements of real SC-55mk2 firmware (via the cycle-accurate Nuked-SC55 emulator) — vibrato depth/rate/onset and reverb decay now match the hardware to within measurement error.