Copyright | (c) 2022 Andrew A. Cashner |
---|---|
Stability | Experimental |
Safe Haskell | None |
Language | Haskell2010 |
Scribo.Lilypond
Description
This module is our implementation of Kircher's palimpsest phonotacticum, his
system for writing out the music created using the ark. Certain elements that
Kircher used notation to calculate (like determining vocal ranges by clef
combinations and the size of the staff) we actually do in the Cogito
module.
This module is purely focused on output of complete music information to a
music-notation language.
This module outputs to Lilypond, which could then be processed by that program to PDF, MIDI, or other formats.
This is a stub of what used to be a full Lilypond writing module (now archived in test/). We just use this for testing.
Write individual data types to Lilypond strings
pitch2ly :: Pitch -> String Source #
Write pitch as Lilypond music note.
Look up needed string values for letter name, accidental, octave tick marks,
and duration in lists based on data in given Pitch
.
If it is a Rest
, just print the rest rhythm string.
Most of these just require using an enum value as index to a list of
strings or characters. The octave requires us to calculate the number of
commas or apostrophes to add (relative to Helmholtz octave 3 = c
).