~-      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ non-portable  experimental W. Bas de Haas <bash@cs.uu.nl>  Safe-Inferred/Applies a function to all files in a directory DGiven the path to the Billboard collection, returns a list with the  filepaths and id'8s of the salami_chords.txt files. (The id is the parent  folder name.) JGiven a base directory pointing to the billboard location and a billboard J id, this function returns the path to that particular billboard file. If . the file does not exist, an error is thrown.  non-portable  experimental W. Bas de Haas <bash@cs.uu.nl>  Safe-Inferred%Model a time signature as a fraction LBarlines can have different weights. Among other applications, this is used % in the printing of chord sequences.  Defines the metrical weight of a bar". A regular beat has strength 0, N a bar has strength 1, a bar after 4 bars 2, a bar after 8 bars 3, and a bar  after 16 bars 4. Returns the number of tatums& in a bar which is different for time  signatures. For example: tatumsPerBar (TimeSig (3 ,4))6tatumsPerBar (TimeSig (6 ,8))6tatumsPerBar (TimeSig (12,8))12DN.B. This function is not strictly correct music-theoretically, but < it reflects how Billboard annotators used time signatures. Returns the number of BBChord that are inserted for one . , based on  a nature.      non-portable  experimental W. Bas de Haas <bash@cs.uu.nl>  Safe-Inferred5Representing typical structural segementation labels 6a catch all description for unrecognised descriptions 4a chord inserted by the posprocessing interpolation 3!Representing musical instruments 4a catch all description for  unrecognised instruments _,All annotations contain information we term _ c&denoting A .. Z and the nr of primes (') dan d6 occurs either at the start or at the end of a chord  sequence line. g Returns the _ of an d hReturns True if the d occurs at the start of a line iReturns True if the d+ annotates a structural segmentation label jReturns True if the d kReturns True if the d! represents the end of a piece. lReturns True if the d represents a repeat. mReturns True if the d% marks the start of a chord sequence nReturns True if the d# marks the end of a chord sequence o2Returns the number of repeats represented by this d . If the  d/ describes something completely different (say P)  it will return 1. ` !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno^ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmno^dfe_cba`3^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:987654210/.-,+*)('&%$#"! ihjlkmnog 210/.-,+*)('&%$#"! 3+^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:987654_cba`dfeghijklmno non-portable  experimental W. Bas de Haas <bash@cs.uu.nl>  Safe-Inferredp We wrap the  datatype into a p type,  so that we can augment it with ds and s. uARepresents other metadata of the piece, i.e. the time signature  and key root x"Represents the title of the piece y$Represents the artists of the piece zThe z9 datatype stores all information that has been extracted # from a Billboard chord annotation HA chord label with no root, shorthand or other information to represent  a none harmonic sections Returns True if the p- represents a starting point of a structural  segment Returns True if the p) represents a chord Change (must be set  beforehand, only the  stored in the p is examined) Returns True if the p is a , i.e. has not root note  and no shorthand Returns True if this p# is the last (N) chord of the song Returns True if the p has any  Annotationss and False otherwise  Takes an d( predicate and checks if it holds for a p Adds a starting point of an d _ to a p Adds an end point of an d _ to a p Adds both a start and an end d _ to a p Annotates a sequence of ps by adding a Start _ d  at the first chord and an End _ d at the last chord. The ) remainder of the list remains untouched Sets the indexes of a list of  ps (starting at 0) Sets the indexes of a list of BBChords (starting at 0) DReturns the duration of the chord (the unit of the duration can be H application dependent, but will generally be measured in eighth notes) G If the data comes directly from the parser the duration will be 1 for  all ps. However, if it has been reduced with  = the duration will be the number of consecutive tatum units. ?Strips the time stamps from BillBoardData and concatenates all BBChords ?Strips the time stamps from BillBoardData and concatenates all BBChords ? and removes the silence at the beginning and end of the song. $Returns the structural segmentation ds,  given a p Given a list of p4s that have a certain duration (i.e. the number of + beats that the chord should sound), every p is replaced by x  pAs with the same properties, but whit a duration of 1 beat, where x ! is the duration of the original p The inverse function of expandChordDur: given a list of BBChords that / all have a duration of 1 beat, all subsequent x BBChords with the same  label are grouped into one p with durations x. N.B. 'expandBBChords (reduceBBChords cs) = csalso, (expandBBChords cs) = csand, 8reduceBBChords (reduceBBChords cs) = (reduceBBChords cs)Fhold. This has been tested on the first tranch of 649 Billboard songs FReturns the reduced chord sequences, where repeated chords are merged  into one p , similar to , but then wrapped in a   type.  Similar to  the inverse of   Shows the chord sequence in the z  Shows the z/ in MIREX format, using only :maj, :min, :aug, 4 :dim, sus2, sus4, and ignoring all chord additions Shows a  p, in MIREX triadic format, using only :maj, A :min, :aug, :dim, sus2, sus4, and ignoring all chord additions 0pqrstuvwxyz{|}~&pqrstuvwxyz{|}~&z{|}~uwvpqrstyx$pqrstuwvxyz{|}~ non-portable  experimental W. Bas de Haas <bash@cs.uu.nl> NoneFA parameter that sets the acceptable beat deviation multiplier, which E controls when exceptionally long beat lengths will be interpolated. IToplevel function for parsing Billboard data files. The function returns 3 a tuple containing the result of the parsing in a z type and , a (possibly empty) list of parsing errors. 9The top-level parser for parsing the billboard data (see ). CA non-portable  experimental W. Bas de Haas <bash@cs.uu.nl> None Testing one File testing a directory of files <Tests the all beat lengths in a song and reports per song. Creates a test out of $: this test reports on every chord D whether or not the beat length is within the the allowed range of " beat length deviation, as set by . Returns True if the  of a  item lies between F the minimum (first argument) and the maximum (second argument) value Given a 8, returns a triplet containing the average beat length, D the minimum beat length and the maximum beat length, respectively. Tests whether: (expandBBChords . reduceBBChords $ cs) == cs Tests whether: (expandBBChords . reduceBBChords $ cs) == cs "Calculates the duration of a beat +Applies a test to a list of testable items        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvvwxyz{|}~billboard-parser-1.0.0.1Billboard.IOUtilsBillboard.BeatBarBillboard.AnnotationBillboard.BillboardDataBillboard.BillboardParserBillboard.Testsbbdir getBBFiles getBBFileTimeSigtimeSig BeatWeight LineStartBar16Bar8Bar4BarChangeBeat UnAligned beatWeight tatumsPerBar chordsPerDot Description UnknownAnnoInterpolationInsertVerseRepeatChordsPreIntro ModulationSegSongEndNoiseApplauseSilence TalkingEndTalkingVocalPreVerse TransitionCoda Instrumental PhraseTransEndingSecondarytheme Keychange Maintheme PrechorusFadeinFadeoutSolo InterludeBridgeOutroIntroChorus Instrument UnknownInstrKazoo Tambourine Accordion BarisaxophoneSitarHorn SteelguitarBongos Vibraphone SteelDrumStrings BassguitarAcousticguitarCello Harpsichord Hammondorgan Rhythmguitar Percussion TenorhornElectricguitarClarinetHornsTamburaOboeWhistleTenorsaxophone Pennywhistle ElectricsitarTromboneKeyboardOrgan HarmonicaPianoTrumpetDrumsFlute Saxophone SynthesizerBanjoViolinVoiceGuitarLabel ModulationAnnoInstrStruct AnnotationEndStartgetLabelisStartisStruct isUnknown isEndAnnoisRepeat isFirstChord isLastChord getRepeatsBBChord annotationsweightchordMetaKeyRootMetreTitleArtist BillboardDatagetTitle getArtist getTimeSig getKeyRootgetSong noneBBChordisStructSegStartisChange isNoneBBChordisEndhasAnnotationsaddStartaddEnd addStartEndaddLabel setChordIxsT getDuration getBBChordsgetBBChordsNoSilence getStructAnnexpandBBChordsreduceBBChordsreduceTimedBBChordsexpandTimedBBChords showFullChordshowInMIREXFormat!acceptableBeatDeviationMultiplierparseBillboard pBillboardisBillboardDirirregularMeterError $fShowTimeSig$fShowBeatWeight $fShowLabel$fShowAnnotationHarmTrace-Base-1.0.0.0HarmTrace.Base.MusicRepChord hasAnnotationHarmTrace.Base.MusicTime TimedData setChordIxsshowLine setChordIx setDuration bbChordEq mirexBBChord $fEqBBChord $fOrdBBChord $fShowBBChord DirectionBackwardForwardpHeader pMetaPrefixpTitlepArtistpMetapMetrepKeyRootpTimeSig pStructStart pStrucLabpPrimespStrucDescStartpAnno pAnnotationpTextNr pUnknownAnnopEndAnnotationspEndAnnopPhrasepRepeat pStrucDescEnd pLeadInstrpLeadInstrStart pLeadInstrEndpLeadInstrStartEndpInstr pInstrument pUnknownInstr pMetaChange pModulation pMetreChangepChordLinesPost setTiminginterpfixBothBeatDev fixForward fixBackwardfixOddLongBeats pChordLinespLine pSilenceLine pChordLinesetAnnotations pZSilencepSongEnd pChordSeqpBar pBarChords markBarStart updateRep replChord pRepChordpBBChordpMabSpc pMabSpcDsh pOptWrapPar pReadableStr pReadableSympLineEndtuplelist mainTestFile mainTestDiroddBeatLengthTest rangeTest rangeChecktestBeatDeviationMultiplier beatDurationgetMinMaxBeatLen reduceTestreduceTestVerbapplyTestToList showChordgetMinMaxBeatLen' getOffBeats