The Chess Sequencer is a step matrix sequencer made from a chess board, where placing the pieces make music. The sequencer is connected to software synths on my Mac trough USB and a Processing patch to convert the serial data to internal midi.
Take a look:
The chess board:
In the center of every square, I have carefully drilled a hole from the back side using a 5mm drill-bit with an adjustable depth-limiter secured to it. In the hole I have fitted a reed switch element with one pin bent 180 degrees as close as possible to the glass bulb, so it can be put into the hole. This is no easy task! These bulbs break for no stress at all so I think I broke 20% of them. Luckily they are quite cheap. Last I secured the reed with hot glue to make it stable.
With all reeds in place, I connected them together, one wire for each row, and taped the wire on to the board with electrical tape. These wires became the Y axis of the pattern.
On the other side of the reeds I soldered diodes, 1N4148, anode side. The Cathodes were wired together, one wire for each column. These wires became the X axis of the pattern. X and Y wires were then connected to flat cables and connected to the digital inputs on the Arduino Mega.
Preparing the Chess Pieces:
I drilled a hole in the bottom of each piece with a depth-limiter on the drill.
Then I filled super-glue in the hole and inserted a Neoball magnet. A trick I used was to put the Noeball on top of a neodyme button magnet, then put the glue filled piece on top of it and keep it still until the glue dries. This way I make sure to get the magnet inside as low as possible and with the north or south poles pointing straight up and down.
For no reason at all, I made all the white pieces north pole down and the black pieces south pole down. The reeds don’t care 😉
I have given a lot of thought to the design of the control surface, to make it simple and yet powerfull.
The key switch is a 12 step selector switch, where you can select every half note from C to B. The software lets the key wrap so that if you continue to turn it clockwise you will getting higher and higher octaves. Counter-clockwise gives lower and lower. This way you can transpose to all octaves and notes in the midi range.
A potentiometer let you slide from 20 to 220BPM. This range can be altered in the top of the Arduino code to anything you like.
This is an important feature. If you have several pieces in the same column and the stroke knob is heading straight up, the notes will be played simultaneously. If you put the stroke slightly to the left, they will be played from top to bottom like an upstroke on a guitar. Slightly to the right will be like a downstroke on a guitar. This sounds a bit like a music box, where only one note is played at a time. If you set the knob to the extreme left or right, the notes in the column will be divided equally time wise on the available time to the next note. Example: Given that a column represent an 8 note, two pieces in the same column will be played as two separate 16’s after each other, three pieces as triplets, four pieces as 32’s etc.
You have the possibility to adjust how many columns to playback, from 8 to 5, so you can make odd rhythm figures. I am using the same 12-step switch as the Key selector, so I think I will expand the possibilities with this knob later.
A potentiometer lets you analogly choose delay time, synched to the BPM, for a midi echo. That is that every note is repeated one time with a lower velocity. Turning it ccw turns it off.
Hold / Pause
This is a three-step switch. In the middle position all is played normally. Pulling it down will stop the playback. Pending echos will be allowed to finished. Pushing it up will freeze the play fields and controls until you put it in middle position again. This give you possibilities to make changes while the sequencer keeps playing the last setup. Then, when ready, you can apply the new setup.
b / bb
These three stage switches let you pull the note for each row down a half or a whole note. The default scale with all switches up is a whole step scale sounding kind of eerie. By setting the switches you can make it play most scales.
The core here is an Arduino Mega. I was planing to use the Duemilanove but laziness caught me. The Mega has tons of IOs so I do not have to make a lot of multiplexing saving me hours of work.
Most switches are connected to digital inputs on the Mega, which features internal pullups. However, the two 12 step multi throw switches for Key and Step are given resistor ladders and connected to analog inputs to save wiring and digital inputs, and to make the code simpler. If you like, you can use potentiometers instead of these switches, but they will be less intuitive for the user.
The three potentiometer for Echo, PBM and Stroke are connected to +5V and 0V on each side, with midpoint connected to analog inputs.
The reeds are connected with diodes as a quite normal keyboard XY grid which is scanned by the code.
After programming the Arduino, you can access the midi data trough my Processing Patch (Mac). I think you can also use a general serial-to-midi program, but then you might have to change the baud rate in the Arduino code serial setup to match normal Midi baudrate. Probably not 😉
For Arduino and Processing Source Code, press here.
- At some point I would like to replace the control panel with engraved brass or something to make it look better!
- I am considering a regular Midi output, not just USB, but I’m probably never going to connect it to a stand-alone synthesizer anyway.
- I dream about finding a pile of cheap solenoids so I can build a small metallophone into the free drawer. So far all I can find is expensive solenoids. Very expensive.
- I would like a jack output for the Hold switch, so I can step on a piano pedal to freeze the playfield.
- It would be nice if the software could handle Midi Clock in, so it could be synced up to other midi sequencers.