Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: Detecting whether a 24-bit file has been upconverted from 16-bit? (Read 35308 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #50
Decoding Yamaha's S-YXG50 revealed that the ROM is entirely 8 bit samples.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #51
Decoding Yamaha's S-YXG50 revealed that the ROM is entirely 8 bit samples.

Neat and very cool at the same time.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #52
But how about S-YXG50 vs MU50 vs DB50XG?



My first Win32 end-user program.  The .gif has a timestamp of

28144 Jun  8  2000 xgdsp202.gif

so 21+ years.  Before this I spent my time with another operating system.  I can't find any pictures at 40th.com from before this.  I had many similar, but more elaborate, programs like this (simple) XG DSP thing.  I remember the GUS and its DB.  I remember a nice sound card from a company in Montreal that also had a nice XG DB (can't recall the company name -- maybe it was the one with the "db60xg" seen in the gif).  There are more.  I can't remember them (the '90s, after all).
BANNED

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #53
Decoding Yamaha's S-YXG50 revealed that the ROM is entirely 8 bit samples.
My first Win32 end-user program.  The .gif has a timestamp of
28144 Jun  8  2000 xgdsp202.gif

so 21+ years.  Before this I spent my time with another operating system.  I can't find any pictures at 40th.com from before this.  I had many similar, but more elaborate, programs like this (simple) XG DSP thing.  I remember the GUS and its DB.  I remember a nice sound card from a company in Montreal that also had a nice XG DB (can't recall the company name -- maybe it was the one with the "db60xg" seen in the gif).  There are more.  I can't remember them (the '90s, after all).
Thanks. I only tried SW1000XG in a music shop, and never owned any real XG hardware, not even a YMF724 soundcard.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #54
Thanks. I only tried SW1000XG in a music shop, and never owned any real XG hardware, not even a YMF724 soundcard.

I own a Yamaha PSR-295 Keyboard!  It's XG-Lite.  Otherwise all I encountered with XG has been Windows 98 Second Edition software synthesizers of theirs as well as 2 VSTIs.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #55
Another thing is that a single "note" is not a practical representation of the bit-depth of a sample. It is just a preset. A preset can be a combination of more than one sample playing at the same time and each of them can have different envelopes, gain, root key/tuning/pitch shifting and other things, even with all effects like reverb and chorus turned off. With pitch shifting the aliasing also affects effective bit-depth so you even have different effective bit-depth when playing different keys, some patches may include LFO which constantly change the pitch and amplitude of a short period of samples as well.

While I don't disagree the approach of using relative noise floor to approximate effective bit-depth, the same approach can also be used in analog recording like tape and vinyl, regardless of the preceding steps involved digital processing or not (e.g. digital delay lines)

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #56
Some examples attached, and a GM file as specified by the author, so should be no compatibility issues.
http://www.vgmusic.com/music/console/nintendo/snes/DKCMine-GM.mid

https://www.un4seen.com/forum/?topic=13919.msg96992#msg96992
"bassmidi 8pt" is the improved version after Ian applied the fix about what I complained. I don't have the old 8pt executable to generate the old version anymore. I also attached another file with linear interpolation. Currently, BASSMIDI is able to perform 16pt interpolation.

Another set is SC-VA vs SC-D70. For those who wonder why there is a low pass in the SC-D70 version, the hardware synth engine operates at 32kHz, and the unit itself supports digital loopback recording, but only at 44.1k and 48k. The unit has a CS8420 SRC chip to do the resampling. "sc-va 48" is directly rendered by setting the VSTi's sample rate to 48k, "sc-va sox" is rendered at 32k and resampled by SoX to 48k with default settings.

In the SC-D70 recording, the rather high noise floor beyond the filter cutoff region is originated from the digital hardware itself, and it will fade to zero when the music ended, and therefore not analog noise. Also, the noise is not related to how many voices are being played simultaneously, or how loud the individual notes are. Even when there is only one note playing, it still has this amount of noise. It does support 24-bit loopback recording, but there is no improvement to the noise, and the attached file is indeed recorded at  24-bit, normalized, and converted to 16-bit flac.

And yes, I also have S-YXG50 VSTi installed so I know how this file sounds like, but I don't know if Yamaha's (AWM2?) synthesis is completely sample-based or not by merely Googling.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #57
I've played-around with some of these tools in the past and they were easy to fool and I recently downloaded Bitter (which I tried in Audacity).     MP3s from ripped CDs show about 30-bits (which is true depending on the MP3 decoder).
bitter can't even survive simple dithering, let alone mp3.
https://hydrogenaud.io/index.php?topic=114816.msg992983#msg992983
My software cannot survive lossy compression either, but for basic operations like volume adjustment and dithering, it works.

