RonK: 64 bit Plug-ins and Summing

Page: 123 > Showing page 1 of 3
Author
DonM
Max Output Level: -34 dBFS
  • Total Posts : 4129
  • Joined: 2004/04/26 12:23:12
  • Location: Pittsburgh
  • Status: offline
2005/09/17 20:43:19 (permalink)

RonK: 64 bit Plug-ins and Summing


The thing we're doing that's unique is that we'll will run audio through plugins using 64-bit precision. I'm sure no other app does this yet because on the VST side, because it isn't written into the VST specification. (We created some vendor-specific opcodes to enable VST to do this.) DX supports it in theory but no plugins implement it yet in practice, until SONAR 5. The Sonitus plugins and convolution reverb in SONAR 5 will support double precision processing.


Ron et al:

I'm getting paranoid on the whole 64 bit double thing, both in plug-in processing and summing. I've gotten myself totally confused on what's actually going on when the data returns to a track after 64 bit processing. For instance if you're in a 24 bit project does dithering occur when the data returns, and what happens to the 384DB theoretical range of 64 bit when returning to 24 bit - will my entire project go above DBFS on each channel and then that problem will mangify when summed to the busses and the final master bus?

Also, would freezing and bouncing end up too hot in this 64 to 24 world?


Can you explain the data flow / what is preventing DBFS all over the place / and how you think Sonar is ahead of the curve in all of this.

Much Much appreciation for your thoughts.

-D
post edited by DonM - 2005/09/17 20:52:02

____________________________________
Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
 
#1

82 Replies Related Threads

    DonM
    Max Output Level: -34 dBFS
    • Total Posts : 4129
    • Joined: 2004/04/26 12:23:12
    • Location: Pittsburgh
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 07:03:54 (permalink)
    Good Morning Ron - bUmP
    -Thanks in advance

    -D

    ____________________________________
    Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
     
    #2
    Scott Reams
    Max Output Level: -56 dBFS
    • Total Posts : 1918
    • Joined: 2003/11/06 15:32:28
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 13:20:29 (permalink)
    I'm getting paranoid on the whole 64 bit double thing, both in plug-in processing and summing. I've gotten myself totally confused on what's actually going on when the data returns to a track after 64 bit processing. For instance if you're in a 24 bit project does dithering occur when the data returns, and what happens to the 384DB theoretical range of 64 bit when returning to 24 bit - will my entire project go above DBFS on each channel and then that problem will mangify when summed to the busses and the final master bus?


    The only thing "24bit" about a 24bit project is the audio files. Sonar4 does all mixing with a 32bit float mix engine. Sonar5 apparently has both a 32bit float mix engine and an optional 64bit mix engine. As soon as the data enters Sonar's mix engine, it is no longer 24bit, and it won't be again unless you commit it to disk.

    -S
    #3
    DonM
    Max Output Level: -34 dBFS
    • Total Posts : 4129
    • Joined: 2004/04/26 12:23:12
    • Location: Pittsburgh
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 13:41:09 (permalink)
    Scott:

    Thanks for your reply - I think maybe I didn't (or can't) state my question thoroughly... I understand exactly what you're saying - My concern is what happens when audio processed in the engine exceeds the projects storage - This is specifically why Sonar can report +24db beyond full scale - Sonar (unlike Sound Forge for example) will report audio above 0 db. This is the result of processing in the current 32bit float engine but summing or bouncing to a 24 bit project - right? At least that is what everybody has so far reported to be the case. I've been following threads that are reporting clipping in frozen tracks and all already know about clipping in bus summing so we adjust levels - but 64 bits in a processing engine with multiple 64 bit plugins seems to be able to create a lot of data beyond the 144db limit of 24 bit - so... I'm trying to understand how that works without massive clipping - am I totally south here? thanks in advance

    -D

    ____________________________________
    Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
     
    #4
    eikelbijter
    Max Output Level: -70 dBFS
    • Total Posts : 1002
    • Joined: 2003/11/13 22:23:52
    • Location: Sherman Oaks, CA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 14:00:13 (permalink)
    My guess is the headroom will stay the same, but the precision will be doubled. Of course there will have to be bit reduction.

    Rico

    Xeon E3-1231V3, 16GB RAM, 480GB 840EVO SSD, MOTU 2480MK3, 424PCI w/ Sonar Platinum
    Dell XPS 18, i5, 12GB RAM, 500GB SSD+128GB SSD, Roland VS-100 w/ Sonar Platinum

    Dell XPS 13, i5, 8GB RAM, 256GB 840EVO SSD, Zoom UAC-2, Sonar Platinum

    http://www.RicoBelled.com/

    #5
    jlgrimes
    Max Output Level: -59 dBFS
    • Total Posts : 1639
    • Joined: 2003/12/15 12:37:09
    • Location: Atlanta, Ga, USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 18:11:35 (permalink)
    The mixing engine will be 64 bit double on both 32 bit and 64 bit systems.

    I'm assuming it will convert your files to 64 bit while inside Sonars system.

    The main thing this will help is in headroom because now all of your summing will clip at a higher point on a 64 bit system. This also is supposed to increase sound quality to a certain extent.

    High bit rates for plug-ins can help the sound quality too.

    I'm not sure how hard this will tax the CPU but Cakewalk said something in the words of performance specs on 32 bit systems with the 64 bit engine being similar to performance specs on Sonar 4.
    #6
    DonM
    Max Output Level: -34 dBFS
    • Total Posts : 4129
    • Joined: 2004/04/26 12:23:12
    • Location: Pittsburgh
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 18:23:32 (permalink)
    The main thing this will help is in headroom because now all of your summing will clip at a higher point on a 64 bit system. This also is supposed to increase sound quality to a certain extent.

    Exactly what I am asking -- 64 bit has a theoretical dynamic range of 384DB how will that 'head room' be handled when the processing returns to the 144db range of 24 bit or 96 db range of 16 bit?
    -D
    post edited by DonM - 2005/09/19 18:30:52

    ____________________________________
    Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
     
    #7
    Clydewinder
    Max Output Level: -72 dBFS
    • Total Posts : 941
    • Joined: 2005/02/28 22:34:40
    • Location: Milwaukee, WI USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 18:44:46 (permalink)
    what is a ronk?
    #8
    MArwood
    Max Output Level: -57 dBFS
    • Total Posts : 1816
    • Joined: 2003/11/06 20:04:42
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 18:54:32 (permalink)
    Just for an example - a track is frozen to process effects... 24bit data is converted to 64bit adding lots of 0000000000000's. The math is then done, plugins etc., the audio is converted back to 24bit for disk storage. I'm sure some kind of dithering/rounding will have to occur to convert back to 24bit. The math is more accurate because more decimal places are used for the calculations. You still only have 24bit headroom, but the plugin/mix calculations are better. Sonar has been using 32bit for a good while. 64bit might even sound a little better <g>
    Max Arwood
    #9
    jlgrimes
    Max Output Level: -59 dBFS
    • Total Posts : 1639
    • Joined: 2003/12/15 12:37:09
    • Location: Atlanta, Ga, USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 19:01:39 (permalink)
    Exactly what I am asking -- 64 bit has a theoretical dynamic range of 384DB how will that 'head room' be handled when the processing returns to the 144db range of 24 bit or 96 db range of 16 bit?
    -D


    Good question. Actually this problem still existed with 32 bit fp (192DB). I'm assuming truncation, or maybe a dithering process.

    #10
    BruceEnnis
    Max Output Level: -58.5 dBFS
    • Total Posts : 1665
    • Joined: 2003/11/05 16:48:01
    • Location: Maryland
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 19:02:21 (permalink)
    what is a ronk?


    VP of development at CW

    Bruce Ennis
    Studio
    #11
    LaptopPop
    Max Output Level: -73 dBFS
    • Total Posts : 853
    • Joined: 2003/11/05 19:37:17
    • Location: Long Beach, CA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 19:35:04 (permalink)

    ORIGINAL: DonM
    Exactly what I am asking -- 64 bit has a theoretical dynamic range of 384DB how will that 'head room' be handled when the processing returns to the 144db range of 24 bit or 96 db range of 16 bit?
    -D


    Without answering your question -- Sonar 5's optional 64-bit mode uses 64-bit FLOATING POINT numbers, not integers. This gives it a range MUCH bigger than 384dB, if I am not mistaken. The old (6dB * number of bits) is for integers, not floating point numbers.

    -lee-
    #12
    DonM
    Max Output Level: -34 dBFS
    • Total Posts : 4129
    • Joined: 2004/04/26 12:23:12
    • Location: Pittsburgh
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 22:21:07 (permalink)
    Lee:
    I'm sure your right - I think I am however uncertain as to how all of that 'headroom' which to me is dynamic range can be returned to the project after processing without having it lying flat on the ceiling.

    -D

    ____________________________________
    Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
     
    #13
    NYSR
    Max Output Level: -60 dBFS
    • Total Posts : 1550
    • Joined: 2004/06/23 11:13:30
    • Location: Binghamton, NY USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 22:32:59 (permalink)
    The higher bit rate is used purely to bury artifacts. So long as the recorded clips are in good condition it makes absolutely no nevermind until your final mix.



    Cakewalk customer since Apprentice version 1, PreSonus 16.4.2 ai, 3.5 gHz i7

    #14
    LaptopPop
    Max Output Level: -73 dBFS
    • Total Posts : 853
    • Joined: 2003/11/05 19:37:17
    • Location: Long Beach, CA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 22:42:46 (permalink)
    NYSR - 64 bit is a bigger bit depth, not a faster sampling rate. It gives more granularity and headroom. A faster sampling rate can be used to move processing artifacts out of the range of hearing so they can be filtered more effectively.

    -lee-
    #15
    kylen
    Max Output Level: -79 dBFS
    • Total Posts : 578
    • Joined: 2003/11/25 19:30:06
    • Location: Southern WV, USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/19 23:09:36 (permalink)
    ORIGINAL: DonM
    Also, would freezing and bouncing end up too hot in this 64 to 24 world?

    According to the new features of Sonar5 we will be able to export wav files at 32bit float. That may or may not have bounce and audio freeze implications - maybe yes, maybe no. I did a quick search but couldn't figure it out. Here's the Sonar5 feature link I'm sure you've seen:

    http://www.cakewalk.com/Products/sonar/features.asp

    ED: One more thing - IMO gain structuring is still important even when mixing in 32bit float, unless you're working 32bit float native data files since it's pretty hard to use all the headroom in there. Mostly you don't worry about it when at 32bit float. I do anyway. Some of the Voxengo plugins have a little 'overs' type meter to show you when something is too hot. Also I suppose you could sitck an instance of rms buddy in the FX area to see how hot you are in between plugs - or put a safety limiter in there somewhere.
    post edited by kylen - 2005/09/19 23:22:03
    #16
    prog_head
    Max Output Level: -82 dBFS
    • Total Posts : 411
    • Joined: 2003/11/07 01:36:14
    • Location: Colorado
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 00:03:40 (permalink)
    Without answering your question -- Sonar 5's optional 64-bit mode uses 64-bit FLOATING POINT numbers, not integers. This gives it a range MUCH bigger than 384dB, if I am not mistaken. The old (6dB * number of bits) is for integers, not floating point numbers.

    -lee-


    There is alot of confusion here. Let me see if I can help. 64 bits is 64 bits. Whether used for integers or floating point, it doesn't change how large the item is, it is 64 bits. How they use 64 bits is the question. Imagine if you take 24 bits and apply that to the left side of the decimal, then you would have 40 bits to apply to the right. This gives you 40 bits of decimal places to work with. I doubt this is what they are doing. In this case you would have no more headroom but ALOT more accuracy. Let's imagine that it is split in two. 32 bits to the left (or integer half) of the number and 32 bits to the mantissa (or fractional part of the number). This would give you increased dynamic range PLUS accuracy in your calculations down to an extremely small amount. So, let's assume, for simplicity, that this is what they have done. What does that offer us?

    1) greatly increased headroom
    2) greatly increased accuracy in calculations... how? why?

    If all we get is headroom, we don't get much. For those that do not know, all that you do with waveforms is add them together. It is as simple as that. At least if it is mono. It is when you start using stereo (or better yet, surround) that things get interesting and also using effects. Most of the best eqs already use 64bit processing because the accuracy of the calculations is so much better. Imagine I take a sample that is currently the equivalent of 1000 (this would be 1000/2^24) coming from your soundcard. When doing eqs and panning this number could be modified over time with many fractional numbers. Imagine, divide 1000 by 2.735 and then multply by 7.6 and then divide by 3.123 and so on. This is the type of calculation going over and over and over and... anyhow... The number would end up something like 889.78335531449451231969447649421. Okay, that is a ridiculous mantissa but you get the idea.

    As more calculations happen (eq's, efx, panning, faders, summing, etc) The accuracy will come into play more and more. In the end it all gets converted back to a 24bit integer for output by your soundcard but all of this could have a major effect on which integer value will get output.

    Does this help?

    Scott
    post edited by prog_head - 2005/09/20 00:12:54

    Guitarist, Producer - Tonart Music
    Sonar X3d x64, Intel 3770k, Lynx AES cards, Lynx and Apogee Converters, 2 UAD2 Quads,... etc, etc
    http://www.tonart.com
    http://www.tonart.com/studio
    http://www.zedfusion.com
    http://www.singularity.net
    #17
    cAPSLOCK
    Max Output Level: -69 dBFS
    • Total Posts : 1071
    • Joined: 2003/11/28 11:16:14
    • Location: Dallas, TX
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 01:56:27 (permalink)
    Ahh... I read this thread with increasing stress until Prog jumped in. It will make my post much shorter. Many people said bits and pieces of the right stuff... but I can see why you are confused.

    In a nutshell a 64bit floating point engine is not so much about headroom as it is resolution.

    It's all about resolution and accuracy over the life of your audio stream as it travels from the hard disk through your plugins, volume and pan faders, through further buss effects and further gain changes and finally back out to your soundcard or to a new file on the drive.

    Any change made to an audio file even as simple as a gain change and certainly as complicated as a plugin changes audio to some extent on the amplitude axis of resolution that the bitdepth describes.

    So the more resolution you have on this axis the more accurate and natural your result will sound since the audio will not be as quantized (or rounded up and down) as it would be at a lower bit depth.

    ALL processing introduces rounding errors into the audio data.

    To exaggerate a bit(haha) to make a point consider the sound of a digital cell phone VS a nicely mixed CD. Part of the difference is the bit depth representation of the sound (among several other parts but lets ignore tham haha). So the more errors in your DAW's audio, the more it sounds like a cell phone , and the less it sounds like the original source. Obviously it will be nowhere as extreme as the aweful sound of a cell phone... but a little digital misrepresentation goes a LONG way to making sound less clear and true to it's origin.

    In the end you must still handle your headroom responsibly since you can overload your converters or produce a lower bitdepth file with significant clipping.

    cAPS
    post edited by cAPSLOCK - 2005/09/20 02:06:45

    "We da da sahw pe paw fidlily-doobee afidlily-dooten-bweebee!" -Shooby
    #18
    Rednroll
    Max Output Level: -80 dBFS
    • Total Posts : 537
    • Joined: 2004/09/17 13:31:13
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 01:58:35 (permalink)
    prog_head, gives a very good explanation of how this really works. You haven't really gained any headroom. Sonar can display levels on it's meters of going over 0dB using floating point math, just as any other program that uses floating point math can. Sound Forge also uses floating point math and can display levels over 0dB on it's meter also. When you Render to hard disk, Sonar has to do one of 2 things with this extra values exceeding 0dB. A) it either takes the highest peak and now makes that you're 0dB point, or B) it clips off everything above the 0dB point, making the audio signal distorted. My guess would be it does A, since you probably didn't mean to totally distort your mix.

    In reality 0dB in the digital world is the highest the audio can be saved at, unless it's saved with floating point math representations, but for all practicality 0dB is the max level. Remember what is the opposite side of the maximum level? Well it's the minimum level. So what is the minimum level? Well that's Minus Infinity. So using 64 bits you're using a representation of -Infinite to 0dB. That's your total dynamics range. So now you have a lot more resolution representing that entire space using 64 bit over 32 bit, which boils down to what prog_head outlined.

    Try this in Sound Forge and you'll see option B. Create a 0dB peak Sinewave. Add 4 instances of the Volume plugin in the plugin Chainer. Add +6dB in each volume adjustment slider. So you added a total of +24dB gain. Playback using the preview chainer button. What do you see in the peak meter? You should see +24dB peak. Now hit the "Process selection" button in the plugin chainer. What do you see in the waveform display? Well you see something that resembles a squarewave. Look to the left of the Sound Forge wave window. That waveform doesn't go past 0dB on the left wave display now does it? Play that waveform back without the volume adjustment plugins. The meter still reads +24 dB doesn't it? That's because Forge is still working in 32 bit float math with that file. Now Save that processed waveform as a .WAV file. Make sure you have "Delete Temporary Files on close" enabled in the Sound Forge preferences. OPTIONS>PREFERENCES>GENERAL. Now Close out Sound Forge. Now reopen Sound Forge. Open up that Wave file you previously saved. Play it back in Forge. What do your peak meters read now? 0dB peak huh? What happened to the +24dB peak that the same file was reading before. Well it got dumped when Forge lost the floating point math information and now it reads the actual peak level when you reopened it.

    Basically, you guys thinking you magically gained extra headroom are using the same reasoning along the lines of Spinal Tap. Our amps go to "11".....Every other amp goes to 10...so where do you go if you need that extra push?.....well we go to "11". Well why don't you just make the highest number 10? "But our amps go to 11!!!" You guys, like it or not are saying exactly the same thing as the guys in Spinal Tap with your extra headroom reasoning.
    post edited by Rednroll - 2005/09/20 02:24:39
    #19
    Scott Reams
    Max Output Level: -56 dBFS
    • Total Posts : 1918
    • Joined: 2003/11/06 15:32:28
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 02:33:01 (permalink)
    so... I'm trying to understand how that works without massive clipping - am I totally south here?


    The feature list mentions support for 32bit float .wav files, so I assume that will at least partially address what you are talking about.

    -S
    #20
    LaptopPop
    Max Output Level: -73 dBFS
    • Total Posts : 853
    • Joined: 2003/11/05 19:37:17
    • Location: Long Beach, CA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 09:19:24 (permalink)

    ORIGINAL: Rednroll
    In reality 0dB in the digital world is the highest the audio can be saved at, unless it's saved with floating point math representations, but for all practicality 0dB is the max level.


    But that's one of the points - Sonar 5 can use a 64-bit floating point mix engine. This gives much greater resolution than other formats, and allows for intermediate values that go way beyond 0 dB. This can be wonderful if you are dealing with processing transient peaks, or summing lots of channels.

    -lee-
    #21
    dbmusic
    Max Output Level: -68 dBFS
    • Total Posts : 1150
    • Joined: 2005/07/04 12:52:46
    • Location: Illinois
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 09:51:43 (permalink)
    This may not be helpful, but as I see it 64 bit simply means increased precision in calculations which, therefore, minimized the effects of data truncation when calculation results exceed the original wordlength (which they usually do). The more precision the clearer digital audio will sound in the end. It may all end up as a 16 or 24 bit wave, but the precision of all the calculations applied to the digital stream will determine the clarity of information that is there.

    db
    #22
    kylen
    Max Output Level: -79 dBFS
    • Total Posts : 578
    • Joined: 2003/11/25 19:30:06
    • Location: Southern WV, USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 10:02:42 (permalink)

    ORIGINAL: LaptopPop
    ...and allows for intermediate values that go way beyond 0 dB. This can be wonderful if you are dealing with processing transient peaks, or summing lots of channels.

    -lee-

    Nicely said!
    #23
    Rednroll
    Max Output Level: -80 dBFS
    • Total Posts : 537
    • Joined: 2004/09/17 13:31:13
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 12:33:53 (permalink)
    This gives much greater resolution than other formats, and allows for intermediate values that go way beyond 0 dB. This can be wonderful if you are dealing with processing transient peaks, or summing lots of channels.


    Yes it gives much greater resolution.....stop there don't go any further in your statements because now you're talking Spinal Tap jiberish. Have you seen the movie Spinal Tap? For sampling there has to be limits set. 0dB is a limit. Due to floating point math it allows Sonar to calculate values that exceed 0 dB. Let me back up and explain the Spinal Tap analogy to you. The dB or decibel is a reference of 2 ratios. Therefore when you divide two numbers with the same units their units cancel out. Therefore the decibel is really a unitless number. When you're talking about the dB within the digital world they attach a unit measusement to it "FS".....or dBFS...decibel "Full Scale." Now there's a lot of numbers to represent between minus infinity and Full scale.....what's the ratio of 0/-inf.....ahhhh....it's infinity. Just like in my Spinal Tap analogy amps go from zero or NO SOUND to 10. Well the digital world goes from Zero NO Sound to 0dB Full Scale. If you want to think Sonar goes to 11, then go ahead and think that and we'll all have a good laugh behind your reasoning. How did you gain anything for transient peaks? Turn your volume down to 5 and you still have plenty of room for transient peaks don't you? Infact now you have volume levels 6 thru 10 for extra headroom for transient peaks. Just like 10 is Full scale on an amplifier 0dB is full scale in the digital world.

    Yes Sonar can display on it's meters that you exceeded 0dBFS. What should happen when you see this is that Sonar should display a message for you saying, "Hey idiot you don't know how to mix and now you've exceeded the maximum number on my X-axis scale. Turn your entire mix level down to allow for those transients, so you're not going over the ceiling, because the outside devices don't have any numbers to represent these values. Like when you render your mix to your hard drive, and quite the same your soundcards D/A converter doesn't have a number for this also. SONAR does not go to 11.....the ceiling of the digital world did not magically get raised when Sonar added 64bit processing. There's just a hell of a lot more values to represent the numbers between -inf to 0dBFS, therefore your resolution has increased between these 2 points.
    #24
    Rednroll
    Max Output Level: -80 dBFS
    • Total Posts : 537
    • Joined: 2004/09/17 13:31:13
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 12:40:07 (permalink)
    Nicely said!


    LOL!!!!! Yeah, nicely said. You might have just said, "Well what happens when you need that extra push past 10?....You turn it up to 11." Go watch the movie spinal Tap and see what a bone head statement you're making. I don't know, maybe you'll think Spinal Tap has a point with having amps that go to 11.
    #25
    LaptopPop
    Max Output Level: -73 dBFS
    • Total Posts : 853
    • Joined: 2003/11/05 19:37:17
    • Location: Long Beach, CA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 13:02:58 (permalink)
    Well..... no.

    I'm working on little article about this - it is likely to be something we'll want to add to the FAQ.

    You are assuming 0dB is some sort of ceiling and that all digital representation of analog signals have to go from zero to full scale, where full scale is defined as 0dB.

    In the analog world 0dB is simply a reference point for a particular voltage. Preamps and mixers specify how much higher they can handle (called headroom). For example, my Onyx mixer can handle inputs as hot as 21dB without clipping.

    In the digital world, one dirty little secret is that there is no standard for converting signals. If you take the exact same input signal and apply it to two different interfaces, they will be similar, but not exactly the same. For example, if I run the same signal through my MOTU 24i/o interface and the firewire interface on my 1640 mixer, I get two different outputs, because the engineers have scaled the analog signal differently to fit it into the 24-bit space. (Aside: There's not really any such thing as a 24-bit converter. The best converters out there produce about 20 bits of actual data, formatted into a 24-bit word).

    Digital clipping occurs when you truncate the sound because you are not able to represent the full signal.

    When you add two or more 24-bit numbers together, for example, in mixing them, you are easily able to exceed what can be stored in 24-bits. In the current Sonar, the mix engine takes the original 24-bit data and stores it in a 32-bit format. (I'm not sure if it is floating point or not). Here's the important point -- it does NOT rescale the data as it does it, it just stores it. So you have a number which is now stored in a format that allows much larger numbers. As you add two of these together, you can end up with a "signal" (its just numbers) that goes way over "0dB". However, the number is still being processed with complete accuracy. The meters in Sonar represent that, and go over zero, just like the meters on an analog console. As long as you don't exceed the limits of the 32-bit value and rescale the number back down to what 24-bits can handle, you can have intermediate values that exceed 24-bits without any problem.

    Again - digital data is not necessarily scaled such that zero dB equals full scale equals the max value.

    A 24-bit value can store from 0 to something like 16,777,215.

    Sonar 5 uses double precision 64-bit floating point (IEEE 754). This rocks. I designed and built a parallel supercomputer years ago that used this format. It is directly supported in the CPUs, often with hardware accelleration. There are instructions that transfer integers directly into this format. Such instructions do NOT rescale the data, they just transfer it straight across. For example, a "seven" in 24-bit data would be a 7.0000 in floating point format.

    A 64-bit integer can store 2^64 values or 1.8446744073709551616 * 10 ^ 19.

    A 64-bit dp fp can represent 1.7976931348623157 x 10 ^ 308 (Max Double). This is a much larger range.

    The format of a 64-bit dp fp is:
    Sign bit: 1
    Exponent width: 11
    Significand precision: 53

    (0x000 and 0x7ff are reserved exponents
    0x000 is used to represent zero and denormals
    0x7ff is used to represent infinity and NaNs

    The format is written with an implicit integer bit with value 1 unless the written exponent is all zeros. Thus only 52 bits of the fraction appear in the memory format.)

    The key to note is that no matter what the range, a dp fp always has 53 bits to represent the data. This is always better than the 24-bit (20 actually) input.

    Why is this good? Two reasons.

    First, the extra range allows you to add number together (mix, or sum) and multiply numbers (amplify) without hitting any limits. As long as you rescale the numbers after you are all done, you will not have any loss of precision or any digital clipping.

    Second, the extra bits allow much greater precision (finer granularity) on the processed data, which greatly reduces intermediate errors.

    So, in this case -- the middle of the processing chain CAN go to 11 (12,13, 14...), as long as there is a step at the end which brings it back down to what the output D-A can handle.

    -lee-

    #26
    DonM
    Max Output Level: -34 dBFS
    • Total Posts : 4129
    • Joined: 2004/04/26 12:23:12
    • Location: Pittsburgh
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 13:57:52 (permalink)
    Lee:
    I admire your precision and articulation. This thread has become better than I could have dreamed.

    -D

    ____________________________________
    Check out my new Album  iTunesAmazonCD Baby and recent Filmwork, and Client Release
     
    #27
    stevec
    Max Output Level: 0 dBFS
    • Total Posts : 11546
    • Joined: 2003/11/04 15:05:54
    • Location: Parkesburg, PA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 14:21:39 (permalink)
    I admire your precision and articulation. This thread has become better than I could have dreamed.


    Very interesting stuff.

    Looks like CW need a new slogan for Sonar 5... I dunno, maybe "This version goes to 11+!"?

    SteveC
    https://soundcloud.com/steve-cocchi
    http://www.soundclick.com/bands/pagemusic.cfm?bandID=39163
     
    SONAR Platinum x64, Intel Q9300 (2.5Ghz), Asus P5N-D, Win7 x64 SP1, 8GB RAM, 1TB internal + ESATA + USB Backup HDDs, ATI Radeon HD5450 1GB RAM + dual ViewSonic VA2431wm Monitors;
    Focusrite 18i6 (ASIO);
    Komplete 9, Melodyne Studio 4, Ozone 7 Advanced, Rapture Pro, GPO5, Valhalla Plate, MJUC comp, MDynamic EQ, lots of other freebie VST plugins, synths and Kontakt libraries
     
    #28
    kylen
    Max Output Level: -79 dBFS
    • Total Posts : 578
    • Joined: 2003/11/25 19:30:06
    • Location: Southern WV, USA
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 14:49:28 (permalink)

    ORIGINAL: Rednroll

    Nicely said!


    LOL!!!!! Yeah, nicely said. You might have just said, "Well what happens when you need that extra push past 10?....You turn it up to 11." Go watch the movie spinal Tap and see what a bone head statement you're making. I don't know, maybe you'll think Spinal Tap has a point with having amps that go to 11.

    Rednroll - you're the one making the bone head soup. Why don't you just cave in and get Sonar - you know you want it! We're talking about overshoots in the digital realm prior to getting sent out to a 24bit sound card. Adobe Audition does this also - when I do a clip repair the peaks can be way past 0dbfs until I lower the gain or normalize it back to below 0dbfs. Sound Forge probably does this too. You manage your 0dbfs however you like - they're ain't nothing distorting over here!
    #29
    tarsier
    Max Output Level: -45 dBFS
    • Total Posts : 3029
    • Joined: 2003/11/07 11:51:35
    • Location: 6 feet under
    • Status: offline
    RE: RonK: 64 bit Plug-ins and Summing 2005/09/20 15:23:04 (permalink)
    ORIGINAL: LaptopPop
    The format is written with an implicit integer bit with value 1 unless the written exponent is all zeros. Thus only 52 bits of the fraction appear in the memory format.)

    The key to note is that no matter what the range, a dp fp always has 53 bits to represent the data. This is always better than the 24-bit (20 actually) input.

    Good post, but I just wanted to clarify. Yes, there are 53 bits to represent the resolution (or dynamic range) of the signal, but with the implicit bit the IEEE floating point spec will give 54 bits resolution for a 64 bit float: 52 bits for the fractional part of the mantissa, 1 sign bit and the implicit bit.

    The 11 exponent bits are what give the number its huge range, the other bits give the number its resolution. A floating point number has a constant resolution over a very large range, while an integer number's resolution gets less and less the closer to 0 you get.

    (and 32 bit float gives 25 bits worth of resolution: 23 bits for the fractional part of the mantissa, 1 sign bit and the implicit bit. And 8 exponent bits)

    The implicit bit is what gives it that extra push over the edge

    (these bits go to 2)
    post edited by tarsier - 2005/09/20 15:33:36
    #30
    Page: 123 > Showing page 1 of 3
    Jump to:
    © 2025 APG vNext Commercial Version 5.1