3-      !"#$%&'()*+,-./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 ijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~       $portable experimentalsilva.samuel@alumni.uminho.pt!portable experimentalsilva.samuel@alumni.uminho.pt"portable experimentalsilva.samuel@alumni.uminho.pt0  !"#$%&'()*+,-./0120  !"#$%&'()*+,-./012012/0-.+,)*'(%&$#"!   0    $#"!  !"#$%&&'(()**+,,-../00122E3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwE3456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwEvwqrstuopjklmngihcdef^ba`_[]\XYZRWVUTSPQMNOJLKGHI?FEDCBA@=>;<9:678354E35445678789::;<<=>>?FEDCBA@@ABCDEFGHIHIJLKKLMNONOPQQRWVUTSSTUVWXYZYZ[]\\]^ba`__`abcdefdefgihhijklmnklmnoppqrsturstuvwwportable experimentalsilva.samuel@alumni.uminho.pt xInvariant class specification yzRatio Number definition {Integer Number definition |Text is String }Delta type is a number ~Number is Double wrapper to get Integer Number wrapper to get Ratio Number like unzip like zip xyz{|}~ ~}|{zxy xyyz{|}~portable experimentalsilva.samuel@alumni.uminho.pt2222 portable experimentalsilva.samuel@alumni.uminho.pt)split product the 0-adic split fst snd Left Right sum McCarthy's conditional: ap expn guard swap  assoc right  assoc left  dist right  undist right  flat right  flat left  unflat right  unflat left pair with nil coswap coassoc right maybe 2 Either either 2 maybe Binding to either2maybe Binding to maybe2either out  catamorphism in  anamorphism  hylomorphism mapping concat reverse out  catamorphism in  anamorphism  hylomorphism )))portable experimentalsilva.samuel@alumni.uminho.pt6Definition of Settings to make general configurations  It is possible grow empty configurations  fromList wrapper to settings wrapper to settings Get value from configuration #get Text value from Configurations %get Number value from Configurations  Change Text Change Number Union  portable experimentalsilva.samuel@alumni.uminho.pt Motive Definition make new motive $get Internal Motive representation (get Motive from internal representation General cata  General map  (join Pair of Motive into Motive of Pair  )Split Motive of Pair into Pair of Motive  (join List of Motive into Motive of List  )split Motive of List into List of Motive             portable experimentalsilva.samuel@alumni.uminho.pt* MelodicNode with PitchClass Pitch Class definition B A G F E D C Accident is defined as number  provisional.  It doesn'3t support natural (only supports flats and sharps) 3 To supports sharps, flats and natural, it will be  Maybe Number & This number is number of half-tones.  !"Melodic node #default settings $rest combinator % Default rest &default non-rest ''Transforms 7-number into Char notation ('Transforms 7-number into Char notation )(Transforms Char into 7-Number notation *Transpose to 12 level +(transforms 7 level to 12-level notation ,*transforms 12-level into 7-level notation -!Transposes over 7 absolute level .Reverse /symmetric melodic 0Convert to alpha notation 1Convert to alpha notation 2)get 7-Absolute music from alpha notation 3-Convert 7-absolute into 12-absolute notation 4-Convert 12-absolute into 7-absolute notation 5relative melodic. 6 absolute PF *  !"#$%&'()*+,-./0123456*"!  #$%&'()*+,-./0123456*  !"#$%&'()*+,-./0123456 portable experimentalsilva.samuel@alumni.uminho.pt789:;<=>?@ADots is defined by number. 1 Only Integers and positive numbers are allowed. BCD Rhythm node Esefault settings Fcomputes duration PW Gcomputes compass duration Hchanges duration Icomputes duration Jreverse Ksymmetric trsnformation LComputes relative Rhythm M Absolute PF NOPQR789:;<=>?@ABCDEFGHIJKLMNOPQRDCBA@7?>=<;:98EFGHIJKLMNOPQR7?>=<;:9889:;<=>?@ABCDEFGHIJKLMNOPQR portable experimentalsilva.samuel@alumni.uminho.pt STUVoiceZipNode definition Vdefault settings W transposes Xchanges duration Ycomputes duration Zreverse [ relative \ absolute STUVWXYZ[\ UTSVWXYZ[\ STUVWXYZ[\ portable experimentalsilva.samuel@alumni.uminho.pt ] Position ^New Notation Position _New Notation Node `Info asefault settings bctranspose using above layers d(tempo transformation using above layers e(duration computation using above layers freverse using above layers g+relative transformation using above layers h+absolute transformation using above layers ]^_`abcdefgh `_^]abcdefgh ]^_`abcdefghportable experimentalsilva.samuel@alumni.uminho.pt ijkldefault settings mnoTranspose using above layers p(tempo transformation using above layers q(duration computation using above layers rreverse using above layers s+absolute transformation using above layers t+relative transformation using above layers ijklmnopqrst kjilmnopqrst ijklmnopqrstportable experimentalsilva.samuel@alumni.uminho.pt uvwxdefault settings yTranspose using above layers z(tempo transformation using above layers {(duration computation using above layers |reverse using above layers }+absolute transformation using above layers ~+relative transformation using above layers uvwxyz{|}~ wvuxyz{|}~ uvwxyz{|}~portable experimentalsilva.samuel@alumni.uminho.pt Definition of annotation sefault settings Transpose using above layers (tempo transformation using above layers (duration computation using above layers reverse using above layers +absolute transformation using above layers +relative transformation using above layers   #portable experimentalsilva.samuel@alumni.uminho.ptHMusicXML Schema specify  xs:string MusicXML Schema specify  xs:string HHH portable experimentalsilva.samuel@alumni.uminho.ptportable experimentalsilva.samuel@alumni.uminho.pt?MusicXML Schema specify  xs:string MusicXML Schema specify  xs:string       !"#$%&'()*+,-?      !"#$%&'()*+,-?      !"#$%&'()*+,-?       !"#$%&'()*+,-C./0123456MusicXML Schema specify  xs:string 7MusicXML Schema specify  xs:string 89:;<=>?@ABCpositive number DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopC./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopC[ZYSXWVUTRQOPNKMLJIHGFEDCBA@?<>=;8:976543210/.\]^_`abcdefghijklmnopC./012345678:99:;<>==>?@ABCDEFGHIJKMLLMNOPPQRSXWVUTTUVWXYZ[\]^_`abcdefghijklmnopKqrstuvwxyMusicXML Schema specify  xs:string zMusicXML Schema specify  xs:string {|}~positive number Kqrstuvwxyz{|}~K~{}|zyxwvutsrqKqrstuvwxyz{}||}~{positive number       !"#$%&'()*+,-./0123456{      !"#$%&'()*+,-./0123456{      !"#$%&'()*+,-./0123456{       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJpositive number KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ǒrqpbonmlkjihgfedca]`_^\[ZYUXWVTSRQPONMLKJIHGFEDACB@?>=<;:987stuvwxyz{|}~789:;<=>?@ACBBCDEFGHIJKLMNOPQRSTUXWVVWXYZ[\]`_^^_`ab onmlkjihgfedccdefghijklmnopqrstuvwxyz{|}~))))HaXml experimentalsilva.samuel@alumni.uminho.pt      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuv$get offset from music_data elements wgeneric sort of Music_Data xsort of Music_Data       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwx      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxportable experimentalsilva.samuel@alumni.uminho.ptyz{|}~yz{|}~yz{|}~yz{|}~portable experimentalsilva.samuel@alumni.uminho.ptportable experimentalsilva.samuel@alumni.uminho.pt....portable experimentalsilva.samuel@alumni.uminho.ptportable experimentalsilva.samuel@alumni.uminho.pt portable experimentalsilva.samuel@alumni.uminho.ptMeasure class.  computes node' s duration makes generic interface reads interface prints interface destroy measures build measures $HaXML, Haskore experimentalsilva.samuel@alumni.uminho.ptBxyz{|}~%&'(())*+,-./01123456789:;2<=>?@ABCDEFFGGHHIIJJKKLLMNOPPQRRSSTTUVWXYZ[\]]^_`abbcddefghijkklmnopqrstuuvwxyz{{|}~./0-;)34567892-;2     3 4 5 6 7 8 9    . / 0  1     2                              (               ! " # $ % & '        ( ) * +  ,      -./01  234  567894  :;<=>?@ABCDEFGHIJK%LMNOPQR&'STUVWXY-(2Z[\]^_`abcdefghijklmnopqrstuvwxyz{|}~:;<CDEFGH%LMNOPQR&'STUVWXY-(2Z[\]^_`abcdefghijklmnoCDEFGHTUVWXY-(;Z[\]^_`acdeCDEFGHTUVWXY-(;Z[\]^_`acdeCHTUVWXY-(;BZ[\]^_`acdeCHITUVWXY-(BZ[\]^_`acdeYZ[\]^    \]^_`ab  cde !"#$%&'()*+,-./0123456789:;<=>?@ApBCrDEtFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcd  eba`_f^ghijklmnopqrstuvwxyz{|}tFD~rpq [    G   hamusic-0.1.2Music.Analysis.ChordMusic.Analysis.ABCScriptMusic.Analysis.BaseMusic.Analysis.MusicXML.Level1!Music.Analysis.MusicXML.Level1NumMusic.Analysis.PF Music.Analysis.Abstract.SettingsMusic.Analysis.Abstract.MotiveMusic.Analysis.Abstract.MelodicMusic.Analysis.Abstract.RhythmMusic.Analysis.Abstract.Zip!Music.Analysis.Abstract.NotationsMusic.Analysis.Abstract.Voices#Music.Analysis.Abstract.Instruments"Music.Analysis.Abstract.AnnotationMusic.Analysis.MusicXML.Level2 Music.Analysis.MusicXML2Abstract!Music.Analysis.MusicXML.Functions!Music.Analysis.MusicXML.Level2Num!Music.Analysis.MusicXML.Level3NumMusic.Analysis.MusicXML.Level3Music.Analysis.MusicXML.Level4Music.Analysis.MusicXML.Level5Music.Analysis.MusicXML.Level6Music.Analysis.MusicXMLMusic.Analysis.Abstract2ABC Music.Analysis.Abstract2LilypondMusic.Analysis.MusicXML2HaskoreMusic.Analysis.ScriptMusic.Analysis.MusicXML2ABCMusic.Analysis.InterfaceMusic.Analysis.LilypondMusic.Analysis.HaskoreMusic.Analysis.AbstractMusic.AnalysisModeMinorMajorDurationOctaveDottedDecreaseIncrease AccidentalFlatNaturalSharpAccidentPitchBAGFEDCABCNoteRest ABCMusicDataBarSymbol GraceNotesStaccatoSlurTieChordTupletSingleABCLABCKeyABCMeterABCTitleABCIndex ABCMetaDataABCMusic Midi_play Midi_play_no Midi_play_yesMidimidiPlayHaskoreTimepartParttime Count_selectCount_select_note_normalCount_select_note_cueCount_select_note_graceCount_select_noteCount_select_music_dataCount_select_measureCount_select_partCount countSelect Stat_verboseStat_verbose_noStat_verbose_yes Stat_Attrs statVerboseStatReification_valueReification_value_5Reification_value_4Reification_value_3Reification_value_2Reification_value_1 ReificationreificationValue Filter_modeFilter_mode_noFilter_mode_yes Filter_selectFilter_select_note_normalFilter_select_note_cueFilter_select_note_graceFilter_select_noteFilter filterSelect filterModeAction_warningsAction_warnings_noAction_warnings_yes Action_Attrs actionInput actionOutputactionWarningsAction Script_Attrs scriptAuthor scriptDatescriptDescription Invariant invariant RatioNumber IntegerNumberTextDeltaNumber toIntegertoRatio unzipMaybezipMaybe Accidental_Three_Quarters_FlatThree_Quarters_Sharp Quarter_Flat Quarter_Sharp Natural_Flat Natural_Sharp Flat_Flat Sharp_Sharp Double_SharpDotType_Th256Th128Th64Th32Th16EighthQuarterHalfWholeBreveLongTypeAlterStep Full_Note_ Full_Note_3 Full_Note_1 Full_NoteNote_Note_3Note Music_Data Music_Data_1Score_Partwisesplit><!p1p2i1i2-|-condapexpngrdswapassocrassocldistrundistrflatrflatlunflatrunflatlpwnilcoswapcoassocr maybe2either either2maybee2mm2eoutLcataLinLanaLhyloLmapLconcatLreverseLoutL1cataL1inL1anaL1hyloL1SettingsemptyfromListtext'textnumber'numberpriority getSettingschangeSettings'changeSettingsgetText getNumber changeText changeNumberunionunion1MotivemkMotive fromMotivetoMotivemeta cataMotive mapMotivejoinMotivePairsplitMotivePairjoinMotiveListsplitMotiveListMelodicClassNode PitchClass AccidentClassUnknowAccident DoubleFlat DoubleSharp MelodicClassMelodicAbsoluteMelodicRelative MelodicNodesettingsrestmkRestmkNoRestpitchpitch'absPitch transpose12f7to12f12to7 transposereverse symmetrictoAlphatoAlpha' fromAlphato12from12relativeabsolute DurationClassUnkownDurationDotsRhythmRelativeRhythmAbsolute RhythmNode durationNodecompasstempodurationdurationNumberdurationTotalNumbergetDurationClass getDurationgetDuration_aux1VoiceZipRelativeVoiceZipAbsolute VoiceZipNodePositionNotationPosition NotationNode NotationInfo addNotationMultiVoiceRelativeMultiVoiceAbsoluteMultiVoiceNode joinVoices splitVoicesMultiInstrumentRelativeMultiInstrumentAbsoluteMultiInstrumentNodeAnnotationRelativeAnnotationAbsoluteMultiAnnotationNodeAnnotationNodeAnnotClef_Octave_ChangeLineSignClef_Sign_None Clef_Sign_TABClef_Sign_Percussion Clef_Sign_C Clef_Sign_F Clef_Sign_GClef Beat_TypeBeatsTime_BTime_5Time Key_Octave Key_AlterKey_StepLocrianIonianAeolian MixolydianLydianPhrygianDorianFifthsKey_Key_2Key_1Key Divisions Attributes Music_Data_5Measureabst_Score_Partwiseabst_Music_Data abst_Note abst_Note_abst_Full_Noteabst_Full_Note_ abst_Pitch abst_Typeabst_Dotabst_Accidental split_Measuresplit_Music_Data split_Note split_Note_split_Full_Notesplit_Full_Note_ split_Pitch split_Type split_Dotsplit_Accidentalmk_Music mk_MusicDatamk_Notemk_MelodicNodemk_Pitch mk_RhythmNodeisNote isGraceNote isCueNote isNormalNote filterNote filterNotNotefilterGraceNotefilterNotGraceNote filterCueNotefilterNotCueNotefilterNormalNotefilterNotNormalNote filterNote' count_part count_measurecount_music_data count_notecount_note_gracecount_note_cuecount_note_normal mapMusicXML Measure_Style Directive Transpose Staff_Details Instruments Part_SymbolStavesTime_6 EditorialStaff InstrumentEditorial_VoiceBarline Music_Data_10 Music_Data_3 Music_Data_2Part abst_Measure abst_Durationabst_Divisionsabst_Attributesabst_Key abst_Key_ abst_Time abst_Clefmap_Score_Partwisemap_Part map_Measuremap_Music_DatatoNum_Music_Data toNum_NotetoNum_Full_NotetoNum_Attributes toNum_Key toNum_Mode toNum_Time toNum_Clef NotationsLyricBeamNoteheadStemTime_Modification Unpitched Full_Note_2CueGraceNote_2Note_1 Music_Data_13 Music_Data_12 Music_Data_11 Music_Data_9 Music_Data_8 Music_Data_7 Music_Data_6 Music_Data_4 abst_Partabst_Editorial_Voiceabst_Instrument abst_Staffabst_Editorial abst_Stavesabst_Part_Symbolabst_Instrumentsabst_Staff_Detailsabst_Transposeabst_Directiveabst_Measure_Stylerep_Score_Partwiserep_Part rep_Measurerep_Music_Datarep_Note rep_Note_ rep_Full_Noterep_Full_Note_ rep_Durationrep_Editorial_Voicerep_Instrumentrep_Typerep_Dotrep_Accidental rep_Staff rep_Editorial rep_Divisions rep_Stavesrep_Attributesrep_Keyrep_Key_rep_Timerep_Part_Symbolrep_Instrumentsrep_Clefrep_Staff_Details rep_Transpose rep_Directiverep_Measure_Style abst_Graceabst_Cueabst_Tieabst_Time_Modification abst_Stem abst_Notehead abst_Beamabst_Notationsabst_Key_Octave abst_Lyricempty_Print_Styleempty_Printoutempty_Level_Display rep_Gracerep_Cuerep_Tierep_Time_Modificationrep_Stem rep_Noteheadrep_Beam rep_Notationsrep_Key_Octave rep_Lyric Annotation Music_Data_14abst_Annotationabst_SSSrep_Annotationrep_SSS toTimewise toPartwise abst_Step abst_Alter abst_Octaveabst_Unpitched abst_Rest abst_Type_abst_Accidental_ abst_Fifths abst_Mode abst_Key_Stepabst_Key_Alter abst_Time_B abst_Beatsabst_Beat_Type abst_Sign abst_Lineabst_Clef_Octave_Change rep_Pitchrep_Step rep_Alter rep_Octave rep_Unpitchedrep_Rest rep_Type_rep_Accidental_ rep_Fifthsrep_Mode rep_Key_Step rep_Key_Alter rep_Time_B rep_Beats rep_Beat_Typerep_Signrep_Linerep_Clef_Octave_Change dur_Duration dur_Backup dur_Forward dur_Note_dur_Notedur_Attributes dur_Divisionsdur_Music_Data_map_Score_Partwise' map_Part' map_Measure'map_Music_Data' read_Numberread_IntegerNumber coread_Numbercoread_IntegerNumber getOffSet arrangeByarrangemk_Metamk_Notes mk_Durationmk_Note' mk_Accidentoutput outputDotsoutputAccidents ControlID Control_Voice Control_StaffControl_Instrumentfrom_Score_Partwise from_Part from_Measurefrom_Music_Data from_Note group_Part group_MeasuretoNotegroup_Music_Data_group_Instrument group_Voice group_Staffcmp_Instrument cmp_Voice cmp_Staffget_Instrument get_Voice get_Staffgroup_Measure'headM toMedium_toMedium toMedium'toClasstoDur abst_Note'measure2haskore part2haskorepartwise2haskoretoMidisaveMidiplayMidi playGeneric procFilter onlyPartwiseprocReification procCountprocStat procParttime procTimepart procHaskoreprocMidiprocWarn procOutput fromError procAction_ procAction procScript mk_Octave mk_Dotted mk_MusicDatas mk_MetaDatamk_Titlemk_Meterget_Meter_MusicData get_Meterget_Key_MusicDataget_Keyget_KeyN get_Key_1bget_Key_adjust get_Divisionsget_Divisions_MusicData nodeDuration Interfaceinput catMeasures uncatMeasures