Discussion:
[haskell-art] euterpea realtime? or other realtime audio in haskell
Ben Burdette
2014-05-13 22:44:12 UTC
Permalink
Haskell noob here. I came across the Haskell School of Music pdf online
and it looks like a great way to get acquainted with the language while
doing some music stuff.

I'm doing a project where incoming values from sensors are to be turned
into music. currently I have a haskell program that scans the sensors
and generates OSC messages as a result. So far so good.

The second part would be to receive OSC messages and generate signals in
real time - sound synthesis with effects like echo, filtering, etc etc.
I thought perhaps euterpea might be the way to go, but then I came
across this on page 303:

/Euterpea can execute some programs in real-time, but sufficiently
complex//
//programs require writing the result to a file. The function for
achieving this//
//is://
//outFile :: (AudioSample a, Clock c) ?//
//String ? Double ? SigFun c () a ? IO ()//
/

Ok, so if synthesis is too complex, then you won't be able to do it in
real time. But I don't see how to even try this. The book doesn't show
a method for real time audio. Looking at IO.hs, where outFile is
defined, doesn't reveal anything that seems to be 'play this signal
through the speakers'.

So questions:

1) how would a reckless individual produce real time audio from
Euterpea? Yes I understand it may fail.

2) if someone has used euterpea in real-time, what's the complexity
level that is usable before failure occurs?

3) if euterpea is incapable of real time, then can anyone recommend a
noob-class haskell environment for real time audio?

Thanks for any insight!

Ben

Loading...