Jump to content
IGNORED

'FeralA' decoder -- free-to-use


Recommended Posts

17 minutes ago, sandyk said:

 John

You know who my source of this information is, and he had a close listen to the posted LP example yesterday and sent me a couple of lengthy and informative replies.

Yes, there is added HF EQ just like most recordings of that era, (70s and 80s) but it is not Feral Dolby-A, despite any similarity in the resulting sound to you .

 

I am not prepared to discuss this aspect further with you. 

 

It could be that there are way too many variations of EQ used in different parts of the spectrum (e.g. 5K and 8K too)

by different studios and Recording/Mastering Engineers to make a single click decoder possible. 

However, you are providing a set of different Tools that experienced members of the Industry will find useful.

 

You also need to address the concerns expressed by Night Rain (above) 

 

 

Alex

Alex -- why do you say 'I am not prepared to discuss further', but then you do?   Which do you mean -- or are you just angry?

 

I am pretty happy -- a bit of success...   Why did you always criticize me without actually giving some help  Were you always just

trying to poison the effort?   Think about it.


BTW, I am definitely willing to discuss things with you -- including my need for help at times, and being left hanging after a condemnation.

 

 

Link to comment
3 hours ago, Night Rain said:

It sounds way off on my setup. The highs are prominent and there's no life. Like a table AM radio.

I just double checked the snippets below -- are you saying that there is a substantial difference in frequency response balance?  My own hearing stops at 14kHz, and is otherwise normally really good -- on the other hand, is unreliable when it isn't good -- sometimes I lose bass or super highs, but that is probably just accomodation .

 

Remember, FA has a least 10dB of bass compression below 100Hz -- it is hard to learn to recognize that, knowing that the real world recording doesn't do that.

 

Here are the snippets:

https://www.dropbox.com/sh/tepjnd01xawzscv/AAB08KiAo8IRtYiUXSHRwLMla?dl=0

 

On the other hand, the Supertramp stuff is wierd, doesn't follow any of the normal rules.   I think that I found the problem.  It had to do with the stereo image, but I was solving it wrong.   With the Supertramp stuff, ANY error will make the vocals ugly.   THE VOCALS ARE ACTUALLY UGLY IN THE FA VERSION ALSO, just suppressed by the overly strong midrange, homogenizing the sound.

 

I am redoing Supertramp right now, but I just posted a snippet from the redo.  Once the phase between L+R is correct, the vocals clean up quite a bit.

 

When I listen for sound quality, I refer to REAL MICS going directly into a board -- not so much being used to / accomdated to the FA sound. What mic do you know of that creates that boomy FA sound?  Sure, a cardiod will give a male voice 'balls', but the midrange boost is just not real.   It is exactly that strange, unreal midrange that made me turn away from the high fi hobby -- I used to do recordings myself.


We are all different.

 

If you want to help and give very specific constructive criticism, then I'd appreciate it!!!

John

 

 

 

 

 

Link to comment

When discussing the difference in sound between FA and natural recordings, there IS a difference in bass.   FA has BOTH synthesized bass from the natural LF distortion in a DolbyA unit, and also has a lower midrange boost that extends into the low bass.   Both together produce a 'super bass'.   It isn't really part of the recording.

 

* THERE WAS AN OLD DBX BOX THAT DID THE SAME THING CREATING FAKE BASS , and FA BASS ACTUALLY SOUNDS SIMILAR TO THE OLD DBX BOX!!!!

 

One of the challenges of DolbyA decoding is matching exactly the dynamics in the lower midrange and bass.   If those dynamics are not matched perfectly, then there will be distortion left in the decoded copy.   I can actually see that in my test materials if the decoder isn't perfect in that area.

 

With the FA scheme, there are 7 DolbyA units hitting on the signal, both boosting the lows, but also creating distortion from the dynamics processing.   This synthesized bass cannot really be done by a simple EQ -- the SUPER bass is being faked by the DolbyA compression.   (DolbyA has notoriously fast attack/release times, thereby causing a certain kind of reversible modulation distortion below about 500-1000Hz.)

 

I cannot compete with the fake bass, esp when someone has accomodated to it, and listened to it for many years.   However, I have to stay on the side of accurately recovering the origninal, and the result should have minimal left over distortion, that is -- no synthesized bass.   Actually, the decoder DOES have a slight error, but I don't think that it is audible at all.

 

The bass on the FA decoder IS now accurate, and follows all of the rules.  (I think that I mentioned before, I had actually tried the eventual EQ pattern many months ago, but they did some strange things to cancel distortion products -- making the EQ a bit odd.)   This 'cancelled' distortion is indeed part of the 'fake bass' in the FA recordings.

 

 

 

 

Link to comment

