Why MQA is bad and Roon (shouldn't bother) (shouldn't be bothering) shouldn't have bothered with it :)

Personally I don’t pull the lossy Dolby Digital or DTS off my video discs. Same rule would apply to MQA CD, not that I would purchase one in the first place.

Two things to keep in mind…

Ultrasonic aliases are not “information,” per se, any more than noise added to a signal is information. Rather, information is intended content, encoded payload, etc.

And the Mytek MQA digital filter is user selectable. It can be applied to non MQA content at 44.1/48 kHz sample rates and higher sample rates. As such, frequency responses of the Mytek MQA digital filter do not reveal anything necessarily about MQA.

AJ

On some recordings, the information space triangle may extend to 60 kHz. MQA can capture and encapsulate that – but not in the MQA 44.1/48 kHz base sample rate folded files on Tidal, etc. Per my understanding, though, MQA encoding/decoding can operate at higher base sample rates, such that 60 kHz information space could be sampled at 192 kHz, for example, then folded into an MQA 96 kHz base sample rate folded file.

AJ

This is my understanding too but I keep seeing people say anything after the first unfold is only upsampling. Here that was suppprted with comments like the MQA filters don’t pass anything above 48hz so was trying to address that.

philr, substantial testing and evidence do appear to show that decoding is at most a single unfold and rendering is upsampling. Retaining any information above 48 kHz would require folding a 192 kHz sample rate once to a base sample rate of 96 kHz.

AJ

1 Like

You guys are all missing the point here. MQA as streamed by Tidal uses Type E folds to reduce sampling rate from 192 to 96kHz. This fold is non Shannon undersampling with B-spline kernel along with custom filtering. The data from this fold is embedded into the 96kHz core file. MQA renderers recover this data using a custom oversampling operation. If you want to call that “just upsampling” so be it but there is a load of effort by MQA to produce this fold…

2 Likes

Interesting.
Where is the source for this info?

The above links are a good starting point. Ultimately the source is Bob Stuart!

1 Like

Good stuff, much of which I have read several times. However my recent question remains, what is the source of the oft stated view that anything beyond the first unfold is just upsampling?

I guess a fair bit must be upsampling of some sort as only some of the original file is preserved. But where there is relevant information this should be preserved and unfolded. My understanding is that part of Stuart’s argument is that this high frequency information that is above our official hearing range is important in preserving the timing and spatial information. So it is/should be more than just upsampling in which case why do so many keep saying that it is just upsampling?

1 Like

The trick is that the original 192kHz file was undersampled using a B spline kernel. If you do that first then the 'just upsampling" actually recovers the original data along with downward and upward aliasing. The downward aliases are below the noise floor. The upward aliases are additional ultrasonic noise and largely filtered out. Reread the AES paper it’s all in there.

1 Like

I’ve read those (not the patents because patents serve a legal purpose, they don’t ne essarily describe the stuff that is in the engineering and they may describe lots of stuff that is not in the engineering but that you want to protect). They don’t answer the question.

Some of it is terminology: I am not familiar with the term “L-type fold” and can’t find it anywhere. Do you know what it means? E-type fold seems to be just an abbreviation of their own term “encapsulation”. And “non-Shannon sampling” doesn’t describe what it is, it talks about what it is not. And “custom” oversampling means that they made it.

The key point is this: if encoding involves getting information from the source data, and decoding uses this information to restore the original data, it is not upsampling as we normally think of it. Upsampling a 96k stream to 192k would take one piece of information, such as “use a minimum-phase filter”, and you could perhaps argue that this choice of filter comes from analysis of the source data, but it is not a data stream derived from the source data that needs to be encapsulated down in the noise and transported with the data stream.

Those two descriptions are in conflict.

Great questions. I’ll answer to the best of my knowledge when I have more than a sec…but for now, it seems most of the confusion is down to Bob not producing a technical white paper. But 90% of the process, or at least something akin to the actual process, can be understood by combining all of the documents produced thus far by Bob, along with some of the reverse engineering done by others.

The filters cut off at 48kHz corresponds to sampling rate of 96kHz. Yes, the Mytek do have filters that cut off at 96k (192k sample) and 192k (384k sample). This applied both MQA and standard PCM. But that doesn’t mean you get all the information all the way to 192k bandwidth. The encoding process of MQA produces a lossy 8bit coded from from 24.5k to 48kHz bandwidth, after that it is attenuated. Anything beyond is just up-sampling. The information use from up-sampling and de-blurring filter is derived from the embedded information below the noise floor of ‘A’ for ‘C’. This is reason why first decoding (MQA core) or unfold is ALWAYS limited to 88.2/96k, this gives a bandwidth up to 48kHz.

The renderer takes the embedded information from the MQA core output (96k sample with 48kHz bandwidth) and does up-sampling and applied the de-blurring filter. There are NO information above 48k because MQA core output is limited to 88.2/96k output. That’s the reason why DSP and Room correction can be applied at this stage and change the stream. However, before applying this, it need to extract the renderer instructions out, then apply DSP, after that put it back into the stream. (Roon implementation)

Think this way, MQA core output is always limited to 88.2/96k sample, this translates to a maximum bandwidth of 48k. So there’s nothing more beyond. I rest my case.

But what is the “embedded information” for if rendering is just upsampling with a filter?

It can’t be just a simple statement that “this track should use filter 6” because the ABC diagram is s frequency spectrum, and shows the encapsulated information from C occupying a range of frequencies. If it was only an upsampling/filtering instruction for the track it would be static, I.e. sit at frequency 0 Hz.

The diagram clearly shows that the encapsulated information is time-varying. It, and the papers, doesn’t say what it is. But something is going on here.

At first I thought there’s additional unfolding can be done but after studying the flows, I came across that MQA core output is limited to 88.2/96k, so no matter what, there’s NO information beyond 48k. This is a simple Shannon-Nyquist.

Another observation is Roon can apply DSP after extracting renderer instructions. If there’s is any additional unfold information in the stream, any form of DSP applied to the stream will simply destroy it.

You can’t create something out of nothing.

But it’s not Shannon sampling. So you can hardly appeal to it! All will be explained when I get a sec!

So what is it? Tell me, when you have a MQA core outputting 88.2/96k and still can apply DSP after renderer instructions have been extracted?

No, Roon’s description of how they work around that is quite clear:

  1. Unfold to 96k
  2. Extract the mysterious rendering instructions that we don’t know what they are
  3. Apply DSP
  4. Insert the rendering instructions again (Roon calls it signaling)

That certainly works and is uncontroversial.

1 Like

Exactly, this is provided DSP is applied after the first unfold. If there’s no DSP engage, the render instructions are already embedded in the stream. No extraction and embedding are necessary.

So what is your point?

Can you ask MQA to clarify this ‘mysterious rendering instructions’ actually does what? That will certainly make things more understanding. I think this is the last hurdle we need to understand the end process of MQA.