This is a collection of generative sequencers, written in Rust. Use it to send MIDI notes to your synthesizer or DAW. Sequencers currently supported:
- Euclidean
This is put here as reference, in case the original link (https://aidanblack.github.io/RPiMIDI.html) goes offline.
sudo nano /boot/firmware/cmdline.txt
Remove console=serial0,115200
sudo nano /boot/firmware/config.txt
Add:
enable_uart=1
dtoverlay=pi3-miniuart-bt
dtoverlay=midi-uart
sudo raspi-config
Interfacing options -> P6 Serial -> Disable login shell -> Enable serial port
sudo apt-get install libasound2-dev
wget http://www.varal.org/ttymidi/ttymidi.tar.gz
tar -zxvf ttymidi.tar.gz
cd ttymidi/
make
sudo make install
ttymidi -s /dev/ttyAMA0 -b 38400 & Will run ttymidi in the background.
ttymidi -s /dev/ttyAMA0 -b 38400 -v Will run ttymidi in verbose mode (midi traffic displayed on screen).
To operate the sequencer, you can attach a keyboard to whatever device is running this code, e.g. a Raspberry Pi.
The common keyboard shortcuts are:
SPACEto start/stop the sequencerTABto switch between active sequencer
Wto increase the MIDI note by 1Sto decrease the MIDI note by 1Ato decrease the MIDI note by one octaveDto increase the MIDI note by one octave
UPto increase the number of steps by 1DOWNto decrease the number of steps by 1LEFTto decrease the number of pulses by 1RIGHTto increase the number of pulses by 1
Rto increase mixer ratio by 0.05Fto decrease mixer ratio by 0.05
An easy way (on Linux) to get a feel for this sequencer is to attach it to a FluidSynth instance.
Next, you'll need to download a .sf2 SoundFont file, such as here: Roland SC-88 SoundFont file
- Add chords
- Add scales
- Add +AI sequencer