hBeat
A simple step music sequencer, written in haskell. It's a toy, but a fun one...
Dependencies
This has been build with ghc-6.8, and cabal 1.2.2. An older ghc should work, but the cabal file will need some tweaking.
- base
- containers
- old-time
- mtl
- OpenGL
- SDL
- SDL-mixer
You'll probably find that only the last two of these need to be installed manually, as the others came with my distribution.
In theory this should work on any platform where the dependencies can be satisfied. However, it's been built and tested on linux.
Download
via darcs, with the command: darcs get http://www.dockerz.net/repos/hbeat or from hackage.
or from hackage:
Instructions
1. Satisfy the dependencies above either via your platform packaging system, or via cabal.
2. Build the hbeat executable via the usual cabal incantations, something like:
cd hbeat runghc Setup.hs configure --user --prefix $HOME runghc Setup.hs build sudo runghc Setup.hs install
3. Find some sound suitable sound files... I used these:
though I had to unpack the file, and decompress the .flac files to .wav
4. Construct a config file giving, as a minimum, the samples to use, and the number of steps. eg in sample.config:
Config {
c_samples =
[ "samples/ElectricEmpireKit/EE Clap.wav"
, "samples/ElectricEmpireKit/EE Clap Hard.wav"
, "samples/ElectricEmpireKit/EE Conga 1.wav"
, "samples/ElectricEmpireKit/EE Conga 2.wav"
, "samples/ElectricEmpireKit/EE Drum 1.wav"
, "samples/ElectricEmpireKit/EE Drum 2.wav"
],
c_steps = 16
}
5. Run the executable, passing the config file as the single parameter
hbeat sample.config
}
In operation:
- Click on a pattern square to toggle that channel/step
- Use the mouse wheel to speed up/slow down the rate
- Click on one of the pattern switches at the bottom to cut to a modified pattern
To Do
These would be nice, but I may never get around to them:
- Saving and loading constructed patterns
- Triggering external devices
- More accurate timing - some jitter in fast patterns is evident to me, so is probably blindingly obvious to more sensitive ears. I'm not sure if sound in SDL can facilitate this
Contact
Tim Docker
