Group Design: PWM Limiter Project

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.

SSLtech

Well-known member
Joined
Jun 3, 2004
Messages
5,447
Location
Florida (Previously UK)
-So this is a spinoff of the PWM Limiter project that cropped up in the GML opamps thread.

Kev is hosting some pdfs of the schematic, currently there are errors in it, but I've sent revisions off to him. When he updates the hosting I'm sure either he or I will post here to let everyone know.

Kev's home:
http://www.celestial.com.au/~rosswood/data/CompressorSchematic.pdf

some values are unmarked because they haven't been figured out... but that's part of the idea... I would like someone to pick it up and run with it. -The idea here is to try and increase the number of viable projects on the forums, so that there's more to "The Lab" than just cloning and ripping off.

The gain reduction element has been tested to about 40dB gain reduction. The distortion and noise is acceptable on the bench... should be more than acceptable for an interestingly-flavoured instrument limiter... let's see!

The idea is to use reasonably well-available components in an interesting manner, and get away from the old "Well, it's optical so people are going to compare it to an LA2a"... or "It's a FET, so it'll be compared to an 1176"

This is a feedback limiter, with nice accurate gain reduction metering from a simple VU meter, which -in typcal Bill Putnam style- uses a DC voltage modulated in a similar tracked manner to the audio AC signal. That's where the design block layout is tried and tested.

Other than that, it's a PWM "chopper" that's used for gain reduction. The technique is used in Crane Song and Studer compressors, as well as several others that I've probably never seen. It's uncommon, but different solutions usually produce different results...

I'm handing this over to everyone else to play with. My ideal wish is for this to be turned into a working project. Everyone could then have something to do which isn't mired in copyright complexity. Whilst I enjoy recreating classics, and it's undeniable that if you're going to DIY something, then doing something of proven value is naturally more attractive than an unknown and unproven thing, I really, really believe that we should collectively try to be be more original. There's no vanity involved; if this idea turns out to be a piece of unworkable crap, but it prods someone to share something else, or jogs an unrelated idea that they in turn can share with the group, then the group will be the richer and better off as a result...

I'll post a circuit description later this evening, or possibly tomorrow... I'm a little busy today!

Have fun!

Keith
 
Oh, for a good overview of differeing topologies, look here:

http://www.tangible-technology.com/dynamics/comp_lim_ec_dh_pw2.html

And thanks to Eddie as ever!

Keith
 
Keith

FWIW I don't like 319s with out current limiting resistor to the + and - inputs sometime current surges can take out the input pair.

4th order what type? I did not work out the math.

Do you need to filter before you PWM the signal?

Do you need IC7b as a buffer a opamp might not be fast enought for the "square wave" out.

I have a TI chip(s) in many basement I need to find it. It is a PWM chip for a power supply.

Very interesting and simple. I mean simple in a good way!

I am going to read a bit about bessel filters and opamps. I would use a passive lowpass before any of the active filters so the fast rise time does not cause a glitch due to the input pair 2nd stage slewing.. IC 3b 1 k and then a cap to ground. TI has a good writeup about this in one of the app books I will look for the book.
 
Gus, any input welcome. yes BTW, it needs the filter at the front.

Okay, signal comes in. IC1 is a differential stage, balanced-to-unbalanced.

IC2 is a 24dB/octave filter, well above the audio band. This is to remove any RF content that might cause aliasing when it meets the chopper frequency.

IC3a is a buffer to prevent any back-interaction from the chopper stage.

The FET is there to form the shunt leg of an attenuator. It's either fully on or fully off. basically it's like a 'mute' that switches on and off at radio frequencies. IC3b is a unity-gain recovery stage.

IC4 is another 4-pole (24dB/8ve) filter to remove any stray chopper frequencies. The signal then passes to IC10 and 11 for the balanced output.

The detector is taken from the output (feed-back... it just sonds better!) so as well as feeding IC10, IC4b also feeds IC5 which is a gain stage that sets the onset of limiting... the more gain, the earler the onset of limiting. -just like in an LA2a or LA3.

