What about sharing of a signal for multiple function calls in HSC3? The general problem is, that 'let' constructs cannot be observed by the executing Haskell functions - and this is intended. That is
let x = f ... in g x + h x always leads to the same result as g (f ...) + h (f ...) but maybe with different memory and time consumption. The first version shares the results, the second does not. So if write let x = f ... in g x + h x then I assume that HSC won't share 'x' for the calls of 'g' and 'h'. Is there some function like 'share :: UGen -> (UGen -> a) -> a' which allows that sharing? I guess that 'share' has to use the Proxy constructor of UGen. The above example would be translated to share (f ...) (\x -> g x + h x) Similarly one can also implement feedback with a 'fix' like function, if this is supported by SuperCollider. _______________________________________________ haskell-art mailing list haskell-art@lists.lurk.org http://lists.lurk.org/mailman/listinfo/haskell-art