The Sequencer Prototype

After a couple of weeks learning the Arduino IDE and tinkering with I/O devices such as LEDs and rotary encoders, I had a basic prototype built. Rather than documenting this entire process, I will instead focus on some points of particular interest.

The Display

Visual feedback is very important on a device like this, and I needed something which both displayed all the relevant information, but which was also cheap and simple to program. I settled on this pair of 8×8 LED matrices, which come with their own control chips and have an Arduino library written to allow for simple programming. My implementation uses the top row to show the tempo, the second row to show the number of steps, the third and bottom rows to show the current step, and the remaining rows to display the four lanes of the sequence. This is far clearer in the video footage below.

The Input Controls

While simple buttons would be fine for some functions, if every parameter in the device was controlled by these then I would need over 30 buttons, which would be both confusing and space consuming. It would also require more I/O pins than my standard Arduino will allow. I decided to keep buttons for a couple of functions (start/stop for example), but offloaded most input control to rotary encoders. These allow for both incremental increase and decrease in values, and also work as push buttons. Code-wise, these encoders were complicated to get right, and also hog a lot of computational power on the rather limited Arduino, so I will aim to replace them with a better solution in future revisions of the device.

This test video shows a simplified version of the circuitry involved. In this instance, only two lanes of the sequencer are being used. The encoders change the number of steps for each lane, and if pushed and twisted modify the offset. Sound is all being generated by the UH modular synth.
This second short video shows the entire circuit being used, including a toggle switch to change between lanes 1/2 and 3/4. Note the more advanced sound design from the synth meaning that the sequence is less obvious.

Up until this point, the circuit had been entirely constructed on a breadboard, but the next stage was to move it into a self-contained unit. As PCB design and printing is currently beyond my level of experience, I decided to use soldered stripboard, and designed my circuit using the freeware Fritzing software package. As miniaturisation was now a point to consider, I moved from the full-sized Arduino UNO to the smaller but just as powerful Arduino NANO.

This circuit contains four separate boards to keep things as simple as possible – one for the Arduino, one for button and switch input, and two for the jacks. Note the three extra jacks on the top right board, which are clock I/O CV, and the third encoder which deals with functions such as sequence length and tempo.
Once the circuit had been built, it was crudely attached to a cardboard box as an initial housing for tests.
The finished sequencer prototype mk1! Jack connections were still loose around the back of the box, but the basic concept was successful and most importantly – it worked!

Leave a Reply

Create your own website, free on WordPress.com.Create your own website.
Start free