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.
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.
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
Saturday, March 23, 2013
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.
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.
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.
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.
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
Saturday, March 9, 2013
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.
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.
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
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".
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.
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.
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.