Saturday, October 13, 2012

majalan

Copperbox revision 2863.

I've added an introspective TimeSpan to the event list monad (where TimeSpan works like a bounding box). This allows events to depend on the time span of previous event - e.g. setting up a delay processor to work on another instrument.

Wednesday, October 10, 2012

majalan

Copperbox revision 2862.

I've added more Behavior combinators and defined more class instances for Behavior following the example in Paul Hudak's SOE.

Tuesday, October 9, 2012

majalan

Copperbox revision 2861.

I've added behaviours in the style of Paul Hudak's FAL (and thus Conal Elliott's Fran?). This feels like a big step that will add a lot of expressive power to Majalan - it's the first time I've ever managed to incorporate FRP style programming into one of my own projects, fourteen years (I think) after being totally beguiled by the FRP animations in Conal's Dr Dobbs Journal article.

Sunday, October 7, 2012

majalan

Copperbox revision 2859.

Work towards interpolating "columns" in event lists. The idea was to have parametrize the Event type so it could have a payload as either a normal list of params or a function from an interpolating value to a list of params - but I don't think this is practical. I suspect using a symbolic number type and overloading the Num classes will be simpler.

Copperbox revision 2860.

I've reverted the interpolation changes from the last commit, but kept in the changes that implement advancing c.f advance vectors in computer typesetting and Csound's (+) symbol in score files.

Saturday, October 6, 2012

majalan

Copperbox revision 2858.

I've added a few more GEN routines. The only one that is interesting from an embedding perspective is GEN11 which has optional arguments. I've chosen to require all arguments - the documentation lists the default values.

Optional arguments are more heinous in orchestras than scores, where there are fewer primitives that make use of them. As this is the only occurrence I've found so far, requiring all which doesn't restrict expressiveness seems the best solution.

Tuesday, October 2, 2012

majalan

Copperbox revision 2857.

I've added a couple more GENs - GEN01 which loads a file and GEN02 which stores user supplied data.

GEN01 particularly is an interesting case - should Majalan imitate Csound (e.g. use numeric enums rather than enum types) or provide a higher level (but not idiomatic) API? At the moment imitating Csound seems a better choice as GENs are usually invoked only a few times in a score and following the Csound means its documentation is mostly appropriate.


Monday, October 1, 2012

majalan

Copperbox revision 2856.

I've split Gen into two modules - one for the primitive functions and types and the other for the catalogue of table-gens matching Csounds GEN functions. Also I've changed gen07 to use a fence list.


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.