humdrumR includes a number of intertwined data structures, and associated functions, for representing and manipulating musical pitch information.
Tonality
There are four data types extensively used in humdrumR
to encode/process tonal musical information:
integers --- used to encode "line-of-fifths" tonal information
tonalInterval --- embeds line-of-fifth tonal integers alongside octave and cent information to encode most tonal pitch representations (solfege, intervals, letternames, etc.)
diatonicSet --- combines line-of-fifth tonal integer representations to represent diatonic tonality, including alterations of basic diatonic scale(s).
tertianSet --- an extension of
diatonicSet
used to encode tertian diatonic harmonies.
Users will rarely need to engage with these data types.
Rather, users will work with humdrum data where pitch information is encoded in strings, and wish to manipulate and analyze such data.
The most widely used humdrumR
tools are your pitch conversion/manipulation functions, including kern()
,
and functions like invert()
and transpose()
.
These functions make use of sophisticated, and flexible pitch parsing and deparsing functions,
which are the bridge between the "core" pitch representations listed above and real-world humdrum data.