Crest Factor Detection for a Compressor

GroupDIY Audio Forum

Help Support GroupDIY Audio Forum:

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

Gold

Well-known member
Joined
Jun 23, 2004
Messages
3,709
Location
Brooklyn
The two compressors I know that allow you to alter the crest factor are the GML 8900 and the Flux Alchemist plugin. I know the 8900 has three detectors. Two peak and one RMS, IIRC.

This would be incredibly useful for me. I was wondering how one might approach designing this? I'm not looking to clone anything. I've never used an 8900 but the Flux stuff is great. I'd like to try it with the THAT VCA.
 
I had one unit that used two side chains, one with the standard implementation of the 2252, the other with a peak detector (with adjustable Atk and Release) which DC output was log-converted by another 2252. A pot allowed to control the balance between RMS and Peak.
 
So one 2252 as an RMS detector, one 2252 configured as a peak detector and another 2252 to log convert the peak detector output? I don't know what the log convert means or why it is necessary but I'll try to figure that one out myself from the app notes.

Was the implementation of the pot as simple as feeding the output of each detector into opposite ends of the track and buffering the wiper output before feeding the VCA?
 
VCAs control inputs demand a low-impedance source, so most probably you would need to buffer them. Additionally, that's notes recommend processing the CV at higher "gain" and scaling it down (with a voltage divider) before the buffer amp for VCA control, to improve the noise figure of the control voltage circuitry..
 
Depending on how you define crest factor all compression alters crest factor as it reduces the ratio of peak transients to average level.

If you are actually trying to target a specific crest factor as the final result of this signal processing it gets more interesting.  These days I would be tempted to do this myself with a microprocessor so I could apply a more extensive nonlinear decision tree, but in the spirit of staying in the analog domain lets come up with something simpler.

To determine actual crest factor the dual detector approach makes some sense. Using one detector chip with a relatively small capacitor, can be fast enough to capture and represent your peak level. A second detector chip with normal or larger cap will give you your longer slow time constant average response. Both of these outputs are already converted to log domain and reading out absolute level relative to a nominal 0dB, so all you need to do to calculate crest factor is subtract the slow output from the fast with a differential (one opamp and a few resistors) to directly read the crest factor in dB. You can then compare this measured crest factor in dB to your crest factor threshold, to vary the VCA gain. Note: This is not what Abbey's example is doing. That is just a variation on how the detection scheme responds to different wave shapes, favoring peak or ave.

You can incorporate a slope, similar to compression ratios, so the actual crest factor only gets reduced or use a high ratio slope to hard limit it to your target crest factor. 

This crest factor compression or limiting, would be independent of actual signal level, but track loud and soft signals equally being only responsive to their ratio of peaks to average. 

This could be assembled from a fairly modest variation on standard THAT comp parts.  i.e. two detectors, a little log domain number crunching with differential opamp, and one VCA to reduce gain.

You will need to do some experimenting to determine fast and slow detector speeds, compression ratio, and attack/release times to accomplish your specific desired result. To change crest factor, you want to be actively reducing the gain while the peaks are louder than your target and perhaps increasing the gain (or not still reducing it) when peaks are not above target crest factor. It seems the time constants to accomplish this may need to be relatively fast release, and could make or break this as being audibly useful.

Good luck, I hope this is a productive start, but I would be prepared for much tweaking on time constants and perhaps ratios to make this not suck as fast release times are also a source of distortion on LF waveforms. If we get lucky some of the very low frequency envelope modulations could cancel in the differential crunching..  Do you feel lucky? 

JR

 
Hi Paul,


  just a tad off topic, I just tried the Alchemist demo out thanks to you, and Holy F@@kin' Shit, that's the shizzle right there! I am flabbergasted that I haven't come across it before.


  a thousand thank you's!



    ANdyP
 
JohnRoberts said:
This crest factor compression or limiting, would be independent of actual signal level, but track loud and soft signals equally being only responsive to their ratio of peaks to average.

Yes, this is exactly what I want to do. Thanks John. Now it's time to pour over the app notes. And I don't feel lucky. This would be by far the most elaborate thing I've attempted. I think this will roll around in my brain for a year or so before I try it. I have plenty of other things to do while this ferments.


Andy,

Flux is running a special at the moment. 50% off everything. I just bought Alchemist a couple of days ago. I couldn't pass up the chance.
 
Hi Paul,

I tried to upload this to the Groupdiy email account but had no luck so I've popped it up on a yousendit link instead, perhaps someone can mail it to the account if they think it worthwhile.

https://download.yousendit.com/OHo1M25DOC9RWUx2Wmc9PQ

It's the Sontec compressor manual, incomplete but with some interesting reading. 

As you know I'm a big Pico user, my main mastering compressor these days is the P3 (the big 2U one with the Lundahls), it's a very very useful piece of gear.

Cheers,
Ruairi
 
Hi Ruairi,


   hope you are swell and dandy! Thank you so much for that info. It makes for really (geeky!) interesting reading. Does anyone know if the vca something proprietry, or might a 2181 be scaled to fit? - (Only askin'!)


      Kindest regards,


       ANdyP

ps, I can't seem to load it up to the GroupDIY account either . . . .ho hum
 
Thanks for posting that Ruari. That should be a good read. It says they used a DBX VCA.
 
No problem!  It would be cool if I actually understood it all :)

Andy - not sure on the VCA, it says they used a DBX for development.  Overall it seems a complex implementation, but taking the basic That app note circuits and applying some of the principles could be a lot of fun (for a guy with the ability and the time, neither of which I have :), over to you Paul.

