AUDACITY and Compander DBX 124 emulation

2762/5000
Hello,
I would like to find a plugin for Audacity which decodes the magnetic tapes recorded decades ago in DBX II (DBX 124 device). I cannot do it myself because I did not find in Audacity how to control a compressor (ratio 2 in dB) with a control signal carried out by a sampling of the zone 50 at 10khz. This is the principle of DBX II (The professional DBX I with a control signal of 50 to 20khz).
The overall bandwidth of the device is from 20hz to 20khz. To complicate the problem, before processing the signal is pre-emphasized (same problem as the RIAA vinyl curve for treble and bass) then de-emphasized during playback.

Each operation is a delight for Audacity … but the chain of these operations simultaneously is blocking. For me.
I saw in the forum the compressor made by Chri’s (rejected, it is a ‘simple’ compressor to replace a linear compressor DBX 118) then a plugin which would be infected by a Trojan and whose link is broken. Nothing found more.
The 2 DBX II type 124 encoders / decoders that I used to record dozens of tapes in REVOX A77 are broken (the first one dates from 1977, capacitors are dead. Some capacitors are in critical locations (Tantalum).

After exchange, I must re-adjust everything (with important equipment). Not possible.
I stopped recording in analog as soon as the recordable CDs arrived (after an unfortunate interlude in DCC broken after 4 tapes!).
I absolutely need to rip all of my DBX II tapes before I too die of grief.
NOTE: Now I pay very close attention to my archives (APE, FLAC or other?). How many bits, what sampling speed and on what medium. The almost obsolete CD, the DVD with non-repairable ‘Fashion Victim’ recorders, USB keys and flash memories (max. 10 years and probably less).

For the moment I work in hard disk. Easy to transfer when there is a new technological leap.
I’m sure I’m not alone in my case. If you are aware of a Software solution, do not hesitate to post here.

By the way, DOLBY recordings on large reels (Type A and Type B) have the same problem but the decoders are easier to find.
As I am retired in France, I cannot have a paid and expensive solution.
I think Audacity is the ideal tool for such a realization. I do not feel capable of making such a plugin and I do not see an easy solution in commercial audio software.

The problems of vintage material do not concern them at all.
Until Audacity is a solution,

Thank you for your possible answers.
DomiBigSound
Envoyer des commentaires
Historique
Enregistré
Communauté

Vintage DBX II model 124 Noise Reduction Systems are still available on ebay. Prices seem to be in the range $80 to $200. A genuine hardware device is the only way you will achieve “true” dbx decoding.

Some suggestions for approximating dbx decoding in Audacity:

dbx is a proprietary noise reduction system, and while some details are available, not enough details are available in the public domain to be able to reproduce the effect exactly (and an exact copy of the dbx decoder would probably infringe their patents).

This code, when run in the Nyquist Prompt effect (https://manual.audacityteam.org/man/nyquist_prompt.html) will apply 2:1 dB expansion (though I’ve no idea how well this matches an actual DBX II 124):

;version 4
;type process
(defun dbexpand (sig)
  (let* ((env (snd-avg sig 441 441 OP-PEAK))
         (log-env (linear-to-db env))
         (xenv (db-to-linear (mult log-env 0.5))))
    (mult sig xenv)))

(if (= *sound-srate* 44100)
    (multichan-expand #'dbexpand *track*)
    "Error.\nTrack must have sample rate of 44100.")

This post gives some information about the pre-emphasis: https://www.diamondcut.com/vforum/forum/general-discussion/dcart32-forum/293-dbx-compression?p=6439#post6439

To reverse the pre-emphasis, use the “Filter Curve” effect: https://manual.audacityteam.org/man/filter_curve.html

WAV format is best during the production stage.
FLAC or WAV may be used for archive copies (or both). FLAC has advantages of smaller file size (usually around 40% smaller than WAV) and better support for metadata. WAV has the advantage of being supported by virtually all audio applications and devices.

Audacity works internally in 32-bit float format, so your tracks in Audacity should be 32-bit float.
On export, a normal 16-bit WAV, or 16-bit FLAC will be fine. Higher bit formats are less compatible, much bigger, and no better than 16-bit in this case.

The code I posted in my previous post requires the sample rate to be 44100 Hz.

Coincidentally the patent expires today … US4112254A - Signal compander system - Google Patents

What a coincidence :slight_smile:

Were you able to find more details about the expander (attack, release, hold, lookahead …)

On second reading it may have expired earlier than today :blush:



The patent just has the frequency-response curves & a schematic diagram …

Few years later… :stuck_out_tongue_winking_eye:
Maybe do you wanna try this?:

It’s playing very good samples posted on
http://www.bobweitz.com/dbx_webpage/dbx.html)

“zero” level is 32767.0

void  Dbx2dec_f( float *_buf, int _nsamples, int _nch )
{
	static float  RPY[8]={0.0}, RDY[8]={0.0};
	static float  PDY[8]={0.0};

	float  X, RPX, RDX, VGCY, Y, PDX;

	float  *sx = _buf;

	int a=0;

	for( int nch=0; nch<_nch; nch++ )
	{
		a = nch;

		for( int ns=0; ns<_nsamples; ns++ )
		{
			X = sx[a];

				 // "RMS preemphasis"
				RPX = X*11;
				 RPY[nch] += ( 0.53 * (RPX-RPY[nch]) );
				 RDX = RPX-RPY[nch];	// highpass...
				RDX += (RPX*0.063);

				 // "RMS detector"
				if( RDX<0 )	RDX = -RDX;
				else			RDX = RDX;
				RDX = RDX*RDX;
				RDY[nch] += ( 0.000475 * (RDX-RDY[nch]) ); // (T = 30 ms)
				VGCY = sqrt(RDY[nch]);

			  // "VCA"
			 PDX = (float)( ((double)X*(double)VGCY) * 0.00015 );

			 // "Play Signal De-Emphasis"
			PDY[nch] += ( 0.047 * (PDX-PDY[nch]) );
			Y = PDY[nch] + (PDX*0.31);

			sx[a] = Y;

			a+= _nch;
		}
	}

}

for some reason this throws an error “Track must have sample rate of 44100” even when my sample rate is 44100.

Which version of Audacity are you using, and how do you know that the track sample rate is 44100?

(Older versions of Audacity display the sample rate of the track in the track’s controls panel on the left end of the track. This was removed from more recent versions, so now you need to look in the track’s context menu (click on the three dots after the name of the track), and then select “Rate”).

I was using v3.0.2 which still displays the sample rate on the bottom left. I ended up just taking out the sound rate check though and it worked fine.

The sample rate displayed in lower left of the main window is the “Project Rate” (and is labeled as such). That is the overall sample rate for the project.

Individual tracks can have different sample rates. In older versions of Audacity the sample rate of the track is displayed on the left end of the track.

Track sample rate vs Project Rate:

As an example, if you import 2 audio files into Audacity and the files have different sample rates, the tracks into which the audio is imported will have the same sample rate as their corresponding file. However, when the project plays, sound cards can only handle one sample rate at a time, so Audacity has to mix the tracks and resample if necessary to produce a single audio stream with a single sample rate that can be converted into sound by the sound card. This is new sample rate is called the “Project Rate”. Similarly, when exporting, all tracks must be mixed down to a single sample rate, and again it is the “Project Rate” that is used.

In newer versions of Audacity, it works in basically the same way, though the sample rates are hidden from view most of the time.