Stephen Tetley schrieb: > On 22 February 2011 23:41, Evan Laforge <qdun...@gmail.com> wrote:
>> Can you write 'inst2 pitch = reverse (inst1 pitch)'? > > Is 'inst2 pitch = reverse (inst1 pitch)' the backwards instrument? My > first thought would be this is hard to write in any continuous > language even functional/FRP. Since SuperCollider is intended as realtime synthesizer it supports certainly only causal signal processes, which 'reverse' is not. I do not think that its internal design of linked nodes and arrays of input and output buffers can be extended to do something like 'reverse'. If lazy evaluation in Haskell would work properly, that is reliably without memory leaks, then you could nicely combine causal processes (via lazy evaluation) and non-causal processes like reverse (not lazy, but could work on the same signal representation). Another nice example of breaking the orchestra-score barrier is the effect of slowing down a record containing synthesized music. That said, I think separating causal and non-causal processes is a good thing anyway, because e.g. feedback can be done reliably (i.e. without deadlocks) only with causal arrows. However Haskell integrates both causal processing (via arrows) and non-time restricted evaluation (via laziness). _______________________________________________ haskell-art mailing list haskell-art@lurk.org http://lists.lurk.org/mailman/listinfo/haskell-art