OP
John Dyson
Active Member
- Joined
- Feb 18, 2020
- Messages
- 172
- Likes
- 90
- Thread Starter
- #41
Update: I am working my a** on a last 'development' release of the decoder, trying to make a really real release that is easier to use. The earlier versions had a combination of problems, but still based on a proper DolbyA compatible decoder -- just that I never quite totall divined what the heck was going on in the recordings. This is all about almost ALL consumer recordings being very evilly compressed. The compression pumping effects are minimal because of the extremely fast attack/release, but also Ray Dolbys ingenious attack/release scheme that does a lot to avoid direct intermodulation distortions between the audio signal and the gain control. There are still all kinds of distortion mechanisms, but the structure of the detector scheme really does minimize the brute force problems.
Eventually, with a lot of patience and help from some friends over on 'Style' in PM messages and chatting, I am 100% confident that the correct and accurate EQ and configuration has been found.
Basically, I was always correcte about the involvment of DolbyA, but kept getting strange and sometimes misdirecting feedback from some people in Indurstry - along with my ineptness, I was always wavering around the correct EQ along with understanding better about how the DolbyA was used. For a while, I thought that the EQ was CD based, and I was close, but wrong about that. Most of the EQ is based on multiple single pole filters at approx 1kHz, 3kHz for a middle frequency dip of approx 9 to 10dB (I have the exact number, I just forget), plus some EQ above 3kHz, where there is multiple single pole boost at 3kHz, and then subseqent EQ at 3kHz and 9kHz. Bottom line, I have been able to cancel out all of the distortions that happen because of incorrect EQ going into a DolbyA decoding mechanism. If the EQ is even slighlty off, there is a sense of distortion when things are mismatched. Many of my misguided attempts were using 2 pole filters insead of 1 pole filters -- so never really matched the precise behavior until recently.
Additionally, the decoding scheme that I am talking about (the EQ & DolbyA compatible decoding) is applied in multiple layers. Those multiple layers and the calibration levels (the DolbyA threshold) are cascaded usually in 3layers or more of 10dB increments. This layered approach has the effect of doing compression in mostly 10dB chunks, also giving different EQ at different levels in the signal.
All of these layered DolbyA ENCODING does things like screwing the natural stereo image, increasing the hiss very audibly on older analog recordings, and giving the sense of all kinds of intermodulation of the sound. Bottom line, the compression really squishes the signal.
The current developmental version (not yet released) does work super well, actually revealing details that I have never clearly heard before because of the resolution of the distortions and compression of the encoding side of the 'FeralA' (coined term) scheme. I am not even sure if the signal has ever been intended to be decoded, because true DolbyA units would tend to create a lof of distortion, even in decoding/TRYING to recover the original DolbyA -- the *natural* hardware design cannot do some cool things that the DHNRDS (my decoder) can do in its fully unfolded decoding design. (The true DolbyA uses a few nested feedback loops with the associated unintended delays in the decoding confituration that screw up totally accruate decoding.) Unfolding the feedback loops precisely is a tedious affair, but the decoder is very accurate (moreso than true DolbyA) for decoding purposes. It also avoids creating significantly more modulation distortion, unlike the true HW design, and even has an option that can undo (demodulate) some of the original high frequence modulation distortion from the encoding process. At the lower frequencies (below 1kHz), the decoder must remove a lot of the modulation distortions anyway, because of the audibility of waveform distortions below 1kHz, esp at 120Hz and below. Undecoded FeralA signals have signifcant actual low frequency modulation distortion -- not normally recognized because most of us are used to it.
The new version of the multi-layer decoder (all in one run of the software) is beautifully clean sounding -- passing all of my previous tests and demos that only sounded a little 'better', where it now hits that point where intuitively the recording sounds 'correct', not just a little better.
Right now, the decoder does have a complete syntax, much simplified from the previous, that allows simplified experimentation and testing to find the correct configuration, but is still TOO COMPLICATED, even for me to use all of the time.
I am beating my head against the wall trying to find the best & easiest to use command line syntax, trying to make the command line easier to type and easier to conceptualize. I am testing and experimenting with my friends over on 'Style', but when the decoder is in its true final version, which hoping and praying that will be the next release in a few days -- I will also announce here once it has been tested/verified by a few other people.
I have already released a copy of the DolbyA compatible recording loop in C++, but it isn't the complete decoder. I will be eventually updating the source example (exactly as used in the decoder) to include more of the decoder, but will be missing the input bandpass filters for the 4 DolbyA compatble bands, and even the simplified advanced anti-modulation distortion code and will also be missing the input Hilbert detectors for the precision DolbyA compatible attack/release calculations. The vector SIMD code will also be missing, but that can be reasonably easily replaced by a good C++ programmer. ThHowever, the precision attack/release calculations and the feedback loop for the HF0/HF1 balance will be included. The source is not easily adaptable to languages like Java, Javascript, perl and others, because the SIMD support in C++ really makes the program much more practical to use because of speed issues.
The final release for the running code should be available in approx 1wk, maybe a little longer or shorter. The source code will be available in updated form perhaps 1wk later. I still would have to edit out the C++ classes and the supporting emulation code. I am hoping the source code would give hints to plug in writers to be able to create a true DolbyA decoder for casual (not necessarily the precision, super high quality use of the DHNRDS), so much better than the FeralA encoder, which is effectively what other DolbyA plugins actually do. DolbyA can SEEM to be decoded by strategic EQ -- thereby making DolbyA into a multi-band compressor instead of properly decoding the recording.
Oh well -- still finishing up the usability features of the decoder... Will report in the next week or two, hopefully with really good news.
John
Eventually, with a lot of patience and help from some friends over on 'Style' in PM messages and chatting, I am 100% confident that the correct and accurate EQ and configuration has been found.
Basically, I was always correcte about the involvment of DolbyA, but kept getting strange and sometimes misdirecting feedback from some people in Indurstry - along with my ineptness, I was always wavering around the correct EQ along with understanding better about how the DolbyA was used. For a while, I thought that the EQ was CD based, and I was close, but wrong about that. Most of the EQ is based on multiple single pole filters at approx 1kHz, 3kHz for a middle frequency dip of approx 9 to 10dB (I have the exact number, I just forget), plus some EQ above 3kHz, where there is multiple single pole boost at 3kHz, and then subseqent EQ at 3kHz and 9kHz. Bottom line, I have been able to cancel out all of the distortions that happen because of incorrect EQ going into a DolbyA decoding mechanism. If the EQ is even slighlty off, there is a sense of distortion when things are mismatched. Many of my misguided attempts were using 2 pole filters insead of 1 pole filters -- so never really matched the precise behavior until recently.
Additionally, the decoding scheme that I am talking about (the EQ & DolbyA compatible decoding) is applied in multiple layers. Those multiple layers and the calibration levels (the DolbyA threshold) are cascaded usually in 3layers or more of 10dB increments. This layered approach has the effect of doing compression in mostly 10dB chunks, also giving different EQ at different levels in the signal.
All of these layered DolbyA ENCODING does things like screwing the natural stereo image, increasing the hiss very audibly on older analog recordings, and giving the sense of all kinds of intermodulation of the sound. Bottom line, the compression really squishes the signal.
The current developmental version (not yet released) does work super well, actually revealing details that I have never clearly heard before because of the resolution of the distortions and compression of the encoding side of the 'FeralA' (coined term) scheme. I am not even sure if the signal has ever been intended to be decoded, because true DolbyA units would tend to create a lof of distortion, even in decoding/TRYING to recover the original DolbyA -- the *natural* hardware design cannot do some cool things that the DHNRDS (my decoder) can do in its fully unfolded decoding design. (The true DolbyA uses a few nested feedback loops with the associated unintended delays in the decoding confituration that screw up totally accruate decoding.) Unfolding the feedback loops precisely is a tedious affair, but the decoder is very accurate (moreso than true DolbyA) for decoding purposes. It also avoids creating significantly more modulation distortion, unlike the true HW design, and even has an option that can undo (demodulate) some of the original high frequence modulation distortion from the encoding process. At the lower frequencies (below 1kHz), the decoder must remove a lot of the modulation distortions anyway, because of the audibility of waveform distortions below 1kHz, esp at 120Hz and below. Undecoded FeralA signals have signifcant actual low frequency modulation distortion -- not normally recognized because most of us are used to it.
The new version of the multi-layer decoder (all in one run of the software) is beautifully clean sounding -- passing all of my previous tests and demos that only sounded a little 'better', where it now hits that point where intuitively the recording sounds 'correct', not just a little better.
Right now, the decoder does have a complete syntax, much simplified from the previous, that allows simplified experimentation and testing to find the correct configuration, but is still TOO COMPLICATED, even for me to use all of the time.
I am beating my head against the wall trying to find the best & easiest to use command line syntax, trying to make the command line easier to type and easier to conceptualize. I am testing and experimenting with my friends over on 'Style', but when the decoder is in its true final version, which hoping and praying that will be the next release in a few days -- I will also announce here once it has been tested/verified by a few other people.
I have already released a copy of the DolbyA compatible recording loop in C++, but it isn't the complete decoder. I will be eventually updating the source example (exactly as used in the decoder) to include more of the decoder, but will be missing the input bandpass filters for the 4 DolbyA compatble bands, and even the simplified advanced anti-modulation distortion code and will also be missing the input Hilbert detectors for the precision DolbyA compatible attack/release calculations. The vector SIMD code will also be missing, but that can be reasonably easily replaced by a good C++ programmer. ThHowever, the precision attack/release calculations and the feedback loop for the HF0/HF1 balance will be included. The source is not easily adaptable to languages like Java, Javascript, perl and others, because the SIMD support in C++ really makes the program much more practical to use because of speed issues.
The final release for the running code should be available in approx 1wk, maybe a little longer or shorter. The source code will be available in updated form perhaps 1wk later. I still would have to edit out the C++ classes and the supporting emulation code. I am hoping the source code would give hints to plug in writers to be able to create a true DolbyA decoder for casual (not necessarily the precision, super high quality use of the DHNRDS), so much better than the FeralA encoder, which is effectively what other DolbyA plugins actually do. DolbyA can SEEM to be decoded by strategic EQ -- thereby making DolbyA into a multi-band compressor instead of properly decoding the recording.
Oh well -- still finishing up the usability features of the decoder... Will report in the next week or two, hopefully with really good news.
John