
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.