Barberpole Through-Zero Flanging

Started by DrAlx, July 16, 2015, 09:06:55 AM

Previous topic - Next topic

DrAlx

I suggested a way of taking LFO sweep signals and rectifying them so they could be reused as the VCA mix controls here ...

http://www.diystompboxes.com/smfforum/index.php?topic=107739.msg979927#msg979927

but that was using 4 flangers not 2.

If you want to use just 2 flangers, then the delay CV for each flanger's BBD needs to be a saw-tooth (lets say repeatedly increasing from 1V to 5V).
I think it would be quite easy to convert that to a secondary control voltage for that flanger's VCA.

The problem is to find a nice analogue way of having the two sawtooth waveforms for the two flangers "delayed" with respect to each other.


StephenGiles

Quote from: DrAlx on July 17, 2015, 02:46:56 PM
I suggested a way of taking LFO sweep signals and rectifying them so they could be reused as the VCA mix controls here ...

http://www.diystompboxes.com/smfforum/index.php?topic=107739.msg979927#msg979927

but that was using 4 flangers not 2.

If you want to use just 2 flangers, then the delay CV for each flanger's BBD needs to be a saw-tooth (lets say repeatedly increasing from 1V to 5V).
I think it would be quite easy to convert that to a secondary control voltage for that flanger's VCA.

The problem is to find a nice analogue way of having the two sawtooth waveforms for the two flangers "delayed" with respect to each other.



Yes, and the components of each LFO would need to be closely matched to ensure constant speed. Is there a dedicated dual LFO chip?
"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

Keppy

Quote from: DrAlx on July 17, 2015, 02:46:56 PM
If you want to use just 2 flangers, then the delay CV for each flanger's BBD needs to be a saw-tooth (lets say repeatedly increasing from 1V to 5V).
A 4013-based ramp oscillator should be able to do this, right?

Quote
The problem is to find a nice analogue way of having the two sawtooth waveforms for the two flangers "delayed" with respect to each other.
Send each ramp output into a comparator and send the comparator output into the CLOCK pin of the other 4013 ramp. When one ramp reaches the trigger point of the comparator, it will restart the other ramp. That way each ramp is reset from high to low voltage when the other ramp is at the halfway point.
"Electrons go where I tell them to go." - wavley

Strategy

Buchla synthesizers makes a barberpole phaser.

https://www.youtube.com/watch?v=lWHtIfUJ2gg

I recall seeing an old hobby project - 'infinite flanger' or 'infinite phaser' - may have been PAIA Related. I'll dig around in the archives at home later, I'm wondering if the 'infinite' is a barberpole/shephards tone reference.

Strategy
-----------------------------------------------------
www.strategymusic.com
www.community-library.net
https://soundcloud.com/strategydickow
https://twitter.com/STRATEGY_PaulD

DrAlx

Quote
Send each ramp output into a comparator and send the comparator output into the CLOCK pin of the other 4013 ramp. When one ramp reaches the trigger point of the comparator, it will restart the other ramp. That way each ramp is reset from high to low voltage when the other ramp is at the halfway point.
Comparator measuring one ramp and causing it to reset the other (and vice versa) sounds like it will work, but don't you still need to match the slopes of the two ramps?

e.g.  Lets say Ramp1 voltage increases at a rate of 1 V/s (volt per second) but Ramp2 increases at a rate of 2 V/s.
Lets assume both voltages start off at 0 at switch on, and we set a reset trigger level of 4V.

Ramp2 reaches 4V first (at t = 2 seconds) and causes Ramp1 to reset to 0.
Then 4 seconds later at t = 6 seconds, Ramp1 reaches 4V and causes Ramp2 (which is now at 12V) to reset to 0.
Then 2 seconds later at t = 8 seconds, Ramp2 reaches 4V and causes Ramp1 (which is now at 6V) to reset to zero.

So overall we have Ramp1 going from 0 to 6V, and Ramp2 going from 0 to 12V, and the threshold of both ramps (at 4V) is not at the centre of either ramp.  (Which translates into the two ramps not being correctly delayed with respect to each other).
So I think we need to be match the slopes of the two ramps for this triggering scheme to work properly.
I can't think of a way of matching the slopes of the two ramps (and being able to keep those slopes matched as we turn the "Rate" pot).



Keppy

The rate of each 4013 ramp oscillator can be controlled with a single R-C combination, at least if I'm imagining that circuit right. A dual gang pot can change two of them at once, keeping them matched closely enough for this purpose I would think. You're right that they need to be the same speed (at least roughly), but if you only need two ramps I don't think it's a problem.

It's important for the comparator threshold voltage to be no more than half the 4013 supply voltage, though, otherwise one ramp will get stuck at its max voltage for a bit before resetting.
"Electrons go where I tell them to go." - wavley

snap

