Humdrum Tools from CCARH
All tools shown on this page have been written by Craig Stuart Sapp unless otherwise indicated. Many have been written to accommodate the needs of individual Humdrum users or to implement procedures used in other research and analysis environments.
Most of the tools can be downloaded from links to the right of the descriptions in the table below.
Category | Command | Function | Download |
Graphical viewing | proll | generates a piano-roll
display of **kern input
[Sample=Corelli Op.6, No.8, Mvmt. 7] |
linux |
Harmonic analysis | chorck | checks voice-leading for rule-violations in function harmony | |
key | estimates key in a **kern files using a modified version of ??? algorithm | ||
??? | maps functional harmonic usage in a **kern file | ||
quality | generates chord-quality analysis of **kern files following Swain's hierarchical theory of harmonic rhythm | ||
Melodic analysis | ana | implements melodic analysis tools from Schaffrath and Jesser's EsAC tools [developed at the Essen Gesamthochschule für Musik (1982-94)] | |
melstep | identifies approaching and departing melodic motion in **kern files | ||
Rhythmic analysis | addtime | creates an absolute timing spine for given input file | |
attacksum | generates a rhythmic attack summary by measure (binary format) | ||
beat | analyses metrical position of each beat in current meter for each **kern line | ||
composite | generates a composite rhythmic notation for polyphonic music | ||
meter | keeps track of the meter throughout a file by printing the current meter for each **kern line | ||
minrhy | identifies the smallest common rhythmic unit which can represent all rhythmic units in the file | ||
rcheck | displays rhythmic interpretation of humdrum data (for debugging) | ||
rhylev | identifies the rhythmic level of **kern lines in the meter | ||
scordur | counts the number of beats in a humdrum file | ||
Representation, Manipulation | base12 | converts pitch information from **kern spines into a base-12 pitch representation useful for MIDI applications | |
base40 | converts pitch information from **kern spines into Hewlett's base-40 pitch representation, which preserves enharmonic-spelling information to facilitate intervallic complimentarity (as in m3 + M6 = P8) in integer arithmetic | ||
mvspine | readjusts spines in a Humdrum file in an arbitrary manner | ||
sample | samples pitches from **kern files according to a specified rhythmic pattern | ||
Data conversion tools | hum2gmn | converts **kern files to Guido Music Notation files | |
hum2xml | converts **kern files to MusicXML files | ||
hum2cmn | converts **kern files to CMN files | ||
krn2dm | converts **kern files to Sundberg's Director Musices files | ||
krn2mel | converts **kern files to Sleator and Temperley's Melisma Music Analyzer format | ||
krn2stk | converts **kern files to Cook and Scavone's Synthesis Toolkit format | ||
koto2eps | converts **koto representations to a *.eps output using Arabic numerals | ||
koto2kern | converts ** koto representation to the **kern representation | ||
rism2krn | |||
converts Plaine&Easie Code, used by RISM, in a MARC 789 field to **kern | |||
Play-back/MIDI tools | hplay | converts **kern data to MIDI in real time | |
timeplay | a variant of hplay which interprets time-data from addtime | ||
kernin | a MIDI keyboard step-editor for generating **kern data | ||
smf2 | converts **kern data into Standard MIDI files | ||
swing | creates a **time spine which "swings" the eighth-note rhythmic level in playback | ||
Non-Western music tools | |||
koto scores | ??? creates a Humdrum **koto representation | ||
??? generates a koto score from the **koto representation and returns a *.pdf or *.eps file | |||
tabla bol scores | ??? converts ASCII text code to Humdrum **bol representation | ||
??? converts **bol to SCORE PMX files |