Saturday, September 6, 2008

HNotate

Copperbox revision 248.

Significant improvements to the LilyPond and Abc rendering.

Bulgarian6 now outputs valid LilyPond producing the same score as the hand coded version. The Abc output still has some flaws - one is that accidentals are printed when they shouldn't be. Another obvious one is that the beaming is wrong, I'm not sure how to get round this - maybe beaming information will need to be supplied in the input note lists.

There are some other problems for both Abc and LilyPond - principally that the generated output is not as nice as it could be making it hard to read. Both formats should only render a fixed number of measures on one line (possibly just one) and LilyPond should output barlines even though they aren't necessary.

Thursday, September 4, 2008

HNotate

Copperbox revision 247.

I've improved the Abc island parser and the test template now parses correctly.

HNotate

Copperbox revision 246.

Abc output has been re-instated although like LilyPond output it isn't working correctly yet.

HNotate

Copperbox revision 245.

More reworking on the HNotate code. I've changed the some of the data types (and their names) now that HNotate doesn't try to represent full scores[1]. The Trees.hs example now runs but generates errors in the LilyPond output, clearly I've still a lot do do for LilyPond, alongside restoring Midi and Abc output.

[1] Scores are defined in the LilyPond template files HNotate just injects note lists into the template holes.

HNotate

Copperbox revision 244.

I've added a new example Scales.hs. Its a very simple one - I added it to have something else working before I put some effort into getting Trees.hs to work again (which is more complicated).

Wednesday, September 3, 2008

HNotate

Copperbox revisions 242 & 243.

Major restructure of HNotate - with revision 242 I deleted both the HNotate and HNotateAlt directories. With revision 243 I added the latest HNotate code which has is the HNotateAlt code but has substantially different file structure.

The LilyPond 'bulgarian6' example in HNotate/Examples runs, which is promising but there are an awful lot of hacks to make it work. A lot of the data structures have been changed to work with new template based generation scheme, but they really need rethinking.

Monday, September 1, 2008

HNotate

Copperbox revision 241.

HNotate alt - I've added extracting parsers for LilyPond and Abc.

Extracting parsers are island parsers that parse a file and extract some facts but leave much of the content uninterpreted. As they are much simpler than a full parser, hopefully they will always succeed rather than throw a parse error.

My current thinking is that output from HNotate should be limited to just note sequences (after all the input is a just a note list). Larger structure - multiple staffs, headers, and the like - should be specified in LilyPond or Abc files where it can be done more conveniently. Meta-comments in the LilyPond or Abc files can indicate template holes where HNotate will output note sequences.

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.