moduleSound.MIDI.Message.Class.ConstructwhereimportqualifiedSound.MIDI.Message.Class.UtilityasCUimportSound.MIDI.Message.Channel(Channel,)importSound.MIDI.Message.Channel.Voice(Pitch,Velocity,Program,Controller,)importqualifiedSound.MIDI.MessageasMidiMsgimportqualifiedSound.MIDI.Message.ChannelasChannelMsgimportqualifiedSound.MIDI.Message.Channel.VoiceasVoiceMsgimportqualifiedSound.MIDI.Message.Channel.ModeasModeclassCeventwhere{- |
Warning: This constructs a note events as is,
that is, a @NoteOff p 64@ is encoded as such
and will not be converted to @NoteOn p 0@.
If you want such a conversion, you may use 'noteImplicitOff'.
-}note::Channel->(Velocity,Pitch,Bool)->eventprogram::Channel->Program->eventanyController::Channel->(Controller,Int)->eventpitchBend::Channel->Int->eventchannelPressure::Channel->Int->eventmode::Channel->Mode.T->eventliftChannel::(a->ChannelMsg.Body)->(Channel->a->ChannelMsg.T)liftChannelmakeMsgchannelparam=ChannelMsg.Conschannel$makeMsgparaminstanceCChannelMsg.Twherenote=liftChannel$\(velocity,pitch,on)->ChannelMsg.Voice$(ifonthenVoiceMsg.NoteOnelseVoiceMsg.NoteOff)pitchvelocityprogram=liftChannel$\pgm->ChannelMsg.Voice$VoiceMsg.ProgramChangepgmanyController=liftChannel$\(ctrl,val)->ChannelMsg.Voice$VoiceMsg.ControlctrlvalpitchBend=liftChannel$\bend->ChannelMsg.Voice$VoiceMsg.PitchBendbendchannelPressure=liftChannel$\pressure->ChannelMsg.Voice$VoiceMsg.MonoAftertouchpressuremode=liftChannel$\m->ChannelMsg.Modem{- |
Like 'note', but converts @NoteOn p 0@ to @NoteOff p 64@.
See 'VoiceMsg.explicitNoteOff'.
-}noteExplicitOff::(Cevent)=>Channel->(Velocity,Pitch,Bool)->eventnoteExplicitOffchannel=notechannel.CU.explicitNoteOff{- |
Like 'note', but converts @NoteOff p 64@ to @NoteOn p 0@.
See 'VoiceMsg.implicitNoteOff'.
-}noteImplicitOff::(Cevent)=>Channel->(Velocity,Pitch,Bool)->eventnoteImplicitOffchannel=notechannel.CU.implicitNoteOffliftMidi::(Channel->a->ChannelMsg.T)->(Channel->a->MidiMsg.T)liftMidimakeMsgchannelmsg=MidiMsg.Channel$makeMsgchannelmsginstanceCMidiMsg.Twherenote=liftMidinoteprogram=liftMidiprogramanyController=liftMidianyControllerpitchBend=liftMidipitchBendchannelPressure=liftMidichannelPressuremode=liftMidimode