Personal tools

Haskore

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(installation hints for Windows)
(more links)
Line 1: Line 1:
[http://www.haskell.org/haskore/ Haskore] is a set of Haskell modules for creating music as MIDI, CSound, SuperCollider, and [[Synthesizer|Audio files]].
+
[http://www.haskell.org/haskore/ Haskore] is a set of Haskell modules for creating music as [[MIDI]], [[CSound]], [[SuperCollider]], and [[Synthesizer|Audio files]].
 
A more recent, but less stable version, is available as [[Darcs]] repository at http://darcs.haskell.org/haskore/.
 
A more recent, but less stable version, is available as [[Darcs]] repository at http://darcs.haskell.org/haskore/.
   
Line 11: Line 11:
   
 
With a bit of hacking Haskore can run on several platforms.
 
With a bit of hacking Haskore can run on several platforms.
  +
In fact most of the hassle is caused by Haskore being not properly split into small packages.
  +
In future Haskore should consist of a small core for music composition, analysis and manipulation
  +
and separate packages for connecting to various back-ends and separated real-time stuff.
   
 
==== UNIX/Linux ====
 
==== UNIX/Linux ====
Line 16: Line 19:
 
The original Haskore was mainly developed on Windows,
 
The original Haskore was mainly developed on Windows,
 
whereas the revised version was developed mainly in Linux.
 
whereas the revised version was developed mainly in Linux.
  +
So least hassle is currently caused on Linux.
   
 
==== Windows ====
 
==== Windows ====
   
 
* http://www.haskell.org/pipermail/haskell-cafe/2008-June/043905.html
 
* http://www.haskell.org/pipermail/haskell-cafe/2008-June/043905.html
* http://www.haskell.org/pipermail/haskell-cafe/2008-August/045911.html
+
* http://www.haskell.org/pipermail/haskell-cafe/2008-August/045911.html - Some hacks to get Haskore running on Windows quickly. The right thing to do would be to factor out the real-time stuff, since it is in general hard to port.
   
 
=== Installation using cabal ===
 
=== Installation using cabal ===
Line 79: Line 83:
 
* [http://github.com/nfjinjing/haskore-guide/tree/master/doc/index.markdown A dummy's guide to Haskore (GIT repository)]
 
* [http://github.com/nfjinjing/haskore-guide/tree/master/doc/index.markdown A dummy's guide to Haskore (GIT repository)]
 
* [http://en.wikipedia.org/wiki/Haskore Wikipedia entry about Haskore]
 
* [http://en.wikipedia.org/wiki/Haskore Wikipedia entry about Haskore]
  +
* [http://users.informatik.uni-halle.de/~thielema/Music/HAL2/ Various Haskore examples for CSound, MIDI, SuperCollider and Haskell-Synthesizer] presented on [http://www.iba-cg.de/haskell.html HAL2] by Henning Thielemann, also see the [http://video.google.de/videoplay?docid=-6594267962912965757&q=hal2+july+2007&total=7&start=0&num=50&so=0&type=search&plindex=3 video of the talk (German)]
   
   

Revision as of 13:49, 11 August 2008

Haskore is a set of Haskell modules for creating music as MIDI, CSound, SuperCollider, and Audio files. A more recent, but less stable version, is available as Darcs repository at http://darcs.haskell.org/haskore/.

Contents

1 Community

There is no Haskore related mailing list, but Haskore related discussion is very welcome at the Haskell art mailing list.

2 Getting started

2.1 Platforms

With a bit of hacking Haskore can run on several platforms. In fact most of the hassle is caused by Haskore being not properly split into small packages. In future Haskore should consist of a small core for music composition, analysis and manipulation and separate packages for connecting to various back-ends and separated real-time stuff.

2.1.1 UNIX/Linux

The original Haskore was mainly developed on Windows, whereas the revised version was developed mainly in Linux. So least hassle is currently caused on Linux.

2.1.2 Windows

2.2 Installation using cabal

Prerequisits: You should be able to fetch a package using darcs and configure/build/install it using cabal.

Step 0. Choose a folder where some haskell packages can be stored.

Step 1. Get the packages. For each PACKAGE in (non-negative, event-list, record-access, markov-chain, midi, haskore) do

 darcs get http://darcs.haskell.org/PACKAGE

Step 2. Patch Haskore's cabal file: [Cabal.patch]

 cd haskore
 darcs apply /path/to/cabal.patch

Step 3. Build and install the packages. For each PACKAGE (in the order of above)

 cd PACKAGE
 runhaskell Setup.lhs configure (--prefix=/usr/local --user)
 runhaskell Setup.lhs build
 runhaskell Setup.lhs install

Done.

3 Projects

A lot of projects were initiated that use the Haskore framework or something in the spirit of Haskore. This page may help to keep an overview of all projects. All maintainers of Haskore related projects are encouraged to add their project here and keep the references up to date.

AuDi Peter Steffen [1] Course material for Algorithms and Data Structures I - A formula language for music ("Algorithmen und Datenstrukturen I - Eine Formelsprache fuer Musik")
AutoTrack Stefan Ratschan [2] A tool for creating practizing and demo tracks from chord charts. You feed the program with a chord chart, set the desired style (jazz, bossa, etc.), tempo, key etc. and it produces a simple MIDI file containing an according bass and drum track. Includes a lot of examples.
Design experiments Henning Thielemann [3] Test of several changes of Haskore's design targetting at more flexibility and consistency
Emile Adam Bermingham [4] Eight-Bar Melody Generation in Haskell. Automatic composition based on two initial bars
Gore Johannes Waldmann [5] Convert a melody description in a string into the Haskore Music data structure. Thus simple melodies can be written much more condensed.
HasChorus Martin Schwenke [6] A set of Haskell modules written on top of Haskore to make it easier to sequence simple, repetitive music
Jazkore Jean-François Paiement [7] ? A model of melodic jazz improvisation in functional programming
Lilypond back-end Jeffrey R. Lewis A back-end for Haskore to produce Lilypond notation files.
Microtonal music Magnus Jonsson [8] This is not Haskore related, though integration into Haskore would be nice
Polymorphic Temporal Media Paul Hudak [9] An Algebraic Theory of Polymorphic Temporal Media - A generalization of Haskore Music and MDL as well as Fran and FAL animation
T-shirt Fritz Ruehr [10] Haskore T-Shirt featuring the 8 laws of polymorphic temporal media

4 Links