top of page

Soliton Multivibe

A True Classic with Modern Features

Soliton.jpg

Overview

I have to admit that I love a good vibe pedal. There are many excellent ones out there that do a great job getting those classic tones. However, I had the thought that it would be really cool to have the option of creating more complex movement of the phasing in a vibe pedal and decided that doing digital control would allow for some really fun flexibility.

​

The digital control is a primary distinguishing feature of the Soliton. An ATTiny85 produces the LFO using the input from a potentiometer. The code has been made flexible enough to allow for a wide range of LFO shapes: sine, triangle, square, rising sawtooth, falling sawtooth, or even arbitrary shapes. The LFO shape is stored in the code as a wave table that is used for creating the LFO output voltage. Digital control also allows for specifying multiple modes and including tap tempo. Further modifications are possible to make it truly unique without changing any components.

​

Another difference with the Soliton is that it uses two LED's instead of just one. The LFO rate and depth for each LED are independently controllable, so fascinating rhythm textures can be created unlike any other pedal out there. I did experiment with the number of LED's, but due to the rise and fall times of LFO's and LDR's, going more than two produces extremely quickly diminishing returns. Also, more than two LED's would require a larger chip that is only really feasible in surface mount. I do plenty of projects in SMD, but, when possible, I like my projects to be done through hole to make them accessible to people who can't or don't want to do SMD.

​

In the end, the result is a fantastic vibe that can get really trippy really fast. The controls offer a ton of flexibility and in my mind, this is another great example of digitally-controlled, analog signal path effects. Now, let's walk through how it works.

How It Works

The core of the Soliton is a four stage vibe circuit extremely similar to the EQD Depths. In fact, I originally thought of just building a clone, but I can't leave well enough alone. I also love microcontrollers for LFO's because of all the flexibility available from it. You can have waveforms that an analog LFO simply can't do very well, like a real sine wave. There are some other cool tricks I've done, so read on.

 

First off we have an input buffer that gives us a high input impedance and allows us to drive the delay stages with a low output impedance. This is a pretty straightforward implementation using one half of a TL072.

Soliton Input Buffer.png
Soliton Input Buffer

The buffered input signal is then fed into the phasing stage. This stage consists of four all pass filters with the phase relationships set by the input capacitors and the variable resistance from Vref to the inverting opamp inputs. The “Throb” control actually helps set some skew in the phasing of the second stage.

 

The buffered input is sent through a 100k resistor that feeds into the summing output mixer/buffer. This is rather common of any dry/wet circuit.

Soliton Phase Stages.png
Soliton Phase Stages

The phased output is combined with the buffered input using an output buffer/summing amplifier. There is a small capacitor in the feedback loop to allow for some filtering. Without this, the vibe circuit can get extremely bright, even harsh. Adjusting the value of this cap will allow for the user to set the response according to preference. I liked a 470 pF cap here. Also, the output has a trimmer that is set to achieve unity gain when the pedal is engaged. I used some set values on my first board revision, but it seems tolerances can make it a little variable.

Soliton Output Buffer.png
Soliton Output Buffer

The LFO architecture is what sets the Soliton apart. Using an ATTiny85, there are controls for rate, tap tempo, mode, and then the LFO outputs. The LFO's are actually using lookup tables stored in flash on the ATTiny, which allows for use of any wave shape desired. I coded up tables for sine, square, triangle, rising sawtooth, and falling sawtooth. They are included in comments in the code, just copy the table you want and put it into the entries for the wave tables.

 

The rate controls span a range of .25 to 5 Hz, which is a factor of 20. Because I wanted really good rates available, I found that instead of using just the analog level in with a linear or log potentiometer, a better option is to use the analog level in of a linear potentiometer with a custom taper lookup table. This lookup table is set up to give a true logarithmic spacing of time (whereas a log taper pot is really two different linear sections). This allows for a very natural feeling distribution of available LFO rates.

 

The mode switch has three settings, which in the default code correspond to:

 

  • Dual Independent LED's (I labeled it as Σ, which is the mathematical symbol for summation)

  • Single LED where the LFO is the product of LFO1 and LFO 2 (labeled as Π, the mathematical symbol for product, or multiplication)

  • Dual LED's where the rate of LFO 2 is the golden ratio of LFO 1 (labeled as φ, the symbol used for the golden ratio)

 

Dual independent LED's is the default mode and allows for mixing of rate and amplitude to achieve cool effects. The single LED product mode results in a seemingly random LFO, depending on the settings of the two wave shapes and speeds. The golden ratio mode results in a wonderful sounding pulsing mode that is not totally predictable sounding, but is very pleasant.

 

The depth controls are actually controlling the brightness of the LED's by being variable current limiting resistors. This was chosen for two reasons. First, it allowed me to use fewer microcontroller pins. Second, it allowed me to keep all the precision of the PWM output so that there weren't quantization errors. The LED/Depth Control is bypassed with a large smoothing cap to get rid of high frequency PWM noise. I tried several values here and found that 100 uF was as small as I could go while still getting nice, smooth LFO signals to the LED's.

 

Tap tempo is implemented the same was as in the EchoWreck. The switch pulls the input pin high, which triggers an interrupt to start the tap tempo process. This allows for more accurate tap tempo, since it doesn't have to wait every polling period. It also makes other processes faster, since it's not consuming cycles just polling the switch.

Soliton Digital Stage.png
Soliton LFO and Control

The final block is the power section. This is very basic, with 9V coming in and a 4.5V reference voltage for the opamps and 5V for the ATTiny85. Note that decoupling caps are local to each IC.

Soliton Power.png
Soliton Power Section

Well, there you have it! It's a fun project that isn't too difficult and the parts count is pretty low, at least by my other standards. Want to build one? Well, step right this way and get everything you need.

bottom of page