
For those who are interested in composing music using Haskell, I have initiated a page on the Haskell Wiki about projects related to Haskore: http://www.haskell.org/hawiki/Haskore I also like to point to my private work on Haskore. It includes bug-fixes, a more fine-grained modularization, better support for infinite music data, an automatic test-suite that is run by Darcs whenever one records a new patch, a Haddock reference documentation, some examples of music processing such as Markov chains. The Music datatype is now based on a more general type for temporal media as proposed by Paul Hudak. Unfortunately the simplicity required for teaching is partially lost. :-( The current state can be found at: http://cvs.haskell.org/darcs/haskore/src/ In the future it should support a more general notion of instruments and MIDI controllers. So there will be more incompatible changes ...

Henning Thielemann
I also like to point to my private work on Haskore. It includes bug-fixes, a more fine-grained modularization, better support for infinite music data,
I've used Haskore before, but I wasn't able to figure out how to make infinte compositions. I'd like to try turning a lorenz fractal into music, could you point me to an example of such an infinite song? Can you actually play such a thing from Haskore? Thanks, -- Shae Matijs Erisson - http://www.ScannedInAvian.com/ - Sockmonster once said: You could switch out the unicycles for badgers, and the game would be the same.

Shae Matijs Erisson wrote:
I've used Haskore before, but I wasn't able to figure out how to make infinte compositions. I'd like to try turning a lorenz fractal into music, could you point me to an example of such an infinite song?
Here is some non-periodic song based on a sequence of natural numbers: http://cvs.haskell.org/darcs/haskore/src/Example/Flip.hs A Markov chain can also be used to produce infinite songs: http://cvs.haskell.org/darcs/haskore/src/Example/Kantate147.hs
Can you actually play such a thing from Haskore?
Yes, but with restrictions. You can render the music into an audio stream which you pipe through some external player like Sox' 'play' command. I successfully did this: http://cvs.haskell.org/darcs/synthesizer (Presentation.playMusicSignal) but the rendering of signals does not allow much polyphony or complicated sounds. MIDI files unfortunately have a length specification in the header, thus they can't be infinite, unless there is a trick to define open-end tracks. Nevertheless, the MIDI functions can now handle infinite music properly. MidiFile is also based on relative times which is essential for long music. Someone told me that CSound is also able to receive song information through a pipe, but I couldn't get this running so far. :-(

Henning and others who are interested in Haskore might want to check out the Haskore-themed T-shirt available from CafePress: http://www.cafepress.com/haskore.13482964 Note that the 8 laws of polymorphic temporal media appear on the rear side of the shirt: just click on the "View Larger Images" link to see them. (I could also cut a cheaper, one-sided version of the shirt if anyone is interested.) I made this design for Paul Hudak without realizing that there would be a big market for Haskore shirts (so I am pleasantly surprised). As always, we here at Haskell-Themed Merchandise, Inc. make no profit on the merchandise we sell at cost through CafePress. -- Fritz Ruehr PS: There are also some Haskell-themed infant/toddler clothing items that haven't made it onto the Haskell merchandise page yet, see http://www.cafepress.com/HaskellBoys and http://www.cafepress.com/HaskellGirls. HTMI's marketing department has been duly chastised for the delays :) .
participants (4)
-
Fritz Ruehr
-
Henning Thielemann
-
Lemming
-
Shae Matijs Erisson