[Haskell-cafe] Call for GUI examples - Functional Reactive Programming
Henning Thielemann
lemming at henning-thielemann.de
Fri Jul 8 17:18:31 CEST 2011
On Fri, 8 Jul 2011, Heinrich Apfelmus wrote:
> Can GUI programming be liberated from the IO monad? Functional Reactive
> Programming (FRP) promises as much, and I'm trying to make this dream a
> reality with my [reactive-banana][] library. Having released version
> 0.4.0.0, I am now looking for example programs to direct the future
> evolution of the library.
This is the request that I was waiting for. :-)
I have some very small wxwidgets example programs that send and receive
MIDI messages via ALSA in order to map, e.g. sliders to MIDI controller
knobs. I must synchronize the value of a slider with a spin widget and
incoming and outgoing MIDI messages and found the way to connect them very
low-level. I would like to see this in a more declarative style.
http://hackage.haskell.org/package/alsa-gui
> * I think that Tim Docker's minimal step sequencer [hbeat][] simply makes a
> great example. I hope that wxHaskell offers a platform-independent way to
> play sound.
I think there are some ways for playing sounds in a portable way, like
'jack' or PortAudio.
> * Notes of a musical performance can be modeled as event streams (MIDI), as
> Henning Thielemann has [done with great effect][midi streams]. Surely,
> reactive-banana should be up to the task, but writing an arpeggiator seems
> impossible at the moment.
Oh, I am addressed explicitly, thanks! Yes, GUI for 'streamed' would be
nice, too. In the meantime I switched from an approach with lazy lists to
one with arrow-like stream processors. This way I could resolve all issues
with wrong timing and inappropriate waiting, but now code looks more
low-level. There are some examples lying around, that I even not started
to implement, because I expect that implementing them in the current
low-level way will yield nasty bugs. Thus I am highly interested in more
sophisticated MIDI stream editor combinators. I expect that inspiration
from other FRP frameworks would help me.
More information about the Haskell-Cafe
mailing list