Cheers,
Ruairi



 
Gold said:
JohnRoberts said:
This crest factor compression or limiting, would be independent of actual signal level, but track loud and soft signals equally being only responsive to their ratio of peaks to average.

Yes, this is exactly what I want to do. Thanks John. Now it's time to pour over the app notes. And I don't feel lucky. This would be by far the most elaborate thing I've attempted. I think this will roll around in my brain for a year or so before I try it. I have plenty of other things to do while this ferments.

Don't be scared away by the log math... The THAT detector chips do the heavy lifting to convert the audio level into a simple +/- X mV, that directly corresponds to +/- X dB. To make a simple compressor you compare the level in dB to a fixed threshold and multiply it by a scale factor to make a compression ratio.

By subtracting the difference between a fast and slow detector that are both going up and down with signal level, we get a X mV dB signal that corresponds to the crest factor. I will ASSume you don't want to expand signals that are less than your target crest factor, so you will want to use a steering diode circuit similar to that used in THAT's above threshold compression examples.  So instead of telling the VCA to reduce gain when the signal is above the voltage equivalent to X dB threshold, you instead tell it to reduce gain when the fast detector output, minus the slow detector output is above your X db crest factor.

[EDIT/ leaving out the clamp diode does not turn it into an expander but "full-range" instead of an "above threshold" crest factor compressor. This means peak or fast signals with less than threshold crest factor would get boost instead of cut. To make it actually expand crest factor we need to change the polarity of the side chain so cut becomes boost and boost becomes cut. /edit]

RE: time constants. Since by definition the peak needs to be >> faster than ave to extract useful crest factor measurements, This will automatically give you a relatively fast attack/fast release response, which if you think about it is mostly what you want, since high crest factor is related to transient information.

Thinking about my fast and slow detector advice the other day, perhaps we don't want to only make the peak >> faster, but perhaps split the difference, making the fast detector a little faster and the slow detector a little slower, to split the difference. Another alternative is to keep the peak detector very fast, and add some smoothing (lag) to the VCA control after we crunch the data.

Like I said be prepared to experiment with all associated time constants for best effect.

=======

OK, looking at figure 1. from their most basic app note http://www.thatcorp.com/datashts/dn00A.pdf  You can get started by adding a second 2252 chip identical except for the value of CT (note: RT also affects the time constants, but needs to be the same value in both chips so the nominal 0dB levels track each other.).  For the fast peak detector make CT smaller, for the slow ave detector make it bigger (you will want to experiment with this too, but I would start with a 5:1 or 10:1 ratio between fast and slow caps)..

Take the voltage output from this slow detector and run it through a simple unity gain inverter. (Note: when controlling the VCA 0dB or unity gain is 0V or ground, so unity inverter that mirrors the voltage output of slow detector around ground.) Then feed this inverted voltage through another resistor the same vale as R14 into OA2.  Now the threshold pot will correspond to X dB crest factor.  You don't need the full range of threshold adjustment, but it can be adjusted to work using the stock values to get you started.

See, Log domain processing isn't that hard, maybe you are lucky.   ;D

JR  
 
JohnRoberts said:
See, Log domain processing isn't that hard, maybe you are lucky.   ;D

So, how do you use a breadboard? ;)

I only glanced at the beginning of the Sontec manual but I already see I'd want to do the crest factor control differently. Where it happens regardless of signal level, like John describes . In the Sontec it is only active above threshold. The descriptions in the manual are great though. I miss well written manuals.
 
Gold said:
So one 2252 as an RMS detector, one 2252 configured as a peak detector and another 2252 to log convert the peak detector output? I don't know what the log convert means or why it is necessary but I'll try to figure that one out myself from the app notes.
You need it because the VCA needs a log control voltage.

Was the implementation of the pot as simple as feeding the output of each detector into opposite ends of the track and buffering the wiper output before feeding the VCA?
[/quote] Yes.
 
tv said:
VCAs control inputs demand a low-impedance source, so most probably you would need to buffer them.
The 2252 output is low Z.
Additionally, that's notes recommend processing the CV at higher "gain" and scaling it down (with a voltage divider) before the buffer amp for VCA control, to improve the noise figure of the control voltage circuitry..
True but it van be done after mix the two different rectifier voltages.
 
Gold said:
JohnRoberts said:
This crest factor compression or limiting, would be independent of actual signal level, but track loud and soft signals equally being only responsive to their ratio of peaks to average.

Yes, this is exactly what I want to do.
In order to do that, you would need to substract the voltages issued from the two different rectifiers, with a diff amp. Very common in de-essers.
 
Hi,


  so, Paul, forgive me if I am not quite up to speed, you want a device that always controls the crest factor( difference between rms and peak) to a set value, regardless what the level is, so you are restricting the dynamic range by a prescribed amount, even in a quiet passage? If I am recieving you right, I am all ears. Such a device would be VERY interesting to me. I spend half my mixing life adjusting the verse levels to match the chorus(verse normally being far too louD, since there is less occurring). Sounds like a fab idea to me. Now, if only I had some electronic engineering skills to help you out!


    Kindest regards,


      ANdyP
 
strangeandbouncy said:
  so, Paul, forgive me if I am not quite up to speed, you want a device that always controls the crest factor( difference between rms and peak) to a set value, regardless what the level is

Yep. That's what the Bitter/Sweet control on the alchemist does. Bitter is crest factor expansion and sweet is compression. But it's not restricting the dynamic range, only the peak to average ratio. It's very useful for disk cutting. Phono pick-up's don't like to trace large crest factors regardless of absolute level.
 
Back
Top