haskore: The Haskore Computer Music System

[ library, music, sound ] [ Propose Tags ]

Compose music using programming features. Output in MIDI, CSound, SuperCollider or as an audio signal.

[Skip to Readme]




Automatic Flags

Choose the new smaller, split-up base package.


Build example executables


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


Note: This package has metadata revisions in the cabal description newer than included in the tarball. To unpack the package including the revisions, use 'cabal get'.

Maintainer's Corner

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS] 0.0.5,, 0.0.6, 0.0.7, 0.1,,,,, 0.2,,,,,,,,
Dependencies array (>=0.1 && <1.0), base (>=1.0 && <2 || >=3 && <5), bytestring (>=0.9 && <0.11), containers (>=0.1 && <1.0), data-accessor (>=0.2 && <0.3), event-list (>=0.1 && <0.2), haskell-src (>=1.0 && <1.1), haskore, markov-chain (>=0.0.1 && <0.1), midi (>=0.2 && <0.3), non-negative (>=0.1 && <0.2), parsec (>=2.1 && <3.2), process (>=1.0 && <1.7), random (>=1.0 && <2.0), special-functors (>=1.0 && <1.1), transformers (>=0.0.1 && <0.6), utility-ht (>=0.0.3 && <0.1) [details]
License LicenseRef-GPL
Author Paul Hudak <paul.hudak@yale.edu>, Henning Thielemann
Maintainer Henning Thielemann <haskore@henning-thielemann.de>
Revised Revision 2 made by HenningThielemann at 2021-06-08T10:19:52Z
Category Sound, Music
Home page http://www.haskell.org/haskellwiki/Haskore
Source repo head: darcs get http://code.haskell.org/haskore/revised/core
this: darcs get http://code.haskell.org/haskore/revised/core --tag
Uploaded by HenningThielemann at 2016-02-04T13:51:16Z
Distributions NixOS:
Executables autotrack, flipsong
Downloads 13563 total (88 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-02-12 [all 1 reports]

Readme for haskore-

[back to package description]
 			 Haskore Music System

This is a revised and extended version of Haskore from


which evolved from the February 2000 release, available from:


The features are:
 - music can be composed by programming Haskell
 - the music is output into MIDI files, CSound, or SuperCollider,
   or even rendered to an audio stream with http://darcs.haskell.org/synthesizer/
 - CSound instruments can generated by programming Haskell, as well

 - all modules can be used with GHC,
   and many of them with Hugs

For more details, refer to the Tutorial.

For installation we recommend Cabal.

$ ./Setup.lhs configure --user
$ ./Setup.lhs build
$ ./Setup.lhs haddock
$ ./Setup.lhs install

This way you have a usable Haskore installation.

However most modules are written in literate style with LaTeX markup.
There are no Haddock comments.
You can build a PDF file which introduces you to the internals of Haskore.
However it got a bit out of sync over the time,
many parts are now extracted into separate packages.
You can build the documentation using

$ make pdf


Certainly you will want to try some examples.
To this end you must have installed CSound or a MIDI player, respectively.

$ make ghci   # interactive session in GHC
$ make hugs   # interactive session in Hugs
*Main> :load Haskore.Interface.CSound.Tutorial
*Haskore.Interface.CSound.Tutorial> test tut13
*Main> :load Haskore.Interface.MIDI.Render Haskore.Example.ChildSong6
*Haskore.Interface.MIDI.Render> playTimidity Haskore.Example.ChildSong6.song

You can choose other MIDI players. Type

*Haskore.Interface.MIDI.Render> :browse Haskore.Interface.MIDI.Render

to see the alternatives.

If you like to play via SuperCollider,
install the haskore-supercollider package
from http://darcs.haskell.org/haskore-supercollider
and continue with its Readme file.

Send requests, questions and comments to
   the original author of Haskore: Paul Hudak <paul.hudak@yale.edu>
   and the reviser: Henning Thielemann <haskore@henning-thielemann.de>
   and for more discussion: http://lists.lurk.org/mailman/listinfo/haskell-art