     var isSysex: Bool {
         return data.0 == AKMIDISystemCommand.sysex.rawValue
     }
+
+    var status: AKMIDIStatus? {
+        return AKMIDIStatus(rawValue: Int(data.0) >> 4)
+    }
+
+    var channel: UInt8 {
+        return data.0.lowbit()
+    }
+
+    var command: AKMIDISystemCommand? {
+        return AKMIDISystemCommand(rawValue: data.0)
+    }
 }
 
 /// A container for the values that define a MIDI event

                }
                
            } else {
                if let cmd = AKMIDISystemCommand(rawValue: packet.data.0) {
                    fillData(command: cmd, byte1: packet.data.1, byte2: packet.data.2)
                } else {
                    print("AKMIDISystemCommand failure due to bad data - need to investigate")

    ///
    init(packet: MIDIPacket) {
        if packet.data.0 < 0xF0 {
            if let status = packet.status {
                fillData(status: status,
                         channel: packet.channel,
                         byte1: packet.data.1,
                         byte2: packet.data.2)
            }
