Portability | non-portable |
---|---|
Stability | experimental |
Maintainer | bash@cs.uu.nl, jpm@cs.ox.ac.uk |
Safe Haskell | None |
Summary: Recognise audio chroma vectors into textual chord descriptions.
- createChordRanks :: [BeatChroma] -> [TimedData [ProbChord]]
- beatSync :: BarTimeTrackData -> [ChordinoLine] -> [BeatChroma]
- meanBeatSyncVectors :: [BeatChroma] -> [TimedData (Vector NumData)]
- mergeByOneAndThree :: [TimedData [ProbChord]] -> [TimedData [ProbChord]]
- module Numeric.LinearAlgebra
- module Numeric.GSL.Statistics
Documentation
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.
meanBeatSyncVectors :: [BeatChroma] -> [TimedData (Vector NumData)]Source
mergeByOneAndThree :: [TimedData [ProbChord]] -> [TimedData [ProbChord]]Source
Merges chord segments, adding a bias toward merging at the first
and the third Beat
module Numeric.LinearAlgebra
module Numeric.GSL.Statistics