Thursday, November 13, 2008

Bala and HNotate

Copperbox revision 325.

Some work on an interface between Haskore and HNotate and some work on my own embedded music DSL.

The attempts I've made at interfacing Haskore and HNotate have been tough going. Haskore models a lot of musical structure through functions - for example there is no chord datatype, chords are made by folding the parallel composition operator (:=:). While this does make Haskore pleasantly uniform both users and its developers, it does make it hard work for me to 'recover' musical structure in the interface to HNotate. Chords themselves aren't particularly hard to recover but its hard to turn trills into grace notes (I would probably have to scan the event list for notes with irregular durations). Similarly an instrument can change mid score, whereas HNotate represents different instruments as separate lines within a system.

As I found the last days work on a Haskore / HNotate interface so tough, I've restarted work on an embedded music DSL within Bala. Unlike Haskore, I'm using datatypes to store quite a bit of structural information - for instance I have bars, chords and two types of grace notes. Also I'm using Data.Sequence like I did HNotate, Data.Sequence has the particularly attractive property that its easy to add to the right, but traverse from the left.

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.