%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                           ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a bcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       !!!!!!!!""""""""""""""""""###########$$$$$$$$%%%%%%%%%%%%%%%%%%%%&&&&&&&&''''''''''((((((((( ( ( ( ) ))))))**********+++ +!+"+#+$+%+&+'+(+)+*+++,+-+.+/+0+1+2,3,4,5,6,7,8,9,:,;,<,=,>-?-@-A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z-[-\-]-^-_-`-a-b-c-d-e-f-g-h-i.j.k.l.m.n.o.p.q.r.s.t.u.v.w.x.y.z/{/|/}/~///////////////////000000000000000000000000000000000000001111111111111222233333344444455555666666666666666666666777777777777888888899999999 9 9 9 9 99999999999:::::::: :!:":#:$:%:&:':(:);*;+;,;-;.;/;0;1;2;3;4;5;6;7;8;9;:<;<<<=<><?<@<A<B<C=D=E=F=G=H=I=J=K=L=M=N>O>P>Q?R?S?T?U?V?W?X?Y?Z?[?\?]?^?_?`@a@b@c@d@e@f@g@h@i@j@k@l@m@nAoApAqArAsAtAuAvAwAxAyAzB{B|B}B~BBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF F F F F FFFFGGGGGGGGGGGGGGG G!G"G#G$G%G&G'G(G)G*G+G,G-G.G/G0G1G2G3G4H5H6H7H8H9H:H;H<H=H>H?H@HAHBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`HaHbHcHdHeHfHgHhHiHjHkHlHmHnHoHpHqHrHsHtHuHvHwHxHyHzH{H|H}H~HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH H H H H HHHIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;I<I=I>I?I@IAIBICIDIEIFIGIHIIIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`IaIbIcIdIeIfIgIhIiIjIkIlImInIoIpIqIrIsItIuIvIwIxIyIzI{I|I}I~IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIITJSafe   SafeSafe SafeSafeSafe!!! SafeSafe Safe Safe            Safe   !   !   !   ! Safe"#$%&'()*+,-./01234"#$%&'()*+,-./01234#"$-./01234%&'()*+,"#$%&'()*+,-./01234KSafeQ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRLSafeSTUKLSTUSTUMSafe VWXYZ[\]^_` VWXYZ[\]^VWXYZ[\]^_`NSafeabcdefghijklmn abcdefghijkl abcdefghijklmnOSafeopqrstuvopqrstuopqrstuvPSafewxyz{|}~wxyz{|}~wxyz{|}~QSafe  RSafe  SSafe Safe-56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a-56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a-PQRONMLKSTUJIVHGFWEXYZ[\D]CB^A_@?>`56789:;<=a#56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aSafebcdefghijklmnopqrstuvwxyz{|}~                     obcdefghijklmnopqrstuvwxyz{|}~o|}~ijklghefcdwxyz{tuvmnopqrsbbcdefghijklmnopqrstuvwxyz{| }~                     Safe%%%#SafeSafe            Safe           Safe  !"#$ $#"!   !"#$Safe%*Medium type with a controller constructor.&primitive content'sequential composition(parallel composition) controller%&'()*+,-./0123456789%&'()*+,-./0123%&'()987654*+,-./0123%&'()*+,-./0123456789Safe:;<=>?@ABCDEFGHIJKL:;<=>?@ABCDEFGHIJKL<=>?;:@ABCDEFGHIJKL:;<=>?@ABCDEFGHIJKLSafeMNOP  <=>?MNOPM<=>?NOPMNOP  SafeVprimitive contentWsequential compositionXparallel compositionY controllerZ}Medium type with a label (e.g. the duration of the represented music), a controller constructor and direct support for rests.QRSTUVWXYZ[\]^_`abcdefghiQRSTUVWXYZ[\]^_`abcdeZ[\]UVWXYQRST^_i`abchgfdeQRSTUVWXYZ[\]^_`abcdefghiSafe Converts 1%4 to "qn" and so on."jklmnopqrstuvwxyz{|}~"jklmnopqrstuvwxyz{|}~"lkjmnopqrstuvwxyz{|}~"jklmnopqrstuvwxyz{|}~mSafe               V      SafeSafe !"#$%&'()*+,- !"#$%&'()*+,-!")*+ #%$&'(,- !"#$%&'()*+,-Safe(./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU(/012.3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU%./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUSafeVWXYZ[\]^_`abcdefghijklVWXYZ[\]^_`abcdefghijklVWXYZ[\]^`abcdefg_hijklVWXYZ[\]^_`abcdefghijklSafe.mnopqrstuvwxyz{|}~.mnopqrstuvwxyz{|}~.uvwxyz{|}~tnopqrsm)mnopqrstuvwxyz{|}~Safe5    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L    ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L Safe M N O P Q R S  M N O P Q R S!Safe  T U V W X89:;<=>?@ABCDEFGHIJKL89:;<=>?@ABCDEFGHIJKL  T U V W X"Safeignores the note attributes Yxyz{|}~    xyz{|}~      YSafeBin contrast to RhyMusic.fromStdMelody it has fixed instrument type Z,  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~xyz{|}~    ,~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  xyz{|}~     Z#Safe <<$Safe%Safe&Safe [ wrapped in a State monad.'Safe    (Safe             )Safe        *Safe    +Safe !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01 !"#$%&'()*+,-./01,Safe 23456789:;<= 23456789:;<= 23456789:;<=23456789:;<=-Safe+>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh+>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh+@ABC?>DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh+>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgh.Safeijklmnopqrstuvwxyijklmnopqrstuvwxylkjimnopqrstuvwxyijklmnopqrstuvwxy/Safez{|}~z{|}~|}~{zz{|}~0Safe&$&1Safe    2Safe3Safe  \ ] ^ \ ] ^4Safe _ ` a b c d e f g  _ ` a b c d e f g5Safe h i h i6None7Noneshould be moved to Utility should be moved to Utility should be moved to Utility -Convert a block of a song to a list of notes. lines of a block    8SafeBin contrast to RhyMusic.fromStdMelody it has fixed instrument typezxyz{|}~    zxyz{|}~    9Safe                    :Safe !"#$%&'( !"#$%&'( !"#$%&'(  !"#$%&'(;Safe)*+,-./0123456789)*+,-./0123456789-,+*)./0123456789)*+,-./0123456789<Safe j k:;<=>?@AB:;<=>?@AB:;<=>?@AB j k:;<=>?@AB=Safe CDEFGHIJKLM CDEFGHIJKLM CDEFGHIJKLM CDEFGHIJKLM>Safe" l m n o pNO qP r s t u v w x y z { | } ~  gtime interval between NoteOn and now, in terms of the tempo at the NoteOn SetTempo values: the one at the NoteOn and the ratio between the current tempo and the first one. 1channel and pitch of NoteOn (NoteOff must match) the track to be searched /the needed event and the remainder of the track NOPNOP l m n o pNO qP r s t u v w x y z { | } ~  ?SafeQRSTUVWXYZ[\]^_QRSTUVWXYZ[\]^_QRSTUVWXYZ[\]^_QRSTUVWXYZ[\]^_@Safe `ab cde fghijk lm`abcdefghijklm`cadbefghjiklm `ab cde fghijk lmASafe nopqrstuvwxy nopqrstuvwxy nopqrstuvwxy nopqrstuvwxyTSafe: NOP`abcdefghijklmBSafez{|}~z{|}~z{|}~z{|}~CSafeDSafe0000ESafe        FSafe2     2     2     2     GSafe# !"#$%&'()*+,-./0123# !"#$%&'()*+,-./0123#! "#$%&').(*+,-/0123 !"#$%&'()*+,-./0123HSafe456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     bcdea]^_`fXYZ[\gWVhijklUmnopqrstuwxzv}y{|~456789:;<=>?@ABCDEFGHIJKLMNOPQRST     4 56789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ISafe !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~BCDEFA=>?@G89:;<H76IJKLMNOPQ23451RSTUVXY`gjy~[ahkzW^ew{Z\]_bcdfilmnopqrstuvx|} !"#$%&'()*+,-./0  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ UVWUVXUVYUVZUV[UV\UV]UV^UV_UV`UVaUVbUVcUVdUVeUVfUVgUVhUViUVjUVkUVlUVmUVnUVoUVpUVqUVrUVsUVtUVuUVvUVwUVxUVyUVzUV{UV|UV}UV~UVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVUVU U     !"#$%&'()*+,-./0123456789:;<=>?@A:BCDEFGHIJKLMNOPQRSTUVWX:Y  A : Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r :  s t u v w x y z { | } ~                                 :                 :Y      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFG !HI:JKLMNOPQRSTU:JVWXYPQRSTU:JVW8XY?BCZ[FG\PQRSTU:]^_`aZbcdefghijklm:]ZbnopqrJVW8:Ystuv wxXYQRSUyz:{|}~:8J=A@A;! GF      !A"#$:%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`aabcdef:ghijklmnopqrsCtugfvwxyz{|}~F: : Y     !!:!%!!!!!":""""""2"%"%""""""""":%######:#####$$$$$$$Z$%%%%%%%%%%%%%%%%%%%%&&&&&&&&''''''''''(((((((((((Z()))))))**********+++++++++++++++++++++,:,Y,,,,,,,,,,---:------------------ - - - - ------------------. .!.".#.$.%.&.'.(.).*.+.,.-..././0/1/2/3/4/5/6/7/8/9/:/;/</=/>/?/@/A/B/C/D/E/F0G0H0I00J0K0L0M0N0O0P0Q0R0R0S0T0U0V0W0X0X0Y0Z0[0\0]0:0^0_0`0a0b0c0d0e0f0g0h1X1X1Y1\1]1:1i1j1k1l1m11n2o2p2q23:3Y3;3=3r3s4:4Y4t4r4u4v5:5Y5w5x5y6z6{6|6}6~666?6666666+6666667777777777778:88%888899999999999999999999999:::Y:::::::::::::::;;;;;:;;;;;;;;;;;;<:<<<<<<<<===L=M=N==b===c=>>>??????????b???c??@@@@@@@@@@@@@@AAAAAAAAAAAABBBBBBBBBBBBBBBBBBCCCCCCCC C C C C CCCCCCCCCCCCCCCDDDuDD D!D"D#D$D%D&D'D(D)D*D+D,D-D.D/D0D1D2D3D4D5D6D7D8D9D:D;D<D=D>D?D@DADBDCDDDEDFDGDHDIDJDKE:ELEMENEOEPEQERFuFSFTFUFVFWFXFYFZF[F\F]F^FF_F`FaFbFcFdFeFfFgFhFiFjFkFlFmFFnFoFpFqFrFsFtFuFvFFwFxFyFzF{F|FFFFG}G~GGGGGGGGGGGGG%GG:GGGGGGGGGGGGG GGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH H H H H HHHHHHHHHHHHHHHHHHH H!H"H#H$H%H&H'H(H)H*H+H,H-H.H/H0H1H2H3H4H5H6H7H8H9H:H;H<H=H>H?HH@HHAHBHCHDHEHFHGHHHIHuHJHKHLHMHNHOHPHQHRHSHTHUHVHWHXHYHZH[H\H]H^H_H`H HaHbHcHdHeHfHgHhHiHjHkHlIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIImInIoIpIIIIIIIIIIIIIIIIIIIIIIIIIIIqIrIsItIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII I I I I IIIIIIIIIIIIIIIIIII I!I"I#I$I%I&I'I(I)I*I+I,I-I.I/I0I1I2I3I4I5I6I7I8I9I:I;I<I=I>I?IIuI@IIAIBICIDIEIFIGIHIIIuIJIKILIMINIOIPIQIRISITIUIVIWIXIYIZI[I\I]I^I_I`I IaIbIcIdIeIfIgIhIiIjIkIlJvJwJxJyJzJwJ{J|J}J~JJ  Y  KKKK$L:LLMMMMM:MM^MMMMN^NN:NNNNNNNNNNNO:OO^OOOOOSP^PP:PPPPPPPPPPPPSPPQQQQQQQQ:QQQR^RR:RRRRRRRRRRRSSSSSSSSSSSSSSS      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ce`abcdefghijklmnopqrstuvwxyz{|}Y~     P  !!!!!"33P344444444P45S5P<<>>X>%>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@UUUUUUUUUUUUUUUUUUUUUUUUUUYU:UVUWUUUUUUUUUUUUEEEEEEEEEEEEEEEEEEE hasko_EG9ilmDG5i2IJmOh39tk3EHaskore.Music.GeneralMIDI*Haskore.Interface.CSound.OrchestraFunctionHaskore.Interface.CSound&Haskore.Interface.CSound.InstrumentMapMedium.ControlledHaskore.Basic.PitchHaskore.Basic.Scale&Haskore.Interface.AutoTrack.ScaleChart)Haskore.Interface.AutoTrack.Transposeable&Haskore.Interface.AutoTrack.InstrumentHaskore.Basic.IntervalHaskore.Basic.Dynamics"Haskore.Interface.CSound.Generator"Haskore.Interface.CSound.Orchestra!Haskore.Interface.CSound.SoundMapMedium.TemporalMediumMedium.Plain.BinaryMedium.Plain.ListMedium.Controlled.ListMedium.Plain.ContextFreeGrammar$Medium.Controlled.ContextFreeGrammarMedium.LabeledControlled.ListHaskore.Basic.Duration Haskore.MusicHaskore.Composition.TrillHaskore.Process.OptimizationHaskore.MelodyHaskore.Basic.TempoHaskore.Composition.ChordHaskore.Composition.ChordType'Haskore.Interface.AutoTrack.ChordSymbolHaskore.Melody.StandardHaskore.Music.RhythmicHaskore.Composition.DrumHaskore.Example.BesondrerTagHaskore.Example.ChildSong6Haskore.Example.DetailHaskore.Example.FlipHaskore.Example.HeilandHimmelHaskore.Example.SsfHaskore.Example.RaenzleinHaskore.Example.WhiteChristmasHaskore.Interface.CSound.NoteHaskore.Composition.RhythmHaskore.Example.FractalHaskore.Example.GuitarHaskore.PerformanceHaskore.Performance.BackEndHaskore.Interface.MML$Haskore.Interface.AutoTrack.ChartBar&Haskore.Interface.AutoTrack.ChordChart&Haskore.Interface.AutoTrack.EventChartHaskore.Process.FormatHaskore.Interface.MED.TextHaskore.Music.Standard$Haskore.Interface.MIDI.InstrumentMapHaskore.Interface.MIDI.NoteHaskore.Performance.PlayerHaskore.Performance.ContextHaskore.Performance.DefaultHaskore.Interface.MIDI.ReadHaskore.Performance.FancyHaskore.Interface.MIDI.WriteHaskore.Example.Kantate147Haskore.Interface.MIDI.RenderHaskore.Example.SelfSimHaskore.Example.Miscellaneous!Haskore.Interface.AutoTrack.StyleHaskore.Example.NewResolutionsHaskore.Interface.CSound.Score!Haskore.Interface.CSound.Tutorial'Haskore.Interface.CSound.TutorialCustomHaskore.General.LetRecHaskore.General.MapHaskore.General.TagDictionary!Haskore.General.LoopTreeTaggedGen$Haskore.General.LoopTreeRecursiveGenHaskore.General.LoopTreeTagged!Haskore.General.LoopTreeRecursiveHaskore.General.GraphTaggedGen!Haskore.General.GraphRecursiveGenHaskore.General.UtilityHaskore.Interface.MIDImidi_HVdH7lRHHz5Bck7fTVqHu5Sound.MIDI.GeneralGunshotApplause Helicopter TelephoneRing BirdTweetSeashore BreathNoiseGuitarFretNoise ReverseCymbal SynthDrum MelodicTom TaikoDrum Woodblock SteelDrumsAgogo TinkleBellShanaiFiddleBagpipeKalimbaKotoShamisenBanjoSitarFX8SciFi FX7Echoes FX6Goblins FX5Brightness FX4Atmosphere FX3Crystal FX2SoundtrackFX1Rain Pad8SweepPad7Halo Pad6Metallic Pad5Bowed Pad4Choir Pad3PolysynthPad2Warm Pad1NewAge Lead8BassLead Lead7Fifths Lead6Voice Lead5Charang Lead4Chiff Lead3Calliope Lead2Sawtooth Lead1SquareOcarinaWhistle Skakuhachi BlownBottlePanFluteRecorderFlutePiccoloClarinetBassoon EnglishHornOboe BaritoneSaxTenorSaxAltoSax SopranoSax SynthBrass2 SynthBrass1 BrassSection FrenchHorn MutedTrumpetTubaTromboneTrumpet OrchestraHit SynthVoice VoiceOohs ChoirAahs SynthStrings2 SynthStrings1StringEnsemble2StringEnsemble1TimpaniOrchestralHarpPizzicatoStringsTremoloStrings ContrabassCelloViolaViolin SynthBass2 SynthBass1 SlapBass2 SlapBass1 FretlessBassElectricBassPickElectricBassFinger AcousticBassGuitarHarmonicsDistortionGuitarOverdrivenGuitarElectricGuitarMutedElectricGuitarCleanElectricGuitarJazzAcousticGuitarSteelAcousticGuitarNylonTangoAccordian Harmonica Accordion ReedOrgan ChurchOrgan RockOrganPercussiveOrgan DrawbarOrganDulcimer TubularBells XylophoneMarimba VibraphoneMusicBox GlockenspielCelestaClavinet HarpsichordElectricPiano2ElectricPiano1 HonkyTonkElectricGrandPianoBrightAcousticPianoAcousticGrandPiano Instrument OpenTriangle MuteTriangle OpenCuica MuteCuica LowWoodBlock HiWoodBlockClaves LongGuiro ShortGuiro LongWhistle ShortWhistleMaracasCabasaLowAgogo HighAgogo LowTimbale HighTimbaleLowConga OpenHiConga MuteHiCongaLowBongoHiBongo RideCymbal2 Vibraslap CrashCymbal2Cowbell SplashCymbal TambourineRideBell ChineseCymbal RideCymbal1HighTom CrashCymbal1HiMidTom LowMidTom OpenHiHatLowTom PedalHiHat HighFloorTom ClosedHiHat LowFloorTom ElectricSnareHandClap AcousticSnare SideStick BassDrum1AcousticBassDrumDrum Sound.MIDI.Message.Channel.Voice toProgramSound.MIDI.Parser.Status toChannel elemSorted allowedArgs argCountTableTimePFieldVelocityName instrument instrumentsinstrumentToNumbershowInstrumentNumberToSound SoundTabletableFromInstruments addToTablelookupCcontrol switchBinary switchListfoldListfoldBinRelativeAbsoluteOctaveClassCfCsDfDDsEfEEsFfFFsGfGGsAfAAsBfBBsTtoIntfromInt classToInt classParse classFormat intToFreq transpose fromOffsets fromIntervalscontinue ionianRel dorianRel phrygianRel lydianRel mixolydianRel aeolianRel lokrianRel alteredRelhtwtRelwthtRelioniandorianphrygianlydian mixolydianaeolianlokrianalteredhtwtwthtConsbass bottomRangetopRangeunison minorSecond majorSecond minorThird majorThirdfourthfifth minorSixth majorSixth minorSeventh majorSeventhoctaveoctaveMinorSecondoctaveMajorSecondoctaveMinorThirdoctaveMajorThird octaveFourth octaveFifthoctaveMinorSixthoctaveMajorSixthoctaveMinorSeventhoctaveMajorSeventhnormal mezzoPianopiano pianissimopianoPianissimo mezzoForteforte fortissimoforteFortissimompppppppmfffffffRandDistUniformLinear TriangularExponBiExponGaussianCauchy PosCauchyMult LowestHarmNHarmsDCOffset PhaseOffsetPNum PStrengthPointEndPt SegLengthStartPt CoefficientsInterval ParameterNumberChanNumSkipTimeSFNameRoutine SoundFile soundFile tableValues polynomial exponential1 exponential2cubiclineSeg1lineSeg2 cubicSpline compSine1 compSine2 compSine3 cosineHarms randomTabletoStatementWordsOrcQuadStereoMonoOutput getChannelsgetNamegetChannelCountPluckDecayMethodPluckSimpleSmoothPluckStretchSmoothPluckSimpleDrumPluckStretchDrumPluckWeightedSmoothPluckFilterSmooth IndexModeRawIndex NormalIndexEvalRateNRCRARifthenSigExp DelayLine GlobalSigGlobalBoolean InstrBlockinstrBlockInstrinstrBlockReverbinstrBlockOutputinstrBlockGlobalsCtrlRateAudRateHeader tableNumber readGlobalnoteDurnotePitnoteVelpFieldp1p2p3p4p5p6p7p8p9<*<=*>*>=*==*/=*&&*||*sigGen constFloatconstInt constEnumpchToHzdbToAmplineexponlineSegexponSegenvphasor tblLookup tblLookupIoscoscIfmOscfmOscIsampOscrandomrandomHrandomIgenBuzzbuzzpluckdelayvdelaycombalpassreverbdelTapdelTapIrecgetMultipleOutputssaveIAsavetoString channelCountmkSignaladdInstrmkOrctestorc1test1DrumAssociation DrumSigExpDrumTableWithAttributes DrumTableInstrumentAssociationInstrumentSigExpInstrumentTableWithAttributesInstrumentTable AttributeList AttributeDrumId InstrumentIdSoundIdattributeControllookupInstrumentinstrumentTableToInstrBlocksaddInstrumentControlsinstrumentAssociation instrumentEq instrument1 instrument2 instrument3 instrument4 lookupDrumdrumTableToInstrBlocksaddDrumControlsdrumAssociationdrumdrumEqdrum1drum2drum3drum4Control controlDuranticontrolDurdurnoneDur Constructprim+:+=:=serialparallelserial1 parallel1mapList mapListFlatlistMediumFromAnybinaryMediumFromAny Primitive:+::=: errorNoneserialS parallelS$fCT$fTraversableT $fFoldableT $fFunctorT$fCT0 $fConstructTSerialParallel serialToListparallelToList fromMedium toMediumList mapControl TagMediumTagPrimCall CallMultitoMediumexpandwhileMcondensejoinTag replaceInfixisCyclic smallestCyclemaximumCommonInfixmaximumCommonInfixMulti commonPrefixcommonPrefixRecLabel emptyLabelfoldLabelSerialfoldLabelParallel Structurelabel structure serialLabel parallelLabelfromControlledMediumListmapLabelOffsetRatio%+ fromRatiotoRatiotoNumberscaleadddivide divisiblegcddotted doubleDottedbnwnhnqnensntnsfndwndhndqndendsndtnddhnddqnddennameDictionary propToStringNoteHead DiamondHead SquareHeadXHead TriangleHead TremoloHead SlashHead ArtHarmonicNoHeadOrnamentTrillMordent InvMordent DoubleMordentTurn TrilledTurn ShortTrillArpeggio ArpeggioUp ArpeggioDown InstructionHead ArticulationStaccatoLegatoSlurredTenutoMarcatoPedalFermata FermataDownBreathDownBowUpBowHarmonic PizzicatoLeftPizz BartokPizzSwellWedgeThumbStoppedTempo Ritardando AccelerandoDynamicLoudnessAccent Crescendo DiminuendoPhraseAttributeDynTmpArtOrn PlayerNameDurRatio TransposePlayerPhraseAtomatom mkControl changeTempo setPlayerphraserestbnrwnrhnrqnrenrsnrtnrsfnrdwnrdhnrdqnrdenrdsnrdtnrddhnrddqnrddenrchordrepeat replicatereversetaketakeLinetake' takeLine'/=:dropdropLinedrop' dropLine'filter partitionpartitionMaybeapplyPrimitivemapNote mapDurNotedynamictempo articulationornamentaccent crescendo diminuendo loudness1 ritardando accelerandostaccatolegato defltLegato defltStaccato defltAccent bigAccent$fControlControl $fCPrimitivetrilltrill'trillNtrillN'rollrollNall isZeroRest compositionduration mergeControl'mergeControlCompact mergeControlcumulateControllersflattenControllers removeNeutralvolumesingletonMedium singletonNote noteAttrs_ notePitch_ noteAttrs notePitchtoMelodyNullAttrnotenote'cfccsdfddsefeesfsgfggsafaasbfbbscMajcMajArpcMajChd noteToPitch invertNoteretroinvert retroInvert invertRetrometro largoRangelarghettoRange adagioRange andanteRange moderatoRange allegroRange prestoRangeprestissimoRangeaveragelargo larghettoadagioandantemoderatoallegropresto prestissimopr1pr2mkLnpr12=/=BoundaryGenericgenericPitchClassgenericIntervals genericDur genericAttr InversionpitchToIntervalintervalToPitch pitchInvertintervalInvert samePitch sameIntervalmajorIntminorIntmajorSeventhIntminorSeventhIntdominantSeventhIntminorMajorSeventhIntsustainedFourthIntmajorminordominantSeventhminorMajorSeventhsustainedFourthgenericleastVaryingInversionsinversionIncrementmatchingInversionmean chordCenterboundaryCentergenericToNotes shortestWays processZonepropShortestWaysleastVaryingInversionsSWinversionCenters melodicGen harmonicGentoChord fromStringparseroot chordTypeNoteAttributesna velocity1vibratotremolofromMelodyNullAttrNoteBodyTonepitchvelocitybodymaybeInstrument noteFromAttrsnoteFromStdMelodyNotenoteFromMelodyNote fromStdMelody fromMelodyInstrElementRNRollRollntoMusictoMusicDefaultAttr funkGroove lineToMusicelementToMusicnoAttrbar0bass0bar1bass1melodysongfdvelvlmapb1b2b3bassLinev1v1av1bv2v2av2bv2cv2dv2ev2f mainVoicelevels randomItem randomRStatemerge dyadicPattern simpleSongdyadicLevelPatternflipSeqflipSeq2 noteArraymakeSongcoresong1core1song2core2melody0melody1melody2bass2melody3bass3 shortLegatom1m2m3m4vlinemel0verserefrains1s2stringsm3am4am3bm4bs3s4as4bbassdrumsnarehihatrhythm parameters fromRhyNotevelocityFromStd pitchFromStd velocityToDb amplitudeToDbzeroKeyToMusicWithDrumToMusicWithMusicunit fromPositionstoMusicWithMusictoMusicWithDrumtoMusicWithDrumUnittoShuffledMusicWithDrumtoShuffledMusicWithDrumUnittickR downBeatR backBeatRclaveR claveRumbaR claveBossaRclave5clave7 jazzRideRjazzWaltzRideRjazzWaltzHiHatRcountInRtickPclaveP claveRumbaP claveBossaP jazzRidePjazzWaltzRidePjazzWaltzHiHatP downBeatP backBeatPclickclave claveRumba claveBossametro5metro7 basicBassDrum basicSnare basicHiHatridecountInIFSATMatrixVectorvaddvvmultmvmultcvmultw0w1w2init0wsresultmkNote sourceToMusic DelayedNote UpDownPattern DirectionUpDownmapChordToStringchoosePitchForString stringPitches delayTime dirDelaysudpudpInterudpLastchordschordToPattern guitarEvents delayNotesstringMelodies parallelSongparallelSongMIDIchordWithLegatoPattern legatoSonglegatoSongMIDI NotateFun PhraseFunNoteFun PlayerConsnameplayNoteinterpretPhrase notatePlayerMonadPaddedWithRests UpdateContextContext contextDur contextPlayercontextTransposecontextDynamics PlayerMapEventeventDur eventDynamicseventTranspose eventNotePadded updatePlayer updateDurupdateTransposeupdateDynamics fromMusicpaddedFromMusicsequenceReadercombinemonadFromMusic $fShowPlayer $fOrdEventmapTime mapTimePaddedeventFromPerformanceEventfromPerformancefromPaddedPerformance$fFunctorEventAccum barToMusic toMusicStatelengthreadChordSymbolbarsconcathasChordeventsfromChordChart fromChartBarprettyGrammarMediumprettyGrammarMelody prettyGrammarbind tagMediumlistlistFunc dummySrcLoc prettyMelody prettyExp primMelody controlGen durSyntaxshowDurenclosesieve sliceHoriz sliceVert splitBlocks cellToNote parseDigit parseNote parseCell columnToNotes linesToNotescolumnToSimpleSerialFromChannelProgramPitchFromChannelProgram FromChannelToChannelProgramPitchToChannelProgram ToChannelChannelProgramPitchTableChannelProgramTable ChannelTablerepairallValidassignChannelsfromInstruments partialMatch lookupINamereverseLookupMaybe reverseLookup defltTabledefltdefltGM defltCMap velocityOn velocityOffchannelprogramfromMIDIEvents toMIDIEvents fromGMNote toRhyNotetoGMNote velocityToStd pitchToStd EventModifierPhraseInterpreterMapchangeVelocity changeDur staccatoRel legatoRel slurredRel mapInitEvents mapEvents staccatoAbs legatoAbs slurredAbsgetDurModifiersetDur setTranspose setDynamics getPlayergetDur getTranspose getDynamicsplayermapcontextfromMusicModifyContextfloatFromMusicpaddedFromMusicModifyContext toRhyMusic toGMMusicretrieveTracksprocessPerformancefancyInterpretDynamicfancyInterpretTempofancyInterpretArticulationfancyInterpretOrnamentfancyInterpretPhrasedoublePaddedFromMusicfromRhythmicPerformancefromGMPerformancefromGMPerformanceAutofromRhythmicPerformanceMixedfromGMPerformanceMixedfromGMPerformanceMixedAutofromRhythmicMusicfromRhythmicMusicMixed fromGMMusicfromGMMusicMixedfromGMMusicAutofromGMMusicMixedAutovolumeHaskoreToMIDIvolumeMIDIToHaskore initOctavessongMML musicTracksgrammar markovChainmarkovChainMidicmtoMidimidimainfileFromRhythmicMusic generalMidigeneralMidiDeflt mixedMidimixedGeneralMidifileFromGeneralMIDIMusicfileNameplay playWin95 playWinNT playLinuxplayAlsa playTimidityplayTimidityJackplayTestgmUpmgmTestSNotePatClusterClsimaddmult simFringefringe simToHasksim1t6sim2t7sim12t8sim3t9sim4sim4sssdursst10pat1pat2pat3pat4'pat4 MidiArrange StdContextvibesflutet0cms'cms drumScalet1tempmu2t2t3repruncascadecascadest4't4run'cascade' cascades't5t10scs6ssf0drumst11t12t12at13notet13t13at13bt13ct13dt13et14t14bt14ct14dtabtadtcbtctcdtcdab playToStreamjazzbossatakeFiverock thomasCaribharmonicmarimbaxylovibglockcomp2arpeggio minArpegUp minArpegDown majArpegDown six3ArpegDownpattern melPatternbellPart vibesLine vibesPart cMajorScale gMajorScale dPentMinScaleprevNotenextNote nextNote' back2NotenextNRprevNRback2NRmakeSNdiddlepart1bridgepart2run1 part3Patternrun2run3 vibeLine3 vibePart3harmony3part3 all3InstsendElendRunendingTables Normalize TableSize CreatTimeTableVolumePchAbsPchCpsDuration StartTimeBpm Statement simpleSinesquaresawtoothtriangle whiteNoisecompSinefromPerformanceBEfromRhythmicPerformanceMap%fromRhythmicPerformanceWithAttributesnoteToStatementstatementToStringstatementToWords pchToStringPhonemeEeeIhhEhhAaaAhhAwwOhhUhhUuuOooRrrLllMmmNnnNngNggFffSssThhShhXxxHeeHooHahBbbDddJjjGggVvvZzzThzZhh TutOrchestra QuadruplePairInstr1p0Instr2p0Instr1p2Instr1p4TutAttr attrVelocityattrParameters TutMelody pureToneTN pureToneTablepureToneoscPuretune1musicFromMelodyattrToInstr1p0attrToInstr2p0attrToInstr1p2attrToInstr1p4performanceFromMusic instrNum1 instrNum2 instrAssoc1p0 instrAssoc2p0 instrAssoc1p2 instrAssoc1p4scoredexampleoe1score1hdro1 csoundDirtut1 twoHarmsTNtwoHarmsscore2oe2o2tut2 manySinesTNmanySinesTable manySinesscore3lineCSoe3o3tut3oe4o4tut4 coolEnvTN coolEnvTablecoolEnv oscCoolEnvtune2 triangleTNsquareTN sawtoothTN triangleTsquareT sawtoothTscore4oe5o5tut5score5oe6oe7o6tut6score6oe8o7tut7oe9o8tut8oe10o9tut9oe11o10 quickChordemChordcChordgChorddChordtune3score7tut10oe12o11tut11oe13o12tut12oe14o13tut13oe15o14tut14oe16o15tut15 midHumpTNmidHumpscore8oe17o16tut16pingscore9oe18o17tut17oe19o18tut18oe20o19tut19oe21o20tut20lowPasshighPassoe22o21tut21oe23o22tut22 toOrchestra pianoEnvTN pianoEnvTable pianoWaveTNpianoWaveTablepianoEnv pianoWave pianoScorepianoOEpianoOrc reedyEnvTN reedyEnvTable reedyWaveTNreedyWaveTablereedyEnv reedyWave reedyScorereedyOEreedyOrcreedyreedy2OE reedy2Orcreedy2 fluteTune fluteEnvTN fluteEnvTable fluteWaveTNfluteWaveTablefluteEnv fluteWave fluteScorefluteOEfluteOrcvoice' voiceTunevoiceVibWaveTNvoiceVibWaveTable voiceWaveTNvoiceWaveTable voiceWave voiceVibWave voiceScorevoiceOEvoiceOrcvoiceOutFuncOutFunc0OutFunc2OutFunc4 instrToNumscoreFromPerformancematchInstrOutFuncscoreFromPerformanceSafe applyOutFuncCountVarExprConstAppendknot beginKnotendKnot exampleLet exampleEqus exampleResult Intervals$fCClasslowesthighestfindWithDefault lookupIndex findIndexconta_2C3ZI8RgPO2LBMidXKTvIUData.Map foldWithKeyfold Data.Map.Basevalid showTreeWithshowTree deleteFindMax deleteFindMin splitLookupsplitfromDistinctAscListfromAscListWithKeyfromAscListWith fromAscList toAscListtoListfromListWithKey fromListWithfromListkeysSetassocskeyselemsmapKeysMonotonic mapKeysWithmapKeysmapAccumWithKeymapAccum mapWithKeypartitionWithKey filterWithKeyisProperSubmapOfByisProperSubmapOf isSubmapOfBy isSubmapOfintersectionWithKeyintersectionWith intersectiondifferenceWithKeydifferenceWith difference unionWithKey unionWithunion unionsWithunionsupdateMaxWithKeyupdateMinWithKey updateMax updateMin deleteMax deleteMinfindMaxfindMindeleteAtupdateAtelemAtupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustdeleteinsertLookupWithKey insertWithKey insertWithinsertemptymembersizenull\\!CollShow collShowsPrecCollEq collEqualBranchLoopunwind$fShowT$fEqTFixRecurserecoursetoTaggedtoTaggedUnique toTaggedState fromTaggedexample0mapEexample1exampleLeapFrogTree Reference $fShowTree$fEqTreeSharesharesplitByfoldrfflattenTuples2flattenTuples3flattenTuples4 zipWithMatch zipWithMatch3maximum0 translaterandListmodulus divideModulusgcdDurOrcStateLoopDefs StatementDefs StatementDefTapDefDelayDef DelayWriteDefMultiDefIndexDefLineFunctionRates BooleanFixedDelayLineFixedSigFixedTreeTerm constTerm prefixTerm infixTermcomparisonTermSigTerm ConstFloatConstInt TableNumberStrReadTapResult ConditionalInfixPrefixSigGenIndex DelayLineTerm BooleanTermOperator ComparisonOutCountFunctionReverboperatorrunFix simpleFix addEqTreeaddEqgetRate getRateTermgetFixedExpressionsmkList mkListTerm mkListAllmkListDL mkListBool mkListOut getLineRates procDelay setUpDelaysprocTapsextractFunctionsgiveNameheaderToStringinstrBlockToStringshowInstrument writeLoopsgetLoops globalRate globalWrite globalRead resetGlobalsnumGlobalInstrs getGlobals getGlobalwriteGlobalHeaderwriteOutGlobalswriteOutwriteExp ifAllowedArgs writeArgsshowExp lookupDefshowBool mkSignalPlain addInstrPlainrunOrc $fOutputQuad$fOutputStereo $fOutputMono$fTraversableSigTerm$fFoldableSigTerm$fTraversableDelayLineTerm$fFoldableDelayLineTerm$fTraversableBooleanTerm$fFoldableBooleanTerm $fFloatingT $fFractionalT$fNumT$fTreeTermSigTerm$fCollEqSigTerm$fCollShowSigTerm$fFunctorSigTerm$fFunctorDelayLineTerm$fFunctorBooleanTerm $fEqGlobalSig$fShowGlobalSigFifthFifthAugmentedThirdFifthDiminishedFifthFifthAugmentedFifthFifthMajorSeventhFifthMinorNinethFifthMajorNinethFifthAugmentedEleventhFourth FourthNone FourthSecond FourthSixthFourthSixthNineth FourthSeventhFourthMajorSeventh FourthNinethFourthMajorNinethFourthEleventhFourthThirteenthThird ThirdMajorThirdAugmentedFifthThirdDiminishedFifth ThirdMinorThirdMinorAugmentedFifthThirdMinorDiminishedFifthThirdDiminishedThirdSustained2ThirdSustained4ThirdDiminishedAugmented thirdToStepsabsPrelP fourthToSteps updateNodeincPitch fifthToStepsintervalToArray thirdsArray fourthsArray fifthsArray readPmany parseIntervalparseIntervalAlternativesthirdsfourthsfifthsbassnote parsePitch readSPitch continueReadS$fReadT velocity_vibrato_tremolo_$fShowNoteAttributes $fOrdNoterando_9Kgekc9yEaLHLNUuw6paWL System.RandomrandomRreadSigread filterCommentread1 hasChord1barUnit hasChordBarbarGCD GetContext SetContext RichEvent RichTrackChannelProgramMap readFullTrack prepareTrackformatmakeCPMgetPCmoveTempoToHead getHeadTempo extractTempo segmentBefore isSetTemposegmentBeforeSetTempo readTrack fromTicksquartertrackTimeToStdlookupChannelProg progChange isProgChangeapplyProgChanges richNoteToBE isRichNote richTrackToBE mergeNotes searchNoteOff addInterval NotePerfToBEPerf getInstrumentfromRhythmicPerformanceBase fromRhythmicPerformanceMixedBasefromRhythmicMusicBasedivision trackFromPfBEsetTempo getChanProgupdateChannelMap progChangesrateaddEventSound.MIDI.File.SavetoCompressedByteString toByteString toByteListtoFiletoSeekableFileSound.MIDI.File.LoadshowFilemaybeFromByteStringmaybeFromByteList fromByteListfromFileSound.MIDI.FileprogChangeBeforeSetTempo sortEvents resampleTime showEventshowTime showLinesticksPerQuarterNotesecondsFromTicks mergeTracks getTracksimplicitNoteOffexplicitNoteOffmapTrackMixedTypeSMPTETicksDivisionTrackSound.MIDI.File.Event.Meta fromTempotoTempofromElapsedTime toElapsedTime ElapsedTimeTMelody filterMusicfmremLenmusicDurjazzFillendFillbassFromMelody bassChoosebassNoteevFromCC chartBass splitToDur quarterBass eighthBass bossaBass bossaBassCjazzDrum takeFiveBass