The reactive-balsa package

[Tags:bsd3, library]

MIDI is the Musical Instrument Digital Interface, ALSA is the Advanced Linux Sound Architecture. This package allows to manipulate a sequence of MIDI events via ALSA. It is intended to be plugged as a playing assistant between a MIDI input device (e.g. a keyboard or a controller bank) and a MIDI controlled synthesizer (e.g. a software synthesizer or an external synthesizer). For software synthesizers see the Haskell packages synthesizer-alsa, synthesizer-llvm, supercollider-midi, hsc3, YampaSynth or the C packages fluidsynth and Timidity.

Applications include: Remapping of channels, controller, instruments, keys, Keyboard splitting, Conversion from notes to controllers, Latch mode, Convert parallel chords to serial patterns, Automated change of MIDI controllers, Delay and echo.

It is intended that you write programs for MIDI stream manipulation. It is not intended to provide an executable program with all the functionality available in a custom programming interface. It is most fun to play with the stream editors in GHCi. However we provide an example module that demonstrates various effects.


Versions 0.0, 0.1, 0.1.1
Dependencies alsa-core (==0.5.*), alsa-seq (==0.5.*), base (>=1.0 && <5), containers (>=0.2 && <0.5), data-accessor (>=0.2.1 && <0.3), data-accessor-transformers (>=0.2.1 && <0.3), event-list (==0.1.*), midi (==0.2.*), midi-alsa (==0.2.*), non-negative (==0.1.*), random (==1.*), reactive-banana (>=0.4.3 && <0.5), transformers (==0.2.*), utility-ht (>=0.0.5 && <0.1) [details]
License BSD3
Author Henning Thielemann <>
Maintainer Henning Thielemann <>
Stability Unknown
Category Sound, Music
Source repository head: darcs get
this: darcs get --tag 0.0
Uploaded Sat Mar 3 10:36:15 UTC 2012 by HenningThielemann
Downloads 561 total (4 in the last 30 days)
0 []
Status Docs not available [build log]
All reported builds failed as of 2015-11-24 [all 4 reports]


  • Reactive
    • Banana
      • ALSA
        • Reactive.Banana.ALSA.Common
        • Reactive.Banana.ALSA.Example
        • Reactive.Banana.ALSA.Guitar
        • Reactive.Banana.ALSA.KeySet
        • Reactive.Banana.ALSA.Pattern
        • Reactive.Banana.ALSA.Sequencer
        • Reactive.Banana.ALSA.Training


splitbaseChoose the new smaller, split-up base package.EnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainer's Corner

For package maintainers and hackage trustees