IC6 is a precision rectifier. the output feeds a simple attack/release network, round a charged capacitor. Multi-stage time constants can be used if desired... you could probably just import this whole stage from the SSL compressor... but if you want an SSL comp, go build an SSL comp! (Trying to make this compressor into an SSL is probably like truong to EQ a violin to sound like a flute...)

Anyway, the varying charge voltage is fed to IC7, which is compared to a preset voltage that determines the detector threshold. This should be set and left, and should not be used as a compressor threshold!

When the charge voltage at the output is equal to or greater than the voltage at the preset control, the output of IC7 flips polarity and shows a voltage proportional to the difference. (i.e. the amount by which the signal has exceeded the limiting threshold)

IC9 is a comparator. The output flips high or low depending on the two intput voltages and which is higher. (I forgot which input was positive and which negative, but one will work, the other won't!!!)

IC8 is the oscillator. It produces a ramp/sawtooth which rises to about 1/3rd rail voltage. It is followed by a low loading (high-impedance) buffer stage.

More as I get chance to write it...

Keith
 
would it be pointless to design it with some higherquality amps (opa series or that AD9099 or whatever it was)?
or is the idea more flavour from those opamps?

on another note - how you doing keith? found carcass- 'heartwork' on vinyl the other day - made me miss florida a bit. in a "i hate the florida summer" sorta way..haha

-bryan sours
 
yay! something i can chime in about finally!

i work with PWM design for motor controls.. I had been thinking about this idea for some time myself! I'd be glad to chip in with my own ideas if you guys are serious.. i think it could be somewhat useful depending on the outcome. however I would seriously consider using a PWM chip designed for that purpose, not a comparator and makeshift oscillator. Most quality PWM chips have deadtime control, voltage adjustable width times and things like simple RC ramp time adjustments that maybe we could use as a "soft" attack? most outputs of these setups have difficulty keeping a decent square output under load and usually require a FET driver, however both of these chips will cost you less than 3$usd for both and will drive up to 1.5A loads with no overshoot well into 500khz and beyond.

maybe use a simple rms detector circuit to drive the NI input of the error amp? attack/release could be worked out in the RC timing networks, and you could get anywhere from 0-85% duty cycle.

just a random thought
 
or you can RC the output of the PWM to round the square wave off a bit for a less harsh chop...but that leads me to rant a bit more..

To clarify the disgust for 555 and comparator pwm, I tried in vain to use them for motor control but they always made sloppy triangle and/or square waves.. this is terrible for the FETs that drive motors because they spend too long in the limbo between off and fully on.. this means excess noise, excess heat, excess current draw and potential for shoot through (or shorting through the motor as you get reversing current) which all destroy FETs. the excess noise might be a problem here, but since this isn't going to be a highly inductive or high current situation you might not even notice a problem.
 
Ummmmmm........this is way above my head but very interesting nevertheless. The only success I have had with PWM is on the MXR Envelope Filter - a mere guitar effect but still clever. If anyone is interested I can sort out what PWM circuits I have.
 
It's a concept.

Details:

I think you will need to redesign the rectifier and attack/release scheme. The attack resistor needs to be "unidirectional", typically with a rectifier (real or simulated) in series.

I don't think you want to steal the SSL rectifier and filter. They are logarithmic, this is linear.

What is the shape of the input/output graph? Linears tend to rise at deep GR, like the LA2 does. The LA2 adds a small resistor before the photo-R so the feedback signal never falls to zero in deep GR; that is not so easily done here.

Also I think the release resistor should be on the other end of the attack resistor. With release much longer than attack, it makes no difference, but if release is set short and attack is set long they interact and also reduce level.

I have doubts about the need for IC3, either half, but no strong objection.

I don't see why the reference voltage trimmer on the input of IC7a goes both + and -. The control voltage here can only go plus.

I doubt IC7b is fast enough to buffer the extreme corners of the sawtooth wave. Errors here give erratic response in deep GR. Isn't the LM319 input impedance high enough to read the 555 sawtooth directly?

40dB with good linearity is around the limit. For more GR or potentially better linearity (and more drastic action) you could cascade two FET choppers on the same drive signal. Then 50% duty cycle gives 25% output, 10% duty cycle gives 1% output.

20pFd seems small for a timing cap. Also awful fast. For breadboarding I would start down at 100KHz-300KHz and get it working. I do agree that ultimately it may want to be over 500KHz to ease filtering requirements, but I'd start slower.

I suspect you want one L-C filter between FET PWM switch and the first active filter. MHz trash will not filter well in MHz-GBW op-amps.

The audio path is DC-coupled. Any stray DC on the input will be modulated with the audio and cause thump.

There should be a patch-in point in the side-chain, before the rectifier. Or at least a treble-boost for deESSing.

I'm not sure I understand the point of a simple PWM limiter. VCAs and photocells can give adequate distortion and good-enough linearity for simple audio control. For drastic control, we probably want the distortion edge of vari-Mu. The PWM shines in precise linearity and tracking across several channels, but that's not too important without a much more complicated sidechain doing more exact computation.

An extreme design might use a CPU (such as Basic Stamp) to watch the level and trend of level, and output the PWM duty cycle. This would make VoluMax type pause-pump control a software problem instead of an analog problem. Degree of bend, percent transient leakage, and other details all in software.
 
now i haven't had time to look at the circuit linked above, but does the chop completely attenuate the signal or just knock it down a percentage? for the gurus out there, wouldn't you want this thing to chop at a frequency that is a multiple of a given sample, say like 44.1khz? would a chopped output signal being fed into an A/D give strange artifacts when it samples during periods of high chop or are you buffering the output enough to only see the average signal? (I suppose i am thinking correctly here.. :wink: )
 
I think the point of PWM is that it's flash - like Jeff Beck! There are dozens of regular compressor/limiters about but a mere handful of the PWM variety. The principal can be applied to flangers - see MXR again, and analogue delay - see Ross Delay, and phasers - again see MXR.
 
PRR,

The rectifier is one of the four changes in the revised version. The rectifier as shown basically just won't work right!

Svart,
The PWM chops to silence.

Keith
 
I wonder if floating the "ground" on the FET so that you can adjust the depth of the chop in the audio signal would even be audible, or if it would send someone into convulsions... :green:
 
Keith has just sent me an up-dated drawing.
:shock:
but I've only just noticed and I've just arrived at work so I can't up-load for 8 hours.
... be patient

here is some of what Keith has said,

Meter buffer added for audio
Rectifier stage altered so that it would actually work (!!!)
..... the inverting follower to the chopper has been changed to noninverting.


remember that was edited by Kev so I might have stuffed it up.
 
[quote author="Svart"]I wonder if floating the "ground" on the FET so that you can adjust the depth of the chop in the audio signal would even be audible, or if it would send someone into convulsions... :green:[/quote]
Well since it's feedback, it would just try to increase the pulse-width to effect the same result... That's the thing with feedback... self-regulating and all that...

Keith
 
[quote author="StephenGiles"]I think the point of PWM is that it's flash - like Jeff Beck! There are dozens of regular compressor/limiters about but a mere handful of the PWM variety. The principal can be applied to flangers - see MXR again, and analogue delay - see Ross Delay, and phasers - again see MXR.[/quote]

I don't see how one could perform delay based effects with a PWM type VCA. A Flanger or analog delay use a BBD in most cases, or a digital delay element. Phasers are another story. They are a filter based effect, so they could be created from a PWM chopper type VCA. Enlighten me if I'm wrong about this....


Mark
 
Revised schematic has been uploaded directly over the old ones.
my site
http://www.celestial.com.au/~rosswood/data/CompressorSchematic.pdf
the old place
http://recording.org/users/kev/CompressorSchematic.pdf

Keith ,
please double check the upload.
next time put a revision number on the pdf.

it's all good
 
>I think the release resistor should be on the other end of the attack resistor.
good thinking. I had to look at it four times to see what you meant! -However, then the attack control will still affect fast release times, surely... so perhaps it'd be a tradeoff, albeit slight.

>you will need to redesign the rectifier
Redesign now uploaded... except I've just noticed that the output is taken from the wrong end of one of the diodes... :roll: -it should have been taken from the junction of the 20K feedback resistor and its series diode... next revision perhaps!

>The audio path is DC-coupled.
Ah yes. -Won't be so in the final version (if there is one!)

>I have doubts about the need for IC3, either half, but no strong objection
As a result of Jakob's comment, I noticed that the original implementation of the inverting buffer after the chopper in the signal path was switching to 'x2' gain whenever the input fet switched to ground... (it used to be a 5k resistor, the fet-to-ground, then a 5k resistor to the inverting input, with a 10k -ve feedback resistor) The non-inverting buffer solution looks better to me.

>Isn't the LM319 input impedance high enough to read the 555 sawtooth directly?
Possibly... I'm not certain, so I stuck a billion ohms in there out of blind ignorance. (....figuring that a probability is better than a gamble. -Remember, I'm not a *real* design engineer... -I just play at being one on the internet!)

