Skip to content

MIDI I/O To Do ListΒ #19

@orchetect

Description

@orchetect

General

  • MIDIManager: Add remaining accessors for things like Core MIDI ExternalDevices, etc.
  • MIDIIOObjectProtocol: Add remaining set...() property methods (counterparts to get...() property methods)
  • New method to send multiple MIDIEventPacket in a single MIDIEventList (similar to existing MIDIPacketList method)
  • Formalize ReceivesMIDIEvents and SendsMIDIEvents protocols and how they are used internally.
    When using events: [MIDIEvent] variations of send or receive, I/O should attempt to pack all events into a single MIDIPacketList/MIDIEventList
  • getConnectionUniqueID() can be Int32 or CFData - see Core MIDI docs:

    The value provided may be an integer. To indicate that a driver connects to multiple external objects, pass the array of big-endian SInt32 values as a CFData object.

  • MIDI thru connections: add transforms that exist in Core MIDI to thru params

Legacy (non-UMP MIDI 1.0)

  • Multi-packet chunking of legacy MIDI 1.0 SysEx messages
  • Add compoundEventParsing: Bool property to MIDI1Parser that buffers received events that match certain RPN, NRPN messages and return compound events (ie: .rpn() instead of a series of .cc() events) upon receipt of all messages that comprise the compound event.

Done

  • Carry MIDI packet timestamp through to MIDIEvent consumers? (ReceivesMIDIEvents protocol) Or at least provide it in the receive handler.
  • MIDI non-persistent thru connections:
    • do they need to be reconnected (refreshed) when a received MIDI notification indicates setup has changed or things were added/removed in the Core MIDI subsystem? or does Core MIDI handle some of that autonomously?
    • what happens when ports involved disappear and reappear in the system? Do we need to worry about a refreshConnections(in:) method like with the inputs and outputs?

Metadata

Metadata

Assignees

Labels

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions