I got my “Ph.dB” by reading white papers from TASCAM back in the 70’s and 80’s.
… and fiddling with stuff since then
… and I’m a programmer and I’ve done fixed point math assembly language code, so I understand the basic math issues involved regarding fixed point & floating point. But not nearly in the same league with the guys who discovered the floating point error on the first Pentium (or was it P2?)
But if you want me to tell you everything I know, well that won’t take but a minute. However, if you want my theories, ruminations, beliefs, suspicions, and caveats … well, I don’t think the web is quite big enough! Plus I’d wear out my keyboard not to mention get fired.
I concur. I wanted the same thing from one of my guitar tracks on an old tune I did, and instead of re-recording a new guitar part, I cloned the original, panned them both, but then added different EQ, compression and added a bit of pitch and time offset.
It made a fuller, heavier sound, but it also sounded artificial. I would’ve been better off recording a whole new track.
Quote (jsmyers24151 @ Jan. 19 2006,09:19) |
So, maybe some of you smarty-pants sound recording school types would be willing to share everything you can in one forum with those of us who are otherwise engineering nitwits; maybe, perhaps? |
Well, um, a lot of us hang out here just for that reason... I don't think any of us have been with holding of information. The idea is to share the knowlege. Ask more questions and we'll tell you what we can.
learjeff… quick question regarding your amazing dB post. Would it be correct to say that 6.02… dB is twice the amplitude, while 10 dB is twice the percieved loudness? I was just studying the senses in psychology class and that text also said that 10 dB was twice as loud. Though, in Physics we just learned something about intensity being proportional to amplitude squared… ahhh so confusing!
Also… I’m not so sure about your 700dB theory. I’ve noticed that many plugins internally clip at about +20dB (I’m assuming they all run at 32 bit float as well?) I do understand the concept of floating point numbers from programming courses – same amount of significant figures at any order of magnitude. Just kind of wild to grasp!
By definition, one “bel” is twice as loud. 10 decibels is one bel.
6.02 dB is twice the amplitude.
3.01 dB is twice the power, because power goes up with the square of the amplitude. Remember, dB are logarithmic, so dividing a log by 2 is equivalent to taking a square root of the underlying quantity (voltage for amplitude, watts for power).
I’m not sure what “intensity” is, but that doesn’t mean much.
I’m quite sure about the 700dB theory, except that I might be off by one bit and it might really be 350 or so. But I think it’s 700 and some. Now, plugins are free to do whatever they want outside the nominal audio range, which ends at 0dB, and providing 20dB for headroom is ample. Plugs that do complex math might well do such clipping to keep funny numbers from cropping up in the algorithms.
DSP code can be complicated even for a relatively simple formula. For example, a common math technique is called “convolution”, which involves array math using lots of samples of input for each sample of output. Now, when math folks do this stuff on paper, they can multiply and divide arrays and such and since in theory all operations are exact it’s fine – analytical results are valid. In the process, intermediate quantities can be nearly zero (“infinitesimals”) or nearly infinite. Multiply or divide the two and you end up with results back in the normal range. On a computer, though, if you get too close to zero or two close to infinity, you get big roundoff errors and/or overflows and subsequent operations don’t set things right. So, the coders have to take great care that intermediate results stay in range (and also why most plugs use 64-bit math internally). Anyway, it’s perfectly OK for a plugin to make sure that the input signal is in a reasonable range to help make the coding nightmare a bit less complicated.
However, I doubt that “most” plugins actually clip like this or at a given value. In any case, it’s not a good idea to go over 0dB, because EQ and plugin algorithms are optimized to work best for audio in the nominal range. But above we weren’t talking about plugins or EQ, just summing and the use of faders. A fader amounts to a single multiply (or less, because multiple faders can be added so one multiply can handle multiple faders in some cases, and n-Track indeed does this optimization).
Quick question, long answer … oh well, enjoy! There are good web pages on the dB. Later after I get some sleep maybe I’ll check my bookmarks for one.
Arrgh, disk diag still isn’t done, so here’s the math.
The range of 32-bit float is to 2^127. Oops, that’s -2^126 to 2^127. There’s a gap in the middle for infinitesimals but we can ignore that here. But since audio goes both positive and negative, our max usable range is really 2^126 so we don’t clip on the bottom.
Now, 2^0 = 1 = 0dBFS.
Twice the amplitude is 6.02 dB, so , for example:
2^1 = 2 = 12.04dB
2^2 = 4 = 24.08dB
2^n = n * 6.02 dB
2^126 = 126 * 6.02 dB = 758.52
Ergo, 32-bit float format peaks at 758.52 dBFS.
If 0dBFS is 1 volt, 758 dB is about 10^38 volts, which would drain your nearby nuclear power plant really darn fast!
Like, in less than a picosecond – maybe even a femtosecond or attosecond.
late … need sleep …
BTW, I’m no math wizard. This is actually advanced high school stuff, not even college math (except for the DSP stuff like convolutions). I have the definitive book on digital filters, by E.W. Hamming, and the first chapter is a quick brush-up on the math required for the rest of the book. Unfortunately, I always get stuck there, because the only reason I passed differential equations (almost 20 years ago) was the grace of the grade curve. I did much better in high school, and I’ve even USED that stuff since then.
Wow, great information. Thanks!
I really flunked math in school.
But from programming I remember this:
In a 32 bit float you have 8 bits for the exponent. 7 for the value, 1 for the sign.
So the max value is 2^128 or ~3.4*10^38 or ~770dB.
Big enough for sure .
Close, very close! Only, 127 is the biggest number that fits in 7 bits, not 128.
I suppose it all depends on whether you let the exponent range from -128 to +127 or from -127 to +128.
Standard 4 byte floating point numbers in C range from -3.4E38 to +3.4E38, which amounts to 2^128, not 127.
I’d be surprised if audio plugins used a different convention.
Ah well, 770 dB or 764 dB , it doesn’t really matter very much, does it?
Well, you’re closer than I was!
Since we’ve already scared off all but the numeric geeks, here’s the scoop.
The exponent-field “E” is an eight bit value. The actual exponent of two is (E-127). However, the value 255 is reserved for NaN (“Not a Number”) values, which I won’t go into. Ergo, the max exponent is indeed 127. However, if the mantissa is all 1’s, the value of the number is just shy of 2^128, which is why your answer is closer. The E value of 0 is also reserved for unnormalized mantissas, so the lowest exponent is -126.
So, you win!
Also, I made another mistake above. I’d just read on a website that the exponent range is -126…127. True, but that has nothing to do with the maximum negative value. Doh!
Take all the facts into account and the maximum dB value is 770.63670, give or take. Not that it matters. Where’s the “yawn” smilie?
Jeff
Getting back onto the “beefing up tracks” topic, I tried a trick I found in one of my mixing books that seems to work well on drums…
Take a send from the drum track out to a compressor, compress the heck out of it and add some boost around 5kHz. Blend the compressed signal back in with the “dry” signal until you can just hear the track start to “pump”.
Translated in n-track speak…
1. Stick all the drums into a group.
2. Send the group (100% send) to an Aux
3. Stick a compressor on the Aux
4. EQ the Aux (boost about 6-10 dB @ 5kHz)
5. Bring up the Aux channel return to blend with the original track (to taste).
If the send to the Aux Compressor is post-fader then the whole drum track level can be raised and lowered in one place.
YMMV. Sounded good on my song.
Mark