Search guides and the APICtrl K
  1. API reference
  2. MIDI and OSC

midi_ci.h

MIDI Capability Inquiry.

#include <sonore/midi_ci.h>
On this page

Design notes

How a MIDI 2.0 device and a plugin introduce themselves: who are you, what can you do, and (the part that is actually useful) hand me your parameter list so I can map my knobs to it without the user doing it by hand.

This is the MESSAGE LAYER only, and deliberately so. Every CI message is a universal SysEx with a fixed prologue, and the bugs live there: the seven-bit packing (SysEx data bytes cannot have the top bit set, so anything wider has to be split), the MUID (a 28-bit identity carried as four seven-bit bytes), and the little-endian ordering of both. All of that is testable exhaustively with no hardware, exactly like the OSC codec.

What is NOT here is the negotiation state machine, for the same reason the ARA binding is a hook: it can only be proven against a CI-capable device or host, and shipping an unverifiable state machine is how the two macOS bugs in this SDK's history got written.

Types 2

A device's identity, as it appears in Discovery and its reply.

What a parsed message carries.

Functions 8

Enums 1

Constants 6

↑↓ to move↵ to openEvery public name in the headers, and every guide