Topographic drum sequencer
Take the user interface of an euclidean sequencer, a healthy dose of machine learning and graph algorithms, megabytes of drum loops, hours of intensive computations and you’ve got a drum pattern generator like no other.
Grids’ “brain” is a map of the typical drum patterns used in (mostly electronic) music, laid out by similarity, trained on a large corpus of drum loops. The module can smoothly interpolate and navigate from one pattern to the other, at the whim of a knob move or a CV.
But Grids’ knowledge of drum patterns goes far beyond what would be achieved with presets – given a position in the map, thousands of variations can be intuitively generated by controlling the “event density” of each of the 3 channels (bd, sd, hh) – gradually moving from a sparse backbone to a deliciously rich pattern with ghost notes, rolls and fills.
Add CV-control on these parameters and you can add subtle or drastic variations to the drum pattern. If you don’t want to waste a noise source or S&H for that, Grids has its own internal source of randomness that can unpredictably spice the pattern, in an always meaningful way.
Building the rhythmic foundation of your tracks with Grids is fun, surprisingly intuitive, with modulation and variations possibilities that will rapidly make you forget x0x-style sequencers.
Three-channel algorithmic trigger generator, based on compressed representations of drum patterns and their variations. Most generated patterns will work best with channel 1 = BD, channel 2 = SD, channel 3 = HH or percussion, though variations are possible!
I/O and controls
- Clock input.
- Internal clock with a 40 to 240 BPM range (internal clock is paused when the tempo is set below 40 BPM).
- Pattern reset trigger input.
- Beat indicator/tap tempo button.
- Latitude/Longitude knobs with CV input (range: 0 to 5V, protected).
- Randomness knob with CV input (range: 0 to 5V, protected).
- Pattern complexity/density knobs for channels 1, 2, 3 with CV inputs (range: 0 to 5V, protected).
- 5V trigger and accent outputs for channels 1, 2, 3.
- Secret 3-channel euclidean sequencer mode.
Settings / options
- Clock resolution: 24ppqn, 8ppqn, 4ppqn.
- The tap tempo button/beat LED can also be configured as a reset button/beginning of pattern LED.
- 3-channel euclidean sequencer mode.
- Alternative output layout with Clock/Reset outputs instead of Accent 2 and Accent 3.
- Trigger or Gate output mode.
Unlockable items for DIY heroes
- Bonus clock output!
- Bonus random gate output!
- MIDI interface responding to start/stop/clock messages!
- All inputs: 100k impedance, DC to 500 Hz.
- Clock resolution and MIDI processing latency: 120µs (Worst case jitter < 0.5% at 120 BPM). Independent benchmark here.
- Open-source hardware and firmware.
- Current consumption: +12V: 25mA ; -12V: 1mA.
Grids is open-source. The code and hardware files can be found in the grids directory in our Eurorack modules git repository.
After having cloned the repository, don’t forget to run
git submodule init && git submodule update to make sure the sub-projects referenced in the code are also pulled.
To build and upload Grids’ code, avr-gcc and avrdude must be installed. These are standard packages on Linux. On OS X, Crosspack can be installed.
The path to the toolchain can be edited in the
AVRLIB_TOOLS_PATH variable in
avrlib/makefile.mk directory. It might also be necessary to change the ISP programmer name in the
To build the code, use the following command:
make -f grids/makefile
If you modify lookup tables and want the big
resources.cc file to be regenerated:
touch grids/resources/resources.py && make -f grids/makefile resources
Sending the firmware to the module
Programming must be done with an AVR ISP programmer. These are very common and can be found for a few dollars – however, the most reliable units are Atmel’s own AVR ISP mkII.
The ISP programmer must be connected on the back of the module – red stripe of the cable on the same side as the ISP text on the board. To upload the code:
make -f grids/makefile upload
Schematics, board layout and panel files can be found in the
grids/hardware_design directory of the github repository.
The CLOCK and RANDOM GATE are extra outputs.
RX expects a +5V (post optocoupler) serial signal. It can be used to provide MIDI sync to Grids.
The hardware description files are released under a cc-by-sa-3.0 license. The source code is released under a GPL 3.0 license.