Repository navigation
Home
Tim Docker edited this page May 21, 2013
·
3 revisions
A simple step music sequencer, written in haskell. It's a toy, but a fun one...
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.
cabal install hbead
-
Find some sound suitable sound files... I used these:
though I had to unpack the file, and decompress the .flac files to .wav
- 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
}
- 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
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