ANNOUNCE: HasChorus - some modules for Haskore

Martin Schwenke
Tue, 20 Mar 2001 15:25:45 +1100


A set of Haskell ( modules written on top of
Haskore ( to make it easier to sequence
simple, repetitive music.  

HasChorus is available via:


HasChorus *has* a bunch of useful modules:

HasChords.lhs:	    Build (diatonic) chords from scales and scale degrees.
HasDrums.lhs:	    Sequence drums in a similar manner to a drum machine.
HasEasyMusic.lhs:   Allow simple specification of simple music sequences.
HasGroove.lhs:	    Modify Haskore performances via normal distributions.
HasPatterns.lhs:    Sequence patterns by playing chords in different ways.
HasScales.lhs:	    Build scales and pick notes by scale degree.	    
HasSounds.lhs:	    Some boring ways of playing some instruments.
HaskoreExtras.lhs:  Some useful functions that aren't in Haskore.

BubbleSort.lhs:	    An implementation of bubble sort.  Used by HasGroove.lhs.
Normal.lhs:	    Generate normal distributions.  Used by HasGroove.lhs.

TwelveBar.lhs:	    An example song.

Many of the modules can be used without requiring all of the others.
The dependencies look something like:

HasEasyMusic -> HasChords -> HasScales

HasDrums -> HaskoreExtras

HasSounds -> HasPatterns

HasGroove -> BubbleSort, Normal

TwelveBar -> HasChorus -> *EVERTHING ELSE*


HasChorus has been tested under:

* Hugs: Currently I use Hugs 98, February 2000.  I use -h1000000 so
  that HasGroove doesn't melt down...  :-)

* GHC: 4.08 (previously under 4.07) under x86 Linux.


I use HasChorus to sequence up simple backing tracks for my own


peace & happiness,

Martin Schwenke <>

p.s. Several people who have expressed interest in this project during
     the last few years have received this announcement via a BCC.
     They haven't been secretly subscribed to the Haskell mailing
     list. :-)