So you have amassed a pile of circuit bent toys. What are you going to do with them now? Each creation has its own control interface — pitch knob, distortion and glitch switches, body contacts, and/or LDRs — and of course, the buttons to bring the noise. Naturally, though, you can only play so many toys at one time. Enter the modular sequencer, which will assist in making some sense of balancing control.
I chose to approach this project from the view of low-cost DIY because I have more time than money. With my time, I have been able to learn new things, which have grown to their own new ideas. I have kept the cost of working through new designs low, spending as much on components as I would for bending a piece, anyway. I am on my fifth sequencer design, and through all of them, the adapter interface to the bent toys has stayed the same. It is simple and expandable. It can work on basic 2 wire buttons and matrix buttons. The toys all have the same connection method, but the control circuits have changed from step to programmable to various pseudo random designs.
I will break this down to prepping the toy, adapter interface, control circuit, and some of what can be done. This will get somewhat technical, but it can be done with patience and rereading confusing parts. I’m also happy to answer questions. All though I refer to toys this can be applied to instruments, sound circuits you build, or anything with buttons that make sounds.
This modular sequencer is a four channel trigger sequencer. One of the four channels is active at a time. Each channel can have multiple connections. This allows for syncing different toys. Running the toys to a mixer lets you sync or drop out sounds. This is not like a sequencer for a keyboard with a serial (one single channel) connection that sends Control Voltage (CV) signals to trigger different notes based on voltage of the signal. This sequencer is making remote button presses. I recommend starting with battery operated toys at first.
Prep: I have found using RCA jacks to be the most flexible method of connecting to toys. Using the individual jacks means just drilling a hole. RCA jacks only have two connections to make per button on 2 wire buttons. Typically, 2 wire buttons have one side going to ground or power and the other side to a chip or blob. Follow the traces from the button to solder points, and connect from there to the jack. This is a parallel button connection. If you have more than one button (usually you will) with a common signal you can run a single wire from the pcb to the first jack, and then daisy chain from jack to jack.
Matrix buttons need a bit more work, but are worth it. In addition to the jacks, you need alligator clips and some bolts. Drill the holes for the jacks. For each of those holes, drill two small holes for wire (thick and flexible) to go through. Cut two pieces of 10″ long wire for each jack, and solder them to a jack. Feed each wire through the smaller holes, and mark the wires where they are a little loose near the holes. Pull wire back out of the holes, and make a knot in the wire at the mark you made. Feed wire back through holes, strip ends, and solder to alligator clips. If the wires get pulled to hard the knot will stop them from breaking off of the jacks. Now with the bolts, you’ll make a bolt bay from the matrix button wires. Map out on paper which wires go to each button. There are two groups in the wires. You can identify these groups from the map you made. Mark the two groups of wires, and count the wires in each group. Drill holes for the same number of two groups of bolts. Solder wires (normal hook up wire) to the pcb, strip and wrap the other end to the bolts, and tighten the bolts. What you have now is the ability to assign any wire combination to any jack, which means any sound to any jack. The last thing needed is a bolt to connect to ground between toys and sequencer, and this is for both button types.
These are the toys I have used these techniques on to work with my sequencers.
Adapter Interface: This centers around a 4016 (or 4066) bi-lateral switch to isolate the control signals (that is the next section) from the parallel button connections on the toys. Opto isolators cold be used, but I chose not to use them because package size for number of switches. Transistors will not work because 1) The signal applied to the Base will mingle with the signal passed through the Collector/Emitter. 2) Polarity. NPNs and PNPs basically work in opposite as to whether the Base signal is more positive or more negative to the signal to pass through Collector/Emitter. Depending on how the jacks are wired toys with a common ground to buttons might work, but common power would not. That is just a rough example. Relays could work, but they do have mechanical parts which can wear out. The 4016 is solid state, so no parts to wear out. There are four switches in a single chip. Simple state change signals are being passed through the switches. Powering the 4016 from 12 volts means you can pass signals up to 12 volts through the switches, and different voltage toys at the same time through one chip. There is no polarity for the In/Out pins of each switch. Each control pin needs a positive voltage to pass a signal from In to Out (switch ON), so a simple pull down resistor to ground is used on the control pins to ensure a switch is OFF. The In and Out pins are connected to RCA jacks. One chip = 4 switches = 4 control pins = 4 jacks. You can expand the number of jacks by wiring the control pins of each 4016 together (SW1 of each 4016 is common, all SW2 common, etc). Four chips = 16 switches = 4 control pins = 16 jacks.
Now that you have jacks on the toys and the adapter interface you can make your own RCA cables to the length you like, or use regular RCA cables. For the toy laptop the adapter interface had to be wired to also be a null terminal so that the parallel port would work properly. When using the adapter interface on other sequencers control circuits I used a parallel port, but only used the data line pins and ground.
The control circuits are coming up next, and they do not run on 12 volts like the 4016 do. They run on 5 volts, so we need to boost their 5V signal to 12V with transistors. Use a 5V voltage regulator to lower the 12V so the whole circuit only needs one power supply.
Again you will need a bolt connected to ground that the toys can attach to. Alligator clips on lengths of wire can connect in a daisy chain or a star connect.
Control Circuits: So this is where we create and send the ON signals to the 4016.
Step sequencer – Very straight forward design. Clock signal (CLK) feeds a 4017 decade counter to cycle a single HIGH signal through its outputs. Switches and diodes direct which channel will be active on which step. The limitations of this design are 1) More possibilities means more switches which increases cost and area needed for the switches. 2) The faster the tempo, the trickier it is to time flipping switches to change the pattern.
Step sequencer sample.
Programmable sequencer – Utilizing a desktop or laptop to give flexibility to pattern length and complexity. I used an embedded system toy laptop. Two things to consider are the remaining life and adding memory. A toy laptop is cheap, small, and portable, with no worry of viruses or upgrading any software. It has a parallel port, and it has version of BASIC very similar to MS BASIC. The Vtech Precomputer Prestige does not have built in RAM (everything gets wiped at power down), but it does have a cartridge port. Memory carts were sold long ago, but I could not find any for my laptop. With some work, the cart port pins were mapped out, so I could add NVRAM (non-volatile ram does not lose data when powered down it has a 10 year battery inside). Now BASIC code could be written, saved to NVRAM, and reloaded when needed. BASIC has simple access to the parallel port which the adapter interface connects to. BASIC code can be written to read in pattern data and send the control signals to the parallel port. Each pattern required its own file.
Programmed beats sample
Code to generate random signals was smaller and did not mean loading a bunch of files. Now random and digital do not really go together. There will come a point where the random pattern repeats and thus ceases to be truly random. Pseudo random with not enough distance/time between repeats acts like a step sequencer with a recognizable pattern. After making random patterns with code, I tried to do the same with hardware only.
2 osc sequencer – Feeding two signals into a 2 to 4 decoder will make one of the four outputs active. Actually, one LOW and the other three HIGH. Those outputs are opposite of what is needed, so I used PNPs to invert the signals to get one HIGH and three LOW. Two simple 555s are the input signals. Running them in or out of phase is what makes the patterns. A third 555 controls the tempo by enabling the decoder. If the input signals are changing while the decoder is enabled, the decoder’s output will follow those input changes. This can be nice or a bit annoying. To get more control over this, a latch was put before the decoder, so the signal at the moment of enabling would be the only affect on the decoder output. Wanting to have a choice the two 555 signals each are routed through a SPDT to go to either the latch or decode. This is an interesting control circuit in that it can be weighted pretty predictably.
PRNG (Pseudo Random Number Generator) sequencer – This is a LSFR (Linear Shift Register) commonly used in encryption technology. Again, this uses a 2 to 4 decoder, but there is no need for a latch. The decoder enable signal is also the CLK signal to push bits through both LSFRs. 6 flip flops (FF) and an exclusive OR (XOR) make up each LSFR. Each time the circuit is powered up the FFs initialize to the same values which does not make it too useful for randomness. To adjust this each LSFR has a clear button that will throw the LSFRs off their predictable patterns. This circuit can not be weighted, so it tends have a free running randomness.
Back to coding for randomness, this time to make repeatable random patterns. At this point with the laptop, only the code will change. The program asks how many total number of loops to make and what tempo to use. A randomly generated array is made which then is walked through at a randomly generated step size. This random pattern is looped through a randomly selected number of times. Then another step size is selected and loop through another random number of times. This repeats until the specified number of loops is done. Since the source data in the array is new each time, and step size and loop times are new the patterns are always different. A loose structure comes from the inner loops. Even if the step size happens to repeat the number of times it is looped is unlikely to also match a previous time.
Microcontroller sequencer – Using a BASIC Stamp BS2 microcontroller allowed more functionality than the laptop. The Stamp was similar to working with the laptop in that it is more about the code than hardware. The Stamp does not need my inputs on total loops or tempo. I put a pot in for tempo, and the loops continue until I throw a switch. That switch will wait until an inner loop finishes instead of just a hard abrupt stop. A switch was added to keep an inner loop repeating beyond its generated number of times to loop. There are two LEDs to indicate when an inner loop will be ending. These LEDs and switch let you keep a good pattern as long as you want.
Some considerations when considering using microcontrollers, include functions in the programming language, number of IO pins, number of variables allowed, price of micro components, and price of dev board. I had bought my STAMP for a project that I never did, and then it sat for years before finally using it. Once use to the STAMP it was very flexible and has potential to be pushed further.
Hardware-only pseudo random sequencer – The next design is to take the microcontroller sequencer to hardware only – no memory and no eeprom or flash. Why? This would be the lowest cost with most functionality from discrete components and standard chips. This design will all have the adapter interface built it, not a separate piece as it has been.
Now if you invest the time into any of these sequencers what can you do with it? The sequencer does the rhythmic button presses for you, and you get to tweak and sculpt the sounds. Whether you are triggering a single toy or multiple toys, there are always new ways to experiment. Low slow pitches with a fast temp. Incorporating pedals into the setup. Toys with a large selection of noises from either modes, sound banks, distortions are great for the variety, and there is less unhook-rehook. Using several toys with very different sounds expands the possibilities. Sometimes just swapping channel connections for aligning certain sounds will make a big difference as well. If you have glitches/effects/distortion on your toy using a momentary switch you have wire another jack on your toy to trigger it from the sequencer. For this to work, it will depend on timing of triggers, a sound would need to be triggered first. Running multiple toys into a mixer so you can layer the sounds.
With some careful experimenting, you can possibly add things like lights to be synced with the toys. I recommend trying LEDs and not jumping straight into 110 volts.
I have compiled info for this post from the sequencer info on my site. There are more audio samples and a little more detail on some of the sequencers. If there were not enough videos for you in this post, there are several more on my youtube channel http://www.youtube.com/user/sailormouthdotorg.