Name: live-sequencer
Version: 0.0
Author: Henning Thielemann and Johannes Waldmann
Maintainer: Johannes Waldmann <waldmann@imn.htwk-leipzig.de>, Henning Thielemann <haskell@henning-thielemann.de>
Category: Sound, Music, GUI
License: GPL
License-file: LICENSE
Cabal-Version: >= 1.6
Tested-With: GHC==6.12.3, GHC==7.2.1
Synopsis: Live coding of MIDI music
Description:
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.
.
1. 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)
.
2. 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.
Build-Type: Simple
Data-Files:
data/prelude/Prelude.hs
data/Band.hs
data/Finite.hs
data/Klingklong.hs
data/Simplesong.hs
data/Sweep.hs
data/UD.hs
data/CrossSum.hs
data/Fibonacci.hs
data/DeBruijn.hs
data/Bool.hs
data/Chords.hs
data/Drum.hs
data/Function.hs
data/Instrument.hs
data/Integer.hs
data/List.hs
data/ListLive.hs
data/Midi.hs
data/Music.hs
data/Pattern.hs
data/Pitch.hs
data/Render.hs
data/Tuple.hs
Extra-Source-Files:
http/enable/HTTPServer.hs
http/enable/HTTPServer/GUI.hs
http/enable/HTTPServer/Option.hs
http/disable/HTTPServer/GUI.hs
http/disable/HTTPServer/Option.hs
Source-Repository head
Type: git
Location: git://dfa.imn.htwk-leipzig.de/srv/git/seq/
Source-Repository this
Type: git
Tag: 0.0
Location: http://code.haskell.org/~thielema/livesequencer/
Flag httpServer
Description: Enable access to modules via a web browser
Default: True
Library
Hs-Source-Dirs: data
GHC-Options: -Wall
Build-Depends:
-- for Render
non-negative >=0.0.6 && <0.2,
event-list >=0.0.11 && <0.2,
base >=4.2 && <5
Exposed-Modules:
Render
Bool
Chords
Drum
Function
Instrument
Integer
ListLive
Midi
Music
Pitch
Tuple
Other-Modules:
List
Pattern
Finite
CrossSum
DeBruijn
Fibonacci
Executable live-sequencer
Hs-Source-Dirs: src, http/disable
Main-is: Console.hs
Other-Modules:
ALSA
Event
IO
Module
Option
Option.Utility
Program
Rewrite
Rule
Step
Term
Type
Log
Paths_live_sequencer
Other-Modules:
Lilypond
GHC-Options: -Wall -threaded
Build-Depends:
transformers >=0.2.2 && <0.3,
explicit-exception >=0.1.5 && <0.2,
parsec >=2.1 && <3.2,
pretty >=1.0 && <1.2,
midi-alsa >=0.1.1 && <0.2,
midi >=0.1.5 && <0.2,
alsa-seq >=0.5 && <0.6,
alsa-core >=0.5 && <0.6,
data-accessor-transformers >=0.2.1 && <0.3,
data-accessor >=0.2.1 && <0.3,
strict >=0.3.2 && <0.4,
utility-ht >=0.0.8 && <0.1,
containers >=0.3 && <0.5,
process >=1.0 && <1.2,
directory >=1.0 && <1.2,
filepath >=1.1 && <1.4,
base >=4.2 && <5
Executable live-sequencer-gui
Hs-Source-Dirs: src
Main-is: GUI.hs
Other-Modules:
ALSA
Utility.Concurrent
Utility.WX
Event
IO
Exception
Module
Option
Option.Utility
Controls
Program
Rewrite
Rule
Step
Term
Type
Log
Paths_live_sequencer
GHC-Options: -threaded -Wall
If impl(ghc>=7.0)
GHC-Options: -fwarn-tabs -fwarn-incomplete-uni-patterns
Build-Depends:
wx >=0.12.1 && <0.13,
wxcore >=0.12.1 && <0.13,
stm >=2.2 && <2.3,
transformers >=0.2.2 && <0.3,
explicit-exception >=0.1.5 && <0.2,
parsec >=2.1 && <3.2,
pretty >=1.0 && <1.2,
midi-alsa >=0.1.1 && <0.2,
midi >=0.1.5 && <0.2,
alsa-seq >=0.5 && <0.6,
alsa-core >=0.5 && <0.6,
data-accessor-transformers >=0.2.1 && <0.3,
data-accessor >=0.2.1 && <0.3,
strict >=0.3.2 && <0.4,
utility-ht >=0.0.8 && <0.1,
containers >=0.3 && <0.5,
process >=1.0 && <1.2,
directory >=1.0 && <1.2,
filepath >=1.1 && <1.4,
base >=4.2 && <5
Other-Modules:
HTTPServer.Option
HTTPServer.GUI
If flag(httpServer)
Hs-Source-Dirs: http/enable
Other-Modules:
HTTPServer
Build-Depends:
httpd-shed >=0.4 && <0.5,
network >=2.3 && <2.4,
cgi >=3001.1 && <3001.2,
html >=1.0 && <1.1
Else
Hs-Source-Dirs: http/disable