Drake is the name of the computer I am developing. However, this blog covers all aspects of embedded hardware and software, and explains various projects in detail. Feedback is greatly appreciated.
This weekend I finished my black box, which is a 5V utility box (input voltage 6.6V and higher) to be used in combination with Eurorack. It has a number of functions, the first of which is the ability to provide random notes on a minor scale.
It uses a PIC10F206, with the GP3 the clock input, and GP0, GP1 and GP2 the random note output. In order to produce the voltage it alternates between these pins, and uses a very high frequency PWM signal. Between switches the port is set to input. An MCP6274 OPAMP is used to ensure that the voltage doesn't drop, and a two-pole passive low pass filter is used to ensure that PWM is smoothed out. The disadvantage of the passive low pass filter is a slowness between tones, but for the minor chords I'm hoping to generate this is alright.
The source code is available here. The circuit is relatively straight forward. The output is between 0-5V initially, and there are trimmers to lower this to a 1V/octave range.
The Cellz is one of the more inexpensive modules, mostly because its functionality often isn't good enough and it is outgrown and replaced by a proper sequencer. However, with a small amount of work it is possible to add CV and gate to the Cellz, increasing its useful lifespan and perhaps even good enough to purchase one (I got my spare for US $44).
Adding CV allows the Cellz to be used as a quantizer, and in combination with stepping through all the sequencer steps this can also be used to automatically record quantized phrases into it. Here is a short video of what the project looks like:
As you can see, when the gate is high, it passes through the voltages from CV and quantizes them, and when the gate is low it keeps the last quantized value of that cell.
The circuit is reasonably simple. For each potentiometer on the Cellz I bent the middle pin and unsoldered it. I added header pins to the three places of the PCB where the potentiometer is connected and placed diodes between them, so that the middle pin can't exceed the values of the outer pins. The jack is connected to this with a 1k Ohm resistor and the pin of the potentiometer is connected to the switch of the jack, so that the Cellz continues to work normally when no plug is inserted.
For the gate the emitter and collector of a transistor are placed over the switch (one side of the switch is ground, and one side of the potentiometer is ground as well, so you only need to have one wire for both) and the jack is connected to the base of this transistor using a 15k Ohm resistor. There is already a 10k Ohm pullup resistor for the switch in the Cellz, so no other components are needed.
In total you'll need 8 wires from the Cellz: 5V, 0V, 2x2 for each potentiometer, and two wires for the switches. You may not need to use header pins on the Cellz side, except for the middle potentiometers, because there you may want to be able to plug in the wire back onto the header so you don't need the expansion board if you don't want it.
I used header pins everywhere, except to hook up the potentiometers, for which I just cut one female header jumper wire in half and soldered it to each of them.
I'd recommend shorter jumper wires than I used (20cm) but these were the ones I had and therefore the ones I used.
I also added a more detailed picture of how the potentiometer looks after desoldering the pin. This is the hardest part, as the Cellz uses lead-free solder which means you iron needs quite a high temperature (>400 degrees Celsius) in order to do this. First I sucked up some solder with the solder sucker, then I used a screwdriver to pull the pin out. With pliers I straightened out the pin and soldered the wire to it.
At the bottom of this post is the schematic. The header doesn't match the one I soldered together, but it is up to you how you want them to be hooked up.
The I/O Module is a 6 HP module that provides some input and output facilities. The black knob is a double potentiometer that controls the left and the right channels. If a cable is plugged into the gold jack it will be either the left channel or both channels, and a cable plugged into the purple jack will be the right channel. The output is a TRS jack with the black dial controlling the volume. It uses two NE5532 OPAMP, one for each channel. The input voltage is divided by 5 using a resistor network. Because a dual voltage system is used, there is no output capacitor to normal the voltage.
The bottom six jacks are all MIDI related. The MIDI input is fed to the board from the rear of the box using a special conversion circuit (shown below. The 10k resistor in this circuit is essential and occasionally missing in online versions of this circuit). The optocoupler prevents ground loops through the MIDI cable and is required by the MIDI protocol for receiving data. There are two headers on the module, one to provide power to this circuit and one to transfer the MIDI signal to the PIC16F690 that is used to convert the MIDI.
The PIC16F690 was chosen because it has an USART (for MIDI) an analog input and a PWM that can be used as an analog output, and it can be programmed by the PICkit 2. The MIDI outputs are, in order: CV out for MIDI notes played on channel 4. The gate signal of these MIDI notes. The clock signal of the MIDI, and three drums from channel 10. The source code for the MIDI is available here.
To ensure a quick response to frequency changes the PIC16F690 is running at 20Mhz, which also allows 10-bit accuracy. There's a two pole active filter to prevent the PWM signal from interfering with the output, and a small trim potentiometer that allows setting the output voltage from 1x to 2.1x (10k with 9.1k non-inverting OPAMP, which may not be enough).
The double mixer is a 6 HP module that, as the name implies, has two mixers: a golden one and a purple one. As usual, round jacks are inputs, and hexagonal ones are outputs. The golden mixer has two inputs, one that can be attenuated and one that is fixed. It also has one non-inverting output. The circuit is basically an inverting OPAMP for the mix part, and a second OPAMP to invert the signal again. The jack has +5V by default, so the mixer can be used to provide a 0V to 5V signal if it isn't used for anything else.
The purple mixer has all the features of the golden mixer, but in addition it has a third input so it can mix three signals together, and it has an output at the inverted stage. This means it can be used to provide both a 0V to 5V signal and a 0V to -5V signal if no other signals are mixed. It can be combined with the golden mixer for a 0V to 10V and a 0V to -10V signal, if desired.
The Drum Module is a 6 HP module with 4 different sound generators. The silver knob is for metallic sounds, with 5 separate oscillators. The knob controls both the decay (middle is highest decay) and filter (right is highest filter) of the sound. Each time a cable is plugged into the jack it will randomize the oscillator values, so the sound can be changed by replugging the cable.
The black knob is for a noise generator adding short bits of noise to other drums. Again the knob controls both decay and filter. The two gold knobs are for the two tom drums. The knobs control the pitch, whereas the purple knob controls the decay of the two toms (making one shorter makes the other longer). There is one output jack at the bottom, and four trigger jacks above it.
The circuits for each of the drums are different. The silver knob uses a PIC10F206 to generate the sound (source code). One of the pins of the PIC10F206 powers an one-transistor inverter with a capacitor, which allows a very clean decay to occur. This is then pushed through a TL074 OPAMP for both filtering and buffering, and then moved to a final inverting amplifier that sums the signals of the four drums with a 100k Ohm input. Since the metallic sounds can be quite loud there's also a trim potentiometer to adjust the level.
The black knob uses the standard noise circuit of the beat box instructable. There is a separate OPAMP to amplify the result. The decay is done using a JFET with a circuit from squarewav. This is not the best circuit, even with careful selection of resistors the decay is cut off rather early.
The tom drums are based on the simple twin T-drum design from Krakenpine. It was simplified even more by removing the tone and distortion parts and not massaging the input signal (because it will always come from the drum sequencer).
The drum sequencer is a 6 HP module that sequences drums. It was intended for the drum module, but could be used for anything that needs a fixed pattern of gates over a 15 or 16 step period. There are 8 outputs, each with a different rhythm. There are lights behind the jacks that show the pattern before a cable is plugged in. This makes it clear which plug is which pattern, but avoids additional power use while the pattern is used.
The patterns themselves are chosen using a switch. In the middle position it will use the standard 16 beat patterns. In the down position it will use the standard 15 beat patterns. In the up position it will randomize the patterns once, and then use the randomized patterns. This pattern is stored in memory, so after a restart the pattern will remain the same.
There is one input, which is the clock. This determines the speed at which the beats happen. Beats can happen on clock up and on clock down, which means that the outputs can be twice as fast as the inputs when needed.
There is an ICSP connector at the back that allows the rhythms to be changed. The circuit is exceptionally simple: it is a 16F684 and all gates are connected using a 1k resistor. It therefore relies on the diodes in the PIC16F684 to prevent damage, but this generally isn't a problem.