I’ve been designing original electronic instruments ever since I made a toy sequencer for my daughter’s first birthday called the R-Tronic 8-Bit, and got it published in Make: in 2008. That one was a simple step sequencer that uses shapes to put sounds into a sequence that makes up a little song.
Since then I’ve built about 50 one-of-a-kind synthesizers, loopers, and sequencers, some that I’ve shared as DIY projects, and others that I sell on Etsy, such as the Wicks Looper, the Automaphone, and the RotoSeq — a rotary sequencer that you program by placing (or removing) marbles in the path of 4 different light detectors. Fun fact: I’ve made a Beat Destructor for Adam Horovitz of the Beastie Boys and a Ruptutron for Thom Green from Alt-J.
This project is a Lego reproduction of my original RotoSeq that’s simpler and smarter at the same time — it uses only a single sensor, but that sensor can detect 8 different colors. Little towers made of colored blocks are placed at the end of each arm, and as each block passes the color sensor, the sound that corresponds with that color is played. The variety of sounds and sequences is endless.
The Lego RotoSeq uses the Lego Mindstorms EV3 Intelligent Brick as a processor to do 3 things: control the motor that spins the arms, receive the data from the EV3 Color Sensor, then play the sounds from onboard WAV files. Of course you can easily substitute your own sound samples to create your own never-before-heard beats.
The First Roto Seq
My original RotoSeq is powered by a hand-cranked generator. It’s got 8 time slots and 4 sounds and uses 4 light sensors (light-dependent resistors or LDRs) connected to a Picaxe microcontroller to make sounds. In a way, it works oppositely to the Lego version — you start with a turntable filled with marbles in every position (no sounds) and then when a marble is removed from the turntable a sound is made that corresponds to that position. Each color represents one of 4 preprogrammed sounds, and each position represents one of 8 slots in the sequence.
At the heart of the RotoSeq is a Picaxe 28X processor, which takes information from the 4 LDRs, and generates the 4 lo-fi sounds in the sequence. LEDs provide a constant light source for the LDRs, and a modified servo is used to move the platform.
I still use the original RotoSeq, but the motor was a little noisy so I’m building a new version with some really nice woodwork and new samples. This one will probably be Arduino-based rather them Picaxe-based — and use a stepper motor.
Build Your Lego RotoSeq Sequencer
The RotoSeq is a really simple build. You’ll construct a base with a motor to rotate a platform with 12 arms, and mount the color sensor where it can detect the position and color of the 2×2 brick towers. Then you’ll hook up the EV3 brick for the brains.
1. Build the base
Start by building the base around the Lego motor (Figure A). It doesn’t matter how you do this, but it has to be sturdy, as the platform rotates fast and can be heavy. I geared down the output with an 8-tooth gear on the motor and a 40-tooth gear on the platform side (Figure B).
Also, the base needs to have a boom extending from one side to support the color sensor, long enough to reach just beyond the edge of the platform arms.
2. Make the platform
The platform of the RotoSeq has 12 arms but it doesn’t matter how you divide it up. For the hub, I used 2 wheels from a Lego NXT set which have 6 arms each; I put one on the top and one on the bottom and offset them to get 12 positions (Figure C).
Mount your platform’s hub onto the motor’s axle (Figure D).
3. Build your color towers
Build several 3-high towers using 2×2 blocks in blue, red, white, green, and yellow. Fit a 2-unit long axle into the bottom of each one to allow it to sit in position at the end of the platform arms (Figure E).
4. Mount the color sensor
Now fit the color sensor into position so that it detects each 3-brick-high tower right in the middle (Figure F).
5. Program the EV3 brick
Download the code file Lego_Rotoseq.ev3 here, then upload it to the EV3 Intelligent Brick using the Mindstorms EV3 software on your computer (Figure G).
Connect the color sensor to Input 1 and the motor to Output A (Figure H). You’re done.
Special thanks to Edgar McNamara and Rhianna McNamara for all your help on this build.
Now Drop Some Robotronic Beats
The RotoSeq is played by placing the colored Lego blocks onto the end of the rotating arms. Each color represents one of 5 sounds, and each position represents one of 12 slots in the sequence.
Now run the program on the EV3 brick. The up/down buttons control the speed of the spinning arms (Figure I), and the middle button stops the rotation to allow you to add and remove the colored brick towers.
Each color of brick is recognized by the software as the trigger for one of 5 specific sound samples. Just swap, delete, and remix the towers to rearrange your beats!
Tip: Store any unused towers on the platform, near the center where they won’t be detected by the color sensor.
Customizing the Sounds
The sound samples can be easily modified using the Mindstorms EV3 software. To save your own samples, click Tools→Sound Editor, load your WAV file, click Save, then enter the name you want to call the sample.
Now find the programming block in the visual code that has a picture of a speaker on it. There will be 5 of these, labeled Bass_kick, Dog_bark1, Tang, Coin, and Snare (Figure J). Click on the name of the current sample you want to change, and add the one you want using the drop-down menu. Reload the program into the EV3 brick and you’re ready to go.
Tip: I found my samples in an open-source WAV library by searching online for “open source drum samples.”
Want to use your RotoSeq as an input device for amps or for recording? The EV3 brick has no audio out jack. But with its built-in Bluetooth, Wi-Fi, and USB, there has got to be a way to get an output other than the speaker. I haven’t found it yet, but maybe you can.
You should also be able to use more than 5 samples. Originally I was using all 8 colors that the sensor can recognize, but I was getting lots of false positive triggers, especially at higher speeds, so in the end I went with the most reliable color set. But I bet it can be done!
Have fun with this Lego project and please email me at [email protected] if you need any help or have any questions.