Some time ago, I started working on a new Haskell project. It’s called tomato-rubato and it’s a library for audio programming in Haskell with a focus on ease-of-use. The idea is to create an equivalent of the Haskell Prelude, but for audio programming.
The library is still in a very experimental phase and will likely remain in this state in the foreseeable future. You are welcome to experiment with it, but keep in mind that I’m going to change the API on short notice, perhaps even just to mess with you. Adventurers only!
That said, I just released an offspring on hackage, the tomato-rubato-openal package which has a single purpose: it allows you to write raw audio data to your loudspeakers.
The API essentially consists of just two functions:
playSamplesfeeds a lazy list of audio samples to your speakers
withSpeakersallows you to configure them a bit
That’s it, couldn’t be simpler. Have a listen to the audio output of a short example code.
The library depends on the OpenAL package, but I hope that you can easily install that one. Happy hacking!
PS: I take no responsibility for annoyed roommates, spouses or neighbors. Use at your own risk.