Incoming USB/BLE MIDI notes were dropping their channel and always playing the generic default-synth pool, ignoring the mixer routing. Now the parser keeps the channel nibble (exposed 1-based, 1..16) on InputAction.NoteOn/NoteOff, and the ViewModel routes a channelled note through engine.busNoteOn/busNoteOff — sounding the mixer track(s) whose midiChannel matches, through their instrument and full insert chain, exactly like the on-screen keyboard. Channel-less sources (physical keyboard) keep the previous audition path. On the Tracker tab with punch-in armed, a MIDI note now also punches into the focused cell, recording its own velocity and channel and advancing by the skip step (punchNote gained velocity/channel parameters). Off the tracker tab or with punch-in off, MIDI only auditions. Note: routing is strict, so a note is audible only on a track whose MIDI channel matches and that has an instrument assigned (new projects start with buses on the empty channel 0). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
5.1 KiB
5.1 KiB