]      !"#$%&'()*+,-./0123456789:;<=> ? @ 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 { | } ~        !"#$%&'()*+,-./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${$|$}$~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&''''''''' ' ' ' ' ''''''''''((((((((( (!("(#($(%(&('((()(*(+(,(-(.(/(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/w0x0y0z0{0|0}0~0111111111111111122222222222222222233333333333344444455555555555666666666666666666666666666666666666666666677777777888888888888888888889999 9 9 9 9 ::::::::::;;;;;;;;; ;!;";#;$;%;&;';(;);*;+;,;-;.</<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@gAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~BBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDEEEEEEEEEEEEEEEEEFFFFFFFFFGGGGGGGGGGGHHHIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJ J J J J JJJJJJJJJJJJKKKKKKK K!K"K#K$K%K&K'K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKKLKMKNKOKPKQKRKSKTKUKVKWKXKYKZK[K\K]K^K_K`KaKbKcKdKeKfKgKhKiKjKkKlKmKnKoKpKqKrKsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLL L L L L LLLLLLLLLLLLLLLLLLL L!L"L#L$L%L&L'L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=L>L?L@LALBLCLDLELFLGLHLILJLKLLLMLNLOLPLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmLnLoLpLqLrLsLtLuLvLwLxLyLzL{L|L}L~LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4Q5Q6Q7Q8Q9Q:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFQGQHQIQJQKQLQMQNQORPRQRRRSRTRURVRWRXRYRZR[R\R]R^R_R`RaRbRcRdReRfRgRhRiRjRkRlRmRnRoRpRqRrRsRtRuRvRwRxRyRzR{R|R}R~RSSSSSSSSTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUW        !"#$! "$#!  !"#$ %&'()*+,-. )*+,-.('&% %&'()**+,-./0123012/3/0123456789456879456789Q:;<=:;<=:;<= >?@>?@>?@ ,ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl,ABCMNOPQRSDEFGIJHLKTUVWXYZ[\]de^bc`a_fghijkl,ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl -mnopqrstuvwxyz{|}~-~}|{zyxwvmutsrqpon-mutsrqponnopqrstuvwxyz{|}~  +Medium type with a controller constructor.  controller parallel composition sequential composition primitive content  controller parallel composition sequential composition primitive content Medium type with a label .(e.g. the duration of the represented music), a controller constructor and direct support for rests.                      o() !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{o78./0123654)*-+,$'&%)(P9:ptrsuq;<=?@ABCDEFG>HIJKLMNO(RQSTUVWXYZ[!#"\]^_`abcdefgh ijklmnovwxzy{m  !#""#$'&%%&'()*+,,-./0123/01234567889:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{%|}~%~|}%|}}~?Hugs makes trouble here because it performs UTF-8 conversions. E.g. [255] is output as [195,191] UIt would be easy to replace these routines by FastPackedString(fps).ByteString.Lazy, 2however this introduces a new package dependency. !!! !               " !"#$% !"#$% !"#$%#F Converts 1%4 to "qn" and so on. "&'()*+,-./0123456789:;<=>?@ABCDEFG"('&)*+,-./013256789:;4=>?@A<CDBEFG"&'()*+,-./0123456789:;<=>?@ABCDEFG$HIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ъz~}|{uyxwvrts^qponmlkjihgfedcba`_Q]\[ZYXWVUTSRHPONMLKJIHPONMLKJIIJKLMNOPQ ]\[ZYXWVUTSRRSTUVWXYZ[\]^qponmlkjihgfedcba`__`abcdefghijklmnopqrtsstuyxwvvwxyz~}|{{|}~%&((('               (. !"#$%&'()*+,-./0123456789:;<=>?@ABCD. !#"%$'()*+,&-/01234.56789:;<=>?@ABDC. !"#$%&'()*+,-./0123456789:;<=>?@ABCD)EFGHIEFIHGEFGHI*JKLMNOPJKLMOPNJKLMKLMNOP+QRSTUVQRSTVUQRSTRSTUV,WXYZ[\WXY\Z[WXYXYZ[\-]^_`a]^_`a]^_^_`a.bcdefghijklmnopqredcbfghikljmnopqrbcdefghijklmnopqr/stuvstuvstuv0wxyz{|}~yxw~z{|}wxyz{|}~12ignores the note attributes 456789:;<=>?@ABCDHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~456789:;<=>?@ABCDz~}|{uyxwvrts^qponmlkjihgfedcba`_Q]\[ZYXWVUTSRHPONMLKJI3   4Cin contrast to RhyMusic.fromStdMelody it has fixed instrument type ,      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~456789:;<=>?@ABCDHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~y456789:;<=>?@ABCDz~}|{uyxwvrts^qponmlkjihgfedcba`_Q]\[ZYXWVUTSRHPONMLKJI5<wxyz{|}~z z 6+++789VW wrapped in a State monad.             :      ; !"#$%&'()*+,- "#!$%&'()*+,- !"#$%&'()*+,-< ./0123456789 .1350246/789 ./0123456789= :;<=>?@ABC :;=B<>?A@C :;<=>?@ABC>DEFGHIJDFGHEIJDEFGHIJ?KLMNOPQRSTUVWXYZ[\]^_KMLOPQRSNTUWXYZV\][^_KLMNOPQRSTUVWXYZ[\]^_@eCin contrast to RhyMusic.fromStdMelody it has fixed instrument type z456789:;<=>?@ABCDHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~`abcdefz`badcef456789:;<=>?@ABCDz~}|{uyxwvrts^qponmlkjihgfedcba`_Q]\[ZYXWVUTSRHPONMLKJI`abcdefAghijklmnopqrstuvwxyz{|}onmlkjihgpqrstuvwxyz{|}ghijklmnopqrstuvwxyz{|}B~~~C$$$D   EF G   HIJ#     #     #     K !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIJFBCDEK=A@?>L<;MNOPQ:SRTUVWXYZ\dlo]~emp_bi|[^`acfghjknqrstuwxvz{y}9876543210/.-,+*)('&%$#"!  9876543210/.-,+*)('&%$#"!  !"#$%&'()*+,-./0123456789:;<=A@?>>?@ABCDECDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~L      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'()*+&"#$%,! -./0124356789:;=ELOgjm>cpz}^FMPhkn@dx{~_CJ\`ew<?ABDGHIKNQRSTUWXVZ[Y]abfilosturqvy|                !  !"#$%#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~MN   O2      !2      !2      !X6P"#$%&'()*+,-./0123"#$%&'()*,-./0+123"#$%&'()*+,-./0123Q456789:;<=>?@ABCDEFGHIJKLMN675489:;<E?ACF=@BDI>GHKLNMJ4567789:;<=>?@ABCDEFGHIJKLMNR0OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0X[\bfglmopqrstuvwxhiTRSQVUWZY]_`^adecjknyPOz|}~{0OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STUshould 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.   YZ[\]^_`abZcdeZ\]fghijklmno^_pqrstuvwxyz{|}}~ r                            r   r   u r`ugjkno`ur]^r     rrrrr !r"#$%%&&''()*+,-./0123456789:;<=>?@@ABCDEFGrHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~r "#rZrrrr Z !!!!!!!!!!!!!!!!!!!!!!"r"{" " " " " """"""""""""###r##### #!###"###$#%#&#'#(#)#*#+#,#-#.#/#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$r$o$p$`$q$r$s$b$u$t$t$e$u$[$v$w$$x$y$h$i$z${$|$}$~$$$$$$$$$$$$$$e$$x$$$c$$$$$$$$$$$$$$$\$]$_$^$o$n$$$$$$$$$$$$$$$$$$%%%%%%&r&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'''''''''''''''''''''''(((((((((r(((((((((((((((((((((((( ( ( ( ( ((((((((()r))))*r******+r++c+++,r,,,,, -r--!-"-#.$.%.&.'.(.).*.+.,.-.../.0.1.2.3.4/5/6/7/8090r00:0;0<0=0>1?1z1@1A1B1C1D1E1F1G1H111I1J1K2r2L2M22N2~2O222P2Q2R2S2T2U2V2>2W3r33X3P3~3O3Y3Z3[3\3]3^4r4L44_4V4>5`5a5b5c5d5r585e5f5g5h6i6j6r6k66l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6{6|6}6~6666666666666666666777777774888888888888888888884999999994:::::4:::::;;;;;;;;;;;;;;;;;;;;;;;<<<<<<<<<<<<4==========4>>>>>>>4?????????????????????4@r@L@@M@_@V@>AAAAAAAAAAAAAAAAAAAAAAABrBBBBBBOBBBYB BZB[B B B B CCCCrCCCCCCCCCCCCCCCCCC C!C"C#C$CrC%C&C'C(C)C*C+C,C-DDD D#D$DrD.D/D0D1D2D8E3E4E5E|ErE6E7E8E9E:E;E<E=E>E?E@EFrFxFAFBFCFDFEFFFGGHGIGGGGJG)GKGLG*GMHNHOHPIHIIIQIRISITIUIVIJI)IKILI*IWIMJXJYJZJ[J\J]J^J_J`JaJbJcJdJ\JJbJrJeJfJgJhJiJjJkJlJmJnJoJpJJJJqJrJsKtKuKvKwKxKyKzK{K|K}K~KKKKKKKKKKKKKKKKKKKKKKKKKK}KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK K K K K KKKKKKKKKKKKKKKKKKKK K!K"K#K$K%K&K'K K(K)K*K+K,K-K.K/K0K1K2K3K4K5K6K7K8K9K:K;K<K=K>K?K@KAKBKCKDKEKFKGKHKIKJKKLtLuLvLwLxLyLzL{L|L}L~LLLLLLLLLLLLLLLLLLLLLLLLLLMLNLOLLL}LLLLLLLLLLLLLLLLLLLLLLLLPLQLRLSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL L L L L LLLLLLLLLLLLLLLLLTLLLL L!L"L#L$L%L&L'L L(L)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=L>L?L@LALBLCLDLELFLGLHLILJLKMmMUMVMWMXMYMkMZM[M\M]M^M_M`NaNbNcN4NdNeNfNgNJNhNiNjO OkOlOmOnOoOpOqOrOsOtOuOvOOwOxOyOzO{O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOO4OJOiOjPPiPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQRRR RR?RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSrSSSSSSSTTTTTTTTgTTTTTTuTTzTT[TTTU}UUUUUUU U U U U  !"#$%&'()*+I,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPKQRSTUV5WXYZ[\Z[]Z[^Z[_Z[`Z[aZ[bZ[cZ[dZ[eZ[fZ[gZ[hZ[iZ[jZ[kZ[lZ[mZ[nZ[oZ[pZ[qZ[rZ[sZ[tZ[uZ[vZ[wZ[xZ[yZ[zZ[{Z[|Z[}Z[~Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[}Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[Z[ Z[ Z[MZ  Z VWZZZZZZZZZZZZZZ Z6Z!Z"Z#Z$Z%ZQZZrZ&ZZZ'Z(Z)Z*Z+Z,-Z,.Z,/Z,0Z,1Z,b2 haskore-0.0.7Medium.ControlledMedium.TemporalMediumMedium.Plain.BinaryHaskore.Interface.CSound&Haskore.Interface.CSound.InstrumentMapHaskore.General.MonadHaskore.General.MapHaskore.General.TagDictionaryHaskore.General.Utility"Haskore.Interface.CSound.Generator*Haskore.Interface.CSound.OrchestraFunctionMedium.Plain.ListMedium.Controlled.ListMedium.LabeledControlled.ListMedium.Plain.ContextFreeGrammar$Medium.Controlled.ContextFreeGrammarHaskore.General.GraphTaggedGen!Haskore.General.GraphRecursiveGen!Haskore.General.LoopTreeTaggedGenHaskore.General.LoopTreeTagged$Haskore.General.LoopTreeRecursiveGen"Haskore.Interface.CSound.Orchestra!Haskore.Interface.CSound.SoundMap!Haskore.General.LoopTreeRecursiveHaskore.General.IdGeneratorHaskore.General.IOHaskore.Basic.PitchHaskore.Basic.Scale&Haskore.Interface.AutoTrack.ScaleChart&Haskore.Interface.AutoTrack.Instrument)Haskore.Interface.AutoTrack.TransposeableHaskore.Basic.IntervalHaskore.Basic.DynamicsHaskore.Basic.Duration Haskore.MusicHaskore.Composition.TrillHaskore.MelodyHaskore.Basic.TempoHaskore.Composition.ChordHaskore.Composition.ChordType'Haskore.Interface.AutoTrack.ChordSymbol$Haskore.Interface.AutoTrack.ChartBar&Haskore.Interface.AutoTrack.ChordChart&Haskore.Interface.AutoTrack.EventChartHaskore.Example.FractalHaskore.Interface.MMLHaskore.Melody.StandardHaskore.Process.OptimizationHaskore.Music.RhythmicHaskore.Interface.CSound.NoteHaskore.Music.GeneralMIDIHaskore.Composition.DrumHaskore.Composition.RhythmHaskore.Example.BesondrerTagHaskore.Example.ChildSong6Haskore.Example.DetailHaskore.Example.FlipHaskore.Example.GuitarHaskore.Example.HeilandHimmelHaskore.Example.RaenzleinHaskore.Example.SsfHaskore.Example.WhiteChristmasHaskore.Music.Standard$Haskore.Interface.MIDI.InstrumentMapHaskore.Interface.MIDI.NoteHaskore.PerformanceHaskore.Performance.BackEndHaskore.Performance.PlayerHaskore.Performance.ContextHaskore.Performance.DefaultHaskore.Interface.MIDI.ReadHaskore.Performance.FancyHaskore.Interface.CSound.Score!Haskore.Interface.CSound.Tutorial'Haskore.Interface.CSound.TutorialCustomHaskore.Interface.MIDI.WriteHaskore.Example.Kantate147Haskore.Example.NewResolutionsHaskore.Interface.MIDI.RenderHaskore.Example.SelfSimHaskore.Example.Miscellaneous!Haskore.Interface.AutoTrack.StyleHaskore.Process.FormatHaskore.Interface.MED.Textrandom-1.0.0.1 System.RandomHaskore.Interface.MIDIHaskoreCcontrol switchBinary switchListfoldListfoldBinControl controlDuranticontrolDurdurnoneDur Constructprim+:+=:=serialparallelserial1 parallel1mapList mapListFlatlistMediumFromAnybinaryMediumFromAnyT:=::+: Primitive errorNoneserialS parallelSTimePFieldVelocityName Instrument instrument instrumentsinstrumentToNumbershowInstrumentNumberToSound SoundTabletableFromInstruments addToTablelookupassert andOnError butOnError zeroOrMore oneOrMoreuntilMfindWithDefault lookupIndex findIndexinsertfst3snd3thd3mergeBy partitionsplitBy segmentBeforefoldrfshuffle removeDups roundDiff' roundDiffmapPairmapFstmapSndflipPairflattenTuples2flattenTuples3flattenTuples4mapInit splitInitheadWithDefaultzapWith zipWithMatch zipWithMatch3maximum0 maximumKey minimumKeylimitselect composeDouble compareField compareRecord equalField equalRecord translaterandList divisibledividemodulus divideModulusgcdDurtoMaybepartitionMaybeRandDist PosCauchyCauchyGaussianBiExponExpon TriangularLinearUniformMult LowestHarmNHarmsDCOffset PhaseOffsetPNum PStrengthPointEndPt SegLengthStartPt CoefficientsInterval ParameterNumberChanNumSkipTimeSFName SoundFileRoutine soundFile tableValues polynomial exponential1 exponential2cubiclineSeg1lineSeg2 cubicSpline compSine1 compSine2 compSine3 cosineHarms randomTabletoStatementWords elemSorted allowedArgs argCountTableParallelSerial serialToListparallelToList fromMedium toMediumList mapControlLabel emptyLabelfoldLabelSerialfoldLabelParallel StructureConslabel structure serialLabel parallelLabelfromControlledMediumListmapLabel TagMediumTag CallMultiCallPrimtoMediumexpandwhileMcondensejoinTag replaceInfixisCyclic smallestCyclemaximumCommonInfixmaximumCommonInfixMulti commonPrefixcommonPrefixRecCollShow collShowsPrecCollEq collEqualTree ReferenceBranchunwindFixShareRecurserecoursesharetoTaggedUnique toTaggedStateLoopexample0mapEtoTagged fromTaggedOrcQuadStereoMonoOutput getChannelsgetNamegetChannelCountPluckDecayMethodPluckFilterSmoothPluckWeightedSmoothPluckStretchDrumPluckSimpleDrumPluckStretchSmoothPluckSimpleSmooth IndexMode NormalIndexRawIndexEvalRateARCRNRifthenSigExp DelayLine GlobalSigGlobalBoolean InstrBlockinstrBlockInstrinstrBlockReverbinstrBlockOutputinstrBlockGlobalsCtrlRateAudRateHeader tableNumber readGlobalnoteDurnotePitnoteVelpFieldp1p2p3p4p5p6p7p8p9<*<=*>*>=*==*/=*&&*||*sigGen constFloatconstInt constEnumpchToHzdbToAmplineexponlineSegexponSegenvphasor tblLookup tblLookupIoscoscIfmOscfmOscIsampOscrandomrandomHrandomIgenBuzzbuzzpluckdelayvdelaycombalpassreverbdelTapdelTapIrecgetMultipleOutputssaveIAsavetoString channelCountmkSignaladdInstrmkOrctestorc1test1DrumAssociation DrumSigExpDrumTableWithAttributes DrumTableInstrumentAssociationInstrumentSigExpInstrumentTableWithAttributesInstrumentTable AttributeList AttributeDrumId InstrumentIdSoundIdattributeControllookupInstrumentinstrumentTableToInstrBlocksaddInstrumentControlsinstrumentAssociation instrumentEq instrument1 instrument2 instrument3 instrument4 lookupDrumdrumTableToInstrBlocksaddDrumControlsdrumAssociationdrumdrumEqdrum1drum2drum3drum4example1exampleLeapFrogStrunallocfreereduceisFreeisValid ByteStringwriteBinaryFilestringCharFromBytereadBinaryFilestringByteFromCharRelativeAbsoluteOctaveClassBsBBfAsAAfGsGGfFsFFfEsEEfDsDDfCsCftoIntfromInt classToInt classParse classFormat intToFreq transpose fromOffsets fromIntervalscontinue ionianRel dorianRel phrygianRel lydianRel mixolydianRel aeolianRel lokrianRel alteredRelhtwtRelwthtRelioniandorianphrygianlydian mixolydianaeolianlokrianalteredhtwtwthtbass bottomRangetopRangeunison minorSecond majorSecond minorThird majorThirdfourthfifth minorSixth majorSixth minorSeventh majorSeventhoctaveoctaveMinorSecondoctaveMajorSecondoctaveMinorThirdoctaveMajorThird octaveFourth octaveFifthoctaveMinorSixthoctaveMajorSixthoctaveMinorSeventhoctaveMajorSeventhnormal mezzoPianopiano pianissimopianoPianissimo mezzoForteforte fortissimoforteFortissimompppppppmfffffffOffsetRatio%+ fromRatiotoRatiotoNumberscaleaddgcddotted doubleDottedbnwnhnqnensntnsfndwndhndqndendsndtnddhnddqnddennameDictionary propToStringNoteHeadNoHead ArtHarmonic SlashHead TremoloHead TriangleHeadXHead SquareHead DiamondHeadOrnamentHead Instruction ArpeggioDown ArpeggioUpArpeggio ShortTrill TrilledTurnTurn DoubleMordent InvMordentMordentTrill ArticulationStoppedThumbWedgeSwell BartokPizzLeftPizz PizzicatoHarmonicUpBowDownBowBreath FermataDownFermataPedalMarcatoTenutoSlurredLegatoStaccatoTempo Accelerando RitardandoDynamic Diminuendo CrescendoAccentLoudnessPhraseAttributeOrnArtTmpDyn PlayerNameDurRatioPhrasePlayer TransposeAtomatom mkControl changeTempo setPlayerphraserestbnrwnrhnrqnrenrsnrtnrsfnrdwnrdhnrdqnrdenrdsnrdtnrddhnrddqnrddenrchordrepeat replicatereversetaketakeLinetake' takeLine'/=:dropdropLinedrop' dropLine'filterapplyPrimitivemapNote mapDurNotedynamictempo articulationornamentaccent crescendo diminuendo loudness1 ritardando accelerandostaccatolegato defltLegato defltStaccato defltAccent bigAccenttrilltrill'trillNtrillN'rollrollNNote 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 chordTypechordslengthreadChordSymbolbarsconcathasChordeventsfromChordChart fromChartBarIFSATMatrixVectorvaddvvmultmvmultcvmultw0w1w2init0wsresultmkNote sourceToMusicsongAccum barToMusic toMusicStatetoMusicNoteAttributesna velocity1vibratotremolofromMelodyNullAttrall isZeroRest compositionduration mergeControl'mergeControlCompact mergeControlcumulateControllersflattenControllers removeNeutralvolumesingletonMedium singletonNoteBodyDrumTonepitchvelocitybodymaybeInstrument noteFromAttrsnoteFromStdMelodyNotenoteFromMelodyNote fromStdMelody fromMelody parameters fromRhyNotevelocityFromStd pitchFromStd velocityToDb amplitudeToDbzeroKeyInstrElementRollnRollNRtoMusicDefaultAttr funkGroove lineToMusicelementToMusicToMusicWithDrumToMusicWithMusicunit fromPositionstoMusicWithMusictoMusicWithDrumtoMusicWithDrumUnittoShuffledMusicWithDrumtoShuffledMusicWithDrumUnittickR downBeatR backBeatRclaveR claveRumbaR claveBossaRclave5clave7 jazzRideRjazzWaltzRideRjazzWaltzHiHatRcountInRtickPclaveP claveRumbaP claveBossaP jazzRidePjazzWaltzRidePjazzWaltzHiHatP downBeatP backBeatPclickclave claveRumba claveBossametro5metro7 basicBassDrum basicSnare basicHiHatridecountInnoAttrbar0bass0bar1bass1melodyfdvelvlmapb1b2b3bassLinev1v1av1bv2v2av2bv2cv2dv2ev2f mainVoicelevels randomItem randomRStatemerge dyadicPattern simpleSongdyadicLevelPatternflipSeqflipSeq2 noteArraymakeSongcoresong1core1song2core2 DelayedNote UpDownPattern DirectionDownUpmapChordToStringchoosePitchForString stringPitches delayTime dirDelaysudpudpInterudpLastchordToPattern guitarEvents delayNotesstringMelodies parallelSongparallelSongMIDIchordWithLegatoPattern legatoSonglegatoSongMIDImelody0melody1melody2bass2melody3bass3vlinemel0verserefrains1s2strings shortLegatom1m2m3m4m3am4am3bm4bs3s4as4bbassdrumsnarehihatrhythmFromChannelProgramPitchFromChannelProgram FromChannelToChannelProgramPitchToChannelProgram ToChannelChannelProgramPitchTableChannelProgramTable ChannelTablerepairallValidassignChannelsfromInstruments partialMatch lookupINamereverseLookupMaybe reverseLookup defltTabledefltdefltGM defltCMap velocityOn velocityOffchannelprogramfromMIDIEvents toMIDIEvents fromGMNote toRhyNotetoGMNote velocityToStd pitchToStd NotateFun PhraseFunNoteFun PlayerConsnameplayNoteinterpretPhrase notatePlayerMonadPaddedWithRests UpdateContextContext contextDur contextPlayercontextTransposecontextDynamics PlayerMapEventeventDur eventDynamicseventTranspose eventNotePadded updatePlayer updateDurupdateTransposeupdateDynamics fromMusicpaddedFromMusicsequenceReadercombinemonadFromMusicmapTime mapTimePaddedeventFromPerformanceEventfromPerformancefromPaddedPerformance EventModifierPhraseInterpreterMapchangeVelocity changeDur staccatoRel legatoRel slurredRel mapInitEvents mapEvents staccatoAbs legatoAbs slurredAbsgetDurModifiersetDur setTranspose setDynamics getPlayergetDur getTranspose getDynamicsplayermapcontextfromMusicModifyContextfloatFromMusicpaddedFromMusicModifyContext toRhyMusic toGMMusicretrieveTracksprocessPerformancefancyInterpretDynamicfancyInterpretTempofancyInterpretArticulationfancyInterpretOrnamentfancyInterpretPhrasedoublePaddedFromMusicTables Normalize TableSize CreatTimeTableVolumePchCpsAbsPchDuration StartTimeBpm Statement simpleSinesquaresawtoothtriangle whiteNoisecompSinefromRhythmicMusicfromPerformanceBEfromRhythmicPerformancefromRhythmicPerformanceMap%fromRhythmicPerformanceWithAttributesnoteToStatementstatementToStringstatementToWords pchToStringPhonemeZhhThzZzzVvvGggJjjDddBbbHahHooHeeXxxShhThhSssFffNggNngNnnMmmLllRrrOooUuuUhhOhhAwwAhhAaaEhhIhhEee TutOrchestra QuadruplePairInstr1p4Instr1p2Instr2p0Instr1p0TutAttr attrVelocityattrParameters TutMelody pureToneTN pureToneTablepureToneoscPuretune1musicFromMelodyattrToInstr1p0attrToInstr2p0attrToInstr1p2attrToInstr1p4performanceFromMusic instrNum1 instrNum2 instrAssoc1p0 instrAssoc2p0 instrAssoc1p2 instrAssoc1p4scoredexampleoe1score1hdro1 csoundDirtut1 twoHarmsTNtwoHarmsscore2oe2o2tut2 manySinesTNmanySinesTable manySinesscore3lineCSoe3o3tut3oe4o4tut4 coolEnvTN coolEnvTablecoolEnv oscCoolEnvtune2 triangleTNsquareTN sawtoothTN triangleTsquareT sawtoothTscore4oe5o5tut5score5oe6oe7o6tut6score6oe8o7tut7oe9o8tut8oe10o9tut9oe11o10 quickChordemChordcChordgChorddChordtune3score7tut10oe12o11tut11oe13o12tut12oe14o13tut13oe15o14tut14oe16o15tut15 midHumpTNmidHumpscore8oe17o16tut16pingscore9oe18o17tut17oe19o18tut18oe20o19tut19oe21o20tut20lowPasshighPassoe22o21tut21oe23o22tut22 toOrchestraplay pianoEnvTN pianoEnvTable pianoWaveTNpianoWaveTablepianoEnv pianoWave pianoScorepianoOEpianoOrc reedyEnvTN reedyEnvTable reedyWaveTNreedyWaveTablereedyEnv reedyWave reedyScorereedyOEreedyOrcreedyreedy2OE reedy2Orcreedy2 fluteTune fluteEnvTN fluteEnvTable fluteWaveTNfluteWaveTablefluteEnv fluteWave fluteScorefluteOEfluteOrcflutevoice' voiceTunevoiceVibWaveTNvoiceVibWaveTable voiceWaveTNvoiceWaveTable voiceWave voiceVibWave voiceScorevoiceOEvoiceOrcvoiceOutFuncOutFunc4OutFunc2OutFunc0 instrToNumscoreFromPerformancematchInstrOutFuncscoreFromPerformanceSafe applyOutFuncfromGMPerformancefromGMPerformanceAutofromRhythmicPerformanceMixedfromGMPerformanceMixedfromGMPerformanceMixedAutofromRhythmicMusicMixed fromGMMusicfromGMMusicMixedfromGMMusicAutofromGMMusicMixedAutovolumeHaskoreToMIDIvolumeMIDIToHaskore initOctavessongMML musicTracksgrammar markovChainmarkovChainMidicmtoMidimidimainmarimbaxylovibglockcomp2arpeggio minArpegUp minArpegDown majArpegDown six3ArpegDownpattern melPatternbellPart vibesLine vibesPart cMajorScale gMajorScale dPentMinScaleprevNotenextNote nextNote' back2NotenextNRprevNRback2NRmakeSNdiddlepart1bridgepart2run1 part3Patternrun2run3 vibeLine3 vibePart3harmony3part3 all3InstsendElendRunendingfileFromRhythmicMusic generalMidigeneralMidiDeflt mixedMidimixedGeneralMidifileFromGeneralMIDIMusicfileName playWin95 playWinNT playLinuxplayAlsa playTimidityplayTimidityJackplayTestgmUpmgmTestSNotePatClusterClsimaddmult simFringefringe simToHasksim1t6sim2t7sim12t8sim3t9sim4sim4sssdursst10pat1pat2pat3pat4'pat4 MidiArrange StdContextvibest0cms'cms drumScalet1tempmu2t2t3repcascadecascadest4't4run'cascade' cascades't5t10scs6ssf0drumst11t12t12at13notet13t13at13bt13ct13dt13et14t14bt14ct14dtabtadtcbtctcdtcdab playToStreamjazzbossatakeFiverock thomasCaribharmonicprettyGrammarMediumprettyGrammarMelody prettyGrammarbind tagMediumlistlistFunc dummySrcLoc prettyMelody prettyExp primMelody controlGen durSyntaxshowDurenclosesieve sliceHoriz sliceVert splitBlocks cellToNote parseDigit parseNote parseCell columnToNotes linesToNotescolumnToSimpleSerialcontainers-0.2.0.1Data.Mapvalid showTreeWithshowTree deleteFindMax deleteFindMin splitLookupsplitfromDistinctAscListfromAscListWithKeyfromAscListWith fromAscList toAscListtoListfromListWithKey fromListWithfromListassocskeysSetkeyselems foldWithKeyfoldmapKeysMonotonic mapKeysWithmapKeysmapAccumWithKeymapAccum mapWithKeypartitionWithKey filterWithKeyisProperSubmapOfByisProperSubmapOf isSubmapOfBy isSubmapOfintersectionWithKeyintersectionWith intersectiondifferenceWithKeydifferenceWith difference unionWithKey unionWithunion unionsWithunionsupdateMaxWithKeyupdateMinWithKey updateMax updateMin deleteMax deleteMinfindMaxfindMindeleteAtupdateAtelemAtupdateLookupWithKey updateWithKeyupdate adjustWithKeyadjustdeleteinsertLookupWithKey insertWithKey insertWithemptymembersizenull\\!base GHC.HandleopenBinaryFile midi-0.1.4Sound.MIDI.GeneralAcousticGrandPianoBrightAcousticPianoElectricGrandPiano HonkyTonkElectricPiano1ElectricPiano2 HarpsichordClavinetCelesta GlockenspielMusicBox VibraphoneMarimba Xylophone TubularBellsDulcimer DrawbarOrganPercussiveOrgan RockOrgan ChurchOrgan ReedOrgan Accordion HarmonicaTangoAccordianAcousticGuitarNylonAcousticGuitarSteelElectricGuitarJazzElectricGuitarCleanElectricGuitarMutedOverdrivenGuitarDistortionGuitarGuitarHarmonics AcousticBassElectricBassFingerElectricBassPick FretlessBass SlapBass1 SlapBass2 SynthBass1 SynthBass2ViolinViolaCello ContrabassTremoloStringsPizzicatoStringsOrchestralHarpTimpaniStringEnsemble1StringEnsemble2 SynthStrings1 SynthStrings2 ChoirAahs VoiceOohs SynthVoice OrchestraHitTrumpetTromboneTuba MutedTrumpet FrenchHorn BrassSection SynthBrass1 SynthBrass2 SopranoSaxAltoSaxTenorSax BaritoneSaxOboe EnglishHornBassoonClarinetPiccoloFluteRecorderPanFlute BlownBottle SkakuhachiWhistleOcarina Lead1Square Lead2Sawtooth Lead3Calliope Lead4Chiff Lead5Charang Lead6Voice Lead7Fifths Lead8BassLead Pad1NewAgePad2Warm Pad3Polysynth Pad4Choir Pad5Bowed Pad6MetallicPad7Halo Pad8SweepFX1Rain FX2Soundtrack FX3Crystal FX4Atmosphere FX5Brightness FX6Goblins FX7EchoesFX8SciFiSitarBanjoShamisenKotoKalimbaBagpipeFiddleShanai TinkleBellAgogo SteelDrums Woodblock TaikoDrum MelodicTom SynthDrum ReverseCymbalGuitarFretNoise BreathNoiseSeashore BirdTweet TelephoneRing HelicopterApplauseGunshotAcousticBassDrum BassDrum1 SideStick AcousticSnareHandClap ElectricSnare LowFloorTom ClosedHiHat HighFloorTom PedalHiHatLowTom OpenHiHat LowMidTomHiMidTom CrashCymbal1HighTom RideCymbal1 ChineseCymbalRideBell Tambourine SplashCymbalCowbell CrashCymbal2 Vibraslap RideCymbal2HiBongoLowBongo MuteHiConga OpenHiCongaLowConga HighTimbale LowTimbale HighAgogoLowAgogoCabasaMaracas ShortWhistle LongWhistle ShortGuiro LongGuiroClaves HiWoodBlock LowWoodBlock MuteCuica OpenCuica MuteTriangle OpenTriangle Sound.MIDI.Message.Channel.Voice toProgramSound.MIDI.Parser.Status toChannelrandomRSound.MIDI.File.SavetoCompressedByteString toByteString toByteListtoFiletoSeekableFileSound.MIDI.File.LoadshowFilemaybeFromByteStringmaybeFromByteList fromByteListfromFileSound.MIDI.FileprogChangeBeforeSetTempo sortEvents getTracks resampleTime showEventshowTime showLinesimplicitNoteOffexplicitNoteOffMixedTypeTicksSMPTEDivisionTrackSound.MIDI.File.Event.Meta fromTempotoTempofromElapsedTime toElapsedTime ElapsedTime