ThunderWave Percussion Ribbon Controller Circuit Description

This is the electronic circuit description for The Peasant's ThunderWave Ribbon Controller.

Here is the schematic for the project:

ThunderWave Circuit Description:

Except for the external power supply and op amp U1B, this diagram shows just one of the three identical ribbon channels.

At the middle left side of the diagram, there are three voltage references provided by U1B, each one from a different ribbon channel. These reference voltages are then shared by all three channels. VR1 is set to around 8 VDC, VR2 to 2.6 VDC, and VR3 to 0.6 VDC. Alternatively, a TL074 ic could be substituted for U1, so that each ribbon channel could supply it's own dedicated voltage references.

At the top left of the diagram, the control ribbon and the three force sensitive resistors (FSRs) connect to the main circuit using a standard DB9 connector. VR1 is connected to the left side of the ribbon and VR2 to the right, so that striking the control ribbon will produce a voltage on the electrical contact between 2.6 and 8 volts, depending on where it is struck. This voltage is then sent to pint 5 of U1A. When the ribbon is not being struck, the 1M and 100K resistors along with the two diodes hold pin 5 at 13.8 volts. The 470pF capacitor is there to eliminate glitches and false triggers.

U1A itself is simply a buffer that passes through whatever voltage is present on pin 5. The output of U1A is connected to Q1, U2, and the 1nF low leakage capacitor, which form a buffered sample and hold circuit. The output of U1A also connects to the comparator U3, which normally holds it's output at ground unless pin 3 goes below 9 volts. When the ribbon contact is triggered, the 2.6 to 8 volt signal on pin 3 from U1A causes the comparator output to go high, pulled up to 15 volts by the 2k2 resistor. The 1nF capacitor then sends a positive voltage pulse to the gate of Q1, causing the sample and hold circuit to charge it's capacitor to the voltage on the output of U1A and hold it there.

The output of the comparator also goes to U5B, with the 100k/220K resistor divider reducing the 15 volt input to 10 volts for the ribbon contact gate and trigger outputs. U5B buffers this voltage and sends it to U6C, which provides the final ribbon contact gate output and drives the trigger/gate LEDs. When the ribbon is struck and the U5B output voltage first rises to 10 volts, a voltage pulse travels through the 10uF capacitor and then to the LEDs via a diode, causing them to flash. A second diode connected to ground is included to allow the capacitor to discharge once the ribbon is no longer being triggered. The 10k resistor allows the LEDs to be illuminated at a reduced brightness when the ribbon is held for a longer duration, indicating the gate output status.

U5B also drives a 100nF capacitor, 100k resistor, and diode to form a ribbon contact trigger pulse which is then buffered by U5C. This trigger pulse is then further buffered by U6D, providing the final ribbon contact trigger output. U5B also sends a ribbon contact trigger signal to U4B for use by the force trigger circuit, which will be discussed later.

The output of the U2 sample and hold circuit is sent to U5D and associated circuit, which uses it's gain and offset properties to convert the ribbon voltage to a 0 - 10 volt signal. The ribbon zero trim pot adjusts the offset slightly, to compensate for differences in ribbon outputs. This signal then goes to the position range potentiometer and position output buffer U5A, and from there to the final ribbon contact position CV output.

The output of U5D also drives the quantizer circuit through the quantizer steps potentiometer. This potentiometer controls the amount of steps that the quantizer can switch to by limiting the voltage range available to it. Each of the comparator circuits in U8, U9, and U10 are set to a different switching voltage by the 1k resistor string. When the voltage at the positive comparator inputs is at zero, all 12 comparators are holding their outputs at a low state, since the positive inputs are at a lower voltage than the negative inputs. As the voltage at the comparators' positive input rises from 0 volts, each comparator sequentially switches to a high state every 0.8 volts, beginning with U8B, proceeding to U8A, etc, with U8C switching last, provided that the input voltage goes high enough.

U6B and Q2 comprise an 8.33 microvolt constant current source, and this current is passed down through the 100k resistor string. When U8B's output is low, it shorts the input to the U6A buffer to ground, holding the quantizer output near zero. When U8B's output goes high, the U6A input voltage is now shunted to ground through the first 100K resistor and the output of U8A, resulting in the voltage rising to 0.833 volts. (8.33 microvolts X 100 kohms = 0.833 volts) As the comparator circuit's input voltage continues to rise, each comparator output goes high in turn, adding 0.833 volts to the output each time. When the last (U8C) comparator output goes high, the comparator output reaches 10 volts.

The 680 ohm resistor at the bottom of the 100k resistor string is there to compensate for the fact that the bottom 100k resistor does not have the additional resistance of a comparator output transistor in series with it to ground.

If an accurate volt/octave quantizer output is desired, the 100k resistors should be matched as closely as possible. As well, I have found significant differences in LM339 comparator output resistances, especially between different IC manufacturers. Using chips from the same manufacturer lot code will minimise this issue, but for better accuracy you may want to choose comparators where you have actually measured and matched their output on-state resistance.