What`s that mysterious 4013 ramp oscillator?

Keppy

Here's a page with info: http://www.edn.com/design/analog/4313895/Turn-a-set-reset-latch-into-an-astable-monostable-multivibrator

This is a generalized monostable circuit that generates square pulses of a fixed width. Note that if you take the output from the R pin, you get not a square pulse when Q goes high, but a gradually rising voltage as the cap is charged up, with the rise time determined by the R1C1 time constant. When pin 1 changes to a low state, the cap is discharged quickly through D1.

Also, as shown it's not specific to the 4013, or to the needs we're discussing. We'd want the SET pin high, the DATA and RESET pins grounded, and R1/D1/C1 not connected to RESET. The CLOCK pin is triggered by the comparator, which is triggered by the opposite ramp. That way, as the chip powers up in the SET state, the cap begins charging. When one ramp reaches the comparator trigger point, it causes the flipflop to switch states momentarily, discharging the cap through the diode, then the process starts again.

I actually don't know how smooth of a ramp this would give. It seems to me that as the cap voltage rises, the rate of change would slow due to less current through R1. Also, the fall of the ramp depends on how fast the cap can discharge through D1/R1, so it might need a short time delay before it begins rising again, but that could be done easily by using an R/C combination on the SET pin.

It's late, so someone please check everything I just said. I think it can be made to operate, though.
"Electrons go where I tell them to go." - wavley

StephenGiles

#28
It occurred to me over a late breakfast just now, (and I was in trouble of course for losing track of what my wife was saying to me  :icon_rolleyes: :icon_rolleyes:) that the Barberpole effect would mainly tend to be used with a slow LFO rate - because it sounds dreadful at faster rates (ducks for cover!). I don't know if that would affect any design considerations.

I'm sure I've seen a synth circuit, perhaps even a modded one which perform this trick. There may be something useful in the H&SR Dual Gate control circuitry
https://www.dropbox.com/sh/2aedsoafmaa3bc7/AACiigi5aVYTjrPP1ybQMO_oa?dl=0
- it's always worth another read, there all manner of clever triggering, rising & falling voltages and electronic switching going on in there.
"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

StephenGiles

What about the LFO in a Standard Electric Mistress, could that be adapted to trip a second identical one at the right time?
"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

Keppy

Quote from: StephenGiles on July 18, 2015, 09:00:19 AM
What about the LFO in a Standard Electric Mistress, could that be adapted to trip a second identical one at the right time?

Maybe, but it's not a ramp, in the sense we're talking about. It would fall at the same speed that it rises, so it wouldn't be very useful for the barber pole effect without modification.

Anyone know if this type of oscillator can easily be converted to a ramp? I'm wondering if a diode in parallel with the resistance between opamp stages would do it.
"Electrons go where I tell them to go." - wavley

slacker

Quite a few years back Gez (remember him) made a clever circuit that gave you dual LFOs locked at the same speed where you could vary the phase between them, that would do what you need for barber pole flanging. It used a load of CMOS chips and some other stuff. I'll see if I can find the thread but there's always the risk that the schematics have been lost in the mists of time.
Failing that I'd be very surprised if the DIY synth guys don't have something suitable.

slacker

#32
Well that was easier than I thought and it looks like all the info is still there http://www.diystompboxes.com/smfforum/index.php?topic=72676.120
It was to create a sine LFO but by tweaking the 4051 stages you could do saws or triangles.

free electron

Today, i'd go for a hybrid solution: digitally generated waveforms, bunch of DACs, some filtering, level/amplitude adjustment to drive whatever you want to use in the barberpole FX.
A 10$ dev kit like this one:

http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit

would be able to generate enough perfectly synced, phase shifted waveforms (DDS with multiple outputs) using its PWM blocks or built DACs.

Example:
Let's say we want an LFO with 8 pairs of outputs, 1st ramp-up to control the delay line, 2nd triangle to control the VCA of the channel.
I've made simple hardware config project to test if it works (compiles):



The ADC reads the pots and supplies parameter values for the DDS. 8 two channel PWM blocks are used as DA converters, working at 12bit/about 20kHz in 0-5V range. A typical DDS algorithm is perfect for generating multiple synced waveforms, you just use as many read pointers with offsets as you like. To drive a BBD it would be even better to generate a clock signals in opposite phase to spare additional VCOs for each path. No problem for a 80MHz Arm MCU. Yeah, it's probably an overkill, but hey it's 10 bucks, the chip itself costs more in single quantities as this dev kit.

I think it would be the most compact and cost effective solution for a serious barberpole effect device. That PSoC has a current output DACs, too (8bit, though). Something that could drive a VCA or an OTA directly.

StephenGiles

Quote from: free electron on July 18, 2015, 03:52:45 PM
Today, i'd go for a hybrid solution: digitally generated waveforms, bunch of DACs, some filtering, level/amplitude adjustment to drive whatever you want to use in the barberpole FX.
A 10$ dev kit like this one:

http://www.cypress.com/documentation/development-kitsboards/cy8ckit-059-psoc-5lp-prototyping-kit

would be able to generate enough perfectly synced, phase shifted waveforms (DDS with multiple outputs) using its PWM blocks or built DACs.

Example:
Let's say we want an LFO with 8 pairs of outputs, 1st ramp-up to control the delay line, 2nd triangle to control the VCA of the channel.
I've made simple hardware config project to test if it works (compiles):



The ADC reads the pots and supplies parameter values for the DDS. 8 two channel PWM blocks are used as DA converters, working at 12bit/about 20kHz in 0-5V range. A typical DDS algorithm is perfect for generating multiple synced waveforms, you just use as many read pointers with offsets as you like. To drive a BBD it would be even better to generate a clock signals in opposite phase to spare additional VCOs for each path. No problem for a 80MHz Arm MCU. Yeah, it's probably an overkill, but hey it's 10 bucks, the chip itself costs more in single quantities as this dev kit.

I think it would be the most compact and cost effective solution for a serious barberpole effect device. That PSoC has a current output DACs, too (8bit, though). Something that could drive a VCA or an OTA directly.


I'm sure you are right, but I was under the impression that an analog solution was being sought  :icon_biggrin:. Compactness and smallness of box is not a consideration, certainly not to me anyway  :icon_biggrin:!
"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

StephenGiles

"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

Ice-9

www.stanleyfx.co.uk

Sanity: doing the same thing over and over again and expecting the same result. Mick Taylor

Please at least have 1 forum post before sending me a PM demanding something.

free electron

Quote from: StephenGiles on July 18, 2015, 04:14:57 PM
I'm sure you are right, but I was under the impression that an analog solution was being sought  :icon_biggrin:. Compactness and smallness of box is not a consideration, certainly not to me anyway  :icon_biggrin:!
Oh, i just wanted to throw in another idea.
You said no dsp only. The output of the circuit i proposed is an analog control voltage. Which, in case of a BBD based flanger, in the end is converted into a digital one anyway (clocks).

StephenGiles

Ah yes I see now :icon_biggrin: sorry, my mistake!

I think at the end of the day it will be a combination of various technologies, and if it isn't - then we haven't reached the end!

"I want my meat burned, like St Joan. Bring me pickles and vicious mustards to pierce the tongue like Cardigan's Lancers.".

DrAlx

#39
Thinking about Keppy's suggestion.  Not quite sure I understand how the capacitor starts recharging after it has been discharged.  As long as the discharge diode is switched on the cap can't be recharged.  So the discharge diode needs to stay conducting just long enough to empty the cap and no longer.  Problem is that the comparator that switches on the discharge diode leaves it switched on for 25% of the overall cycle (unless I've understood things wrong). Also the cap voltage doesn't charge linearly as pointed out by Keppy.

So was thinking about another approach:

1) Start off with a (low frequency) square wave with 50% duty cycle.  There are lots of ways to generate this.
I'll assume that this square wave comes from the Q output of a flipflop, and so we have inverse square wave available at the other flipflop output (Q*).

2) The rising edges of Q and Q* are interleaved evenly in time (i.e. rising edge Q, rising edge Q*, rising edge Q, rising edge Q*, ...).

3) Now feed Q into an edge-triggered one-shot multivibrator whose job is to take the rising edge on Q and convert it to a short duration output notch. See waveforms here.
http://www.electroschematics.com/11032/edge-triggered-555-monostable-multivibrator/
We can choose component values to decide the duration of the output notch, and we'll use that output notch to control when a discharge diode is switched on.

Similarly Q* drives its own edge-tiggered one-shot multivibrator that controls a second discharge diode.

Edit: A CD4528 dual multivibrator chip would do the trick with minimal extra components. (Just one R and one C for each one-shot to set set the notch width).

4) To get the linearly rising control voltages, take two capacitors and charge them up using constant current sources (e.g. put each cap on the collector arm of a PNP transistor like in the deluxe electric mistress VCO).  The cap voltage is the ramp voltage we are trying to generate.
Hook each cap to its own discharge diode, and each diode is controlled by its own one-shot.

Thinks to note: 

a)Overall flanger rate is governed by the rate of the initial square wave.

b)You can never fully discharge the cap (because of the voltage drop across the diode).  Shouldn't be a big deal in practice.

c)The current sources cause the cap voltages to increase mostly linearly but there is also a rapid initial charging of each capacitor due to diode reverse recovery current when the discharge diodes switches off.  I think this will not be a major effect if caps are suitably large.

d) Flanger sweep range is governed by the current sources that charge the caps. Not sure of the best way to keep those sources variable yet matched.  Current mirrors?