These series of quick notes are meant as stand alone bits of interesting data we find along while developing and polishing MDFourier. For the full documentation and the rest of the notes, please visit http://junkerhq.net/MDFourier.
On February 28 2020 I posted an image on twitter1 that shows the difference between an NT Mini via HDMI compared to a US Front Loader via RCA. There are several things that must be noted regarding the image itself, the context, technical details, how it has been used and very recent developments.
First of all, I have a folder called "pretty" where I store every image that MDFourier outputs which I visually find interesting. I post them without planning, either just after generating them or when I feel like it. At the moment of posting all my timeline was announcing the pre-orders for the NT mini re-issue. I didn’t think much about it, went into my folder, grabbed a related image and posted it. I did not imagine that my post would be used to stir drama, but it did cause some and I am sorry for that.
With MDFourier I’ve always tried to be impartial, since the focus is in helping all implementations and individuals interested, while learning along the way. I honestly expected it to go largely unnoticed as most of the images of this kind do when I share them, but it seems some individuals used it to attack the product.
It must also be noted that there is no commercial relationship with Analogue2 , and that the MDFourier project is an independent effort that has been close to any efforts interested in audio preservation, such as the MiSTer FPGA3 project and others.
Now about the image and its meaning. It shows how a US Front Loader differs from an NT mini via HDMI and the difference is big. But there are a lot of details. First, the NT mini has different buffering options that help it offer a fully compatible HDMI signal on modern displays. This is required since the original NES/FC runs at a speed that is slightly off-spec. This produced no issue on old CRT technology, but it can cause modern displays to be fully incompatible.
However, changing the speed of the video also changes the speed of audio. And when you change the speed of audio, pitch is also modified. The full details on how MDFourier works are in the manual, but it goes note by note, matching frequencies and comparing volumes. When the frequencies-also called pitches-don’t match, a "haze" can be seen around the image. On a perfect match between signals, which can never be seen in analog recordings, the graph would be empty. And in a regular scenario where the consoles match closely, a flat line can be seen around the center, where the 0dBFS difference is located at.
As an example, here are two different vintage NES Front loaders in Figure 2.
It must also be noted that the frame rates at which the NT Mini and US Top loader from the original image don’t match between themselves. Very small variations are regularly seen in our tests, but these are mostly due to imperfections or variations between audio equipment and the nature of analog recordings. These are typically in the order or 0.0001 milliseconds, or to put it in context one second divided by a billion. However we see the NT mini running at 16.6673ms per frame and the US Front Loader running at 16.6394ms per frame, this also seems ridiculous, but it is an order of magnitude bigger at 0.0000279 seconds per frame.
It is up to the reader if this difference is perceptible to them, but it is relatively big in terms of what MDFourier usually evaluates. The question follows then: What would happen if we were to adjust the differences in frame rate, so that both signals matched as if they were played at the original system speed?
This is a new feature in MDFourier that was very recently implemented4 to help with the SNES version, for reasons that will be detailed in another note. Figure 3 shows that the signals are indeed way more similar than what Figure 1 may have led one to believe, but that is not the whole story.
The software is agnostic, and it can compare any user selected reference to a different signal which will be scrutinized. The Reference file is used as a control. This means that its characteristics are considered the true values to be expected and against which the Comparison file will be evaluated. In consequence, all results are relative between the signals.
In Figure 1 the Reference was the NT mini. Since the origin of the signal is purely digital, it has very little background noise. In fact it is so low some would call it non existent at -86.3dBFS as shown in Figure 4.
At the moment of publishing this document, the default behavior of the analysis is to go as deep as possible comparing fundamental frequencies. The limit to this is what we call the noise floor–a known frequency that we can asume with some certainty to be noise, that is unintended and unrelated to the note being played. In this case it happened to be a 15.72kHz spike related to video refresh.
Just for contrast, Figure 5 below shows the noise floor graph of the US Front Loader that was used during the comparison.
But, what does this have to do with our current issue? Well, if we were to compare the US Front Loader as reference and the NT mini as comparison, the results would be limited to the US Front Loader’s noise floor, which is higher and can be seen in the graphs at around -44.9dBFS–this time an the electrical power grid 60Hz spike, closely followed in amplitude by the video refresh noise at 15.75kHz.
It must be noted that these noise floor measurements are really important, since they guarantee we are not comparing noise to signals. I have considered limiting the noise floor by the comparison as well, in order to prevent confusion as in this scenario and to also have the safe guard of a hard limit5 .
Here are the results if we limit the noise floor to the US Front Loader region, measuring the floor at the depth we likely would in any normal analog to analog comparison
Aside from level adjustment between channels–which can be achieved via the NT mini menu–and the intentional low pass filer which follows the creator’s philosophy, there are few differences to point out.
In short, the lower the noise floor, the more data compared. A consequence of that data: more differences are found, and that can make the plots more difficult to interpret compared to an analog to analog comparison.
It must also be noted that when the NT Mini uses the pure analog mode–or the Analogue SG and Super NT when using the external DAC–the audio is played back at the original system speed. Under such circumstances, there is no need to adjust the comparison in software to match the pitches.
Frame rate does affect sound, as we already knew from comparing NTSC vs PAL consoles. This is because in general all processes are tied to the vertical refresh rate in these architectures.
MDfourier can pick up very small differences and expose them, but being able to measure something doesn’t necessarily mean that it is relevant. Human judgment needs to be applied, and even then, every person has different needs, priorities and requirements.
A small amount of experimentation needs to be invested to identify edge cases like this, and although we had suspected for several months that the Analogue DAC would give us more precise readouts for the Analogue consoles, we have yet to get our hands on one. But having this new feature in MDFourier to auto-match the sample rate based on the length of the test tones can help us see that they are way closer than what was believed when using the pure analog out mode.
The digital out mode–although technically slightly different–is a very small compromise made in order to achieve great display compatibility and user friendliness.
Here are a few more graphs and details for those of you who are interested. First, I played with the NT channel sliders, and tried to roughly match my US Front loader. These are the results when using pure analog out, no in software adjustments to sample rate:
There are several interesting things. The noise floor is the first to catch my attention, it is -44.9507dBFS for the NES and -51.6415dBFS for the NT mini when using analog out and connected to a monitor. Don’t be fooled, those 6.5dBFS are very meaningful, but nowhere compared to the digital out of course.
The NT mini has some intentional shaping, a low pass filter to reduce the high frequencies and it also accentuates the very deep bass, just check out that curve going up to 6dBFS below 100Hz.
For those interested, only teh following were changed to match my NES:
Here is the analog out compared to the digital out of the mini, no adjustments made:
And here are the results when adjusted: