Goal of this project is to provide a functional step sequencer, that would be relatively portable, easy to use and fully hackable.
Version 0 is an experimental prototype with a hand wired keyboard matrix and display, not great but it works pretty well.
- Raspberry Pi Pico
- 20 keyboard switched
- I2C SSD1306 display
- Midi connector
- Misc
- Wire
- Diodes
- Resistors (10ohm and 33ohm)
There is an error in the schematic and gate in should have reversed connection to the jack!!!
The newest version of the firmware is src/main_v2.py, I decided to rewrite the firmware to utilize coroutines and improve performance. There was severe performance degradation while writing to the display, so display is now essentially disabled while in play mode and step mode is recommended for editing. The sequencer was tested with E1M1 (also default pattern 1) and it was able to believably reproduce it using usb midi and garageband. Hardware midi was tested with Behringer Model D.
Default mode when the sequencer starts up, the keyboard can be played as a midi instrument and programmed sequences are played. No sequence programming is performed.
The keyboard programmes notes into the sequence.
Can be activated in both PLAY and RECORD modes. In play mode, it pauses playback. If activated in record mode, automatic sequence advance and stepping is performed manually.
There are eight function button numbered from top left 1, 2, 3, 4 on the first rown and 5, 6, 7, 8 on the second row.
() - with modifier 1 [] - with modifier 2
The other keys are one octave of piano keys.
- 1: Enter or exit record mode, disable step mode
- 2: Enter step mode, next step in step mode
- 3: (Steps per beat)
- 4: Tempo +, (octave +), [midi channel +]
- 5: Modifier 1
- 6: Modifier 2
- 7: RESERVED FOR FUTURE: 5x Tempo +/-
- 8: Tempo -, (octave -), [midi channel -]
- 1: Enter or exit record mode, disable step mode
- 2: Enter step mode, next step in step mode
- 3: Note length - 1/n, (Steps per beat)
- 4: Track +, (octave +), [midi channel +]
- 5: Modifier 1
- 6: Modifier 2
- 7: note mode - one note, double note, triple note
- 8: Track -, (octave -), [midi channel -]
Version 1.5 is based on the RP2040-LCD-1.28 by waveshare it is an RP2040 based board that is built around a circular lcd screen. There are also additional ports for SYNC, CV+GATE and MIDI right on the pcb in the form of TRS sockets. Most of the parts are or will be surface mount, so it should be mostly JLCPCB assembly friendly.
- Improve readme
- Create schematic
- Create control layout scheme that is readable
- Design a PCB
- Cheaper variant with nice tactile smd buttons
- Fancy variant with cherry mx buttons
- A variant with touch keys???
- Provide a way for people to buy a kit
- Provide limited amount of prebuilt kits (I will have to figure out the logistics of this one)
- Update case and model case lid
- CV + Gate out for 1 or 2 tracks
- Sync IN/OUT (Simple enough, hopefully)
- Save/Load
- Track length/count configuration
- Track patterning???
- Port firmware to C or Rust (rust has nice async/await, etc...) using the pico sdk - after final hardware and stable circuitpython firmware
- Different screen
- Bigger to improve readability * Faster to remove the ssd1306 bottleneck
- Candidate