HarmTrace-2.2.0: Harmony Analysis and Retrieval of Music

Maintainerbash@cs.uu.nl, jpm@cs.ox.ac.uk
Safe HaskellNone



Summary: Recognise audio chroma vectors into textual chord descriptions.



createChordRanks :: [BeatChroma] -> [TimedData [ProbChord]]Source

Having a matrix of beat-synchronised bass and treble chromagrams and a chord dictionary, the probability of a chord sounding at a particular beat is estimated by calculating the Euclidean distance between the chord structures and the chroma feature. These distances are calculated for every chord candidate at every beat. Next, we sort the chord candidates by descending Euclidean distance. To obtain a relative measure of the fit between a chord candidate and the chroma vector in the range [0,1], the distances are normalised by dividing them by distance of the best matching chord candidate.

beatSync :: BarTimeTrackData -> [ChordinoLine] -> [BeatChroma]Source

Synchronises the ChordinoData with the list of beats by grouping the ChordinoLines of the ChordinoData in separate lists.

mergeByOneAndThree :: [TimedData [ProbChord]] -> [TimedData [ProbChord]]Source

Merges chord segments, adding a bias toward merging at the first and the third Beat