c      !"#$%&'()*+,-./0123456789:;<=>?@ABCD E F G H I J K L M N O P Q RSTUVWXYZ[\]^_`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&{'|'}'~''''''''''((((((((()))))*)*******************)))))))))++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,-----.......//////********$$$$$$$$$$$$$$$$$$000 0 0 0 1 1111111111222222333 3!4"4#4$4%4&4'4(4)4*4+4,5-5.5/505152535455565758595:5;5<6=6>6?6@6A7B7C7D7E7F7G7H7I7J8K8L8M8N8O8P8Q8R9S9T9U9V9W9X9Y9Z9[9\9]9^9_9`9a: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;{;|;};~;<<<<=======>>>>>>>>>>>>>>>>>>>>>>>????????????????@@@@@@@@@@@@@@@AAAAAAABBBBBBBBBCCCCCCDDDDDDEEEEEFFFFFFFFFFFGGGGGGGGGGGGGGHHHHHHHHHHHHHII I I I I IIIIIIIIJJJJJJJJKKK K!K"K#K$K%K&K'K(K)L*L+L,L-L.L/L0L1L2L3L4L5L6L7L8L9L:L;L<L=M>M?M@MAMBMCMDMEMFMGMHMIMJMKMLMMMNMOMPMQMRMSMTMUMVMWNXNYNZN[N\N]N^N_N`NaNbNcNdNeNfNgNhNiNjNkNlNmNnNoNpNqNrNsNtNuNvNwNxNyNzN{N|N}N~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"O#O$O%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:Q;Q<Q=Q>Q?Q@QAQBQCQDQEQFRGRHRIRJRKRLRMRNROSPSQSRTSTTTUTVTWTXTYTZT[T\T]T^T_T`TaTbTV c   d?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. e! !"#$%&'(fghijklmnopqrstuvwxyz)  !"#$%&'()*+,-./0123456789:;<=>?@AA789:;<=>?@-./0123456*+,BCBC DEDE FGHIIFGH {J|}~J KLMKLM QNOPQNOPQRSTTRSUVWXUVWXYZ[\]^_`abc YZ[\]^_`abc defghidefghi jklmnopqr jklmnopqr stuvwxystuvwxy z{|}~z{|}~,,-#o      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHoGH>?@ABCFED9:=;<&'()$%"# !47658123   *+,-./0  %IJKLMNOPQRSTUVWXYZ[\]^ _`ab cdefghijk#IJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrlmnopqrstuvwxyz{|}~   stuvwxyz{|}~+Medium type with a controller constructor.   !"Medium type with a label .(e.g. the duration of the represented music), a controller constructor and direct support for rests.  !"# Converts 1%4 to "qn" and so on. "#%      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUV$%&'W(XY;     %2FINSTUVWXY&$Z[\]^_`abcdef)ghijklmn*opqrst+uvwxyz!Z[\]^_`abcdefghijklmnopqrstuvwxyz'{|,}-~./ {|}~(Z[\]opqrZ[\]poqr)(01234+56789:;<=>?@ABC,.DEFGHIJKLMNOPQRS-./*$ignores the note attributes  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRYYNOPQRIJKLMFGH23456789:;<=>?@ABCDE%&'()*+,-./01 !"#$0Cin contrast to RhyMusic.fromStdMelody it has fixed instrument type ,TUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRY   y   YNOPQRIJKLMFGH23456789:;<=>?@ABCDE%&'()*+,-./01 !"#$1<     2   3     4 !"#$%&'()*+ !"#$%&'()*+5+,-./0123456 !7"#$%&'()89:;,-./0123456789:;6<*+=,>?@<=>?@7ABCD-E./0F12G34567HI ABCDEFGHI8L8UV wrapped in a State monad. JKLMNOPQJKLMNOPQ9RSTU9V:WXYZ[\]^_`RSTUVWXYZ[\]^_`:abcde;f<ghijklmnopqrs=>abcdefghijklmnopqrs; tuvwxyz{|}~ tuvwxyz{|}~<=Cin contrast to RhyMusic.fromStdMelody it has fixed instrument type z !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRYzYNOPQRIJKLMFGH23456789:;<=>?@ABCDE%&'()*+,-./01 !"#$>??@A @ABBCDEFGHIJKLMN CDEF O GHPQRST I   UV  WXYZ[\]^_`a     JK  !"#$%&'(  !"#$%&'(L2b)cde*+f,ghi-jklmn.op/01q2rs3tuv4w56xyz{|}78~9:;<)*+,-./0123456789:;<M#=>?@ABCDEFGHIJKLMNOPQRSTUV=>?@ABCDEFGHIJKLMNOPQRSTUVNWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~fWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~O      !"#$%&'()*+,-./0123456789:;<=>?@ABC     DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqr stuv!w"#$h      !"#$P%&'()*+,-./0123456789%&'()*+,-./0123456789Q:should be moved to Utility ;should be moved to Utility <should be moved to Utility C.Convert a block of a song to a list of notes. :;<=>?@ABCDE :;<=>?@ABCDERxFGyzHI{JKL|}~MN FGHIJKLMNSOPQOPQW6OPQT0RSTUVWXYZ[\]^_`abRSTUVWXYZ[\]^_`abXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ s }   _ d d      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRRSSTTUVWXYZ[\]^_`abcdefghijklmmnopqrstuvwxyYz{|}~esqrsuv                   !!!!""v"q"""""""""""#############################I####%%t%%%}%%%%%%%%%%%%%%%%%%%%%%%+%%>%%%%%%%%%%%%%%%%% %u%v%r%q%%% % % % %%%%%%%%%%%%%%%%%%% %!%"%#%$%%%&%'%(%)%*%+%,%-%.%/%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'{'|'}''~'''`'((((((((()))))))))))))))))))))))))))))))))))++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--I---...I....//////********$$$$$$$$$$$$$Y$$$$$0000001111111111122222233334444444444Y455555 5 5 5 5 555555566666777777777888 8!8"8#8$89%9&9'9(9)9*9+9,9-9.99/909192:3:4:5:6:7:8:9:::;:<:=:>:?:@:A:B:C:D:E;F;G;e;f;g;H;[;I;J;\;K<L<M<<N=======>O>P>b>Q>R>S>T>d>U>V>W>X>Y>Z>[>\>]>^>_>`>a>b>c?d?e??f???g?h?i?j??k?l?m?n?@F@G@o@p@q@r@s@t@H@[@I@J@\@u@KAvAwAxAAAyABvBzBBBByB{B|BC}C~CCCC9D}DDDDDEEEEEFFFFFFFqFrFuFvFGGGGGGGGGGGGGGHHHHHHHHHHHHHIIIIIIIIIIIIIIJJJJJJJJKKKKKKKKKHKKKLLLLLLLLLLLLLLLLLLHLLMMMMMMMMMGMHMIMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN N N N N NNNNNNNNNNNNNNNNNNN N!N"N#N$N%N&N'N(N)N*NNN+NN,N-N.N/N0N1N2N3N4N5N6N7N8N9N:N;N<N=N>N?N@NANBNCNDNENaNFNGNHNIOOOOOOOOOOOOOOJOKOLOMOOOOOOOOOOOOOOOOOO O O O O OOOOOOOOOOOOOOOOOOO O!O"O#O$O%O&O'O(O)O*ONONO+OO,O-O.O/O0O1O2O3O4O5O6O7O8O9O:O;O<O=O>O?O@OAOBOCOOODOEOaOFOGOHOIPPPQPRPSPTPUPVPPWPXPYPPZPPPP[PtP\P]P^Q_Q`QaQbQcQdQeQfQgQhQiQaRRjRkRlRmRnRoRpRqSrSsStTuTvTwTxTyTzT{T|T}T~TTTTTTTas                                     Gq                UUU" """""U"#!%"%c%#%F%V&$&k&q'%'&'''()))*)+),)+-+.+/+0+1+2+3+4+5+6+7+8+9+:+;,<,=,>,?,@,A,B,C,D,,,E,F,G,H,IJKIJLIJMIJNIJOIJPIJQIJRIJSIJTIJUIJVIJWIJXIJYIJZIJ[IJ\IJ]IJ^IJ_IJ`IJaIJbIJcIJdIJeIJfIJgIJhIJiIJjIJkIJlIJmIJnIJoIJpIJqIJrIJsIJtIJuIJvIJwIJxIJyIJzIJ{IJ|IJ}IJ~IJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJIJaIJII22223334555555 5 5 5 5 5555555555555555566 6!7"7#7$7%7&7'7(7)7*7+7,UV-9.9/:0:1:2:3?A4A5AzBBB6B7B8B9B5B:B;B<B=B>FqH?H@HAHBHCIDIEIFIGIHIIIJIKILIMINIOIPLLQLRLSLTLULVLWLXLYLZL[L\L]L^L_L`LaLbLcLdLeLfLgLhLiLjLkLlLmMnMoMpMqMrMsMMMFNtNuNvNwNxNyNzN{N|N}N~NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNFOtOuOvOwOxOyOzO{O|O}O~OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOFRRRRR R}RIIIIIIIIIIIIIIIIIIIIIIIIIwIII I I II  I FI I I I TTTTTTTTTTTTTTTTTT T!T"T#T$T%T&T'T(T)T*T+T,T-. haskore-0.0.5Haskore.Interface.CSound&Haskore.Interface.CSound.InstrumentMapHaskore.General.MonadHaskore.General.IOMedium.ControlledHaskore.Basic.PitchHaskore.Basic.Scale&Haskore.Interface.AutoTrack.ScaleChart)Haskore.Interface.AutoTrack.Transposeable&Haskore.Interface.AutoTrack.InstrumentHaskore.Basic.IntervalHaskore.Basic.DynamicsHaskore.General.MapHaskore.General.TagDictionaryHaskore.General.LoopTreeTagged!Haskore.General.LoopTreeRecursive!Haskore.General.LoopTreeTaggedGen$Haskore.General.LoopTreeRecursiveGenHaskore.General.GraphTaggedGen!Haskore.General.GraphRecursiveGenHaskore.General.UtilityHaskore.General.IdGenerator"Haskore.Interface.CSound.Generator*Haskore.Interface.CSound.OrchestraFunction"Haskore.Interface.CSound.Orchestra!Haskore.Interface.CSound.SoundMapMedium.TemporalMediumMedium.Plain.BinaryMedium.Plain.ListMedium.Controlled.ListMedium.Plain.ContextFreeGrammar$Medium.Controlled.ContextFreeGrammarMedium.LabeledControlled.ListHaskore.Basic.DurationHaskore.Music.Rhythmic Haskore.MusicHaskore.PerformanceHaskore.Performance.PlayerHaskore.Performance.ContextHaskore.MelodyHaskore.Melody.StandardHaskore.Basic.TempoHaskore.Composition.ChordHaskore.Composition.ChordType'Haskore.Interface.AutoTrack.ChordSymbolHaskore.Composition.TrillHaskore.Music.GeneralMIDIHaskore.Composition.DrumHaskore.Example.FlipHaskore.Example.SsfHaskore.Interface.CSound.NoteHaskore.Composition.RhythmHaskore.Example.BesondrerTagHaskore.Example.ChildSong6Haskore.Example.DetailHaskore.Example.FractalHaskore.Example.GuitarHaskore.Performance.DefaultHaskore.Interface.MMLHaskore.Music.Standard$Haskore.Interface.MIDI.InstrumentMapHaskore.Interface.MIDI.NoteHaskore.Performance.FancyHaskore.Example.RaenzleinHaskore.Example.WhiteChristmas$Haskore.Interface.AutoTrack.ChartBar&Haskore.Interface.AutoTrack.ChordChart&Haskore.Interface.AutoTrack.EventChartHaskore.Performance.BackEndHaskore.Interface.MIDI.WriteHaskore.Interface.MIDI.RenderHaskore.Example.SelfSim!Haskore.Interface.AutoTrack.StyleHaskore.Example.Kantate147Haskore.Example.NewResolutionsHaskore.Interface.CSound.Score!Haskore.Interface.CSound.Tutorial'Haskore.Interface.CSound.TutorialCustomHaskore.Process.FormatHaskore.Interface.MED.TextHaskore.Process.OptimizationHaskore.Interface.MIDI.ReadHaskore.Example.Miscellaneousrandom-1.0.0.0 System.RandomHaskore.Interface.MIDIHaskore instrument instrumentsinstrumentToNumbershowInstrumentNumberTimePFieldVelocityName InstrumenttableFromInstruments addToTablelookupToSound SoundTableassert andOnError butOnError oneOrMoreuntilMwriteBinaryFilestringCharFromBytereadBinaryFilestringByteFromChar ByteStringfoldListfoldBinCcontrol switchBinary switchListtoIntfromInt classToInt classParse classFormat intToFreq transposeRelativeAbsoluteOctaveClassT fromOffsets fromIntervalscontinue ionianRel dorianRel phrygianRel lydianRel mixolydianRel aeolianRel lokrianRel alteredRelhtwtRelwthtRelioniandorianphrygianlydian mixolydianaeolianlokrianalteredhtwtwthtConsbass bottomRangetopRange minorSecondmpfindWithDefault lookupIndex findIndexinsertexample0mapEunwindexample1exampleLeapFrogtoTaggedtoTaggedUnique toTaggedState fromTaggedTagFixCollShow collShowsPrecCollEq collEqualrecurseTreesharefst3snd3thd3mergeBy partitionsplitBy segmentBeforefoldrfshuffle removeDups roundDiff' roundDiffmapPairmapFstmapSndflipPairflattenTuples2flattenTuples3flattenTuples4mapInit splitInitheadWithDefaultzapWith zipWithMatch zipWithMatch3maximum0 maximumKey minimumKeylimitselect composeDouble compareField compareRecord equalField equalRecord translaterandList divisibledividemodulus divideModulusgcdDurtoMaybepartitionMayberunallocfreereduceisFreeisValidSt soundFile tableValues polynomial exponential1 exponential2cubiclineSeg1lineSeg2 cubicSpline compSine1 compSine2 compSine3 cosineHarms randomTabletoStatementWordsRandDistMult LowestHarmNHarmsDCOffset PhaseOffsetPNum PStrengthPointEndPt SegLengthStartPt CoefficientsInterval ParameterNumberChanNumSkipTimeSFName elemSorted allowedArgs argCountTable tableNumber readGlobalnoteDurnotePitnoteVelpFieldp1p2p3p4p5p6p7p8p9<*<=*>*>=*==*/=*&&*||*sigGen constFloatconstInt constEnumpchToHzdbToAmplineexponlineSegexponSegenvphasor tblLookup tblLookupIoscoscIfmOscfmOscIsampOscrandomrandomHrandomIgenBuzzbuzzpluckdelayvdelaycombalpassreverbdelTapdelTapIrecgetMultipleOutputssaveIAsavetoString channelCountmkSignaladdInstrmkOrctestorc1test1OrcQuadStereoMonoOutput getChannelsgetNamegetChannelCountPluckDecayMethodPluckFilterSmoothPluckWeightedSmoothPluckStretchDrumPluckSimpleDrumPluckStretchSmoothPluckSimpleSmooth IndexMode NormalIndexRawIndexEvalRateARCRNRifthenSigExp DelayLine GlobalSigGlobalBoolean InstrBlockinstrBlockInstrinstrBlockReverbinstrBlockOutputinstrBlockGlobalsCtrlRateAudRateHeaderattributeControllookupInstrumentinstrumentTableToInstrBlocksaddInstrumentControlsinstrumentAssociation instrumentEq instrument1 instrument2 instrument3 instrument4 lookupDrumdrumTableToInstrBlocksaddDrumControlsdrumAssociationdrumdrumEqdrum1drum2drum3drum4DrumAssociation DrumSigExpDrumTableWithAttributes DrumTableInstrumentAssociationInstrumentSigExpInstrumentTableWithAttributesInstrumentTable AttributeList AttributeDrumId InstrumentIdSoundIdControl controlDuranticontrolDurdurnoneDurmapList mapListFlatlistMediumFromAnybinaryMediumFromAny Constructprim+:+serialserial1 errorNone parallelSparallelToListparallel fromMedium toMediumList mapControltoMediumexpandwhileMcondensejoinTag replaceInfixisCyclic smallestCyclemaximumCommonInfixmaximumCommonInfixMulti commonPrefixcommonPrefixRec TagMedium CallMultiCallPrim parallelLabelfromControlledMediumListmapLabelLabel emptyLabelfoldLabelSerialfoldLabelParallel Structurelabel structure%+ fromRatiotoRatiotoNumberscaleaddgcd doubleDottedbnwnhnqnensntnsfndwndhndqndendsndtnddhnddqnddennameDictionary propToStringOffsetRatioatom mkControl changeTempo setPlayerphrase=:=restbnrwnrhnrqnrenrsnrtnrsfnrdwnrdhnrdqnrdenrdsnrdtnrddhnrddqnrddenrchordrepeat replicatereversetaketakeLinetake' takeLine'/=:dropdropLinedrop' dropLine'filterapplyPrimitivemapNote mapDurNotedynamictempo articulationornamentaccent crescendo diminuendo loudness1 ritardando accelerandostaccatolegato defltLegato defltStaccato defltAccent bigAccentNoteHeadNoHead ArtHarmonic SlashHead TremoloHead TriangleHeadXHead SquareHead DiamondHeadOrnamentHead Instruction ArpeggioDown ArpeggioUpArpeggio ShortTrill TrilledTurnTurn DoubleMordent InvMordentMordentTrill ArticulationStoppedThumbWedgeSwell BartokPizzLeftPizz PizzicatoHarmonicUpBowDownBowBreath FermataDownFermataPedalMarcatoTenutoSlurredLegatoStaccatoTempo Accelerando RitardandoDynamic Diminuendo CrescendoAccentLoudnessPhraseAttributeOrnArtTmpDyn PlayerNameDurRatio PrimitiveAtom updatePlayer updateDurupdateTransposeupdateDynamics fromMusicpaddedFromMusicsequenceReadercombinemonadFromMusic NotateFun PhraseFunNoteFunPlayernameplayNoteinterpretPhrase notatePlayerMonadPaddedWithRests UpdateContextContext contextDur contextPlayercontextTransposecontextDynamics PlayerMapEventeventDur eventDynamicseventTranspose eventNotePaddedchangeVelocity changeDur legatoRel mapInitEvents mapEvents legatoAbsgetDurModifier EventModifierPhraseInterpreterMapsetDur setTranspose setDynamics getPlayergetDur getTranspose getDynamics noteAttrs notePitchtoMelodyNullAttrnotenote'cfccsdfddsefeesffffsgfggsafaasbfbbscMajcMajChd noteToPitch invertNoteinvertNote noteAttrs_ notePitch_metrolarghettoRangeaverage larghettopr2mkLnpr12=/=pitchToIntervalintervalToPitchintervalInvert sameIntervalminorIntminorgenericleastVaryingInversionsinversionIncrementmatchingInversionmean chordCenterboundaryCentergenericToNotes shortestWays processZonepropShortestWaysleastVaryingInversionsSWinversionCenters harmonicGenBoundaryGenericgenericPitchClassgenericIntervals genericDur genericAttr InversiontoChord fromStringparseroot chordTypetrilltrill'trillNtrillN'rollrollNna velocity1vibratotremolofromMelodyNullAttrNoteAttributesmaybeInstrument noteFromAttrsnoteFromStdMelodyNotenoteFromMelodyNote fromStdMelody fromMelodyNoteBodyDrumTonepitchvelocitybodyInstrtoMusictoMusicDefaultAttr funkGroove lineToMusicelementToMusicElementRollnRollNRflipSeqflipSeq2 noteArraymakeSongsong1core2 shortLegatom2melodysong fromRhyNotevelocityFromStd pitchFromStd velocityToDb amplitudeToDbzeroKey parametersunit fromPositionstoMusicWithMusictoMusicWithDrumtoMusicWithDrumUnittoShuffledMusicWithDrumtoShuffledMusicWithDrumUnit downBeatRcountInRclavePclavecountInToMusicWithDrumToMusicWithMusicnoAttrbar1fdvelvlmapb2v1av2a mainVoicelevels randomItem randomRStatemerge dyadicPattern simpleSongdyadicLevelPatternvaddvvmultmvmultcvmultw1init0wsresultmkNote sourceToMusicIFSATMatrixVectormapChordToStringchoosePitchForString stringPitches delayTime dirDelaysudpInterchordschordToPattern guitarEvents delayNotesstringMelodies parallelSongparallelSongMIDIchordWithLegatoPattern legatoSonglegatoSongMIDI DelayedNote UpDownPattern DirectionplayermapcontextfromMusicModifyContextfloatFromMusicpaddedFromMusicModifyContext barToMusic toMusicStateAccumrepairallValidassignChannelsfromInstruments partialMatch lookupINamereverseLookupMaybe reverseLookup defltTabledefltdefltGM defltCMapFromChannelProgramPitchFromChannelProgram FromChannelToChannelProgramPitchToChannelProgram ToChannelChannelProgramPitchTableChannelProgramTable ChannelTablefromMIDIEvents toMIDIEvents fromGMNote toRhyNotetoGMNote velocityToStd pitchToStd velocityOn velocityOffchannelprogramprocessPerformancefancyInterpretDynamicfancyInterpretTempofancyInterpretArticulationfancyInterpretOrnamentfancyInterpretPhrasedoublePaddedFromMusicvlinemel0refrains2stringssnarerhythmlengthreadChordSymbolconcathasChordbarsfromChordChart fromChartBareventsmapTime mapTimePaddedeventFromPerformanceEventfromPerformancefromPaddedPerformancefromRhythmicPerformancefromGMPerformancefromGMPerformanceAutofromRhythmicPerformanceMixedfromGMPerformanceMixedfromGMPerformanceMixedAutofromRhythmicMusicfromRhythmicMusicMixed fromGMMusicfromGMMusicMixedfromGMMusicAutofromGMMusicMixedAutovolumeHaskoreToMIDIvolumeMIDIToHaskorefileFromRhythmicMusicmidi generalMidigeneralMidiDeflt mixedMidimixedGeneralMidifileFromGeneralMIDIMusicfileNameplay playWinNTplayTestgmUpmgmTestsimaddmult simFringefringe simToHasksim2t7sim4ssdursspat2SNotePatCluster playToStreamjazzbossatakeFiverock thomasCaribharmonic initOctavessongMML musicTracksgrammar markovChainmarkovChainMidicmtoMidimainmarimbacomp2arpeggio minArpegDown melPattern gMajorScalenextNote nextNote' back2NoteprevNRdiddlepart2 part3Patternrun2 all3InstsendElsquarecompSinefromPerformanceBEfromRhythmicPerformanceMap%fromRhythmicPerformanceWithAttributesnoteToStatementstatementToStringstatementToWords pchToStringTables Normalize TableSize CreatTimeTableVolumePchDuration StartTimeBpm Statement pureToneTN pureToneTablepureToneoscPuretune1musicFromMelodyattrToInstr1p0attrToInstr2p0attrToInstr1p2attrToInstr1p4performanceFromMusic instrNum2 instrAssoc1p0 instrAssoc2p0 instrAssoc1p2 instrAssoc1p4scoredexampleoe1hdr csoundDir twoHarmsTNtwoHarmsscore2oe2o2tut2 manySinesTNmanySinesTable manySineslineCSoe3oe4 coolEnvTN coolEnvTablecoolEnv oscCoolEnvtune2squareTNsquareToe5oe6oe7o6tut6oe8oe9oe10oe11 quickChordcChordtune3oe12oe13oe14oe15oe16 midHumpTNmidHumpoe17pingoe18oe19oe20oe21highPassoe22oe23 toOrchestrapianoOE reedyEnvTN reedyEnvTablereedyEnv reedyScorereedyOEreedyOrcreedyreedy2OE reedy2Orcreedy2 fluteTunefluteOEvoice' voiceTune voiceWaveTNvoiceWaveTable voiceVibWave voiceScorevoiceOEvoiceOrcvoicePhoneme TutOrchestra QuadruplePairTutAttr attrVelocityattrParameters TutMelody instrToNumscoreFromPerformancematchInstrOutFuncscoreFromPerformanceSafe applyOutFuncOutFuncprettyGrammarMediumprettyGrammarMelody prettyGrammarbind tagMediumlistlistFunc dummySrcLoc prettyMelody prettyExp primMelody controlGen durSyntaxshowDurenclosesieve sliceHoriz sliceVert splitBlocks cellToNote parseDigit parseNote parseCell columnToNotes linesToNotescolumnToSimpleSerial isZeroRest mergeControl'mergeControlCompactcumulateControllersflattenControllers removeNeutralsingletonMedium singleton toRhyMusic toGMMusicretrieveTracksvibescms drumScalet1mu2repcascadet4'cascade'drumst11t13notetabtadtc MidiArrange StdContext zeroOrMorebase GHC.HandleopenBinaryFileBsBBfAsAAfGsGGfFsFFfEsEEfDsDDfCsCfunison majorSecond minorThird majorThirdfourthfifth minorSixth majorSixth minorSeventh majorSeventhoctaveoctaveMinorSecondoctaveMajorSecondoctaveMinorThirdoctaveMajorThird octaveFourth octaveFifthoctaveMinorSixthoctaveMajorSixthoctaveMinorSeventhoctaveMajorSeventhnormal mezzoPianopiano pianissimopianoPianissimo mezzoForteforte fortissimoforteFortissimoppppppmffffcontainers-0.1.0.2Data.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\\!LoopBranchRecurse ReferenceShare PosCauchyCauchyGaussianBiExponExpon TriangularLinearUniform SoundFileRoutine parallel1serialS:=::+: serialToListParallelSerial serialLabeldottedPhrase Transpose PlayerCons staccatoRel slurredRel staccatoAbs slurredAbscMajArpretro retroInvert invertRetro largoRange adagioRange andanteRange moderatoRange allegroRange prestoRangeprestissimoRangelargoadagioandantemoderatoallegropresto prestissimopr1 pitchInvert samePitchmajorIntmajorSeventhIntminorSeventhIntdominantSeventhIntminorMajorSeventhIntsustainedFourthIntmajordominantSeventhminorMajorSeventhsustainedFourth melodicGen midi-0.1.2Sound.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 toChannelcorecore1song2m1m3m4tickR backBeatRclaveR claveRumbaR claveBossaRclave5clave7 jazzRideRjazzWaltzRideRjazzWaltzHiHatRtickP claveRumbaP claveBossaP jazzRidePjazzWaltzRidePjazzWaltzHiHatP downBeatP backBeatPclick claveRumba claveBossametro5metro7 basicBassDrum basicSnare basicHiHatridebar0bass0bass1b1b3bassLinev1v1bv2v2bv2cv2dv2ev2frandomRw0w2udpudpLastDownUpverses1m3am4am3bm4bs3s4as4bbassdrumhihat playWin95 playLinuxplayAlsa playTimidityplayTimidityJacksim1t6sim12t8sim3t9sim4st10pat1pat3pat4'pat4Clxylovibglock minArpegUp majArpegDown six3ArpegDownpatternmelody1bellPart vibesLine vibesPart cMajorScale dPentMinScaleprevNotenextNRback2NRmakeSNmelody2part1bridgerun1run3 vibeLine3 vibePart3melody3harmony3part3endRunending simpleSinesawtoothtriangle whiteNoiseCpsAbsPch instrNum1score1o1tut1score3o3tut3o4tut4 triangleTN sawtoothTN triangleT sawtoothTscore4o5tut5score5score6o7tut7o8tut8o9tut9o10emChordgChorddChordscore7tut10o11tut11o12tut12o13tut13o14tut14o15tut15score8o16tut16score9o17tut17o18tut18o19tut19o20tut20lowPasso21tut21o22tut22 pianoEnvTN pianoEnvTable pianoWaveTNpianoWaveTablepianoEnv pianoWave pianoScorepianoOrc reedyWaveTNreedyWaveTable reedyWave fluteEnvTN fluteEnvTable fluteWaveTNfluteWaveTablefluteEnv fluteWave fluteScorefluteOrcflutevoiceVibWaveTNvoiceVibWaveTable voiceWaveZhhThzZzzVvvGggJjjDddBbbHahHooHeeXxxShhThhSssFffNggNngNnnMmmLllRrrOooUuuUhhOhhAwwAhhAaaEhhIhhEeeInstr1p4Instr1p2Instr2p0Instr1p0OutFunc4OutFunc2OutFunc0all compositionduration mergeControlvolumeSound.MIDI.File.SavetoCompressedByteString toByteString toByteListtoFiletoSeekableFileSound.MIDI.File.LoadshowFilemaybeFromByteStringmaybeFromByteList fromByteListfromFileSound.MIDI.FileMixedTypeTicksSMPTEDivisionTrackprogChangeBeforeSetTempo sortEvents getTracks resampleTime showEventshowTime showLinesimplicitNoteOffexplicitNoteOffSound.MIDI.File.Event.Meta ElapsedTime fromTempotoTempofromElapsedTime toElapsedTimet0cms'tempt2t3cascadest4run' cascades't5t10scs6ssf0t12t12at13t13at13bt13ct13dt13et14t14bt14ct14dtcbtcdtcdab