arca- A digital implementation of Athanasius Kircher's device for automatic music composition, the Arca musarithmica of 1650

Copyright(c) 2022 Andrew A. Cashner
Safe HaskellNone




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).