-
-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MIDI 2.0 Support (MIDI-CI/UMP) #7
Comments
API unificationThere is a possibility that MIDI 1.0/2.0 events can be unified into a single paradigm in MIDIKit. This fits into the intention behind MIDI 2.0 as being an incremental set of enhancements that are available if both endpoints of a MIDI connection support MIDI 2.0, otherwise the protocol gracefully falls back to legacy MIDI 1.0 format. This may take the form of a Note On event struct/enum that has pitch and velocity information that is in a format that can be seamlessly interpreted by the consumer of the library without much extra overhead to deal with conditional differences based on MIDI protocol. CaveatsCoreMIDI recently had new methods and data structures added to handle basic MIDI-CI interop and UMP packets. The downside is that they come with minimum OS requirements: macOS 11.0, iOS 14. MIDIKit supports macOS 10.12+ and iOS 10+ and bumping minimum OS version requirements for MIDIKit is less than desirable. It is possible to conditionally expose methods or handle implementation in MIDIKit on an Handling any MIDI 2.0 I/O or events in MIDIKit on older OS versions would require completely custom implementations. |
Initial UMP support is in MIDIKit 0.1.15, on macOS Big Sur / iOS 14 or later, but is bypassed internally for the time being. All events are happening using MIDI 1.0 spec at this stage. Still a WIP, some things are not implemented yet (multi-packet SysEx messages and a few other) |
Full UMP support will be WIP (blocked-in) in MIDIKit 0.2.0 but completed at a later date. |
Most MIDI 2.0 UMP events are now supported. UMP SysEx messages are not yet implemented, which will take more work because of its multi-part message formatting. |
UMP SysEx7 & SysEx8 support has now been added. |
MIDI 2.0 support progress:
relative: Bool
property on existing RPN/NRPN events)The text was updated successfully, but these errors were encountered: