Sunday, September 14, 2008

HNotate

Copperbox revision 255.

Major changes to the internal note list representation and the EventList interface.

The external event list and internal note list were previously parametric - the internal note list ScNoteList which is really a tree that could have the type of its leaves changed (as Abc glyphs seemed different to LilyPond ones). The external event list was parametric through the type class Event - anything that implemented Event could be rendered.

I've now changed this - the new version is more like the pretty printing libraries PPrint and Text.PrettyPrint.HughesPJ. There is a simple internal format (ScNoteList) plus a functional interface to build it (note, chord, gracenotes etc).

Unfortunately some of the new code is quite messy and not all of the examples that used to work still do (the LilyPond Bulgarian6 example works properly). While the changes have simplified HNotate's internals, there is more work to do to unify the traversals and add metrical grouping so that notes that should be beamed will get beamed.

Blog Archive

About Me

My photo
Disambiguating biog as there are a few Stephen Tetley's in the world. I'm neither a cage fighter or yachtsman. I studied Fine Art in the nineties (foundation Bradford 1992, degree Cheltenham 1992 - 95) then Computing part-time at Leeds Met graduating in 2003. I'm the Stephen Tetley on Haskell Cafe and Stackoverflow.