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 }