MIKMIDISystemExclusiveCommand
Objective-C
@interface MIKMIDISystemExclusiveCommand : MIKMIDISystemMessageCommand
Swift
class MIKMIDISystemExclusiveCommand : MIKMIDISystemMessageCommand
A MIDI System Exclusive (SysEx) message. System exclusive messages are messages defined by individual manufacturers of MIDI devices. They can contain arbitrary data and can be used to support commands and responses not explicitly supported by the standard portion of MIDI spec. There are also some “Universal Exclusive Mesages”, which while a type of SysEx message, are not manufacturer/device specific.
-
Convenience method for creating a SysEx identity request command. For most MIDI devices, sending this command to them will result in a response including the device’s manufacturer ID along with data to identify the specific family, model number, and version number of the device.
Declaration
Objective-C
+ (nonnull instancetype)identityRequestCommand;
Swift
class func identityRequest() -> Self
Return Value
An identity request command object.
-
Initializes the command with raw sysex data and timestamp.
Declaration
Objective-C
- (nonnull id)initWithRawData:(nonnull NSData *)data timeStamp:(MIDITimeStamp)timeStamp;
Swift
init(rawData data: Data, timeStamp: MIDITimeStamp)
Parameters
data
Assumed to be valid with begin+end delimiters.
timeStamp
Time at which the first sysex byte was received.
-
The manufacturer ID for the command. This is used by devices to determine if the message is one they support. If it is not, the message is ignored. Manufacturer IDs are assigned by the MIDI Manufacturer’s Association, and a list can be found here: http://www.midi.org/techspecs/manid.php
The default is 0x7E (kMIKMIDISysexNonRealtimeManufacturerID).
The manufacturer ID can be either 1 byte or 3 bytes.
Values 0x7E (kMIKMIDISysexNonRealtimeManufacturerID) and 0x7F (kMIKMIDISysexRealtimeManufacturerID) mean that the message is a universal (non-manufacturer specific) system exclusive message.
Declaration
Objective-C
@property (nonatomic, readonly) UInt32 manufacturerID;
Swift
var manufacturerID: UInt32 { get }
-
The channel of the message. Only valid for universal exclusive messages, will always be 0 for non-universal messages.
Declaration
Objective-C
@property (nonatomic, readonly) UInt8 sysexChannel;
Swift
var sysexChannel: UInt8 { get }
-
The system exclusive data for the message.
For universal messages subID’s are included in sysexData, for non-universal messages, any device specific information (such as modelID, versionID or whatever manufactures decide to include) will be included in sysexData.
Declaration
Objective-C
@property (nonatomic, strong, readonly) NSData *_Nonnull sysexData;
Swift
var sysexData: Data { get }
-
Whether or not the command is a universal exclusive message.
Declaration
Objective-C
@property (nonatomic, readonly, getter=isUniversal) BOOL universal;
Swift
var isUniversal: Bool { get }