Features

Features

The spines available to search and reference in a pattern.

Every chorale is analyzed once when it's loaded, producing several parallel Humdrum spines. Each spine is a feature you can use as the driving feature or reference from any pattern position:

FeatureDescriptionDriving feature
kernThe notes themselves (rhythm + pitch)yes
degScale degree relative to the local keyyes
mintMelodic interval from the previous noteyes
fbFigured-bass harmony above the bassyes
metweightMetric weight / beat strength ("strong"/"half-strong"/"weak"/"unclassified")yes
hint-<pair>Harmonic interval between one specific pair of voicesyes
durationRhythmic value (Humdrum recip, tied notes combined, e.g. "4", "8")no
fermataWhether the note carries a fermata ("true"/"false")no
phraseWhether the note opens ("start") or ends ("end") a phraseno

duration, fermata and phrase are read directly off the underlying **kern token for whichever line a driving-feature onset lands on. They aren't independent spines, so they can only appear as extra constraints inside a pattern position (see Checking several features at once), never as feature itself.

Phrases are delimited by fermatas. "end" is the note that carries a fermata, and "start" is the first sounding note after a fermata, so a rest in between is skipped. The first sounding note of a voice counts as a start too, because it opens the first phrase. A note in the middle of a phrase is neither, so it is asked for with a negation: { "!phrase": ["start", "end"] }.

Each spine-backed feature has its own page with the exact token format and how to write pattern values against it. hint works a bit differently from the others: there isn't a single hint spine, but one per voice pair (hint-12, hint-13, … hint-34), plus a hint-<voice> shorthand; see its own page for the key naming rules.