> Has anyone built any block simulators (for modeling continuous
> electronic systems, like OP Amps, RC networks, etc) in Haskell?
There have been several replies to this already, but permit me to add my
2 cents worth:
FRP ("Functional Reactive Programming") is an abstraction of Fran
("Functional Reactive Animation") that is ideally suited to describing
such things, since it is based on continuous (time-varying) values, as
opposed to discrete values. You can find out a lot about Fran from
Conal Elliott's home page (http://www.research.microsoft.com/~conal) and
from my book (http://haskell.org/soe), and about FRP at
http://haskell.org/frob. My student Zhongong Wan and I also have a new
PLDI paper on the formal underpinnings of FRP if anyone is interested
(it's not on the web yet).
As for Haskore:
> I'm also interested in this. I am thinking of extending
> Paul Hudak's Haskore system to generate and handle true audio data
> (instead of, or in addition to) MIDI data.
>
> I don't think I'll have enough time to do the programming myself,
> but since I'll be using Hudak's book in next term's course,
> I hope I can attract some students, and set them in the right
> direction.
>
> In fact one student who read the course announcement
> (and the book's web page) already asked me
> about functional audio signal processing.
The latest release of Haskore (http://haskell.org/haskore) includes an
interface to Csound. That is, one can wire up oscillators, modulators,
special effects, etc. in a nice declarative style in Haskell, which then
gets compiled into a Csound instrument file, which in turn gets compiled
by Csound into actual sound files (.wav, .snd, etc.). The nice thing
about this is that it's fairly efficient because of the back-end
processing. To do this in FRP would be much less efficient.
Hope this helps,
-Paul