Harmony Analysis and Retrieval of Music http://www.cs.uu.nl/wiki/GenericProgramming/HarmTrace
|Latest on Hackage:||2.2.0|
This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow stackage.org to host generated Haddocks.
Representations of Abstract Chords Entities) is a system for automatic harmony
analysis of music. It takes a sequence of chords as input and produces a harmony
analysis, which can be visualised as a tree.
Music theory has been essential in composing and performing music for centuries.
Within Western tonal music, from the early Baroque on to modern-day jazz and pop
music, the function of chords within a chord sequence can be explained by
harmony theory. Although Western tonal harmony theory is a thoroughly studied
area, formalising this theory is a hard problem.
With HarmTrace we have developed a formalisation of the rules of tonal harmony
as a Haskell (generalized) algebraic datatype. Given a sequence of chord labels,
the harmonic function of a chord in its tonal context is automatically derived.
For this, we use several advanced functional programming techniques, such as
type-level computations, datatype-generic programming, and error-correcting
parsers. Our functional model of harmony offers various benefits: it can be used
to define harmonic similarity measures and facilitate music retrieval, or it can
help musicologists in batch-analysing large corpora of digitised scores, for
More information about HarmTrace, including how to use and example output, is
available on its webpage: http://www.cs.uu.nl/wiki/GenericProgramming/HarmTrace