Copperbox revision 389.
Added Consts.hsc which all the incorporates all the enums in the OpenVG standard.
Wednesday, December 31, 2008
Sunday, December 28, 2008
OpenVG and ZParse
Copperbox revision 388.
I'm taking a break for HNotate for a bit. I've worked out how to simplify the document building code (principally the TemplateDatatypes module), but that means redoing the parsers again so they handle island parsing better (and don't build the parse tree with continuations). I got rather frustrated with Parsec's lexer handling - not that it isn't capable just that I was probably trying to solve my problem in the wrong way - so I started another parser combinator library ZParse. Applicative and Alternative now encompass much of the work need for basic parsing, so writing the usual combinators was easy, but handling tokens is tricky so maybe I'll go back to Parsec.
For a change I've started on a Haskell binding to OpenVG - the vector graphics API. I've spent the whole day defining constants and I've still got half of the marshallers to do, never mind unmarshalling. As this is a baby step compared to the involved stuff of calling functions through the FFI, it looks like the binding will be a much bigger job than I thought.
I'm taking a break for HNotate for a bit. I've worked out how to simplify the document building code (principally the TemplateDatatypes module), but that means redoing the parsers again so they handle island parsing better (and don't build the parse tree with continuations). I got rather frustrated with Parsec's lexer handling - not that it isn't capable just that I was probably trying to solve my problem in the wrong way - so I started another parser combinator library ZParse. Applicative and Alternative now encompass much of the work need for basic parsing, so writing the usual combinators was easy, but handling tokens is tricky so maybe I'll go back to Parsec.
For a change I've started on a Haskell binding to OpenVG - the vector graphics API. I've spent the whole day defining constants and I've still got half of the marshallers to do, never mind unmarshalling. As this is a baby step compared to the involved stuff of calling functions through the FFI, it looks like the binding will be a much bigger job than I thought.
Tuesday, December 23, 2008
HNotate, Bala and TabApp
Copperbox revision 385.
HNotate - I've changed the debug interface to have just DebugOn or DebugOff rather than levels. The early versions of the BuildNoteList module were so complicated that I needed a large amount of logging just to check they were working. Now with the Fits module and segmenting functions, I'm much more confident in BuildNoteList so no longer need so to deal with so much logging.
Changes have been cascaded to Bala and TabApp as HNotate's interface has changed.
HNotate - I've changed the debug interface to have just DebugOn or DebugOff rather than levels. The early versions of the BuildNoteList module were so complicated that I needed a large amount of logging just to check they were working. Now with the Fits module and segmenting functions, I'm much more confident in BuildNoteList so no longer need so to deal with so much logging.
Changes have been cascaded to Bala and TabApp as HNotate's interface has changed.
Monday, December 22, 2008
HNotate
Copperbox revision 384.
I've associated AnnoEval with a named element within a system, rather than a single global AnnoEval. This means that we can have different annotation schemes within the same output document. The StringNumberScale example takes advantage of this to output both staff and tab notation.
I've associated AnnoEval with a named element within a system, rather than a single global AnnoEval. This means that we can have different annotation schemes within the same output document. The StringNumberScale example takes advantage of this to output both staff and tab notation.
HNotate
Copperbox revision 383.
Added a worked example of annotation - string numbering for LilyPond output. Also I've implemented a proper defaultMeterPattern function, that calculates a meter pattern for a given time signature. Previously this function was a stub.
Added a worked example of annotation - string numbering for LilyPond output. Also I've implemented a proper defaultMeterPattern function, that calculates a meter pattern for a given time signature. Previously this function was a stub.
Subscribe to:
Posts (Atom)
Blog Archive
About Me
- Stephen Tetley
- 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.