Wednesday, March 27, 2013

majalan

Copperbox revision 2959.

Initial work on symbolic duration data types.

One type - DSymbol supports proper dot and dot-dot operations to increase the duration by a fractional amount, although this type cannot support addition making it useless for anything except specification. The other type Beat is context sensitive (like em and en in Wumpus) so beat values are interpreted according to the overall beats-per-minute of the score.

Tuesday, March 26, 2013

majalan

Copperbox revision 2958.

I've added Chains (cf. Wumpus) to model infinite, iterated sequences of impulses. At the moment I'm not sure if the types are right - an impulse is currently just a time, but maybe it should be a pair - time and some value of parametric type a.


Monday, March 25, 2013

majalan, om-shell

Copperbox revision 2957.

I've made Space and Displace typeclasses so they are applicable to Events and EventLists (and other structures later). Also I've updated the demos in OM Shell.


Sunday, March 24, 2013

majalan

Copperbox revision 2956.

I've made Behavior parametric on time unit - like Event and EventList. This means that if you are counting with beats rather than seconds you can have time varying Behaviors specified in beats not seconds.

majalan

Copperbox revision 2955.

I've added a distinct EventList type. Whilst Event itself is not atomic and thus can support an some notion of sequential events, it seems valuable to have a type that explicitly represents event lists.

Saturday, March 23, 2013

om-shell

Copperbox revision 2954.

I've updated the instruments and demos in OM Shell to use the new Zak configuration abstraction.

Wednesday, March 20, 2013

majalan, om-shell

Copperbox revision 2953.

I've implemented a good enough notation for Zak configurations - there isn't any real checking and I'm not absolutely sure the construction algorithm is correct, but Zak configs are very minor in the scheme of things so I don't want to spend too much time on them.

Sunday, March 17, 2013

majalan, om-shell

Copperbox revision 2952.

Initial work separating Zak port configuration from Events - rather than having Zak port numbers as final arguments to events I'd like to encapsulate them in a configuration so I won't have to modify each event in the score if the configuration changes.

The work so far is a bit off the mark, I haven't yet worked out a good representation for the static Zak config.

Saturday, March 16, 2013

majalan

Copperbox revision 2951.

I've re-instated Behaviors which allow time-varying events.

Actually Csound encourages its own style of time varying behaviors through globals (or Zak) and Meta-Paramter Control (chapter 18 of the Csound book). These behaviors can be implemented in Ochre, so Ochre+Majalan can support both styles.

Monday, March 11, 2013

majalan

Copperbox revision 2950.

I've implemented symbolic reverse for event lists - symbolic reverse means that that event order is reversed rather than the actual events / sounds. The latter would be rather difficult...

Currently I use this instance for Events:

instance SReverse a => SReverse (Event u a) where

I have a suspicion that this automatic reverse for the answer (param a) might not be the best design and that some answers can't be reversed without knowing the start-end times from the Event itself. If I can solve this satisfactorily it should point out another good simplification for Wumpus.

Sunday, March 10, 2013

majalan

Copperbox revision 2949.

I've added a Processor object to Majalan. Processor is equivalent to Connector in Wumpus - the onset and duration of a Processor are determined by the start and end times of the object it processes.

Saturday, March 9, 2013

om-shell

Copperbox revision 2948.

I've update the rest of the instruments and demos so they run again. A lot can be done to improve the scores, at the moment I haven't implemented many operations on the new score language objects.

Thursday, March 7, 2013

om-shell, majalan

Copperbox revision 2947.

I've updated the first couple of OM-Shell examples to work with the Score representation changes in Majalan. Also I've changed the shim modules in Majalan so scores should need to import just two modules.

Wednesday, March 6, 2013

majalan

Copperbox revision 2946.

Initial work on symbolic stretch. Because events are parametric on onset we would want  let dblevt = stretch 2.0 evt1 to double the length of evt1 but allow us to place dblevt at arbitrary positions - i.e. we don't want to stretch onset as well as duration, so we need a symbolic stretch rather than an affine one.

Unfortunately symbolic stretch seems complicated as Majalan's events may return answers that represent positions and need stretching themselves.

Tuesday, March 5, 2013

majalan

Copperbox revision 2945.

I've added bounded operations directly to the Event type - this seems to indicate Majalan (and Wumpus) might not need a Bounded object.

Monday, March 4, 2013

majalan

Copperbox revision 2944.

I've implemented an Advance object that is much simpler than the corresponding one in Wumpus. The new Advance object is essentially just a state monad - where "onset" is threaded and incremented rather than a constant "start point".

Sunday, March 3, 2013

majalan

Copperbox revision 2943.

I've started on a re-implementation of the Event and event list datatypes. Again, I've decided that the corresponding types in Wumpus (LocImage and TraceDrawing) actually provide a good model that can be adapted from graphics to the domain of music scores.


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.