live-sequencer: Live coding of MIDI music
An editor shows a textual description of music (like Haskore), an interpreter computes and emits a stream of MIDI events, and (that's the main point) the user can change the program on the fly.
example usage *****
timidity -iA & ./live-sequencer-gui --connect-to TiMidity Stream &
this should give you an ongoing stream of notes
then change one of the numbers
that appear in the lines like
mid = note 300 (c 4)
and press CTRL-R for "reloading" that module into the interpreter this should immediately have an effect (change pitch and duration of some of the notes)
input language *****
language is Haskell with only strict pattern matching and pattern matching only at the definition level (no case), no local bindings (no lambda, let, where), no types (no type inference, type signatures and type declarations are skipped)
semantics is similar to lazy evaluation,
but we have no sharing,
the value of main
is a stream of midi events
(On/Off pitch velocity
)
or (Wait milliseconds
)
in each step, the head of the stream gets reduced
to head normal form (with :
at the top),
and the first arg of the :
gets fully expanded
and it must be a midi event.
In the library interface we provide the basic Live-Sequencer modules in order to allow offline rendering of Live-Sequencer music.
Flags
Automatic Flags
Name | Description | Default |
---|---|---|
httpserver | Enable access to modules via a web browser | Enabled |
Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info
Downloads
- live-sequencer-0.0.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
Versions [RSS] | 0.0, 0.0.1, 0.0.2, 0.0.3, 0.0.3.1, 0.0.4, 0.0.5, 0.0.5.1, 0.0.5.2, 0.0.6, 0.0.6.1, 0.0.6.2, 0.0.6.3 |
---|---|
Dependencies | alsa-core (>=0.5 && <0.6), alsa-seq (>=0.5 && <0.6), base (>=4.2 && <5), cgi (>=3001.1 && <3001.2), containers (>=0.3 && <0.5), data-accessor (>=0.2.1 && <0.3), data-accessor-transformers (>=0.2.1 && <0.3), directory (>=1.0 && <1.2), event-list (>=0.0.11 && <0.2), explicit-exception (>=0.1.5 && <0.2), filepath (>=1.1 && <1.4), html (>=1.0 && <1.1), httpd-shed (>=0.4 && <0.5), midi (>=0.1.5 && <0.2), midi-alsa (>=0.1.1 && <0.2), network (>=2.3 && <2.4), non-negative (>=0.0.6 && <0.2), parsec (>=2.1 && <3.2), pretty (>=1.0 && <1.2), process (>=1.0 && <1.2), stm (>=2.2 && <2.3), strict (>=0.3.2 && <0.4), transformers (>=0.2.2 && <0.3), utility-ht (>=0.0.8 && <0.1), wx (>=0.12.1 && <0.13), wxcore (>=0.12.1 && <0.13) [details] |
Tested with | ghc ==6.12.3, ghc ==7.2.1 |
License | LicenseRef-GPL |
Author | Henning Thielemann and Johannes Waldmann |
Maintainer | Johannes Waldmann <waldmann@imn.htwk-leipzig.de>, Henning Thielemann <haskell@henning-thielemann.de> |
Category | Sound, Music, GUI |
Source repo | head: git clone git://dfa.imn.htwk-leipzig.de/srv/git/seq/ this: git clone http://code.haskell.org/~thielema/livesequencer/(tag 0.0) |
Uploaded | by HenningThielemann at 2012-03-02T21:30:08Z |
Distributions | |
Reverse Dependencies | 1 direct, 0 indirect [details] |
Executables | live-sequencer-gui, live-sequencer |
Downloads | 8548 total (7 in the last 30 days) |
Rating | (no votes yet) [estimated by Bayesian average] |
Your Rating | |
Status | Docs not available [build log] All reported builds failed as of 2016-12-25 [all 6 reports] |