[Haskell-cafe] real-time audio processing

Henning Thielemann lemming at henning-thielemann.de
Wed Aug 4 16:40:58 EDT 2010


On Wed, 4 Aug 2010, Stephen Sinclair wrote:

> On Aug 3, 8:31 pm, Jeremy Shaw <jer... at n-heptane.com> wrote:
>>  The only area I have had any trouble with Haskell is doing realtime
>> music synthesis. And only because the garbage collector is not
>> realtime friendly. That is not unfixable though. However, I am
>> thinking that the best way to do realtime synthesis with Haskell is to
>> use it to create a DSL that uses LLVM to create code at runtime so
>> that the realtime code is outside the scope of the normal RTS and
>> garbage collector.
>
> I'm also very interested in this topic---how to apply a general-
> purpose functional language to real-time needs, even if it is in a
> domain-specific way.

If you like to see real-time audio synthesis in action ...
    http://code.haskell.org/hal/05-2010/unsafe-performance/MOV09560.MPG

and for the background:
    http://arxiv.org/abs/1004.4796
    http://dafx04.na.infn.it/WebProc/Proc/P_201.pdf

Unfortunately the package is not yet available on Hackage, because there 
are some patches to the llvm interface that I could not push to the main 
branch so far.


Regarding garbage collection: My experience is that the garbage collector 
is quite friendly, but you run easily into a memory leak, and this memory 
leak will make the garbage collector busy, because it has to check 
reachability of more chunks. Nonetheless you can consider the memory leaks 
being bugs of the garbage collector or the compiler.


More information about the Haskell-Cafe mailing list