NOW LOADING

MIDI CI Namespace Overview


Namespace for MIDI-CI types
Windows.Devices.Midi2.CapabilityInquiry

MIDI Capability Inquiry is how a device tells you what it is, what its channels are set to, and what patches it has, without your application needing to know anything about that make of device. A patch browser in a sequencer is built on it.

Most applications want MidiCapabilityInquirySession. It owns an identifier, numbers its own requests, puts replies that arrive in pieces back together, pages through long lists, and gives up on a device that isn’t going to answer. That leaves your code with just the question you want to ask.

An application that wants to act as a device instead uses MidiVirtualDevice.CapabilityInquiry, a MidiCapabilityInquiryDeviceResponder. Give it the lists you want to publish, and it answers for you.

Underneath both of those are MidiCapabilityInquiryMessage and MidiCapabilityInquiryMessageBuilder, which read and write single messages. Use them for anything the other two types don’t cover.

Everything here is sent as UMP. There’s no MIDI 1.0 byte stream version.

Sessions and devices

Type Description
MidiCapabilityInquirySession Asks capability inquiry questions over an endpoint connection and waits for the answers
MidiCapabilityInquiryDeviceResponder Answers capability inquiry for a virtual device
MidiCapabilityInquiryResponder A device that answered Discovery
MidiPropertyExchangeResponse The answer to a property exchange request
MidiProfileInquiryResponse What a responder said about the profiles at one address
MidiCapabilityInquiryMessageReceivedEventArgs A message that arrived without being asked for

Messages

Type Description
MidiCapabilityInquiryMessage A message that arrived, decoded
MidiCapabilityInquiryMessageBuilder Builds messages as the UMP packets that carry them
MidiCapabilityInquiryMessageType Which kind of message a message is
MidiCapabilityInquiryCategories What a device says it can do
MidiCapabilityInquiryStatus How a request ended
MidiUniqueId The identifier a device answers to, for as long as it’s powered on
MidiProfileId The five-byte identifier of a profile

Property exchange resources

Type Description
MidiDeviceInfo What a device says about itself
MidiResourceList Everything a device offers, and what you can do with each one
MidiResourceListEntry One entry in that list
MidiChannelList What a device says about each of its channels
MidiChannelListEntry One entry in that list
MidiProgramList The programs a device offers
MidiProgramListEntry One entry in that list
MidiResourceLink A pointer from one resource to another

Examples

Types in this namespace

Click or tap the type name to view more details.

Type Description
MidiCapabilityInquiryCategories What a device says it can do, declared once in its Discovery message
MidiCapabilityInquiryDeviceResponder Answers capability inquiry for a virtual device
MidiCapabilityInquiryMessage A capability inquiry message that arrived, decoded far enough to act on
MidiCapabilityInquiryMessageBuilder Builds capability inquiry messages as the UMP packets that carry them
MidiCapabilityInquiryMessageReceivedEventArgs A capability inquiry message that arrived without being asked for
MidiCapabilityInquiryMessageType The sub-id 2 byte which says what a capability inquiry message is
MidiCapabilityInquiryResponder A device that answered Discovery, described by what it said about itself
MidiCapabilityInquirySession Asks capability inquiry questions over an endpoint connection and waits for the answers
MidiCapabilityInquiryStatus How a capability inquiry request ended
MidiChannelList What a device says about each of its channels, from its ChannelList resource
MidiChannelListEntry One channel a device describes, from its ChannelList resource
MidiDeviceInfo What a device says about itself, from its DeviceInfo resource
MidiProfileId The five-byte identifier of a MIDI-CI profile
MidiProfileInquiryResponse What a responder said about the profiles at one address
MidiProgramList The programs a device offers, from its ProgramList resource
MidiProgramListEntry One selectable program on a device, from its ProgramList resource
MidiPropertyExchangeResponse The answer to a property exchange request, with all its pieces already put back together
MidiPropertySubscription A standing request to be told when a resource on a device changes
MidiPropertySubscriptionUpdatedEventArgs A device telling a subscriber that a resource it asked about has changed
MidiResourceLink A pointer from one resource to another, as carried in a links array
MidiResourceList Everything a device offers through property exchange, from its ResourceList resource
MidiResourceListEntry One resource a device offers, and what you can do with it
MidiUniqueId A MIDI-CI unique identifier (MUID)

Didn't find what you were looking for?

Windows MIDI Services is an open source project with all source available on GitHub. We have a great community on Discord as well. Between GitHub and Discord, you should find the information you are looking for.