 
 public struct MIDIProgramChangeEvent {
     var time: MusicTimeStamp
-    var number: UInt8
+    var channel: MIDIChannel
+    var number: MIDIByte
 }

                if event.type == kMusicEventType_MIDIChannelMessage {
                    let data = UnsafePointer<MIDIChannelMessage>(event.data?.assumingMemoryBound(to: MIDIChannelMessage.self))
                    guard let data1 = data?.pointee.data1,
                        let statusData = data?.pointee.status else {
                            break
                    }
                    let status = statusData >> 4
                    if Int(status) == AKMIDIStatus.programChange.rawValue {
                        let pgmEvent = MIDIProgramChangeEvent(time: event.time, number: data1)
                        pgmEvents.append(pgmEvent)
                    }
                }
            }

                        AKLog("Problem with raw midi channel message")
                        return
                }
                if let status = statusData.status,
                    let channel = statusData.channel {
                    switch status {
                    case .programChange:
                        print("MIDI Program Change @ \(event.time) - program: \(data1) - channel: \(channel)")
                    default:
                        print("MIDI Channel Message @ \(event.time) - data1: \(data1) - data2: \(data2) - status: \(status)")
                    }
                }
            default:
                print("MIDI Event @ \(event.time)")
