pub fn channel(&self) -> Option<u8> {
        match self.status() {
            Status::NoteOff |
            Status::NoteOn |
            Status::PolyphonicAftertouch |
            Status::ControlChange |
            Status::ProgramChange |
            Status::ChannelAftertouch |
            Status::PitchBend => Some(self.data[0] & CHANNEL_MASK),
            Status::SysExStart |
            Status::MIDITimeCodeQtrFrame |
            Status::SongPositionPointer |
            Status::SongSelect |
            Status::TuneRequest |
            Status::SysExEnd |
            Status::TimingClock |
            Status::Start |
            Status::Continue |
            Status::Stop |
            Status::ActiveSensing |
            Status::SystemReset => None
        }
    }
/// Return the channel this message is on (TODO: return 0 for messages with no channel)
Return the channel this message is on (TODO: return 0 for messages with no channel)
Return the channel this message is on ( TODO : return 0 for messages with no channel )
pub fn channel(&self) -> Option<u8> {
        match self.status() {
            Status::NoteOff |
            Status::NoteOn |
            Status::PolyphonicAftertouch |
            Status::ControlChange |
            Status::ProgramChange |
            Status::ChannelAftertouch |
            Status::PitchBend => Some(self.data[0] & CHANNEL_MASK),
            Status::SysExStart |
            Status::MIDITimeCodeQtrFrame |
            Status::SongPositionPointer |
            Status::SongSelect |
            Status::TuneRequest |
            Status::SysExEnd |
            Status::TimingClock |
            Status::Start |
            Status::Continue |
            Status::Stop |
            Status::ActiveSensing |
            Status::SystemReset => None
        }
    }
pub fn channel ( & self ) -> Option < u8 > { match self . status ( ) { Status :: NoteOff | Status :: NoteOn | Status :: PolyphonicAftertouch | Status :: ControlChange | Status :: ProgramChange | Status :: ChannelAftertouch | Status :: PitchBend => Some ( self . data [ 0 ] & CHANNEL_MASK ) , Status :: SysExStart | Status :: MIDITimeCodeQtrFrame | Status :: SongPositionPointer | Status :: SongSelect | Status :: TuneRequest | Status :: SysExEnd | Status :: TimingClock | Status :: Start | Status :: Continue | Status :: Stop | Status :: ActiveSensing | Status :: SystemReset => None } }
Return the channel this message is on (TODO: return 0 for messages with no channel)
Return the channel this message is on ( TODO : return 0 for messages with no channel )
&self
&self