⌂ Creating a Schenker Graph
The music theorist Heinrich Schenker created a method of analysing tonal music using, what are now known as Schenker graphs or diagrams. These use normal
musical notation in non-standard ways.
Major problems creating a Schenker graph with lilypond are:
- Precise alignment of notes between staves needed,
- Note heads, stems, beams etc are used to notate musical structure not rhythm,
- A note head may have more than one stem or none,
- Slurs may be nested arbitrarily and can connect to both left and right of the same note head,
- Harmonic connection lines may be drawn between staves.
Solutions:
- By default all notes are eight notes and the (invisible) time signature is 1/8. A
missing
note head is implemented as a transparent note rather than a skip.
- Most grobs are, by default, invisible. Each staff is structured as a series of
layers
, implemented as voices, containing all the notes, NoteCollision #'merge-differently-headed is set to true. Note heads are only visible in the notes
voice, note heads are determined by setting NoteHead #'duration-log.
- Harmonic connections are implemented by a note followers in separate
layers
.