DrumGizmo
An open source drum machine.
What does it do? (currently - What WILL it do)
It takes input from either a midi source, or audio input, and turns these into internal trigger signals, used to activate one or more samples on one or more output channels.
Output can be jack channels, or wav files.
All inputs are controlled using velocity.
The entire system is preprogrammed using an xml file, and a lot of wav files. No magic file formats or obscure predefined file names.
An easy to use editor is supplied running on Qt4, which can also be used as a control interface for the drum kit.
Try it out
Beat detection
LASH
Midi reader library
TODO
Make autotools project.
Make event interface.
Make midi-node → sample mapping.
Make drumkit xml file format
spec.
Make xml reader/parser.
Make audio beat detection for audio inputs (triggerinng).
Cut off audio at some threshold on read, to save memory.
Make Qt4 gui
Make alternative audio backends work
ALSA (output)
ALSA Midi (input)
Jack (output)
JackMidi (input)
SndFile (output)
Midifile (input)
SDL (output)
DirectSound (output)
Make Win32 port.
Make plugin-able
LV2
VST
DSSI
LADSPA
DXI
RTAS
AU
'Port' to git
Make in-RAM storage based on mp3.
Make in-RAM storage based on FLAC.
Make in-RAM storage based wav with separate attack and 'tail' sections, reusing the tail for multiple attacks.
Test creation of multiple samples using a single sample and short filters.
Make quantisation based on midi tempo input.
Make 'humaniser' both in time and veloctiy.
Make groove enhancer (velocity changer based on tempo)
Make wav optimizer (cut off silence, based on energy, and fade out).
Make sample sorter (based on energy in initial wav data).