Hi Henning, and all,
Henning Thielemann wrote:
Hi Claude!
I guess it was you who contacted me because of my software synthesizer
Assampler back in good old Amiga days. In fact Assampler is lazy
functional programming emulated in an object oriented language. At that
time I knew about functional programming, but not much about lazy
evaluation.
It (very probably) was me, although I can't remember what I wrote -
probably I asked for source code or whether it worked on AmigaOS 2.04 or
something else equally annoying ;)
I wrote my own software audio synthesis environment in 1999, no fancy
GUI, a horrendously awkward CLI interface, and other deficiencies.
Being written in Amiga E makes it rather unportable, too, and hard to
read (no operator precedence, and very strange syntax for floating point
arithmetic). Maybe I should get around to uploading it somewhere anyway...
I didn't know what laziness (in the computational meaning) was at that
time, and I don't know if "only recalculate filter coefficients if the
filter parameters have changed" counts as lazy evaluation, given that it
relied on my code explicitly setting a flag when the parameters were
changed, and checking it when it wanted to use the coefficients. That
was all encapsulated within an OOP-style object, though.
Looking at Assampler again, it seems like a more advanced version of
what I was trying to achieve with my project. At the moment I mainly
use Pd [1], which has the same paradigm as my project did (processing
objects connected together with messages passing through the wires), and
I guess Assampler has something similar, at least the graph at the
bottom left of the screenshot [2] looks a little like a Pd patch.
And to bring this thread back to Haskell, here's a video I recorded
today. Made with Pd (for audio and general programming), Gem (a Pd
external for OpenGL 3D graphics), and hsext (my Pd external that allows
you to use Haskell within Pd):
http://claudiusmaximus.goto10.org/files/coding/d01234/d01234-01.avi (75MB)
Claude
[1] http://puredata.info
[2] http://users.informatik.uni-halle.de/~thielema/Screenshots/Assampler.gif
--
http://claudiusmaximus.goto10.org
_______________________________________________
haskell-art mailing list
haskell-art@lists.lurk.org
http://lists.lurk.org/mailman/listinfo/haskell-art