>For breadboarding I would start down at 100KHz-300KHz and get it working.
I breadboarded the GR part of it... the timer, comparator and FET part. While I was there, I took it up to the frequencies involved, since the filtering seemed to be problematical and I was getting some funky residual garbage in the signal at lower speeds.

The filtering thing was always a problem, but lower frequency stuff (100Hz etc) was always nice and easy to see, and allowed me to 'cheat' and use lower-frequency (and lower order) filtering in order to make some observations and measurements.

>I suspect you want one L-C filter between FET PWM switch and the first active filter. MHz trash will not filter well in MHz-GBW op-amps.
...Now that's probably an illuminating observation. I tend not to think of inductors, since nowadays they are not so easy to source. I didn't look at it from the op-amps point of view from "MHz-down", I was looking from "AF-up"... That would very possibly explain the difficulty I was having with the aforementioned "funky residual garbage"...

>a patch-in point in the side-chain
Not a problem... right around the 'compression' control is where I saw the shaping taking place.

Regarding the 'point' of a simple PWM limiter, I've been thinking along fairly untrained lines since birth. (that obvious, -huh?) My current impression is that certain design approaches have certain characteristics -good and bad- which tend to dominate. -Often one can spend time money and effort trying to eliminate or surpress some of these in an effort to achieve neutrality, or you can shrug it off and accept them as 'character'. -I recognise that "character" is usually marketed as a good thing these days, even though my own preference is definately for neutrality. None the less, my suspicion is that this might not be so bad, and that any characteristics might be confessed up-front, without shame.

