kMIDIPropertyName |
extern const CFStringRef kMIDIPropertyName;
device/entity/endpoint property, string
Devices, entities, and endpoints may all have names. The recommended way to display an
endpoint's name is to ask for the endpoint name, and display only that name if it is
unique. If it is non-unique, prepend the device name.
A setup editor may allow the user to set the names of both driver-owned and external
devices.
kMIDIPropertyManufacturer |
extern const CFStringRef kMIDIPropertyManufacturer;
device/endpoint property, string
Drivers should set this property on their devices.
Setup editors may allow the user to set this property on external devices.
Creators of virtual endpoints may set this property on their endpoints.
kMIDIPropertyModel |
extern const CFStringRef kMIDIPropertyModel;
device/endpoint property, string
Drivers should set this property on their devices.
Setup editors may allow the user to set this property on external devices.
Creators of virtual endpoints may set this property on their endpoints.
kMIDIPropertyUniqueID |
extern const CFStringRef kMIDIPropertyUniqueID;
devices, entities, endpoints all have unique ID's, integer
The system assigns unique ID's to all objects. Creators of virtual endpoints may set
this property on their endpoints, though doing so may fail if the chosen ID is not
unique.
kMIDIPropertyDeviceID |
extern const CFStringRef kMIDIPropertyDeviceID;
device/entity property, integer
The entity's system-exclusive ID, in user-visible form
Drivers may set this property on their devices or entities.
Setup editors may allow the user to set this property on external devices.
kMIDIPropertyReceiveChannels |
extern const CFStringRef kMIDIPropertyReceiveChannels;
endpoint property, integer
The value is a bitmap of channels on which the object receives: 1=ch 1, 2=ch 2, 4=ch 3
... 0x8000=ch 16.
Drivers may set this property on their entities or endpoints.
Setup editors may allow the user to set this property on external endpoints.
Virtual destination may set this property on their endpoints.
kMIDIPropertyTransmitChannels |
extern const CFStringRef kMIDIPropertyTransmitChannels;
endpoint property, integer
The value is a bitmap of channels on which the object transmits: 1=ch 1, 2=ch 2, 4=ch 3
... 0x8000=ch 16.
New for CoreMIDI 1.3.
kMIDIPropertyMaxSysExSpeed |
extern const CFStringRef kMIDIPropertyMaxSysExSpeed;
device/entity/endpoint property, integer
Set by the owning driver; should not be touched by other clients.
The value is the maximum rate, in bytes/second, at which sysex messages may
be sent reliably to this object. (The default value is 3125, as with MIDI 1.0)
kMIDIPropertyAdvanceScheduleTimeMuSec |
extern const CFStringRef kMIDIPropertyAdvanceScheduleTimeMuSec;
device/entity/endpoint property, integer
Set by the owning driver; should not be touched by other clients. If it is non-zero,
then it is a recommendation of how many microseconds in advance clients should schedule
output. Clients should treat this value as a minimum. For devices with a non-zero
advance schedule time, drivers will receive outgoing messages to the device at the time
they are sent by the client, via MIDISend, and the driver is responsible for scheduling
events to be played at the right times according to their timestamps.
As of CoreMIDI 1.3, this property may also be set on virtual destinations (but only the
creator of the destination should do so). When a client sends to a virtual destination
with an advance schedule time of 0, the virtual destination receives its messages at
their scheduled delivery time. If a virtual destination has a non-zero advance schedule
time, it receives timestamped messages as soon as they are sent, and must do its own
internal scheduling of received events.
kMIDIPropertyIsEmbeddedEntity |
extern const CFStringRef kMIDIPropertyIsEmbeddedEntity;
entity/endpoint property, integer
0 if there are external MIDI connectors, 1 if not.
New for CoreMIDI 1.1 (Mac OS X 10.1)
kMIDIPropertyIsBroadcast |
extern const CFStringRef kMIDIPropertyIsBroadcast;
entity/endpoint property, integer
1 if the endpoint broadcasts messages to all of the other endpoints in the device, 0 if
not. Set by the owning driver; should not be touched by other clients.
New for CoreMIDI 1.3.
kMIDIPropertySingleRealtimeEntity |
extern const CFStringRef kMIDIPropertySingleRealtimeEntity;
device property, integer
Some MIDI interfaces cannot route MIDI realtime messages to individual outputs; they are
broadcast. On such devices the inverse is usually also true -- incoming realtime
messages cannot be identified as originating from any particular source.
When this property is set on a driver device, it signifies the 0-based index of the
entity on which incoming realtime messages from the device will appear to have
originated from.
New for CoreMIDI 1.3.
kMIDIPropertyConnectionUniqueID |
extern const CFStringRef kMIDIPropertyConnectionUniqueID;
device/entity/endpoint property, integer or CFDataRef
UniqueID of an external device/entity/endpoint attached to this one. As of Mac OS X
10.3, Audio MIDI Setup maintains endpoint-to-external endpoint connections (in 10.2, it
connected devices to devices).
The property is non-existant or 0 if there is no connection.
New for CoreMIDI 1.1 (Mac OS X 10.1)
Beginning with CoreMIDI 1.3, this property may also be a CFDataRef containing an array of
big-endian SInt32's, to allow specifying that a driver object connects to multiple
external objects (via MIDI thru-ing or splitting).
This property may also exist for external devices/entities/endpoints, in which case it
signifies a MIDI Thru connection to another external device/entity/endpoint (again,
it is strongly recommended that it be an endpoint).
kMIDIPropertyOffline |
extern const CFStringRef kMIDIPropertyOffline;
device/entity/endpoint property, integer
1 = device is offline (is temporarily absent), 0 = present. Set by the owning driver, on
the device; should not be touched by other clients. Property is inherited from the
device by its entities and endpoints.
New for CoreMIDI 1.1 (Mac OS X 10.1)
kMIDIPropertyPrivate |
extern const CFStringRef kMIDIPropertyPrivate;
device/entity/endpoint property, integer
1 = endpoint is private, hidden from other clients. May be set on a device or entity,
but they will still appear in the API; only affects whether the owned endpoints are
hidden.
New for CoreMIDI 1.3.
kMIDIPropertyDriverOwner |
extern const CFStringRef kMIDIPropertyDriverOwner;
device/entity/endpoint property, string
Name of the driver that owns a device. Set by the owning driver, on the device; should
not be touched by other clients. Property is inherited from the device by its entities
and endpoints.
New for CoreMIDI 1.1 (Mac OS X 10.1)
kMIDIPropertyFactoryPatchNameFile |
extern const CFStringRef kMIDIPropertyFactoryPatchNameFile;
device/entity/endpoint property, CFData containing AliasHandle.
An alias to the device's current factory patch name file.
Added in CoreMIDI 1.1 (Mac OS X 10.1). DEPRECATED as of CoreMIDI 1.3. Use
kMIDIPropertyNameConfiguration instead.
kMIDIPropertyUserPatchNameFile |
extern const CFStringRef kMIDIPropertyUserPatchNameFile;
device/entity/endpoint property, CFData containing AliasHandle
An alias to the device's current user patch name file.
Added in CoreMIDI 1.1 (Mac OS X 10.1). DEPRECATED as of CoreMIDI 1.3. Use
kMIDIPropertyNameConfiguration instead.
kMIDIPropertyNameConfiguration |
extern const CFStringRef kMIDIPropertyNameConfiguration;
device/entity/endpoint property, CFDictionary
This specifies the device's current patch, note and control name values using the
MIDINameDocument XML format. This specification requires the use of higher-level,
OS-specific constructs outside of the specification, to fully define the current names
for a device.
The MIDINameConfiguration property is implementated as a CFDictionary:
key "master" maps to a CFDataRef containing an AliasHandle referring to the device's
master name document.
key "banks" maps to a CFDictionaryRef. This dictionary's keys are CFStringRef names of
patchBank elements in the master document, and its values are each a CFDictionaryRef:
key "file" maps to a CFDataRef containing an AliasHandle to a document containing
patches that override those in the master document, and key "patchNameList" maps to a
CFStringRef which is the name of the patchNameList element in the overriding document.
key "currentChannelNameSets" maps to a 16-element CFArrayRef, each element of which is a
CFStringRef of the name of the current mode for each of the 16 MIDI channels.
key "currentDeviceMode" maps to a CFStringRef containing the name of the device's mode.
Clients setting this property must take particular care to preserve dictionary values
other than the ones they are interested in changing, and to properly structure the
dictionary.
New for CoreMIDI 1.3.
kMIDIPropertyImage |
extern const CFStringRef kMIDIPropertyImage;
device property, CFStringRef which is a full POSIX path to a device or external device's
icon, stored in any standard graphic file format such as JPEG, GIF, PNG and TIFF are all
acceptable. (See CFURL for functions to convert between POSIX paths and other ways of
specifying files.) The image's maximum size should be 128x128.
Drivers should set the icon on the devices they add.
A studio setup editor should allow the user to choose icons for external devices.
New for CoreMIDI 1.3.
kMIDIPropertyDriverVersion |
extern const CFStringRef kMIDIPropertyDriverVersion;
device/entity/endpoint property, integer, returns the driver version API of the owning
driver (only for driver- owned devices). Drivers need not set this property;
applications should not write to it.
New for CoreMIDI 1.3.
kMIDIPropertySupportsGeneralMIDI |
extern const CFStringRef kMIDIPropertySupportsGeneralMIDI;
device/entity property, integer (0/1). Indicates whether the device or entity implements
the General MIDI specification.
New for CoreMIDI 1.3.
kMIDIPropertySupportsMMC |
extern const CFStringRef kMIDIPropertySupportsMMC;
device/entity property, integer (0/1). Indicates whether the device or entity implements
the MIDI Machine Control portion of the MIDI specification.
New for CoreMIDI 1.3.
kMIDIPropertyCanRoute |
extern const CFStringRef kMIDIPropertyCanRoute; // e.g. is patch bay
device/entity property, integer (0/1). Indicates whether the device or entity can route
MIDI messages to or from other external MIDI devices (as with MIDI patch bays). This
should NOT be set on devices which are controlled by drivers.
New for CoreMIDI 1.3.
kMIDIPropertyReceivesClock |
extern const CFStringRef kMIDIPropertyReceivesClock;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI beat clock messages.
New for CoreMIDI 1.3.
kMIDIPropertyReceivesMTC |
extern const CFStringRef kMIDIPropertyReceivesMTC;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI Time Code messages.
New for CoreMIDI 1.3.
kMIDIPropertyReceivesNotes |
extern const CFStringRef kMIDIPropertyReceivesNotes;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI Note On messages.
New for CoreMIDI 1.3.
kMIDIPropertyReceivesProgramChanges |
extern const CFStringRef kMIDIPropertyReceivesProgramChanges;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI program change messages.
New for CoreMIDI 1.3.
kMIDIPropertyReceivesBankSelectMSB |
extern const CFStringRef kMIDIPropertyReceivesBankSelectMSB;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI bank select MSB messages (control 0).
New for CoreMIDI 1.3.
kMIDIPropertyReceivesBankSelectLSB |
extern const CFStringRef kMIDIPropertyReceivesBankSelectLSB;
device/entity property, integer (0/1). Indicates whether the device or entity responds
to MIDI bank select LSB messages (control 32).
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsClock |
extern const CFStringRef kMIDIPropertyTransmitsClock;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI beat clock messages.
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsMTC |
extern const CFStringRef kMIDIPropertyTransmitsMTC;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI Time Code messages.
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsNotes |
extern const CFStringRef kMIDIPropertyTransmitsNotes;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI note messages.
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsProgramChanges |
extern const CFStringRef kMIDIPropertyTransmitsProgramChanges;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI program change messages.
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsBankSelectMSB |
extern const CFStringRef kMIDIPropertyTransmitsBankSelectMSB;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI bank select MSB messages (control 0).
New for CoreMIDI 1.3.
kMIDIPropertyTransmitsBankSelectLSB |
extern const CFStringRef kMIDIPropertyTransmitsBankSelectLSB;
device/entity property, integer (0/1). Indicates whether the device or entity transmits
MIDI bank select LSB messages (control 32).
New for CoreMIDI 1.3.
kMIDIPropertyPanDisruptsStereo |
extern const CFStringRef kMIDIPropertyPanDisruptsStereo;
device/entity property, integer (0/1). Indicates whether the MIDI pan messages (control 10), when sent to the device or entity, cause undesirable effects when playing stereo sounds (e.g. converting the signal to mono). New for CoreMIDI 1.3.
kMIDIPropertyIsSampler |
extern const CFStringRef kMIDIPropertyIsSampler;
device/entity property, integer (0/1). Indicates whether the device or entity plays
audio samples in response to MIDI note messages.
New for CoreMIDI 1.3.
kMIDIPropertyIsDrumMachine |
extern const CFStringRef kMIDIPropertyIsDrumMachine;
device/entity property, integer (0/1). Indicates whether the device or entity's sound
presets tend to be collections of non-transposable samples (e.g. drum kits).
New for CoreMIDI 1.3.
kMIDIPropertyIsMixer |
extern const CFStringRef kMIDIPropertyIsMixer;
device/entity property, integer (0/1). Indicates whether the device or entity mixes
external audio signals, controlled by MIDI messages.
New for CoreMIDI 1.3.
kMIDIPropertyIsEffectUnit |
extern const CFStringRef kMIDIPropertyIsEffectUnit;
device/entity property, integer (0/1). Indicates whether the device or entity is
primarily a MIDI-controlled audio effect unit (i.e. does not generate sound on its own).
New for CoreMIDI 1.3.
kMIDIPropertyMaxReceiveChannels |
extern const CFStringRef kMIDIPropertyMaxReceiveChannels;
device/entity property, integer (0-16). Indicates the maximum number of MIDI channels on
which a device may simultaneously receive MIDI Channel Messages. Common values are 0
(devices which only respond to System Messages), 1 (non-multitimbral devices), and 16
(fully multitimbral devices). Other values are possible, for example devices which are
multi-timbral but have fewer than 16 "parts".
New for CoreMIDI 1.3.
kMIDIPropertyMaxTransmitChannels |
extern const CFStringRef kMIDIPropertyMaxTransmitChannels;
device/entity property, integer (0/1). Indicates the maximum number of MIDI channels on
which a device may simultaneously transmit MIDI Channel Messages. Common values are 0, 1
and 16.
New for CoreMIDI 1.3.
kMIDIPropertyDriverDeviceEditorApp |
extern const CFStringRef kMIDIPropertyDriverDeviceEditorApp;
device property, string, contains the full path to an application which knows how to
configure this driver-owned devices. Drivers may set this property on their owned
devices. Applications must not write to it.
New for CoreMIDI 1.4.
kMIDIPropertySupportsShowControl |
extern const CFStringRef kMIDIPropertySupportsShowControl;
device/entity property, integer (0/1). Indicates whether the device implements the MIDI
Show Control specification.
New for CoreMIDI 1.5.
kMIDIPropertyDisplayName |
extern const CFStringRef kMIDIPropertyDisplayName;
device/entity/endpoint property, string.
Provides the Apple-recommended user-visible name for an endpoint, by combining the
device and endpoint names.
For objects other than endpoints, the display name is the same as the name.
New for CoreMIDI 1.5.
(Last Updated February 25, 2005)