I have had time to study the vocal strangeness in both the 'Even in the Quietest Moments' and the 'Crime of the Century' decoding results...  ('Breakfast' and 'Crisis' don't have the problem.)   After some testing with various kinds of EQ (slightly changing the EQ, moving things temporally), I found an interesting  adjustment, which follows the 'cancellation' scheme nicely.   If trying to 'brute force' the EQ, then the benefit is much less, and is very easy to make the problem MUCH worse.

 

The Supertramp albums need to be decoded in the following modes:  'Normal pop' mode (no use of --fa=classical), Calibration setting:  --coff=-1.0, and the stereo image: --stw=1.5.   The odd thing is the stereo image, but with the decoder being much more clean and accurate, I am finding that --stw=1.5 is helpful fairly often on other recordings.  (--stw changes the scale factor  of the 'S' of the M+S after decoding.)   Manipulation of the stereo image is done before FA encoding to help compensate for the significant effects of the layered DRC compression.   Till now, I hand't considered using non-integer values for --stw, but the change really does make sense -- just that I prejudicially thought that the producers would use only integral values (wrong...)

 

* It is well known that dynamic range compression can materially affect the stereo image, and is one reason why the stereo image is damaged severely on most FA recordings.   7 compressors beating on the signal from all different directions/levels tends to confuse the stereo image and eliminates any idea of clarity.  The FA signal becomes a signal of 'blobs'  (a blob of FA bass, a blob of FA percussion highs, a blob of FA chorus vocals, etc.)  Just like the DA decoder mitigates the fogging of DolbyA recordings, it can also undo the 'blobbing' of FA signals.   (but isn't perfect.)  False midrange is also created from bass, and vice versa.  Undoing this complex mix is daunting.

 

After the decoding, and all of the complex INTERNAL decoding and post-decoding EQ, there is sometimes a need for a very slight tweak for best results, add the following to the command line:

 

'--pvh=7.5k,-0.75 --pvh=9k,0.75 --pvh=10.5k,-0.75'

(translates to three 1pole HF shelving EQ of:  7.5kHz,-0.75dB; 9kHz,0.75dB; 10.5kHz,-0.75dB

Use these on 'Crime' and 'Quiet' ONLY.   I have only checked 'Breakfast', 'Crime', 'Crisis' and 'Quiet' -- there are several other albums, so I don't know what is best for those (I do have the entire set of perfect copies in my archives -- just don't have time to focus on Supertramp only.)

 

Note the movement from -0.75 to 0.75 and then back down to -0.75.   The actual change in frequency balance is less  than -0.75dB, but the difference makes a noticeable improvement.   Also, the +-1.5kHz is CRITICAL. It is part of the natural scheme of FA.   The +-1.5k offset is common, and trying to use something like +-3k is disaster -- can make things worse.   The wrong offsets (frequency and gain) can seriously increase the apparent 'distortion' kind of sound.   There are all kinds of waves floating around after FA decoding, so the signal needs to be treated carefully.   The DHNRDS cleans out the 'softness'/'fog', so can make some of the harsher kinds of distortion and harsher sounds more prominent.

 

I have seen this pattern in certain other recordings also -- not all of them.   Since there are about 7 passes through DolbyA equivalent processing for the FA encoding, only slight differences in each unit can add up to something significant.

 

This makes me wonder if the internal DolbyA units might be different versions, thereby causing an approx 0.1dB difference per step?   This need for precision

also shows the need for a very accurate DA decoder step while FA decoding also.   Even the SLIGHTEST error in dynamics performance will easily cause gating.   This is the reason why am a bit paranoid about the 'gating' sound.   I do believe that there is a slight error (very slight) in the dynamics for DA decoding, but doing the adjustment is tricky and time consuming to do.   Accuracy to the 0.1% level is needed for some of the parameters.

 

The basic DolbyA attack/release are in two parts:  one main level of fast almost-normal RC attack and calculated nonlinear release.   Then, there is a 2nd layer of calculated nonlinear attack and calculated nonlinear release.  The main attack/release level is faster than the adjunct layer of attack/release.   Oddly, if you read a DolbyA schematic, the layers are physically the opposite -- that is, the 2nd layer comes first on the schematic.  However, the 2nd layer is electronically bypassed until it starts becoming effective.   The complication about the attack/release calculation comes in because the HW units calculation is based upon selected semiconductor diodes, therefore the parameters for the attack/release can only be determined by very careful comparisons of the decoding results.   There are even slight dynamic modifications to the main level fast attack.   ALL of this must be emulated perfectly, along with being in a feedback loop of correct parameters, for the resulting attack/release behavior to be properly emulated.   If not correct, FA decoding is totally hopeless, let alone very poor DA behavior. 

 

 

Sometimes, on tricky material, even the slightest modification can make a huge improvement.   Normally, gross differences in EQ (multiple-dB) aren't needed unless it is part of a standard EQ scheme.   The Carpenters recordings really do appear to have their own 'pre-processing' scheme, and therefore best undone after decoding.   The special 'Carpenters' EQ isn't really needed, but it does help.

 

I believe that NORMALLY, decoding isn't very troublesome any more.   However, sometimes there is still a need to carefully consider each recording, esp when hoping for the best possible results.

 

All of this shows that there appears to be very little integrity in the quality of recordings.   It is really sad, and a 'tone control' or 'simple EQ' simply cannot fix it.

 

John

 

 

 

 

Link to comment

Just had to buy new headphones (physical damage, wearing out the old ones.)   Something very strange -- not sure if I got gray market from Sweetwater, or my old headphones aged.   This might be one reason for a lot of disagrement -- not sure.

Apparently, if the new headphones are correct, there might have been WAY too much rolloff -- which is kind of good, because I can remove a lot of EQ.

 

Still working on reverse engineering, might have to find a 3rd pair of headphones to tie break.

 

My old heaphones must have been really beat-up.  (I had been mentioning that the bass sometimes feels more like air pressure than sound.)

Will evaluate, but huge amounts of EQ (bass cut) might need to be removed. -- or I just got some bad headphones.

 

Anyway -- was in the middle of some more EQ improvements -- not sure what to do now.

 

The old headphones, if wrong, might have set me  up for the accomdation that I do warn people about.  I know that I am very vulnerable to it also.

John

 

Link to comment

I apologize for the quality problems in the decoder -- I use headphone listening as a hint, and then there are certain rules that I have to follow once I generally find a correct balance.


The old headphones LIED to me.   (or I was stupid enough to trust them.)

 

There will be a new decoder and demos coming out soon (1-2days, no longer.)

I have rebuild the EQ array, and getting good results when using the new headphone

 

*There is even a problematial 'tell'which is now fixed in my test version*

 

John

 

Link to comment

Example attached: The balance is TOTALLY different using  the new headphones for base reference -- previous results too were too thin, and I didn't even know it.  Had to replace the headphones for other reasons, and got an ugly surprise.  I'll probably have new demos tomorrow morning.   I want to double-check the balance with numerous recordings before mass-demoing again.

 

I used the new headphones for a base reference, then followed the anti-distortion rules after the basic setting.   THE CALIBRATION AND IMAGE ARE NOT YET OPTIMIZED -- this is to show that good results can be had out-of-the-box.   There is a tell, at approx 15-18 seconds where there is a 'swirl' -- previously never sounded quite right and this now comes close.  (I need to go to bed and start massive decoding tests -- so this is what I am starting with):

 

I am again hearing (even improved) with the new headphones what I was hearing before with the old ones.  MUCH more bass.  (I don't know how the midrange/highs were so suppressed on the old headphones.)

 

Give this a chance, and is NOT even fully adjusted (calibration, etc) yet.

THIS IS NOT WHAT I DEEM PERFECT, but should be pretty good.  (The highs > 3kHz seem just a LITTLE, -1.5dB weak at perhaps 9-10kHz, but not quite sure yet.)   Must get used to the new headphones.   However, the basic rules for >3kHz are followed, MIGHT need minor calibration changes -- truly do NOT know.

 

newdemo.flac

Link to comment
On 2/23/2021 at 9:28 PM, John Dyson said:

Example attached: The balance is TOTALLY different using  the new headphones for base reference -- previous results too were too thin, and I didn't even know it.  Had to replace the headphones for other reasons, and got an ugly surprise.  I'll probably have new demos tomorrow morning.   I want to double-check the balance with numerous recordings before mass-demoing again.

 

I used the new headphones for a base reference, then followed the anti-distortion rules after the basic setting.   THE CALIBRATION AND IMAGE ARE NOT YET OPTIMIZED -- this is to show that good results can be had out-of-the-box.   There is a tell, at approx 15-18 seconds where there is a 'swirl' -- previously never sounded quite right and this now comes close.  (I need to go to bed and start massive decoding tests -- so this is what I am starting with):

 

I am again hearing (even improved) with the new headphones what I was hearing before with the old ones.  MUCH more bass.  (I don't know how the midrange/highs were so suppressed on the old headphones.)

 

Give this a chance, and is NOT even fully adjusted (calibration, etc) yet.

THIS IS NOT WHAT I DEEM PERFECT, but should be pretty good.  (The highs > 3kHz seem just a LITTLE, -1.5dB weak at perhaps 9-10kHz, but not quite sure yet.)   Must get used to the new headphones.   However, the basic rules for >3kHz are followed, MIGHT need minor calibration changes -- truly do NOT know.

 

newdemo.flac 3.61 MB · 8 downloads

 

The new headphones are allowing me to produce very improved results (relative to the old headphones), even though the EQ pattern is similar.   The 1st order EQ pattern has a set of rules, and how the rules are applied produce a different EQ.   These rules are a constraint that produce the same general non-peaky response.   FA, however has a hump that starts at approx 80Hz n down, then at 20Hz is back to the norm.   This is variant from the smooth decrease as required for the non-FA sound ('flat mode' is as one would get from a microphone.)

 

Still working on the EQ...   ALL recordings require the same base EQ in the decoder nowadays,  the default EQ will be monotonic in character, as expected.

 

Originally, getting the EQ right with my eccentric headphones took a few weeks, but I have learned about the needed 'EQ' rules, and am close to having the two variants based on the new headphones ready -- might be tomorrow, really hoping for tomorrow night.   The new EQ has taken me longer than I had hoped, but creating two modes, with compatible configurations DOES take longer.


I just did a FA mode decoding run, and it sounds good.   The flat mode has been pretty good for a while, but really needed to get that basic balance right for both.   (Both modes have the same basic balance.)   With the old headphones, I was blind to some of the frequency regions, but the new headphones are clean and new, along with the nice Beyer 770/80 HF peak that helps detect gain control distortions very well.  (I woulldn't necessarily sugggest my current headphones for casual listening, but they are great for my own needs.)   Most headphones are eccentric  in their own rights, so it is a matter of meeting your needs and enjoying the sound!!!  (I need some technical characteristics that help me with typical troubles.)


Been thinking about getting another set of headphones also -  perhaps with a more subdued, flat, sound.

 

Some people might rightfully suggest speakers, but speakers are an anathema to me -- the kind of detail that I have to hear is different than speaker detail, unless I had a very very controlled room and highly tuned speakers.  ''Direct coupling' is the best for me for now. (Yes, I have considered high quality ear-buds also.)

 

There wlll be two modes for the decoded result -- flat (where the bass EQ is a monotonic decrease down from 1kHz to <20Hz), and the FA mode, which puts a hump at 80Hz.   Depending on accomodation, one or the other mode will be satisfying.   I might even create a conversion -- if you start with a file EQed for FA, then recording can be converted to flat, and from flat to FA.  (The differences aren't that great, but making them fully compatibe is a bit of a challenge.)

 

I have talked about the troubles with 1st order EQ, but there is one beautiful thing -- accurately undoing 1st order EQ is very easy to do, once you know the desired EQ.   2nd order EQ is a bit more iffy (more variables.)

 

I apologize for taking longerthan I had planned -- but as you are aware by now, this thing is beyond complex.

John

 

Link to comment

Good news -- I think that I have both the 'flat' and 'emulation' versions of EQ ready to start a test.

 

About how the EQ works:

 

On the FA decoder, there are three sections of EQ:  HF (>3kHz), MF (1kHz -> 3kHz), and LF (1kHz -> 20Hz and below).   The MF and HF have been good for quite a while, but LF has been a problem for two reasons:   bad headphones, and personal taste.

 

---

 

The above only sets-up the main discussion.  The main discussion here is how to stitch together the three bands.   Generally, the HF, MF, LF all go together pretty well, but there is a problem.   The LF EQ extends up to about 1kHz, and that effects the very careful match between the HF and MF, even though they are fairly far away.

 

If the LF & MF & HF don't match, the worst problem is that the HF and LF get out of sync.   SO, the lower registers of the vocals don't match the higher registers if the match bretween LF and MF isn't perfect.   This is a very tricky match, and something that I hadn't really noticed until about 2wks ago.  This mismatch made the vocals on Supertramp sound 'grainy.'   This 'grain' is now gone.  Two things screw up the HF/LF sync -- the anti-distortion phase of the HF and the slight EQ issues on LF.

 

However, there are more  'fine tuning' issues & tests , where the choral vocals on ABBA are a fine grain indicator of everything matching together.

 

I think that the match-up (which has been a major component about what is being done today) is pretty good now.   The required EQ for the match-up makes really good sense also.

 

The 'emulating' vs.  'flat' versions don't affect the match, because the changes are at 80Hz and 40Hz for the FA emulation.   This is EXACTLY the frequency range where DolbyA over-enhances the bass.

 

When I do demos, there will be two versions -- one with the FA mode, and the other 'flat'.   You can choose per personal preference!!!   I'll start the demos tonight, after I update the script for two seperate modes.

 

John

 

Link to comment
16 hours ago, John Dyson said:

Good news -- I think that I have both the 'flat' and 'emulation' versions of EQ ready to start a test.

 

About how the EQ works:

 

On the FA decoder, there are three sections of EQ:  HF (>3kHz), MF (1kHz -> 3kHz), and LF (1kHz -> 20Hz and below).   The MF and HF have been good for quite a while, but LF has been a problem for two reasons:   bad headphones, and personal taste.

 

---

 

The above only sets-up the main discussion.  The main discussion here is how to stitch together the three bands.   Generally, the HF, MF, LF all go together pretty well, but there is a problem.   The LF EQ extends up to about 1kHz, and that effects the very careful match between the HF and MF, even though they are fairly far away.

 

If the LF & MF & HF don't match, the worst problem is that the HF and LF get out of sync.   SO, the lower registers of the vocals don't match the higher registers if the match bretween LF and MF isn't perfect.   This is a very tricky match, and something that I hadn't really noticed until about 2wks ago.  This mismatch made the vocals on Supertramp sound 'grainy.'   This 'grain' is now gone.  Two things screw up the HF/LF sync -- the anti-distortion phase of the HF and the slight EQ issues on LF.

 

However, there are more  'fine tuning' issues & tests , where the choral vocals on ABBA are a fine grain indicator of everything matching together.

 

I think that the match-up (which has been a major component about what is being done today) is pretty good now.   The required EQ for the match-up makes really good sense also.

 

The 'emulating' vs.  'flat' versions don't affect the match, because the changes are at 80Hz and 40Hz for the FA emulation.   This is EXACTLY the frequency range where DolbyA over-enhances the bass.

 

When I do demos, there will be two versions -- one with the FA mode, and the other 'flat'.   You can choose per personal preference!!!   I'll start the demos tonight, after I update the script for two seperate modes.

 

John

 

Been working on three modes:  'flat', 'FA' (almost like flat, but emulates the extra boom from the 10dB or more compression at 80Hz and below), and 'THIN' for when the material was mastered with too much bass.

 

The whole thing about the LF EQ is that it is important that it be 'flat', sort of -- or the vocals become buried or strange.   Both the FA and 'flat' modes are now monotonic, but the FA mode decreases the gain less at 80Hz (for flat, there is the need for a slightly heavier EQ, but needs to be smooth.)   The actual difference between 'FA' and 'flat' is relatively minor.

 

The difference between 'thin' and 'flat' is also minor.


All modes have the same general shape, and actually use copies of the same code with small mods (FA vs flat), and the 'thin' mode has some simple conditionals in the 'flat' mode to enable a bit more bass cut EQ.

 

The default sound without EQ is unlistenably bass heavy, and requires pretty much a linear decrease in gain from 500Hz (not 750 as I had previously thought) down to 20Hz or just below.   The EQ is NOT gratuitious!!!

 

==============================

 

Also -- off the bass subject, but interesting news (to me), I extended the HF anti-distortion capability, and the results are even more profound.   Natural detail that would otherwise by buried in FOG is better revealed.   I have some more ideas for anti-distortion improvements, but don't want to distract while running the tests/demos.  I'll probably make a demo that shows the profound natural clarifying effect of the anti-distortion mechanism.   This is, of course, in combination with the more complex anti-fog and anti-IMD in the DA decoder.   (The anti-distortion that I am writing about here is for FA only.)

 

 

 

Link to comment
8 minutes ago, Night Rain said:

You simply cannot do this with headphones. They are only usefull for final mix checks. I mean you were doing this with defective headphones and you didn't even notice!

 I am using them for measurement, and need tight phase and distortion information.  I have NO WAY to have a specially outfitted room to get the similar tight coupling.   There is nothing special about headphones other than the tight coupling and the lack of outside interference effects -- and the non-standard effects on stereo image.

 

Stereo image is a different thing, but stereo image is already taken care of.

 

About the headphones that I didn't notice -- I am the first to admit, and have mentioned this for years --- aural accomodation is common, and my hearing will learn a specific sound balance within about 2-3minutes.   This is true on speakers or headphones.

 

I am NOT listening for enjoyment in the same way most people do.   Stereo image is the only real problem with headphones FOR MY PURPOSE, and even though the stereo image isn't technically correct, it can also be analyzed for the purposes that I need.   The major issue with the headphones is setting the correct stereo image width, but that is a decoding matter, not the decoder itself.

 

Decoding is for the user.   I am not really supposed to be 'decoding' other than for demos, and from that standpoint, I always give caveats that my ability to 'master' materials is very limited.

 

 

 

Link to comment
7 minutes ago, Night Rain said:

You cannot get judge proper bass response from headphones which id why the fustercluck happened in the last release. Honestly the decoder sounded far better in July.

I cannot judge proper bass response anyway.   If there is an error, I'll become accomodated NO MATTER what I listen to.

 

The bass (actually the highs) were severly damaged on my old headphones, but I would accomodate it right away anyway.
I even have master tapes that have never touched FA -- and they sound totally different now.   Not only did my hearing accomodate whatever I listened to (literally, it only takes a few minutes), but I was getting VERY biased info from the headphones.   I now know why I kept feeling air pressure from the headphones (they really do go down very low) -- everything was screwed up, incl the phones.

 

The big thing that I fight WRT bass, is that I make sure that the response is rolled off very quickly below 20Hz -- no sense in over-excursion on the speakers.   My headphones almost do DC (well, at least below 10Hz), so I am aware of the whole audio bandwidth now.   Again, I have reference materials that are indeed 'normal' and that is how I get a baseline.   I try not to depend on my hearing for absolute levels, other than very short term (approx 10sec max.)

 

Frankly, even with speakers, without my reference materials, I'd be clueless -- because most materials are FA with the horrendous <80Hz compression.   I'd love to have FA materials that had been recorded with test tones (either burst, or even a sweep would help.)

 

Link to comment

I have to say, that on my playback, headphones and speakers, the newest files I've processed using the newest release defaults, and the snippet from this Tuesday (newdemo.flac), all sound better to me than files done in earlier releases.

 

I am not about to claim that I have the 'truly truthful' system or ears from the center of the audiophile universe. Fairly sure I don't have either. I do feel John is on the right track, and getting very close. I look forward to what I think is coming.

Link to comment

Good news -- the latest version is ready (just the FA version right now.)   Frankly, when I do A/B on raw FA vs these, I'd almost have to pick the decoded-FA rather than decoded-FLAT versions most of the time.   Sometimes, decoded-FLAT sounds better, but mostly on non-POP materials.

 

After I find the probably very minor problem with the non-FA mode (more appropriate perhaps for some orchestral stuff), I'll do the decoder release.  If family matters don't distract me very much tomorrow, the release should be tomorrow early evening.


In order to mitigate confusion, I am demoing just the decoded-FA snippets right now.   The decoded-flat versions sound similar, but unfortunately, the HF and LF don't temporally line-up, so I still have a bit of work to do on the decoded-flat version.  (The sound of misaligned anti-distortion and HF/LF is that the result sounds oddly distorted on the high end.   The highs almost have to be time-base-corrected, like video in some ways.)   WIthout the corrections, the highs wobble all over the place, but the anti-distortion code sounds like focusing a lens.

 

Several improvements have been added (other than EQ) since the last demos.   The anti-distortion is almost fully filled out.   More anti-distortion can be added, but for right now, the results are better than ANY FA version.

 

There is NO missing bass, but the bass is different.   Just the way that relatively non-compressed material sounds.

 

  https://www.dropbox.com/sh/tepjnd01xawzscv/AAB08KiAo8IRtYiUXSHRwLMla?dl=0

 

For those worried about not tweaking in the correct response...   I am NOT just tweaking in the response, even though I just spent a couple of days searching out EQ better than I found several days ago.   Just wanted to make sure that there were no severe errors, or I missed something.   The EQ has very minimal degrees of freedom, but my bad old headphones misguided me to the wrong choice from a limited set of discrete choices.

 

----------------

 

Here is the base decoded-FA bass EQ.   I know that this is highly layered C++ code, but you'll get the idea about what is happening.   Note also that the EQ frequencies are dithered around a center.   This  has the effect of cancelling a LOT of distortion, and is critical for the super clean sound.   This is about 0.1% of the kind of stuff that I have been dealing with for the last several years:  (This is a trivial piece of the reverse engineering -- the HF EQ code is about 5X more detailed.) 

 

Here is what the code means:

     The EQ functions are in an array, and on each sample, the functions are called in sequence.   Each function is an LF first order EQ filter.   The first arg (always '1' here) means LF filter, the 2nd arg is the EQ frequency (note the dither), and the third argument is the gain ratio of the filter, pretty much the same as setting the top and bottom filter frequency, where the specified frequency is multipled or divided by the gain number for its bottom freq.   So, for ifreq1[2], the top freq is 750Hz, and the bottom frequency is approx 530Hz (750/1.414).   In this case, the bottom freq is not critical, instead it is all about the gain.

 

The first sequence of EQ (ifeq[1], ifeq[2], ifeq[3])  do a gain of 1/sqrt(2) times sqrt(2) times 1/sqrt(2), or a total of 1/sqrt(2).

So, why go though the tricky up and down on the gain?   It is all about dithering the frequencies so that the distortion and phase errors from the fast gain control are cancelled.   Same kind of thing is needed on HF, but orders of magnitude more complex.

 

I am showing this because sometimes it seems like I get feedback 'just EQ it better'...   I just does NOT work like that!!!   For this EQ to work correctly, there is all kinds of other EQ (e.g. the MF EQ), and that is hellish also.

 

* When I consider releasing the source, I have LOTS of algorithms to describe, and this is some of the trivial stuff!!!   The HF stuff is just more and more intricate than  this, but the anti-MD is mind blowing in the background math...

 

 

            lfeq1[1].designfilt(1, 750 + lfeq1diff, invsqrt2);
            lfeq1[2].designfilt(1, 750, sqrt2);
            lfeq1[3].designfilt(1, 750 - lfeq1diff, invsqrt2);
 
            lfeq1[5].designfilt(1, 500 + lfeq1diff, invsqrt2);
            lfeq1[6].designfilt(1, 500, invsqrt2);
            lfeq1[7].designfilt(1, 500 - lfeq1diff, invsqrt2);
 
            lfeq1[10].designfilt(1, 250 + lfeq1diff, invsqrt2);
            lfeq1[11].designfilt(1, 250, sqrt2);
            lfeq1[12].designfilt(1, 250 - lfeq1diff, invsqrt2);
 
            lfeq1[15].designfilt(1, 150 + lfeq1diff, invsqrt2);
            lfeq1[16].designfilt(1, 150, sqrt2);
            lfeq1[17].designfilt(1, 150 - lfeq1diff, invsqrt2);
 
            lfeq1[20].designfilt(1, 125 + lfeq1diff, invsqrt2);
            lfeq1[21].designfilt(1, 125, sqrt2);
            lfeq1[22].designfilt(1, 125 - lfeq1diff, invsqrt2);
 
            lfeq1[25].designfilt(1, 75 + lfeq1diff, sqrt2);
            lfeq1[26].designfilt(1, 75, invsqrt2);
            lfeq1[27].designfilt(1, 75 - lfeq1diff, sqrt2);
 
            lfeq1[30].designfilt(1, 25 + lfeq1diff, invsqrt2);
            lfeq1[31].designfilt(1, 25, sqrt2);
            lfeq1[32].designfilt(1, 25 - lfeq1diff, invsqrt2);
 
            lfeq1[33].designfilt(1, 20, invsqrt2);
            lfeq1[34].designfilt(1, 10, invsqrt2);

 

Link to comment

Been doing some final testing for the release, and I noticed a bug when listening...   This is a deep, subtle bug, but will be fixed for the release.   Will also rerun the demos.

 

If you notice that the demos have a bit too much bass...   There should be a lot of bass, but some of the demos have too much.   This happens because the anti-distortion sequence doesn't' match what is needed, and causes bumps in the frequency response.   This problem WILL BE FIXED FOR RELEASE.

 

Sorry about the troubles, but the demos should be pretty good anyway.   Not all recordings are severely affected.

 

 

Link to comment

Working hard on doing the release, and now have the lack-of-detail, but strong bass problem fixed in a *CANONICALLY CORRECT* way.   Instead of creating an FA-sound mode for decoding, the default will be a 'FLAT' mode (which REALLY DOES sound good), and a bass 'maximize' mode, which does produce about 3dB stronger bass at the cost of definition. * The reason for the loss of definition is that the bass boost is in the <70Hz region, but the bass definition has components up to the 500Hz or higher region.   I cannot modify the response balance in that area without major problems.   The frequency response, esp down to about 100-200Hz is very criticial for correct sound.

 

Why has the bass been a problem for me?   The real issue is that FA recordings have been compressed.   The frequencies higher than LF are as much of a problem as LF seeming stronger on FA materials.   The FA bass detail enhancement comes from the higher LF frequencies are dynamically boosted by the FA encoding.  Unfortunately (or fortunately), the goal of the FA decoder is UNDO the dynamics compression.   The strongly defined FA bass simply cannot easily be emulated without doing MORE dynamics processing -- which is a mastering step..   I did find the real answer to the problem:   If the bass is extremely accurate, then it will match the supporting higher frequencies that create the 'defined sound' of the bass.   Remember, the goal is to be ACCURATE -- but optionally allowing user-tweaks is okay.

 

VERY IMPORTANT -- the 'sound' of the new decoder WILL have the strong bass that has been demoed several times, but when I have to make tradeoffs, they will be in the direction of 'following the EQ pattern', not doing excursions into the unknown, trying to do the 'mastering' job that the decoding step is not intended to do.  This means that the AMPLITUDE of the bass might be a little less than bass-aholics might like, but the definition will be clean and intact.  MORE BASS CAN BE ADDED BY 2nd order SHELVING EQ.   Because of the current task, I am NOT doing 2nd order shelving, but only 1st order.

 

I am hoping to do the release late tonight, but the time is dependent on when I can do the demo test runs again.   It might have to be tomorrow afternoon, but I am really trying to make it available before the end of the weekend.  (My original goal was last Thu -- guess I am not meeting my goals!!!) There need to be a few minor command updates also, and I need to test 'DolbyA' mode again also.   There is the risk that one of the DolbyA users will download the program from the distribution site, and I don't want for them to get an unpleasant surprise!!!

 

*Demo test runs will be available (and improved a good 1/2 notch) before the release.

 

Before the release, if I get time during a break, I'll try to do an example of the anti-distortion mechanisms.   The improvement is subtle, but important to me.   Maybe 99% of even picky audiophiles would not initially hear the improvement, but with some experience, the effect can become very obvious.

 

John

 

Link to comment

About the upcoming release (testing right now.)

I am erasing all demos right now -- I don't want any inferior versions to distract from the better quality.

 

First -- In the demos, I know that the sound was a little 'lacking' in some areas.   After a lot and a lot and a lot of consideration and testing, it will be absolutely necessary to have at least  three (3) EQ modes.   The default will usually sound good, but certain recordings are made 'thin' sounding.   Also, the more 'full' sound might also be desired anyway.

 

Recordings like Supertramp are made very, very 'thin', but then bass that magically appears because of dynamic range compression.*   This is no matter what the decoder does, there is simply a needed dofferemt EQ mode.   Likewise, some recordings are made very, very 'thick' sounding.   When trying to use the same EQ for both, then there are terrible compromises, including incorrect lineup of gains vs frequency.

 

* The 'thin' sound isn't really noticeable until the recording is processed and all of the signals are lined up into a coherent arrangement.   The raw 'confused', randomized sound is much softer, but sometimes  thicker than they really are.   No matter what, the spectrums are the same, but some aspects of hearing does depend on the signals being correlated.  FA recordings are very temporally randomized.

 

The default setting is usually okay, but for playing recordings like Supertramp, you might want to add the 'M' or 'MM' submodes.   Or, if you believe that the default is still too 'thick', then there is an 'L' mode that lightens the the sound a little more (probably not really needed very often at all.)  This is why I suggest that there will be three modes.

 

Each mode is significantly different, each frequency step is carefully calculated and reviewed to make sure that the timing and gains line up smoothly.   If the gains don't line up, then the vocal choruses and other things become scrambled.   This is very, very important because the DHNRDS removes the fog around the detail, but if the detail is confused, then the sound becomes a bit grainy.

 

The decoder has been mostly 'ready' for the last few days, but I have been painstakingly re-aliging the EQ so that the times are lined up, so no 'garble'.   These last steps are probably just as important as the other, more subtle high tech capabilities.

 

Also, the built-in temporal corrector has been improved further -- the sound is now very very clean and 'sharp'.

 

I had to restart the demos JUST NOW because I decided (again) that both an FA version of demos and a 'FLAT' version is needed.  If one version is too dynamic, then try the other.   I do NOT do mastering, so you gotta make the choice!!! :-)

 

Link to comment

I wanted to follow-up with the importance of the temporal correction -- it isn't quite a TBC, but has some of the similar effects.   You'll notice that vocal chorus will  line up better, etc.   The vocals are infinitely better resolved in the decoded versions relative to the RAW FA version.    Not sure if the idea is patentable  but really works well.   The idea of voices being lined up cleanly is probably totally non-existent on raw FA materials.  Listening to very clean recordings might be disconcerting.   The temporal correction can be done even more completely, but roundoff errors might start being important at highe temporal resolution levels.

 

Attached below are snippets that demonstrate minimally temporally corrected (some small amount of correction), deblurring without full correctoin, and full temporal correction.  The fully corrected version is 'corrected.flac', the 'deblurred only' version is 'somecorrected.flac' the minimally corrected version is 'uncorrected.flac'.   *The energy vs frequency are the same or very similar -- but the organization is very different.  Superficially, the tonaltity is similar, but notice a bit better clarity on the 'corrected' version.   Some people might prefer the softer sound, and that is fine -- the decoder works much more quickly to produce the soft sound!!! (The *brightness* of the corrected version comes from the signals happening all in co-ordination, instead of blurred.)   The vocal choral effect on Karen's voice can also be heard on the corrected version, not so much on the uncorrected version.

 

uncorrected.flac:   sound elements are blurred together, no attempt to deblurr or time sync.

somecorrected.flac:  blurring significantly decreased, but no time sync

corrected.flac: deblurred and time sync.

 

(None of the operations is a brute force filter, the energy content is very similar, and the gain control trajectories are identical.)

(THESE ARE SUBTLE DIFFERENCES!!!)  *THIS DEMO IS NOT ABOUT EQ, there is a decoder option to change the EQ as needed.

 

uncorrected.flac

somecorrected.flac

corrected.flac

 

 

The improved (more detailed) temporal correction was desirable because of the other incremental improvements elsewhere.  If a design is unbalanced, usually the most problematic feature becomes more prominent in discussion.   Each of these steps over the last few weeks have been to do iterative improvements as the impairments are found.

 

 

I am still *VERY* challenged about response balance, and with the other needed constraints, realized that multiple EQ modes are REALLY necessary.   The compromise EQ just does NOT WORK CORRECTLY!!!   For me, this is NOT an audiophile exercise, but instead is an engineering challenge.  Please bear with me -- at one time my hearing was good in almost every way, but now -- not always reliable.   I am doing this for YOU -- trying to give YOU what you REALLY purchased, not leaving you with the cr*pped up versions that were substituted.  If I have an audiophile type motivation, it is about the frustration of losing my hobby in the 1990 timeframe because of poor quality recordings.

 

SO:  EVEN IF ONE OF THE SEVERAL OPTIONS THAT THE DECODER IS ALWAYS CORRECT, I MUST GIVE THE SEVERAL OPTIONS BECAUSE I CANNOT JUDGE, EVEN WITH GOOD HEADPHONES.

 

The three available modes will be fairly well temporally corrected, but will have response balance differences.  The differences are electrically small even though the difference in sound can be profound.   The only perceptive difference (with all of the mutual correction) should be response balance.   Each mode should produce essentially the same technical detail.

 

I am REALLY HOPING, REALLY TRULY HOPING to get this great release out today.

 

 

 

Link to comment

Snippets again - new headphones -- but somewhat bifurcated judgement on sound characteristics.

So, there are two versions of the snippets -- one is with the 'FA' sound sensibilities as much as can make sense.  The other version is with a less bass-heavy sensablity.

 

Both forms of post-decoding EQ have been corrected for temporal issues -- before,  I had made comments that people can do the EQ themselves, but that is almost impossible when getting results this good.   The so-called "EQ" needed after decoding is NOT JUST EQ, and not just tweaking for a response balance.


So -- each form of snippet have some validity.   The 'FA' style snippet can be obtained by using the '--fa=M" switch.   The more thin sound is just '--fa'.   On some recordings, the '--fa=M' version is definitely correct.   On others, '--fa' alone is probably correct.

 

Since I do not do mastering, and cannot judge the ultimate response balance, I am giving two choices, each works ideally with a different recording.   The decoding modes will be:  --fa, --fa=M (these two most often).   Some recordings might need (--fa=MM) like some Supertramp albums.   There is an even more 'thin' mode available'--fa=L'.   It is a plausible mode based on an extension of the others, but I haven't found any recordings that need that mode yet.  (Perhaps, 1970 Carpenters?   Not sure.)

 

* MUST MENTION:   true Bass is VERY VERY different than what FA recordings reproduce.  The compression causes a more intense, impactful bass, but scrambles everything else.   This is all about tradeoffs, and whether or not being a little closer to the original is important to each individual.

 

The 'FA' mode results, probably better enjoyed by most:  (except stuff like ABBA -- sucks on this, bass obscures the chorus.)

https://www.dropbox.com/sh/lwjcpk3ujjy3qxr/AAAKyBk7jStSDRGV-U9LVDVRa?dl=0

 

The more thin mode results, probably required by a few recordings.  This mode is listenable on ALL recordings, but maybe not ideal:

https://www.dropbox.com/sh/tepjnd01xawzscv/AAB08KiAo8IRtYiUXSHRwLMla?dl=0

 

I am working on finishing the release, have uploaded the 'start using' doc, and still have a few hours needed to make the Windows release.

Since I am not even using V2.0.4D yet, there isn't even a Linux version to upload yet.   I still need to do last minute checks before

moving to the new version.   It has been VERY EXHAUSTIVELY tested.  More than likely, my current working V2.0.4C working version

is close to identical to V2.0.4D, but there are some double and triple checks needed.

 

 

 

Link to comment

BTW --  it appears that the V2.0.4C version has a minor bug.   In the anti-distortion cancellation code, the needed compensation for HF is off by 'sqrt'.   I have more testing to do.    The error is small -- perhaps O(-0.1dB) at 10kHz, perhaps O(-0.2dB) at 15kHz, but O(-3.0dB) at 20kHz.   It is a super fast rolloff error, but needs to be addressed.

 

This would have provided about -1.5dB, perhaps up to 3dB loss at 20kHz.

 

Might have to delay until tomorrow afternoon.

 

After some more internal testing, gonna start the internal Supertramp decodes with the new version in a few minutes.

 

The demos, not so important.  The loss of HF is probably not noticed anyway.  (The kind of loss is such that not much is gone at 12kHz, but 20kHz more than just a normal rolloff -- still only O(-1.5dB).)   There is A LOT more to the correctness of the decoder than just 'making it work'.   I really want it to be correct.

 

For the few who are really interested are going to be let-down for another day.   I really need to test this problem.

I won't be putting the demos on a super high priority because the difference is probably just barely audible. I WILL be redoing the demos with the new version ASAP, and will make an interim Linux test version available for the intrepid (it will be V2.0.4D or E) later on tonight.   The acutal release will now likely be 4G or 4F.

 

I still have a lot of larger tests to do.

 

I guess, I am reneging on a promise again -- probably tomorrow afternoon for the release.

There is NO STONE GOING UNTURNED.

 

John

 

Link to comment

Found another embarassing bug -- cleaning it up.   After testing, it seems okay, then when final testing -- I catch another minor problem.

 

This thing is so close to perfection, it just cannot be released until the little nits are all fixed.

 

I am hoping for a day or so -- great simplification, big cleanup of certain parts, but still some problems.

 

Link to comment

Had a few breakthroughs -- one is my correcting own manifestation of overdesign.   Basically, the creators of FA predominantly used 3dB and 6dB 1st order equalizers, not my dainty 1.5dB equalizers.   These stronger ones mean that the EQ is much simpler.   The HF and MF equalization has been correct for a long time, but the LF EQ (well, 1kHz to >20Hz) was incorrect for a long time.   My hearing, bad headphones and overdesign got in the way of a correct answer (my HF vs LF hearing changes by about 10dB depending on blood flow, middle ear fluid), so getting a stable result, along with bad headphones was driving me nuts.   At least, the new headphones gave me a good reference.  VERY LITERALLY -- previously, I would get a result that sounds VERY GOOD, then the next morning, sounds like hell.   This problem hadn't been because of my own over-optimism, other than expecting stable hearing and accurate headphones.   My hearing used to be SUPER GOOD, well -- not anymore.

 

On the technical mistake, overdesign, using dainty 1.5dB EQualizers screwed everything up.   To get accurate EQ, both the #dB and #of equalizers in the chain must match.   Interestingly, to get a 9dB EQ, they did use 3dB + 6dB, and not direct 9dB EQ.   Also, there needed to be an extra 3dB step at 200Hz to make the old Carpenters stuff to work.

 

When you listen to these, note that these are not just decoded, but are TIME BASE STABILIZED.   When I set my goals, I set them very high.   The goals are met, and using the decoder is incredibly simple on Linux, and just a little less simple on Windows.   I did have to implement a 'general' mode, and a 'old-time' mode which needs one more EQ layer at 200Hz.  No need for numerous decoding EQ -- because the decoding is precise.

 

WIthout time-base stabilization, the super highs are lost by becoming random smush -- but the decoder removes the randomized timing.  (This has been in the decoder for several months, and causes a sense of distortion until all of the other timing is lined up.)   Along with the time base stabilization, the anti-MD makes incredibly clean results (at the level that the recordings can provide -- at least, as good as I can hear.)   If I find any other time base improvements, I'll add them.   There is still a possibility of instability below 5 Hz or so, but I doubt that is a major problem, or people would have heard flutter.  *  The stabilization is not against a reference, but instead is a cancellation of fixed sidebands.

 

https://www.dropbox.com/sh/tepjnd01xawzscv/AAB08KiAo8IRtYiUXSHRwLMla?dl=0

 

A real release is coming soon, the only thing getting in the way is a medical procedure on Friday.   I have been thinking about putting the decoder source in escrow with someone, but probably a bit overly concerned.

 

 

Link to comment

Was decoding an SACD version of Love Over Gold for a friend, and thought of a crazy idea.

Basically, the 'special sauce' anti-distortion would be done at the end of each layer instead of at the entire decoding operation.   The detail is astonishing.


Most interestingly, and I am going to have to ask people who use DolbyA directly -- it seems to work on DolbyA material also!!!


Weird.

 

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



×
×
  • Create New...