n`{      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     Safe5 5Data type encapsulating vendor ID numbers as used in ). They have one of two possible formats: A one byte ID (represented by )'A three byte ID, which must begin with 0x00. ()System exclusive messages. System Exclusive messages may be used to send data such as patch parameters or sample data between MIDI devices. Manufacturers of MIDI equipment may define their own formats for System Exclusive data. Manufacturers are granted unique identification (ID) numbers by the MMA or the JMSC, and the manufacturer ID number is included as part of the System Exclusive message. See .The representation used here is deliberately generic. Special sets of system exclusive messages can be implemented on top of this type.(System real time messages. The MIDI System Real Time messages are used to synchronize all of the MIDI clock-based equipment within a system, such as sequencers and drum machines. Most of the System Real Time messages are normally ignored by keyboard instruments and synthesizers. To help ensure accurate timing, System Real Time messages are given priority over other messages, and these single-byte messages may occur anywhere in the data stream (a Real Time message may appear between the status byte and data byte of some other MIDI message).!hA type for system common messages. System common messages are intended for all receivers in the system.'*A type for channel mode messages. Mode messages determine how an instrument will receive all subsequent voice messages. This includes whether the receiver will play notes monophonically or polyphonically and whether it will respond only to data sent on one specific voice channel or all of them.0Type holding channel voice messages. Channel Voice messages transmit real-time performance data over a single channel. Examples include "note-on" messages which contain a MIDI note number that specifies the note's pitch, a velocity value that indicates how forcefully the note was played, and the channel number; "note-off" messages that end a note; program change messages that change a device's patch; and control changes that allow adjustment of an instrument's parameters.8YA data type representing midi messages. Messages can be categorized into 5 subcategories Channel Voice Messages,. Start, stop, or alter sounds being played.Channel Mode Messages5. Control messages affecting the entire channel.System Real-Time Messages=. Used by sequencers to regulate and synchronize timing.System Common Messages7. Used for song selection, position pointers, etc.System Exclusive Messages@. Used for device-specific extensions to the MIDI protocol.B|The middle C on a piano as defined by the MIDI specification. This can serve as a reference value for working with pitches.I Convert a , used to indicate song position, to the MIDI clock. Song Position Pointer is always multiplied by 6 times the MIDI clocks (F8H). Thus the smallest Song Position change is 6 MIDI clocks, or 1/16 note.J  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJ89:;<=01234567'()*+,-./!"#$%& @ABF C DEHI?>G    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHISafe[Build a 14 bit word as it is used in the MIDI specifications, i.e. it is built as two 8 bit words with the 7th bit not set respectively.Safe[Parse a ", no check for bit 7 is performed!Parse a ", no check for bit 7 is performed!Parse a  ", no check for bit 7 is performed!Parse a  ", no check for bit 7 is performed!Parse a ", no check for bit 7 is performed!Safeb  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for  Synonym for Z   Z   Z   Z   Safe Encode some collection of 8 s to a lazy  Strict version of  "Encode a single message to a lazy Strict version of #Decode raw MIDI data from a strict  ByteString. Any incomplete data at the beginning will be skipped! This function assumes a normalized MIDI stream, i.e. one in which events are not! interrupted by real-time events!0Decode one event from raw MIDI data in a strict  ByteString8. Any incomplete data at the beginning will be skipped!Partition an event stream into real-time events and other messages. The first parameter returned will be the real-time events, the second element will be the rest of the stream. Note that this effectively normalizes the second element.   S  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHI                !"#$%&'()*+,-./01234567/& 89:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~*midi-simple-0.1.0.0-5Zfda56lQOL3iUqD7uGYdJSound.MIDI.TypesSound.MIDI.SerializeSound.MIDI.ParserSound.MIDI.Controllers Sound.MIDIPositionPointergetPositionPointerPatchgetPatch Controller getControllerTouchgetTouchVelocity getVelocityPitchgetPitchChannel getChannelVendorId VendorIdShort VendorIdLongSystemExclusive ExclusiveSystemRealTime TimingClockStartContinueStop ActiveSensing SystemReset SystemCommon MTCQuarter SongPosition SongSelect TuneRequestEOX ChannelMode AllSoundOffResetAllControllers LocalControl AllNotesOffOmniOffOmniOnMonoOnPolyOn ChannelVoiceNoteOffNoteOn Aftertouch ControlChange PatchChangeChannelPressure PitchBend MidiMessageto7Bitto4Bit mkChannelmkPitchmiddleC mkVelocitymkTouch mkControllermkPatchto14BitmkPositionPointertoClocks$fEqSystemRealTime$fShowSystemRealTime$fOrdSystemRealTime$fReadSystemRealTime$fGenericSystemRealTime $fEqVendorId$fShowVendorId $fOrdVendorId$fReadVendorId$fGenericVendorId$fEqSystemExclusive$fShowSystemExclusive$fOrdSystemExclusive$fReadSystemExclusive$fGenericSystemExclusive $fEqChannel $fShowChannel $fOrdChannel $fReadChannel$fEqChannelMode$fShowChannelMode$fOrdChannelMode$fReadChannelMode$fGenericChannelMode $fEqPitch $fShowPitch $fOrdPitch $fReadPitch $fEqVelocity$fShowVelocity $fOrdVelocity$fReadVelocity $fEqTouch $fShowTouch $fOrdTouch $fReadTouch$fEqController$fShowController$fOrdController$fReadController $fEqPatch $fShowPatch $fOrdPatch $fReadPatch$fEqChannelVoice$fShowChannelVoice$fOrdChannelVoice$fReadChannelVoice$fGenericChannelVoice$fEqPositionPointer$fShowPositionPointer$fOrdPositionPointer$fReadPositionPointer$fEqSystemCommon$fShowSystemCommon$fOrdSystemCommon$fReadSystemCommon$fGenericSystemCommon$fEqMidiMessage$fShowMidiMessage$fOrdMidiMessage$fReadMidiMessage$fGenericMidiMessage midiMessage channelVoice channelStatusword14 channelMode systemCommonsystemRealTimesystemExclusivevendorIdpitchpatchvelocitytouch controller skipToStatuschannelMessagenoteOffnoteOn aftertouch controlChange patchChangechannelPressure pitchBend anyWord14 mtcQuarter songPosition songSelect tuneRequesteoxRegisteredParameterNumberMSBRegisteredParameterNumberLSBUnRegisteredParameterNumberMSBUnRegisteredParameterNumberLSB DataDecrement DataIncrement PhaserDepth Effects5Depth CelesteDepth Effects4Depth ChorusDepth Effects3Depth TremoloDepth Effects2DepthExternalEffectsDepth Effects1DepthPortamentoControlGeneralPurposeController8GeneralPurposeController7GeneralPurposeController6GeneralPurposeController5SoundControllers10SoundControllers9SoundControllers8SoundControllers7SoundControllers6 BrightnessSoundController5 AttackTimeSoundController4 ReleaseTimeSoundController3TimbreSoundController2SoundVariationSoundController1Hold2LegatoFootswitch SoftPedal Sostenuto Portamento DamperPedalLSB31LSB30LSB29LSB28LSB27LSB26LSB25LSB24LSB23LSB22LSB21LSB20LSB19LSB18LSB17LSB16LSB15LSB14LSB13LSB12LSB11LSB10LSB9LSB8LSB7LSB6LSB5LSB4LSB3LSB2LSB1LSB0GeneralPurposeController4GeneralPurposeController3GeneralPurposeController2GeneralPurposeController1EffectControl2EffectControl1ExpressionControllerPanBalance ChannelVolume DataEntryMSBPortamentoTimeFootControllerBreathControllerModWheel BankSelect encodeMidi encodeMidi' encodeMidi1 encodeMidi1' decodeMidi decodeMidi1partitionRealtime midiParsermidiSerializerbytestring-0.10.8.1Data.ByteString.Lazy.Internal ByteString