Chapter
- Preface
- Acknowledgments
- How to Use This Book
- Humdrum: A Brief Tour
What Can Humdrum Do?
The Humdrum Syntax and the Humdrum Toolkit
Humdrum Syntax
Humdrum Tools
Some Sample Commands
Reprise- Representing Music Using **kern (Part I)
Comment Records
Reference Records
Reprise- Some Initial Processing
The census Command
Simple Searches Using the grep Command
Pattern Locations Using grep -n
Counting Pattern Occurrences Using grep -c
Searching for Reference Information
The sort Command
The uniq Command
Options for the uniq Command
Reprise- Basic Pitch Translations
ISO Pitch Representation
German Tonöhe
French Solfège
Frequency
Cents
Semitones
MIDI
Scale Degree
Pitch Translations
Transposition Using the trans Command
Key Interpretations
Pitch Processing
Uses for Pitch Translations
Reprise- The Humdrum Syntax
Types of Records
Comment Records
Interpretation Records
Data Records
Data Tokens and Null Tokens
Data Sub-Tokens
Spine Paths
The Humdrum Syntax: A Formal Definition
The humdrum Command
Reprise- Representing Music Using **kern (Part II)
Grace Notes, Gruppetos and Appoggiaturas
Multiple Stops
Further Examples
Reprise- MIDI Output Tools
The **MIDI Representation
The midi Command
The perform Command
Data Scrolling During Playback
Changing Tempo
The tacet Command
The smf Command
Reprise- The Shell (I)
Shell Special Characters
File Redirection
Pipe (|)
Shell Wildcard (*)
Comment (#)
Command Delimiter (;)
Background Command (&)
Shell Command Syntax
Output Redirection
Tee
Reprise- Searching with Regular Expressions
Literals
Wild-Card
Escape Character
Repetition Operators
Context Anchors
OR Logical Operator
Character Classes
Examples of Regular Expressions
Examples of Regular Expressions in Humdrum
Basic, Extended, and Humdrum-Extended Regular Expressions
Reprise- Musical Uses of Regular Expressions
The grep Command (Again)
German, French, Italian, and Neapolitan Sixths
AND-Searches Using the xargs Command
OR-Searches Using the grep -f Command
Reprise- Melodic Intervals
Types of Melodic Intervals
Melodic Intervals Using the mint Command
Unvoiced Inner Intervals
Calculating Distance Intervals Using the mint -s Command
Simple and Compound Melodic Intervals
Diatonic Intervals, Absolute Intervals and Contour
Using the mint Command
Calculating Melodic Intervals Using the xdelta Command
Reprise- Selecting Musical Parts and Passages
Extracting Spines: The extract Command
Extraction by Interpretation
Using extract in Pipelines
Extracting Spines that Meander
Field-Trace Extracting
Extracting_Passages: The yank Command
Yanking by Marker
Yanking by Delimiters
Yanking by Section
Examples Using yank
Using yank in Pipelines
Reprise- Assembling Scores
The cat Command
The rid Command
Assembling Parts Using the assemble Command
Aligning Durations Using the timebase Command
Assembling N-tuplets
Checking an Assembled Score Using proof
Other Uses for the timebase Command
Additional Uses of assemble and timebase
Reprise- Stream Editing
The sed and humsed Commands
Simple Substitutions
Selective Elimination of Data
The stats Command
Eliminate Everything But...
Deleting Data Records
Adding Information
Multiple Substitutions
Switching Signifiers
Executing from a File
Writing to a File
Reading a File as Input
Reprise- Harmonic Intervals
Types of Harmonic Intervals
Harmonic Intervals Using the hint Command
Propagating Data Using the ditto Command
Using the ditto and hint Commands
Determining Implicit Harmonic Intervals
The ydelta Command
More Examples Using the ydelta Command
Reprise- The Shell (II)
Shell Special Characters
Shell Variables
The Shell Greve
Single Quotes, Double Quotes
Using Shell Variables
Aliases
Reprise- Creating Inventories
Filter, Sort, Count
Filtering Data with the rid Command
Inventories for Multi-spine Inputs
Sorting By Frequency of Occurrence
Counting with the wc Command
Excluding or Seeking Rare Events
Transforming and Editing Inventory Data
Further Examples
Reprise- Fingers, Footsteps and Frets
Heart Beats and Other Esoterica
The **fret Representation
Additional Features of **fret
Reprise- Musical Contexts
The context Command
Harmonic Progressions
Using context with the -b and -e Options
Using context with sed and humsed
Linking context Outputs with Inputs
Using context with the -p Option
Reprise- Strophes, Verses and Repeats
Section Labels
Expansion Lists
Using yank to Extract Sections
Using the thru Command to Expand Encodings
Alternative Versions
Section Types
Hierarchical Sections
Using the yank and thru Commands
Strophic Representations
The strophe Command
Using the strophe and thru Commands
Reprise- Searching for Patterns
The patt Command
Using patt's Tag Option
Matching Multiple Records Using the patt Command
The pattern Command
Patterns of Patterns
Reprise- Classifying
The recode Command
Classifying Intervals
Clarinet Registers
Open and Close Position Chords
Flute Fingering Transitions
Classifying with humsed
Classifying Cadences
Orchestration
Reprise- Rhythm
The **recip Representation
The dur Command
Classifying Durations
Using yank with the timebase Command
The metpos Command
Changes of Stress
Reprise- The Shell (III)
Shell Programs
Flow of Control: The if Statement
Flow of Control: The for Statement
A Script for Identifying Transgressions of Voice-Leading(1) Parts Out Of RangeReprise
(2) Augmented/Diminished Melodic Intervals
(3) Consecutive Fifths or Octaves
(4) Doubled Leading Tone
(5) Avoid Unisons
(6) Crossed Parts
(7) Parts Separated by Greater than an Octave
(8) Overlapped Parts
(9) Exposed Octaves- Similarity
The correl Command
Using a Template with correl
The simil Command
Defining Edit Penalties
The accent Command
Reprise- Moving Signifiers Between Spines
The rend Command
The cleave Command
Creating Mixed Representations
Reprise- Text and Lyrics
The **text and **silbe Representations
The text Command
The fmt Command
Rhythmic Feet in Text
Concordance
Simile
Word Painting
Emotionality
Other Types of Language Use
Reprise- Dynamics
The **dynam and **dyn Representations
The **dyn Representation
The **dB Representation
The db Command
Processing Dynamic Information
Terraced Dynamics
Dynamic Swells
MIDI Dynamics
Reprise- Differences and Similarities
Comparing Files Using cmp
Comparing Files Using diff
Comparing Inventories -- The comm Command
Reprise- MIDI Input Tools
The record Command
The encode Command
Reprise- Repertoires and Links
The find Command
Content Searching
Using find with the xargs Command
Repertoires As File Links
Reprise- The Shell (IV)
The awk Programming Language
Automatic Parsing of Input Data
Arithemtic Operations
Conditional Statements
Assigning Variables
Manipulating Character Strings
The for Loop
Reprise- Word Sounds
The **IPA Representation
Alliteration
Classifying Phonemes
Properties of Vowels
Vowel Coloration
Rhyme and Rhyme Schemes
Reprise- Serial Processing
Pitch-Class Representation
The pcset Command
Prime Form and Normal Form
Interval Vectors Using the iv Command
Segmentation Using the context Command
The reihe Command
Generating a Set Matrix
Locating and Identifying Tone-Rows
Reprise- Layers
Implied Harmony- Sound and Spectra
The **spect Representation
The SHARC Database and spect Command
The mask Command
The sdiss Command
Connecting Humdrum with Csound -- the kern2cs Command
Sound Analysis
Reprise- Electronic Music Editing
The Process of Electronic Editing
Establishing the Goal
Documenting Encoded Data
Sources
Selecting a Sample from Some Repertory
Encoding
Transposing Instruments
Instrument Identification
Leading Barlines
Ornamentation
Editing Sections
Editorialisms in the **kern Representation
Adding Reference Information
Proof-reading Materials
Data Integrity Using the VTS Checksum Record
Preparing a Distribution
Electronic Citation
Reprise- Systematic Musicology
Comparison Repertory
Randomizing
Using the scramble Command
Retrograde Controls Using the tac Command
Autophase Procedure
Reprise- Troubleshooting
Encoding Errors
Searching Tips
Pipeline Tips
Reprise- Conclusion
Pursuing a Project with Humdrum
- Bibliography
- Appendix I: Humdrum Reference Records
Authorship Information
Performance Information
Work Identification Information
Imprint Information
Copyright Information
Analytic Information
Representation Information
Electronic Citation
Further Reference Record Codes- Appendix II: Instrumentation Codes
Introduction
Voice Range
Voice Quality
String Instruments
Wind Instruments
Percussion Instruments
Keyboard Instruments- Index to Problems
- Index to Names, Works and Genres
- General Index