dithering when recording audio with MaxMSP

    Apr 17 2010 | 1:26 pm
    I'm aware that whenever reducing bit-depth, dither should be used.
    I use this principle whenever bouncing-down in my DAW; I use Logic 8 which I know processes its audio in 32bit-float. I bounce down in Logic to make 24bit files, so always dither whenever bouncing as this is a reduction in bit depth from Logic's processing at 32bit-float.
    I can't figure out how to apply this principle in MaxMSP. I'm looking at using sfrecord~ to record whatever audio I might be making, specifying "samptype 24" so the recorded audio is 24bit. However Max processes audio in 32bit-float just like most other DAWs (I think...), so I reckon I should be dithering the audio before running it into sfrecord~.
    (The sfrecord~reference page mentions that it "munges the header" of the audio whenever reducing bit-depth to make an audio file... but it doesn't explain what this really means beyond "overriding the audio file's native sample type".. which I find a bit vague. I assume simple truncation of the bit-depth... ie. no proper dithering down.)
    Does Max provide any straightforward way to dither when recording using sfrecord~ ? I've been googling and searching about for an answer and haven't found anything.
    ..or do I have to host some dithering plugin with vst~ ? (Please don't tell me I have to make my own dither with noise~ or similar... I'll shoot myself)
    I know I could Rewire the Max audio out into Logic and record it there... but it's a pain to have to do that always.

    • Apr 18 2010 | 12:36 pm
      makgin your own dither in maxmsp is far too complicated and i have never seen someone making it.
      the use of a vst plug-in is possible but you should know what your are doing - dont do anything, including gain change, to the audio after dithering.
      why do you dither to 24 at all? you might have your reason but as long as audio is reused on a computer, staying 32 will be fine.
      24 is only required for DVD premasters and such things, normally you should be fine with 16 and 32float for music.
      even metasynth 5 can read float now.^^
    • Apr 20 2010 | 1:49 pm
      It is a very slippery slope that I am stepping on, but I'll say it anyway:
      Can you hear the difference between dithered and non-dithered? If not (most probably), why bother?
      Dithering occurs a few dB above the noise floor. For 16 bit audio, the noise floor is at -96 dBFS, for 24 bit audio it is -144 dB so we're talking about changes that are virtually inaudible, let alone if there is actually something louder to be heard.
      Actually, at 24 bit it is factually inaudible: the dynamic range of human hearing is from the hearing threshold of about 5 dB SPL to the generally accepted maximum of 140 dB SPL. This leaves us with 135 dB of 'hearing headroom'. So if the 0 dBFS point in your 24-bit song would not make your ears bleed, its quietest possible point would be below the hearing threshold.
    • Apr 20 2010 | 6:42 pm
      maybe "lets do it only for 16 bit" would be a fair compromise.
    • Apr 22 2010 | 9:58 am
      I'm wanting to dither to 24 for these reasons:
      - All recording from the analogue world is done at 24 in Logic. I'd like to maintain consistency, with a general rule that all recorded audio files will be made at 24.
      - I made a decision to work at 96kHz, as all my mixing is done digitally. A big problem for me in the past has been audible "digititus" due to many levels of digital EQ, and moving to 96kHz has massively reduced this issue. Downside is that 96k takes a lot of disk space... so if I can save a bit of space by keeping everything at 24 rather than going to 32, all the better. Especially as I can't hear an audible difference between 32 and 24, but I can hear an audible difference between 24 and 16.
      I see your point though Roman, I might have to do a bit of testing on practical realities of filesize difference, and see if it really would not be that big a deal to simply have all digitally-generated recorded at 32.
      EMV, as for the issue of "why bother dithering if you can't hear it anyway"... it's not the dither that I'm worried about hearing, it's the quantisation noise correlated to the signal that remains if no dither is used. Over repeated digital processing (including simply mixing many processed tracks that themselves aren't dithered), this error mounts up and again seems to contribute to the digititus I mentioned earlier...
      Since I really learnt about how dither works and have started properly applying it, I've seen huge improvements in noise reduction, clarity of detail and stereo spread being maintained right through the working process. Turn the volume up and listen to those reverb tails!
      If Max did offer dithering, I'd imagine including a choice of dither options wouldn't be that big a step?