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