This is a prototype of a sequencer made in a Raspberry Pi Pico. Particulary, an euclidean sequencer, whose steps can be added/removed uniformely in the grid by rotating the encoder.
VID_20221020_162245915.mp4
For the moment, features are:
- 4 voices
- 16 steps
- Audio output through PWM (optionally I2S)
- MIDI USB note output
- Clock input 5V trigger pulse (ie. used by Korg Volca, etc)
- 16 led using 2 shift registers 74hc595, or NeoPixel display
- Event-based system to hook into seq/UI events, see code.py
- Save up to 16 sequences
If encoder is rotated without holding any button, it changes TEMPO.
Button presses select voices, however if a button a holded and encoder is rotated, they have different actions.
- btn #1: add/remove HITS
- btn #2: add/remove OFFSET
- btn #3: add/remove STEPS
- btn #4: schedule sequence 1-16
- if encoder button is pressed when btn is held, sequence is saved.
A single encoder press, PLAY/STOP sequence.
- btn #1 + #2: clear pattern
- btn #2 + #3: random pattern
- Porting to Arduino C. Despite CircuitPython is great to play around, it doesn't provide hardware timer interrupts, which is critical to keep tempo consistent. Maybe worth trying plain MicroPython, but C surely is a better idea.
- Add more voices
- Sync out
- MIDI sync in
- Improve RC filter on audio PWM pin (currently, just a 4.7k + 1uF cap)