T      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq 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 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 w x y z { | } ~                                              MIDI exporting(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe *+,9;DRTDPrimitive types with function representations from type a to type b.2Primitive types with integer list representations.-Primitive types with integer representations.DClass of types which can have a primitive representation at runtime.)The type of the primitive representation.BConvert a singleton of the type into its primitive representation.%Pretty print a singleton of the type.Mezzo type primitives(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe %&*+,DQR&Create a new constraint which is valid only if every element in the given vector satisfies every unary constraint in the given list. sCreate a new constraint which is valid only if the given value satisfies every unary constraint in the given list. Create a new constraint which is valid only if every pair of elements in the given vectors satisfy the given binary constraint. Analogue of  for constraints and vectors. Create a new constraint which is valid only if every pair of elements in the given optimised vectors satisfy the given binary constraint. Analogue of ' for constraints and optimised vectors. Create a new constraint which is valid only if every element in the given vector satisfies the given unary constraint. Analogue of  for constraints and vectors. Invalid base constraint.Valid base constraint.+Returns the minimum of two natural numbers.+Returns the maximum of two natural numbers.Equality of types.#Disjunction of type-level Booleans.#Conjunction of type-level Booleans. Negation of type-level Booleans.)Conditional expression at the type level.+Convert a simple vector to a column matrix.uFragments a vector by another vector: all the element boundaries in the second vector must also appear in the first.tFragments a matrix by a vector: all the element boundaries in the vector must also appear in the fragmented matrix.^Vertically aligns two matrices by separating elements so that the element boundaries line up.*Concatenates a type-level pair of vectors.]Vertical concatenation of type-level matrices. Places the first matrix on top of the second.dHorizontal concatenation of type-level matrices. Places the first matrix to the left of the second.A dimension-indexed matrix.?Repeat the value the specified number of times to create a new &.-Add an element to the end of a simple vector.Append two simple vectors.Append two optimised vectors.Get the length of a vector. &Get the length of an optimised vector.!2Get everything but the last element of the vector."Get the tail of the vector.##Get the last element of the vector.$)Get the first element of a simple vector.%-Get the first element of an optimised vector.&3A length-indexed vector, optimised for repetitions.)@Replicate a value the specified number of times to create a new *.*`An element of a "run-length encoded" vector, containing the value and the number of repetitions,;Singleton type for the number of repetitions of an element..Simple length-indexed vector.,  !"#$%&'()*+,-./0)  !"#$%&(')*+,-./0)./0,-*+)&'(%$#"!  &  !"#$%&'()*+,-./0 5334444(6)7+705Mezzo music types(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe$%&+,/9;DQRTfM2Lower a pitch by an octave.3Raise a pitch by an octave.4&Lower multiple pitches by an interval.,Lower all pitches in a voice by an interval.5&Raise multiple pitches by an interval.,Raise all pitches in a voice by an interval.6Lower a pitch by an interval.7Raise a pitch by an interval.87Move a pitch down by the specified number of semitones.95Move a pitch up by the specified number of semitones. Move a pitch down by a semitone.Move a pitch up by a semitone.1Calculate the width of an interval in half-steps.Decrement an interval size.Increment an interval size.-Decrease the interval size by a given number.-Increase the interval size by a given number.-Convert a natural number to an interval size.-Convert an interval size to a natural number.Decrement a pitch class.Increment a pitch class.+Decrease the pitch class by a given number.+Increase the pitch class by a given number.wConvert a natural number to a pitch class. Numbers are taken modulo 7: e.g. 8 corresponds to the pitch 8 mod 7 = 1 = D*Convert a pitch class to a natural number.Decrement an octave.Increment an octave.(Decrease the octave by the given number.(Increase the octave by the given number.&Convert a natural number to an octave.&Convert an octave to a natural number.:Enharmonic equality of pitches.;Greater than for pitches.<%Greater than or equal to for pitches.fConvert a natural number to a suitable pitch. Not a functional relation, so usage is not recommended.==Convert a pitch to a natural number (equal to its MIDI code).Expand an interval.Shrink an interval.*Make an interval from two ordered pitches.>,Make an interval from two arbitrary pitches.?The type of intervals.@RAn interval smaller than 13 semitones, where musical rules can still be enforced.AlAn interval larger than 13 semitones, which is large enough so that dissonance effects are not significant.BThe class of the interval.HThe size of the interval.QA Q( is made up of a fixed number of voices.RA R/ is made up of a sequence of pitch repetitions.S1Create a new partiture with one voice of silence.T9Create a new partiture with one voice of the given pitch.UForm a dotted duration.Halve a type-level natural.VFlatten a root.WSharpen a root.@Calculate the semitone offset of a scale degree in a given mode.XConvert a root to a pitch.-Note: the default octave for scalar roots is .YThe singleton type for Y.[The singleton type for d.]The singleton type for f_The singleton type for n.aThe root of a chord.b#A pitch constructs a diatonic root.c2A key and a scale degree constructs a scalar root.dThe of a scale, chord or piece.fThe seven scale degrees.n"The mode of a key: major or minor.qThe singleton type for pitches.sThe type of pitches.t>A pitch made up of a pitch class, an accidental and an octave.uSilence, the pitch of rests.vThe singleton type for ~.xThe singleton type for P.zThe singleton type for .|The singleton type for .~8The duration of the note (a whole note has duration 32).5The octave where the note resides (middle C is Oct4).!The accidental applied to a note.%The diatonic pitch class of the note.123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~e123456789:;<=>?@ABECDFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefkghijlmnopqrstuvwxyz{|}~e~|}z{xyvwstuqr:<;nopfghijklmdeabc_`]^[\YZX=WVUTSRQHIJKLMNOPBCDEFG?@A>987654321l123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ;3<3Models of harmonic motion(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe +,9;<=DCEnsures that oblique motion is permitted between the two intervals.DEnsures that contrary motion is permitted between the two intervals.BEnsures that direct motion is permitted between the two intervals.Classifies dissonant intervals:.Perfect fourth (by common practice convention)"Augmented and diminished intervalsSecond and seventh intervals)Classifies imperfect consonant intervals:Major and minor thirdsMajor and minor sixths'Classifies perfect consonant intervals:Perfect unisonsPerfect fifthsPerfect octavesModels of chords(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe%&+,9;DQRTfPConvert a chord to a partiture with the given length (one voice for each pitch).1Convert a chord to a list of constituent pitches.FBuild a list of pitches with the given intervals starting from a root.Invert a doubled triad chord.(Apply an inversion to a list of pitches.SConvert a seventh chord type to a list of intervals between the individual pitches.KConvert a triad type to a list of intervals between the individual pitches.-A chord type, indexed by the number of notes.The singleton type for .The singleton type for .The singleton type for .The inversion of a chord.The type of a seventh chord.The type of a triad.8  $  Models of functional harmony(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe%&+,9:;<=DQR( Convert a degree to text. Convert a quality to text.Convert a piece to chords. Convert a phrase to chords. Convert a subdominant to chords.Convert a dominant to chords.Convert a tonic to chords.Convert a cadence to chords.*Convert a quality to a seventh chord type."Convert a scale degree to a chord. A subdominant chord progression.Minor second subdominant.Major fourth subdominant.0Minor third followed by major fourth subdominantMinor fourth dominant.A dominant chord progression. Major fifth dominant. $Seventh chord fifth degree dominant. #Diminished seventh degree dominant. !Subdominant followed by dominant. (Secondary dominant followed by dominant.A tonic chord.A major tonic chord.A minor tonic chord.3A cadence in a specific key with a specific length.)Authentic cadence with major fifth chord.4Authentic cadence with dominant seventh fifth chord.0Authentic cadence with diminished seventh chord.,Authentic cadence with a cadential 6-4 chord-Half cadence ending with a major fifth chord.3Deceptive cadence from a dominant fifth to a sixth.4A phrase matching a specific functional progression.#A tonic-dominant-tonic progression.A dominant-tonic progression.EA functionally described piece of music, built from multiple phrases.;Ensure that the degree and quality are valid in minor mode.;Ensure that the degree and quality are valid in major mode.2Ensure that the degree and quality match the mode.NA scale degree chord in given key, on the given scale, with the given quality. $The quality of a scale degree chord.J         !"#$%&'()*+,-./0123456789:;<=>#      !"#$# !"#$     0         !"#$%&'()*+,-./0123456789:;<=>Mezzo music algebra(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe%&*+,9:;<=DOQRT[Ensures that two voices form pairwise intervals which follow the rules of harmonic motion.WEnsures that two partitures follow the rules of motion when horizontally concatenated.OTwo horizontally concatenated partitures follow the rules of harmonic motion ifboth are empty ortheir lower voices can be concatenated and the joining elements of the top voice form intervals with the joining elements of the other voices which follow the rules of harmonic motion.Ensures that the interval formed by the first pitch and the last element of the first voice can move to the interval formed by the second pitch and the first element of the second voice.nEnsures that four pitches (representing two consequent intervals) follow the rules for valid harmonic motion.#Harmonic motion is not permitted ifqit is direct motion into a perfect interval (this covers parallel and concealed fifths, octaves and unisons).;Ensures that two partitures can be vertically concatenated.0Two partitures can be vertically concatenated ifthe top one is empty orall but the first voice can be concatenated, and the first voice forms valid harmonic dyads with every other voice and follows the rules of valid harmonic motion.;Ensures that two voices form pairwise valid harmonic dyads.=Ensures that two pitches form valid harmonic dyad (interval).(Two pitches form valid harmonic dyads if5at least one of them is silent (i.e. it is a rest) or$they form a valid harmonic interval.*Ensures that harmonic intervals are valid.'A harmonic interval is invalid if it isa minor second ora major seventh oran augmented octave. =Ensures that two partitures can be horizontally concatenated.2Two part lists can be horizontally concatenated ifboth of them are empty or"all of the voices can be appended.!(Ensures that two voices can be appended.Two voices can be appended if at least one of them is empty orlthe last pitch of the first vector forms a valid melodic leap with the first pitch of the second vector."2Ensures that two pitches form valid melodic leaps.'Two pitches form valid melodic leaps if5at least one of them is silent (i.e. it is a rest) or#they form a valid melodic interval.#)Ensures that melodic intervals are valid.&A melodic interval is invalid if it isany augmented interval orany diminished interval orany seventh interval.$$Ensures that a progression is valid.? Ensures that the chord is valid.@=Ensures that two pieces of music can be composed in parallel.A>Ensures that two pieces of music can be composed sequentially.%Ensures that the rest is valid.&Ensures that the note is valid.'7Applies the constraint c if strict checking is enabled.(-Enable or disable music correctness checking.B;A chord progression with the given scheme and chord length.CA type encapsulating every E composition.EoA piece of music consisting of parallel and sequential composition of notes and rests, subject to constraints.#Currently enforced constraints are:LHeight (number of voices) of two sequentially composed pieces must be equal.QWidth (number of temporal units) of two parallelly composed pieces must be equal.TSequentially composed voices cannot have any augmented, diminished or seventh leaps.\Parallelly composed pieces cannot have any minor second or major seventh harmonic intervals.HMusic must not contain parallel or concealed unisons, fifths or octaves.F+A note specified by a pitch and a duration.GA rest specified by a duration.H+Sequential or melodic composition of music.I*Parallel or harmonic composition of music.J1A chord specified by a chord type and a duration.)Pretty-print a E value.*3Convert a showable value into a pretty-printed box.B !"#$?@A%&'(BCDEFGHIJ)*KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm ?@ABCDEHIFGJ EFGHIJCDBA@?< !"#$?@A%&'(BCDEFGHIJ)*KLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmH4I4Mezzo music model(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe1=QRSTUVWXYZ[\]^_`abcdefkghijlmnopqrstuvwxyz{|}~      !"#$?@ABCDEHIFGJMIDI exporting(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNone%&+,D+A sequence of MIDI events.,5A MIDI event: a MIDI message at a specific timestamp.-(A MIDI representation of a musical note..'MIDI number of a note (middle C is 60)./!Performance velocity of the note.0 Relative start time of the note.1Duration of the note.2BPlay a MIDI note with the specified duration and default velocity.3Start playing the specified -.4Stop playing the specified -.5Play the specified -.6&Play a rest of the specified duration.7Merge two parallel MIDI tracks.8 Convert a v to 9.: A basic skeleton of a MIDI file.n Convert a E piece into a +.;5Create a MIDI file with the specified name and track.o;Create a MIDI file with the specified path and composition.+,-<./012=345678:n;onoon+,-<./012=345678:n;oMezzo exporting module(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNoneno  Music builder(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe %&+,ADOTqChord terminator.sNote terminator.t<Converter from roots to chords, using the default inversion.uConverter from roots to chords.vChord mutator.w Root mutator.xChord specifier.yRest specifier.zRoot specifier.{PFlexible mutator: mutator that allows slight changes in the type (otherwise use ).|RMutator with argument: mutates a value of type t, consuming an argument of type a.}jConverter with argument: converts a value of type s to a value of type t, consuming an argument of type a.~OTerminator: finishes building a value of type t and returns a result of type r.#Mutator: mutates a value of type t.;Converter: converts a value of type s to a value of type t.DSpecifier: specifies a value of some type which starts the building.,Returns a new specifier for the given value.KA converter that ignores its argument and returns the given constant value.>A mutator that does nothing.'qrstuvwxyz{|}~>?@ABCDEFGHIJKLMNOPQqrstuvwxyz{|}~~}|{zyxwvtusrq'qrstuvwxyz{|}~>?@ABCDEFGHIJKLMNOPQ  Common types(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableSafe%&+,9:;<=DOQRT USingle-voice melody: gives an easy way to input notes and rests of different lengths.uStart a new melody. If the first note duration is not specified ('(:|)' is used), the default duration is a quarter.6Add a note with the same duration as the previous one.Add a thirty-second note.Add a sixteenth note.Add an eighth note.Add a quarter note.Add a half note.Add a whole note.Add a dotted sixteenth note.Add a dotted eighth note.Add a dotted quarter note.Add a dotted half note.Add a dotted whole note.6Add a rest with the same duration as the previous one.Add a thirty-second rest.Add a sixteenth rest.Add an eighth rest.Add a quarter rest.Add a half rest.Add a whole rest.Add a dotted sixteenth rest.Add a dotted eighth rest.Add a dotted quarter rest.Add a dotted half rest.Add a dotted whole rest.Thirty-second note duration.Sixteenth note duration.Eighth note duration.Quarter note duration.Half note duration.Whole note duration.   555555555555555555555555  TH templates(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNone$+,DTRiType synonym for a formatter, that specifies how a data constructor name is diplayed as a literal value.*Generate pitch class literal declarations.)Generate accidental literal declarations.%Generate octave literal declarations.+Generate scale degree literal declarations.#Generate mode literal declarations.)Generate triad type literal declarations.+Generate seventh type literal declarations.StMake a literal value declaration for a singleton with the given format string, singleton name and data constructor.MGenerate concrete pitch literals for each pitch class, accidental and octave.Generate pitch root specifiers for earch pitch class, accidental and octave. These allow for combinatorial input with CPS-style durations and modifiers.>Generate converters from roots to triads, for each triad type.HGenerate converters from roots to seventh chords, for each seventh type.NGenerate converters from roots to doubled seventh chords, for each triad type.T formatter.U formatter.V formatter.W$One letter accidental with explicit Naturals.X$One letter accidental with implicit Naturals.Y#Symbolic suffix format for octaves.Z Formatter for duration literals.[Formatter for pitch literals.\Formatter for scale degrees.]Formatter for key modes.^Formatter for chords types._Formatter for inversions.`$Get the data constructors of a type.acMap a function generating declarations from a data constructor to all data constructors of a type. RSTUVWXYZ[\]^_`ab RSTUVWXYZ[\]^_`ab Basic composition units(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNone %&+,:DOTf?Create a new pitch with the given class, accidental and octave.1Value representing silence, the "pitch" of rests.Raise a pitch by a semitone.Lower a pitch by a semitone.Create a new root from a pitch.0Create a new root from a key and a scale degree.+Create a new note from a root and duration.Create a rest from a duration.      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!      ~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!            !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Music combinators(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNone%&+,9:;DOQRTf%Get the duration of a piece of music.!Convert a duration to an integer.-Get the numeric duration of a piece of music.-Get the number of voices in a piece of music.c?Get the number of voices in a chord. Thanks to Michael B. Gale)Add an empty voice to the piece of music.+Add two empty voices to the piece of music.-Add three empty voices to the piece of music.,Add four empty voices to the piece of music./Rest for the duration of the given music piece.4Convert a melody (a sequence of notes and rests) to E.d7Make a note of suitable duration from a root specifier.e7Make a rest of suitable duration from a rest specifier."Alias for the start of the melody.f*Get the duration of the notes in a melody.cdef  cdefHarmonic composition units(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNone%&+,:DOTf9Create a new key from a pitch class, accidental and mode.:Create a triad from a root, a triad type and an inversion.BCreate a seventh chord from a root, a triad type and an inversion.5555 Mezzo music description language(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNoneaqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Mezzo core module(c) Dima SzamozvancevMITds709@cam.ac.uk experimentalportableNonekQREHIFGJnoqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~g !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkllmmnnoopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstu 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 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 w x y z { | } ~                                                       !"#$%&'()*+,-./0123456789:;<=>?@ABCD4E 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 no$mezzo-0.2.0.2-DnIhjBbkaNw1SPtYvYdJreMezzo.Model.ReifyMezzo.Model.PrimMezzo.Model.TypesMezzo.Model.Harmony.MotionMezzo.Model.Harmony.ChordsMezzo.Model.Harmony.FunctionalMezzo.Model.MusicMezzo.Render.MIDIMezzo.Compose.BuilderMezzo.Compose.TypesMezzo.Compose.TemplatesMezzo.Compose.BasicMezzo.Compose.CombineMezzo.Compose.Harmonic Mezzo.Model Mezzo.Render Mezzo.ComposeMezzoFunRep IntListRepIntRep PrimitiveRepprimpretty $fShowsing AllSatisfyAll SatisfiesAllAllPairsSatisfy'AllPairsSatisfy AllSatisfyInvalidValidMinNMaxN.~..||..&&.NotIfVectorToColMatrixAlign+-++|+Matrix+*+:-|++.++Length'LengthInit'Tail'LastHead'Head OptVectorEnd:-**Elem:*TimesTVectorNone:-- RaiseAllByOct LowerByOct RaiseByOct LowerAllBy' RaiseAllBy'LowerByRaiseByHalfStepsDownBy HalfStepsUpBy=?=<:>>:<<.:<.:^.:>.:>>.:~|:~<<<:~<<:~<:~^:~>:~>>:~<<.:~<.:~^.:~>.:~>>. ThirtySecond SixteenthEighthQuarterHalfWholepitchClassLitsaccidentalLits octaveLitsscaleDegreeLitsmodeLits triTyLits sevTyLitsinvLits mkPitchLits mkDurLits mk32ndLits mkPitchSpecs mkTriConvs mkSevConvsmkDoubledConvs_b_a_g_f_e_d_c_sh_fl_na_o8_o7_o6_o5_o4_o3_o2_o1_o0_o_1_thtntrtc_wh_wh'wnwn'wrwr'wcwc'_ha_ha'hnhn'hrhr'hchc'_qu_qu'qnqn'qrqr'qcqc'_ei_ei'enen'erer'ecec'_si_si'snsn'srsr'scsc'pitchsilence_bs'4_bs'3_bs''_bs'_bs_bs__bs___bs_3_bs_4_bs_5_bf'4_bf'3_bf''_bf'_bf_bf__bf___bf_3_bf_4_bf_5_bn'4_bn'3_bn''_bn'_bn_bn__bn___bn_3_bn_4_bn_5_as'4_as'3_as''_as'_as_as__as___as_3_as_4_as_5_af'4_af'3_af''_af'_af_af__af___af_3_af_4_af_5_an'4_an'3_an''_an'_an_an__an___an_3_an_4_an_5_gs'4_gs'3_gs''_gs'_gs_gs__gs___gs_3_gs_4_gs_5_gf'4_gf'3_gf''_gf'_gf_gf__gf___gf_3_gf_4_gf_5_gn'4_gn'3_gn''_gn'_gn_gn__gn___gn_3_gn_4_gn_5_fs'4_fs'3_fs''_fs'_fs_fs__fs___fs_3_fs_4_fs_5_ff'4_ff'3_ff''_ff'_ff_ff__ff___ff_3_ff_4_ff_5_fn'4_fn'3_fn''_fn'_fn_fn__fn___fn_3_fn_4_fn_5_es'4_es'3_es''_es'_es_es__es___es_3_es_4_es_5_ef'4_ef'3_ef''_ef'_ef_ef__ef___ef_3_ef_4_ef_5_en'4_en'3_en''_en'_en_en__en___en_3_en_4_en_5_ds'4_ds'3_ds''_ds'_ds_ds__ds___ds_3_ds_4_ds_5_df'4_df'3_df''_df'_df_df__df___df_3_df_4_df_5_dn'4_dn'3_dn''_dn'_dn_dn__dn___dn_3_dn_4_dn_5_cs'4_cs'3_cs''_cs'_cs_cs__cs___cs_3_cs_4_cs_5_cf'4_cf'3_cf''_cf'_cf_cf__cf___cf_3_cf_4_cf_5_cn'4_cn'3_cn''_cn'_cn_cn__cn___cn_3_cn_4_cn_5bs'4bs'3bs''bs'bsbs_bs__bs_3bs_4bs_5bf'4bf'3bf''bf'bfbf_bf__bf_3bf_4bf_5b'4b'3b''b'bb_b__b_3b_4b_5as'4as'3as''as'asas_as__as_3as_4as_5af'4af'3af''af'afaf_af__af_3af_4af_5a'4a'3a''a'aa_a__a_3a_4a_5gs'4gs'3gs''gs'gsgs_gs__gs_3gs_4gs_5gf'4gf'3gf''gf'gfgf_gf__gf_3gf_4gf_5g'4g'3g''g'gg_g__g_3g_4g_5fs'4fs'3fs''fs'fsfs_fs__fs_3fs_4fs_5ff'4ff'3ff''ff'ffff_ff__ff_3ff_4ff_5f'4f'3f''f'ff_f__f_3f_4f_5es'4es'3es''es'eses_es__es_3es_4es_5ef'4ef'3ef''ef'efef_ef__ef_3ef_4ef_5e'4e'3e''e'ee_e__e_3e_4e_5ds'4ds'3ds''ds'dsds_ds__ds_3ds_4ds_5df'4df'3df''df'dfdf_df__df_3df_4df_5d'4d'3d''d'dd_d__d_3d_4d_5cs'4cs'3cs''cs'cscs_cs__cs_3cs_4cs_5cf'4cf'3cf''cf'cfcf_cf__cf_3cf_4cf_5c'4c'3c''c'cc_c__c_3c_4c_5rsharpflatrootProotSnotePnoteSrestmusicDurdurToIntdurationvoicespadpad2pad3pad4 restWhileplaymelody_vii_vi_v_iv_iii_ii_iminModemajMode_dim_aug_min_maj_dim7_hdim7_min7_dom7_maj7_dbli3i2i1i0keytriadseventhdim'dimaug'augmin'minmaj'majdim7'dim7hdim7'hdim7min7'min7dom7'dom7maj7'maj7dimD'dimDaugD'augDminD'minDmajD'majDinvbaseGHC.ListzipWithGHC.BasemapFragmentVecByVecFragmentMatByVec ConcatPair LowerAllBy RaiseAllBy HalfStepDown HalfStepUp IntervalWidth IntSizePred IntSizeSuccDecreaseIntSizeIncreaseIntSize NatToIntSize IntSizeToNat ClassPred ClassSucc DecreaseClass IncreaseClass NatToClass ClassToNatOctPredOctSuccDecreaseOctaveIncreaseOctaveNatToOctOctToNat NatToPitchExpandShrinkMakeIntervalOrdHalfOf DegreeOffsetChordToPitchList BuildOnRoot InvertDoubledInvertSeventhTypeToIntervalsTriadTypeToIntervalsInvSuccinvChordShowDegShowQualPhraseToChordsSubdomToChords DomToChords TonToChords CadToChords QualToType DegToChord MinDegQuality MajDegQualityDiatonicDegreeNotInv2ValidHarmMotionInVectorsValidMelMatrixMotionValidMelPitchVectorMotion ValidMotionValidHarmConcatValidHarmDyadsInVectors ValidHarmDyadValidHarmIntervalValidMelConcatValidMelAppend ValidMelLeapValidMelIntervalProgressionConstraintsRestConstraintsNoteConstraintsIfStrictStrictppMusicdoc MidiTrack MidiEventMidiNotenoteNumvelstartnoteDurmidiNotekeyDownkeyUpplayNoteplayRest>< durToTicks"HCodecs-0.5-EIQfaIzDOdXA4IlcaMdTB1 Codec.MidiTicks midiSkeleton createMidimidiRestnopinctoStringexsmilesayaddand'todisplayresultcomputepluspleasepercentof'stackpushpopend Formatter mkSingLit pcFormatter accFormatter octFormattershortAccFormattershorterAccFormattershortOctFormatterdurLitFormatterpitchLitFormatterscaDegFormatter modeFormatterchoTyFormatter invFormatter getDataCons mapToDataCons genLitDecs chordVoices mkMelNote mkMelRestmelDur