
Benjamin J Kovach
nice. - two thoughts: * the basic object is a sequence of (MIDI) events, where duration is always implicit (computed by concatenation)? It might be useful to have explicit duration, so you can have an event "with (later) echoes" that still acts as just one event in concatenations (the echoes overlap with the following events - so you can say "apply echo to this drum" without destroying the timing of the pattern.) * (as with all Haskell EDSLs for music) a basic inconvenience in writing and reading is that the "space" symbol is application, while we actually want it for concatenation, to write a sequence of events without extra syntax (concatenation operators, or commas in list literals). I guess this requires a parser (as 'tidal' does it), or even template haskell (because we want to refer to user-defined Haskell values from inside the pattern). - J.W.