I used your BitSort on some files I suspect were upconverted and got this

00:03:24.2266666 = 18012792 samples / 2-ch @ 44100Hz
24-bit fixed point
Bit   Count         Percent
0   216       0,001199148
1   345       0,001915306
2   580       0,003219934
3   1182      0,006562003
4   2342       0,01300187
5   4654       0,02583719
6   8755       0,04860435
7   15113      0,08390149
8   25147       0,1396063
9   40673       0,2258006
10   62006       0,3442332
11   93798         0,52073
12   139010      0,7717294
13   203963       1,132323
14   327332        1,81722
15   553051       3,070323
16   936168        5,19724
17   1547302      8,590018
18   2421430      13,44284
19   3632266      20,16492
20   4271726      23,71496
21   2934699       16,2923
22   752942        4,18004
23   38092       0,2114719
BitSort end

It's not showing any empty bits but what does it mean when there are bits that have more than 1% of total samples?

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #58
The distribution of samples are fine, no "hint" of simple upconversion within what the software is able to detect.

The index of bits is an abstraction of audio level, the top (0) denotes silence, the bottom (23) denotes samples located at the highest 6.0206dB, and every lower index denotes the subsequent 6.0206dB.

If you look at the examples I included in the readme file, you can see that in the electronic music album, there are more samples located at the higher bits and they are packed more tightly within a fewer number of bits. On the other hands, the classical album has fewer samples located at the highest bits, and the values spanned more sparsely among more bits. Which means the classical album has a higher requirement of bit-depth than the electronic album.

Your file is somewhere between my two examples, which means the bit-depth requirement is not particularly high.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #59
Updated. BTW, the first example in the ReadMe file is from the "raw DXD" file in this website:
http://www.2l.no/hires/DXD-DSD/index.html

BitSort 1.0.0.1 and oldsCool 1.0.0.1
    Cosmetic text formatting fix.
BitSort 1.0.0.1
    Faster reading speed, at the expense of not updating progress in console.
    Improved error message handling
oldsCool 1.0.0.1
    Improved 16.8 float detection reliability.

Download link:
https://1drv.ms/u/s!AvzB71jO7t0-gYwlvR98sw61gS10eg?e=ZpPRgO
SHA256:
5ed97b2cda29483fbf6df5467d97695566eccdd7841fdf6bb2fc30cda07b94b9

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #60
As a sidenote, I scanned my entire FLAC collection with my script, and I found an oddity: the album "Smash" by The Offspring only has 15 effective bits (out of 16, it's a CD rip). I wonder why that is.

Not to hijack the discussion (and not wanting to start a new thread) but my pressing has no such wasted bits in case you wanted to investigate further.*

*Note: The album gain of my backup image reported a RG value of -7.82. Other than that, the spine area of the back label of my pressing has the number 86432-2. Good luck!

My copy also seems to have only 15/16 bits.  The barcode is 0 4577-86432-2 6, disc ID c20af40e

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #61
If the 24 bit file is created from a 16 bit file that has been scaled up and then dithered,  then that would be revealed by a statistical analysis to show which numerical values of the samples in the 24 bit file are the most prevalent, because in the case of a scaled up  16 bit file the prevalence of the  values in the 24 bit  file will be centred on and around the sample values of a scaled up 16 bit file.

Re: Detecting whether a 24-bit file has been upconverted from 16-bit?

Reply #62
TOCID M8xNk7MH32hpf0qL.JypIqlNmHE- and G8N_4thJWyVAqonbYxXVTha8Ej4- are 15 bits.
TOCID kHuYSY4hBILe5qdayvGFXrgTSCg- is 16 bits.

The background noise level of both on a spectrogram is about the same. Only few quiet moments such as the end of Genocide and the hidden track show some differences in undithered fades. For aggressive, compressed rock music 15 bits is enough.

With 8 LSBs added, dither will not fill all of them, so bits 17-20 will switch less often. But one added bit couldn't be detected this way.

On a byte frequency histogram 15 bits show up with regular spikes in every other position. Two unused bits (14-bit) would have spikes every 4 positions, and so on. An undithered volume adjustment, such as normalization in a CD ripper, will show irregular gaps if a quiet section is analyzed.