U6A buffers the quantizer output where it is then sent to the step size potentiometer and buffered again by U7A for the final quantizer output. The step size potentiometer determines how much output CV voltage change is generated by each quantizer step.

U6A also feeds an an adjustable 10 - 1 voltage divider which then feeds the U7B output buffer for the volt/octave CV output. You may have to slightly adjust the values in this voltage divider depending on the actual value of your +15 volt power rail and parts tolerances in the constant current source circuitry.

Back at the ribbon, the three force sensitive resistors are wired in parallel and fed on one side with the 0.6 volts from VR3. The other side of the FSRs are connected to U4C, which applies gain and offset to the voltage output to maximise their effective output range. The DC component of the FSR signal, caused by the weight of the ribbon bar while at rest, is filtered out by the 220nF capacitor, which also shapes the pulse along with the 100K resistor and diode.

Also connected to U4A is the output from U4B. This stage takes the main ribbon trigger signal from U5C and first uses the 10nF capacitor, 1M resistor, and diode to stretch the trigger pulse out by a few milliseconds. This is necessary due to the fact that the FSR response time is slightly slower than the ribbon contact trigger pulse.

The output from U4B is then used for two separate functions. First, the trigger signal, via the 33k resistor and series diode to U4A, is used to augment the FSR trigger signal so that when the ribbon is struck very lightly there is a minimum trigger size output. This helps to give a more natural feel to the force trigger. The second function of U4B is to prevent false FSR triggers from being generated when the FSR sensors detect vibration but the ribbon hasn't actually been struck. This is accomplished by the input to U4A being held low when there is no ribbon contact trigger present, via the second diode on the U4B output.

U4A then adjusts the amplitude of the FSR trigger signal to a maximum of 10 volts, before passing it along to the next stages.

U4D uses the capacitor, diode, and resistor on it's input to slightly lengthen the force trigger signal and then buffers it for the final force trigger output.

U7C and U7D and their associated circuitry provide two separate variable decay envelope generators, whose output signal magnitude is based on the size of the FSR trigger.

The power supply is a standard linear regulator type, with dedicated regulators for each ribbon channel. The extra 22uF capacitors are present because the circuitry for my build was constructed on two separate pcbs, if you build your circuit all on one pcb they may be omitted. All ICs also have 100nF bypass capacitors included between each power rail to ground.

On my build I also included a separate DB15 output connector for a dedicated drum machine system planned for the future. These connections are labeled on the schematic with a circled letter "M" symbol.

Modifications and Added Features.

The are endless possibilites for ways to customise or improve this design for your own personal needs and creative directions. Here are a few ideas to get you started:

One modification is to add a polarity switch for the ribbon position CV outputs. This enables the musician to select which end of the ribbon produces the higher voltage and vice versa. You will be able to switch to a "left handed" drum kit or control a xylophone type instrument/patch with the high notes on the right side by doing this.

An easy way to do this is to use a DPDT switch to reverse which voltage source connects to which end of your ribbon.

If you would rather be able to switch each ribbon's different outputs separately, then you will need to add switches and inverter circuits at the appropriate locations.

Of course you can always just use an external inverter with the individual cv outputs at any time.

Including a more sophisticated quantizer might be a nice upgrade. The ability to leave out the sharps and flats or other notes in an octave, thus giving the ribbon's 13 notes more range, would be nice. This would have to be a custom design however, taking into consideration that in order not to have different sizes of ribbon strike zones, each note must always change at the same size input voltage change regardless of the actual musical interval required.

To implement this with the existing quantizer you could double the appropriate resistor values in the 100K resistor string, and adjust the current source accordingly. However, you would soon run out of voltage range, which would require changes to the output step size and subsequent CV processing circuitry in order to compensate.

Having more than thirteen notes is another idea, but it does get harder to hit the right note accurately as the zone for each note gets smaller when you do this.

Again, an external quantizer can always be used if preferred. Or design your own with your favorite microprocessor.

A simple octave switch circuit would be easy to add as another way to add more range. Controlling this and other parameters with a foot switch or other device would also be a nice additional feature.

A more versatile envelope generator could be useful with adding attack or variable decay shape functions.

To allow the ThunderWave to be interfaced with a wider range of instruments, a MIDI adapter could be developed.

There are always the standard glide, vibrato, pitch bend, and other features. Having these CV controlled, including from the ribbon outputs, adds versatility.

And of course, you can always add as many extra outputs, envelope generators, or other functions as you desire, or leave out any that you don't want. Modifying the various outputs for +/-5 volt or other CV or gate voltage standards can also be easily done.

Lastly, don't forget the physical layout. The type of instrument that I constructed was largely determined by the materials and equipment available and my own abilities and desires. Using wood, plastic, or other materials, changing the number, size, and shape of the ribbons, go with whatever configuration or innovative designs work best for you!

If you have any suggestions of your own, please let me know and I will add them to this list.