So…for those of you who don't know what I'm talking about…just ignore this thread. Mostly, I'm posting publicly so people can use this information if it's of use to them. Realistically, I kind of just want to get information from people who have a reason to know the real story (Karlos comes to mind).
So…how does Traktor's internal gain structure work with regards to the internal digital representations?
I remember reading somewhere that Traktor has about 200dB of SNR inside the software, which kind of implies that they're using a 32-bit representation inside the software. Which makes sense.
Most audio files that DJs use are 16-bit, and I think it's not really realistic to assume that anyone has files more than 24-bit that they'd regularly use DJing…hence their choice. It would also be pointless to do that, since most DJ-oriented interfaces don't do 32-bit output.
But, anyway, there are 2 reasons to do that: headroom and noise floor. As long as your 0dBFS point for each bit depth is consistent, it doesn't really matter what you use (dance music is insanely compressed anyway).
So…which one are they trying to maximize, or did they do it the smart way?
If the 16-bit 0dBFS point is the same as the internal 32-bit 0dBFS point, then any additional gain applied to your music would cause clipping. I don't think that's what they're doing, based on empirical observation. A 16-bit render of a pure sine wave set so that it just barely doesn't cause intersample modulation distortion can still take a LOT of gain inside Traktor before it starts to generate overtones (assuming you set the master output low enough to avoid clipping your sound card outputs).
Having "silent" (-infinity dBFS) being the same place for all the different files doesn't make sense either…16-bit and 24-bit files wouldn't play at the same volume if you did that…the 24-bit files would be 48dB louder…which is well outside the range that Traktor's gain controls allow. I can't test that empirically without rendering a 24-bit file, which I kind of just don't feel like doing. I'm pretty sure it doesn't work this way.
Alternatively, 24-bits could have -48dB of gain applied when playing…which would put the 0dB points for 16 and 24 bit files at the same place and just chop off the quietest 48dB of the 24-bit files which–thanks to really compressed dance music–probably doesn't have much real information in it anyway.
So, my theory:
0dB for 24-bit files is set so that they have another 8-bits of headroom (48dB) on top. 16-bit files have some gain applied to them so that they have the same 8-bits of headroom on top with an assumed 8-bits of noise (either from something like a dithering algorithm or just arbitrary data) on the bottom. That seems like it's the best of both worlds with regard to preserving the information that's in each type of file while allowing enough headroom for Traktor's internal mixer to basically never clip (assuming the master is set low enough that you don't clip your DAC).
The biggest implication of doing it this way is that it would be easy to just set Traktor's channel gains pretty hot so that you could use the more consistent range of Traktor's Volume Fader controls (which seem to accelerate towards the top) the way that you used to use the rotary gain controls on something like the old Urei mixers (which only had that one control, not separate trim and level controls for each channel).
I'm interested only because I like that method of mixing, and I'd like to know if it's viable to just set Traktor's gains hot, ignore Traktor's channel meters, and use rotary MIDI controls that way. I wouldn't use all of the headroom available (not by a long shot), and the testing I've done (with sine waves) seems to imply that it's perfectly viable as long as the master is set low enough.
I'm also curious exactly how the master volume control works. In a DAW, it effectively sets the output bit depth, meaning that -6dB on the master fader means it's actually outputing a 15-bit signal (assuming the sound card is set to 16-bit…or a 23-bit signal for a 24-bit sound card). Considering that Traktor seems to use a 32-bit internal representation and outputs to either 16- or 24-bit sound cards…it doesn't seem that it works the same way as–for example–Pro Tools.
So, is that how it works, or is my testing misleading me?
And, because I know a lot of you are thinking this…
Bookmarks