General synth type question: crossfade between CV's?

Started by Processaurus, January 11, 2008, 12:41:38 AM

Previous topic - Next topic

Processaurus

Here's something I wanted to ask those that have been around block, I'm wondering if someone can direct me a bit in figuring out a reasonable parts count way of electronically triggering a ramp crossfade in a linear way between 2 control voltages.  I want it to be nice and linear.  I could imagine how to get something working with a PWM thing that drove a 4053 switch real fast, but I'm wondering if there is a more elegant , less brute force way to get something like this.  I suppose a microchip could do everything, it would simply be a matter of programming...

alanlan

Well I guess there would be an op-amp integrator involved somwhere,

...and perhaps a comparator.

I was thinking along the lines of setting the start voltage simply by adjusting the DC bias of the circuit using a pot and setting the end voltage with another pot and feeding it into the reference input of a comparator.  Then when the output of the integrator hits the reference the comparator switches and does something clever to stop the integrator ramping.

Perhaps there is something needed to reset it back also.

A bit random I know but maybe it gives you some ideas...

Can a 555 timer be of any help also?

Fleetdog

I haven't read it in a while, but I think the article at geofex on current controlled amplifiers includes an example kind of like what you want.  http://www.geofex.com/Article_Folders/VCA%20Applications.pdf

When I went to get the link, these two schematics looked possibly helpful to you also: http://www.geofex.com/FX_images/p90ramp.pdf    http://www.geofex.com/FX_images/ramp-lfo.pdf

R.G.

You have to have a control voltage that has an accurately defined minimum and maximum so you can generate the midpoint. You use the midpoint as the reference for a simple gain-of-one inverting opamp and feed the original control voltage into the inverter input. The result is that the output of the opamp is inverted around the midpoint of the control voltage. If you feed it with a ramp control voltage, all is as you want.

If what you want is for the control voltage to ramp from min to max and back down, you need to add an integrator in front of the inverting opamp. The integrator needs to accurately produce an output with a minimum, midpoint, and maximum that is what the inverter expects. Now when you put a high level voltage into the integrator, the integrator ramps down and the inverter ramps up, both symmetrical around the midpoint. Ditto, low level voltage into the integrator causes a down/up ramp, all nice and symmetrical. The size of the voltage you feed into the integrator and the RC constant of the integrator set the slope of the ramp.

If this sounds a bit like the stock integrator/schmitt trigger LFO, that's because it is. I dug through this trying to get a nicely centered inverted output from the integrator/schmitt LFO. It is simple in concept, but ticklish to get accurate. The min, max and midpoint voltages are critical. It helps if you change out the schmitt for a pair of comparators and a flipflop, or a pair of comparators formed INTO a flipflop so you have control of the min/max trip points accurately and can use a pair of identical resistors in the middle to generate the midpoint.

That is, alanalan's approach is getting there.

Of course, this hasn't said anything about triggering a single fllip. For that, if you had the flipflop setup, you could ignore the comparators, and feed the input to the integrator from the flipflop output through a pot. The pot changes the voltage the integrator gets, and hence the speed it integrates; the direction of the voltage, high/low controls the direction of ramp low/high; and the limits of the integrator opamp itself against its power supply determines the limit of how high/low it goes on its output.

Which introduces the problem of how high/low the integrator/inverter outputs go if they're not corralled by comparators or a schmitt trigger.  Here it's probably best to get yourself some rail-to-rail input/output opamps, maybe CMOS, and feed them power from a 5V regulator. Now you KNOW how far the outputs will go - 0 to 5V. And you KNOW the midpoint - 2.5V. The flipflop can be CMOS from 5V too, so it can all run from the same 78L05.

Here's the next problem for you: generalize this to four or eight control voltages, only ONE of which may be high at any time. When you trigger a new one to ramp high, the current high one ramps down. Not too bad so far, all in the CMOS. But make the ramp speeds be voltage controlled, so that when you turn a pot, all of the ramp up/down speeds are changed at the same time.  That one kept me scribbling for several hours.
R.G.

In response to the questions in the forum - PCB Layout for Musical Effects is available from The Book Patch. Search "PCB Layout" and it ought to appear.

Paul Perry (Frostwave)

Lowest parts count?
maybe design something around two fets, each arranged as a voltage controlled amplifier, and control one by a ramp, and the other by the same ramp inverted.
In theory, you could do it with 2 fets , and a dual op amp, plus something to make the ramp (switch to a resistor & cap might be good enough..)

Going to have to mess around with the fet cutoffs, though.
The PWM idea might be viable, if you can get the MXR envelope filter PWM section going, you are pretty well there. (an inverter on the PWM control for the other side, of course).

Processaurus

Thank you all very much for all of your thoughtful responses.  I'll have to go through them for a while to actually understand them.  The idea I wanted this for was to trigger a fade between a preset DC voltage (coming from a pot voltage divider) to an animated waveform, sort of like the ramp fade in on the boss vibrato.