Skip to content

per-operator phase offset & DX7 import

Pre-release
Pre-release

Choose a tag to compare

@gresade gresade released this 25 May 00:40
· 0 commits to master since this release

Add per-operator phase offset (note-on start phase) with UI + preset compatibility

  • add a dedicated phase offset parameter for each operator
  • apply operator phase offset on note-on in voice init path
  • add operator-page UI state to edit phase offset with short labels
  • keep editor architecture intact by using dedicated operator phase rows
  • extend runtime and flash parameter structs for phase persistence
  • update save/load conversion for new phase parameters
  • preserve compatibility for existing/legacy patches (including v2 layout handling)
  • update built-in preset initializers with default phase entries
  • add/refresh code comments in changed areas for maintainability

DX7 import: validate sysex bank and align importer mapping

  • harden DX7 sysex loading by reading full 32-voice bank frames and validating:
    • frame size and header/footer bytes
    • MIDI channel nibble format
    • 7-bit payload/checksum bytes
  • Yamaha checksum integrity
  • reject invalid patch indices and invalid bank data before import.
  • add null-safe DX7 patch loading path in synth state to avoid loading invalid pointers.
  • rework DX7 feedback import:
    • map DX7 feedback to modulationIndex6 (capped at 0.9)
    • remove legacy fb>4 saw-shape workaround branches
  • fix transpose import branch ordering so deep negative transpose is reachable.
  • fix AM depth regression:
    • preserve row 2 AMD-derived modulation amount
    • add regression guard comment
  • improve IM velocity split mapping with updated KVS ratios and apply split only when KVS > 0.
  • import DX7 LFO waveform and key sync in importer:
    • map DX7 wave shapes to internal LFO shapes
    • map key sync state into keybRamp sign semantics
    • deduplicate shared LFO import assignment logic
  • clamp DX7 PMD/AMD to 0..99 before scaling/table lookup.
  • add compile-time table-size guard for DX7 AMD lookup table.
  • fix LFO switch-case scope issue in header after key-sync update.
  • refresh and correct README/docs wording and links.

hints:

  • rename firmware and bootloader files to shorter name
  • bootloader untested