Skip to main content
Topic: New simple, good sounding multiband compressor available. (Read 64621 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: New simple, good sounding multiband compressor available.

Reply #25
Hello John,

I hope your dolby decoder comes along fine!

You haven't had the time to look into "my project" yet, have you?

Cheers!

Re: New simple, good sounding multiband compressor available.

Reply #26
Hello John,

I hope your dolby decoder comes along fine!

You haven't had the time to look into "my project" yet, have you?

Cheers!

I am totally overloaded on the DolbyA compatible decoder project. Hopefully, the DolbyA compatible decoder program is really starting to be able to satisfy the most critical users, so the pressure might be diminishing a little. might be slowing down in a few weeks.

I have recently been doing some serious rework, where the very advanced 'super RMS' detector (RMS measurement, but lower ripple) didn't emulate HW behavior adequately to reliably properly decode DolbyA encoded material.  I finally gave-up (on my detector which is really good for normal compressors/expanders) and did a precision implementation of the REAL HW detector and nonlinear characteristics (lots of diode equation type stuff), and am now getting robust results.  The emulation is so very precise now, that there is a different mode for the old 301A style DolbyA (the follow-on DolbyAs like the cat22 do act differently from the original 301A), and the results have been stellar (but this breakthrough just happened in the last two days.)

Previously, the decoder was good enough for listeners (really nice in some ways), but didn't emulate the decoding precisely enough for serious recording engineers.   The advanced features still persist (the anti-distortion stuff), but now the front-end emulation is so pristine (becuase the 'diodes' that I am using are perfect, and the design is very clean -- my capacitors in my software are very, very good :-)), that the anti-IMD operations are less critical for providing superior results.

This stuff is 'no-joke' when it comes to tedium and in-some-ways complexity (not really complex, but when starting from scratch, it is not easy.)

With this comment -- trying to explain why I have cannot allow myself to be distracted -- I am intellectually/mentally and emotionally exhausted, yet there is still significant work needed for the decoder (GUI interface for a seperate GUI program -- avoids license encumberances) , and some other things.

I like to do compressors/expanders (I actually prefer intelligent expanders), but I have made promises to deliver great results on the decoder), and it has only been extreme concentration that has helped make as much progress as I have on the project (and sometimes, I know that I haven't done good enough.)

I WILL take a look at making the compressor more flexible when I have time!!! I really want to look at it -- I have some really good ideas for exceptional quality (probably cannot divulge the more advanced stuff from the decoder project, but still have some potentially helpful technology for when I can work on it.)

john

Re: New simple, good sounding multiband compressor available.

Reply #27
jsdyson,
Do you have any updates on the project?
Glass half full!

Re: New simple, good sounding multiband compressor available.

Reply #28
jsdyson,
Do you have any updates on the project?

Actually, yes I have made some upgrades, and some better control of the compression (maximum compression gain/loss -- so that it stops compressing above a certain gain.)  Also, I upgraded it to an intelligent 4 band -- it doesn't over-hype the high end when gains are high, but will compress them if they are too intense (there is a relative threshold setting, for the upper two bands also.)

Made some qualitative improvements -- better attack/release control, and the peak limiter has less distortion -- it can run more deeply with less intrusion in the sound.
The bad news -- the state of the compressor source code still sucks.  I have been working so crazily on the DHNRDS decoder (happens to do a good job of decoding material that is DolbyA encoded) that I haven't been able to focus elsewhere.  I plan to make something -- the new compressor -- available in the Sunday/Monday time frame (30thJul2019) hopefully.  The new decoder work is lightyears beyond my previous attempts (an actual audio professional jumped in to help.)

About the DA decoder:  I am attaching some snippets of some Olivia Newton John (truncated for obvious reasons) -- but the new DA decoder JUST MIGHT someday help to improve the quality of some of those old recordings as distributed through normal channels.  The DA decoder is a pretty raw professional tool, and inexpensive -- but works wonders (at least, in my opinon as it's daddy :-)). * If there is something sentimental, and you already have a copy, and I already have a DolbyA copy -- ill make a copy -- if REALLY desired.  We aren't selling the decoder to consumers (support issues, etc) -- but I am willing to do one-off decodes and even supply a timed-out version gratis if it is really needed by consumers only.  The pros need to go through my project partner and will get better support than I can give (he has a nice manual/etc.)

Here are the snippets:  https://www.dropbox.com/sh/l9vjbst22duw0ua/AACR2MGVhBeVfA286gUSEXnAa?dl=0

Re: New simple, good sounding multiband compressor available.

Reply #29
Give me another day to make the compressor available.  It is all written/debugged (well, you know what I mean.)  I'll package it up -- forgot, have to build a Windows version, so it will take time anyway.  I'll allocate time tomorrow to complete the build on Windows.

John

Re: New simple, good sounding multiband compressor available.

Reply #30
This new version of the compressor tends to sound better and the limiter works more cleanly.  However, the source code is just as ugly as before.  It is now 4 bands with good managment of gain differences between bands.  The compressor usually doesn't sound very obtrusive at all.

It is okay to use the compressor itself and the source code in any legal way -- if you happen to sell something derived directly from this code, just mention me as someone who helped.  I don't reserve any rights to the code -- use it at your whim -- just be a good citizen.

It compiles directly under the cygwin environment (actually written on Linux.)

Most trivial usage is very simple command line:

> comp-win --inp=infile.wav --outp=outfile.wav --cratio=2.0 --thresh=6.0
(Be careful using any new program like this -- there is nothing intentionally bad in it.)
(adding the --info=10 switch allows you to see the second by second progress of the processing.)

Also attached is a sketchy 1 page guide about the available command line switches and mentions various behavioral options.
There are NO attack/release adjustments, the compressor will generally adjust attack/release as effectively as a user can.
It is audio-RMS based detection, not EE-RMS style, so it is as inobtrusive as a simple compressor can be.

If you have questions, I'll try to answer them, but please read the sketchy guide first.  Also, make sure that the .dll files are in your path (or sitting next to the program binary.)  This will normally be true if you unpack the program into the 'comp2' directory as it normally would do.  A standard Windows install is NOT used, this is NOT a professional product,  doesn't even qualify as a good hobby quality product -- but it works, and might even show some interesting/useful programming techniques, even for a veteran C++ programmer (very SIMD centric.)  Even by my own hackery standards, the code is ugly -- sorry -- what could I do in a few hours.  This note and quick ref guide took longer to write than the cobbled together source code!!!

The program has only be tested on a feeble ATOM Windows laptop (other than the original Linux development), and appears to work.

I you want to use a simple compressor, and have FULL CONTROL over it -- you have the source code with this program, and might be a start to modify for different bands, etc.  The architecture IS limited to 4 bands without more than a few simple changes, but could easily be changed for fewer bands or change the frequencies.

Good luck!!! (you'll need it :-)).


Re: New simple, good sounding multiband compressor available.

Reply #31
Does your linkwitz-riley filters use allpass IIR to give flat frequency response when summing all bands together?

Re: New simple, good sounding multiband compressor available.

Reply #32
I simply use 2nd order filters that when summed together result in a flat response.  Of course, as the gains change, then there can be odd effects -- but really don't hurt -- the freq response is all over the place with multiband.  Since the bandpasses are soft (moderately low Q except the LF bad which purposefully has a high Q for the same reasons as DolbyA), and the bands are separated by subtraction, there isn't a really bad problem.  If you listen, the effects of the filters aren't all that obvious except for the expected bandpass effects.  One more thing -- the gain variations are restricted in a way that the phasing isn't a problem -- even if it was a problem.

I did consider using the multiple butterworth trick, and it IS a cool trick, but I didn't do it.  There was absolutely no reason for such a sharp cutoff, and the phasing issues aren't very severe.  (Listen to any proper DolbyA encoded/decoded process -- I used the same scheme.)*  The sharp cutoff of 4th order is more problematical, and only a few dB of separation between bands is needed anyway.  You can take the code in agcfilters.h, and implement two 2nd order with Q=0.707 for each band, and get the tight separation, but my experiments show no advantage, and the tight bandpass actually shows a disadantage except for the very low frequencies.  The lower Q around 0.500 (I did goose up the Q a little) is the same as a Bessel for 2nd order -- close to linear phase.  I didn't hear any bad effects up to the full single order Butterworth Q=0.707.

* If you listen to undecoded DolbyA -- probably 2/3 of the material that was recorded before 1990, but on digital -- giving that often described 'harsh' digital effect, that is UNDECODED DolbyA -- people never complain about the phasing, but just the boosted highs (I also notice the flattened stereo space.)  I can at least compare decoded and undecoded material because of the ability to decode the too common 'feral' DolbyA material.

Interestingly, on my DolbyA compatible decoder, I use linear phase filters for the high frequencies, where the phase mismatch between my linear phase and the HW standard low Q filters hasn't caused any notice or complaints, except with the better control of errant peaks by the linear phase version of the input filters (well, I did use the Q=1.170 for the 74Hz filter as in a true DolbyA because of the need to emulate the weird phase shifts there -- otherewise the gain vs. freq at LF because really weird BECUASE OF THAT HIGH Q.) 

Using the multiple butterworth scheme might keep errant peaks from happening, but with my comparison with DolbyA HW and my SW implementation -- I haven't seen that being a terrible problem -- just noticeable, with my scheme sometimes giving about 1dB extra peak headroom.

John

Re: New simple, good sounding multiband compressor available.

Reply #33
One more thing -- If I was to do the compressor over again, I would have used FIR linear phase filters throughout (my goals didn't include realtime play), but like in the DHNRDS DA decoder, the input/output files would be time synchronized (the play-time compressor doesn't do that -- it is a toy,  the DA decoder is NOT a toy.)   Also, I wouldn't have used the same kind of RMS detector, but a different technology based on Hilbert transforms, but yielding the same general results -- and NO RIPPLE.  When/if I ever did a professional calibre compressor -- I still have about 5 NR decoders to do first -- it would be different in a lot of ways, but still use the same SIMD techniques.  If I didn't use SIMD on the DA decoder, it would be much slower.
My own work -- when focusing on perfection, is REALLY crazy perfect (ask my project partner.)  You would not believe the modulation products from the fast gain control that I figured out how to cancel.  Most people in the field would claim that it is impossible (I'd expect that Orban hasn't figured this one out, well maybe just him/his company), but the modulation products are REALLY combed out really well on the DA.  I would do the same kinds of techniques on the compressor -- it would be faster, yet not produce the typical 'too-fast' attack/release distortions.
I haven't worked out the details on the conversion from the DA to a compressor, but I can give some hints if interested.  There WILL be some papers on it in the future.  (The DA decoder produces infinitely more clean results than DolbyA HW does because of the advanced DSP techniques -- especially obvious on vocal chorus -- individual voices are maintained instead of a blob like so common on material like ABBA!!!)

If you are interested in the advanced techniques not used by the toy compressor, I am certainly willing to give hints.  Most of them use Hilbert transforms and in some cases, a kind of iterative technique.  I don't think that a normal compressor would need the heroic techniques used to improve DolbyA emulation behavior (really fast release times in the 30msec range -- produce lots of modulation products that don't really sound *bad*, but lots of detail is lost.)


 
SimplePortal 1.0.0 RC1 © 2008-2019