In the later stages of breadboarding, I did run a mono CD channel through it, and nothing seemed to be very badly mutilated. Of course, this was using a static control voltage, but I also tried a variety of different makes of VU meter (Sifam, Beede, Componex and Modutec) and all were very easy to "plug-n-play" and showed excellent tracking with a true VU reading of a steady sine wave atttenuated through the audio path... certainly vastly better than even a fully-adjusted LA1176 or LA-2a will.

Since the tracking between gain control units fed from the same chopper signal should naturally tend to be very good, a stereo (or more) application should be quite usable, and really no more complicated than a mono variant. (Two audio paths with a single summed rectifier feed is what I would imagine.)

Thanks for 'the grumping'! :green:

I'm definately going to look into the inductor. -What values for the LC, would you think? -I'd probably mess up the math!

Keith
 
verbos - what I meant was that the filtering on the Ross Delay, and I think one of the MXR Delays is controlled by PWM, using the BBD clock at a different frequency, so that when the clock frequency is lowered in order to increase delay, the filter cut off frequency is also lowered. From memory, cmos 4016 or 4066 chips are used as the PWM element.
 
[quote author="StephenGiles"]verbos - what I meant was that the filtering on the Ross Delay, and I think one of the MXR Delays is controlled by PWM, using the BBD clock at a different frequency, so that when the clock frequency is lowered in order to increase delay, the filter cut off frequency is also lowered. From memory, cmos 4016 or 4066 chips are used as the PWM element.[/quote]

oh. That's clever. It makes a tracking filter. I never thought of that. Maybe that would also work out for wavetable oscilltors. They sometimes need tracking filters on their output to get rid of the stairsteps on the lo bit samples. I guess for it to make any sense the clock to the filter switches would have to be much faster than the clock on the wavetable.

Mark
 
Back
Top