INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Upsampling with Integer Mode Playback  (Read 20104 times)

jtwrace

  • Galactic Citizen
  • ****
  • Posts: 438
  • "Science is not a democracy"-Earl Geddes, Ph.D.
Upsampling with Integer Mode Playback
« on: October 25, 2013, 12:49:04 pm »

I was reading my normal rounds this morning and came across this post by Rob from Channel D.  I'm curious to know how JRiver will handle it.  I'm just interested as it's an interesting point.

Rather than post the whole post, I'll post the paragraph.  
Quote
it is not sensible to combine upsampling with integer mode playback, because upsampling requires conversion from integer to floating point (high quality upsampling requires floating point) and then truncation back to integer format. This is at odds with the putative reason for integer mode, which is minimizing or eliminating any signal processing (including floating point conversion), and merely sending the audio samples straight to the DAC / output device. And it is heartening to see that Apple has re- instated the APIs for integer support in the latest OS, avoiding unsupported methods of writing to the OS kernel, something not advised by Apple.


Here is where I took that post from   http://www.computeraudiophile.com/f11-software/pure-music-1-9-a-17879/#post264860
Logged
W10 NUC i7 (Gen 10) > (Audiolense FIR) > Motu UltraLite mk5 > (4) Hypex NCore NC502MP > JBL M2 Master Reference +4 subs

My podcast:
https://www.youtube.com/channel/UCXMw_bZWBMtRWNJQfTJ38kA/videos

Matt

  • Administrator
  • Citizen of the Universe
  • *****
  • Posts: 42372
  • Shoes gone again!
Re: Upsampling with Integer Mode Playback
« Reply #1 on: October 25, 2013, 12:56:49 pm »

First, I've met Rob several times and he's a really nice guy.

In this case, I don't really understand what he's saying.  By that same logic, it seems like it wouldn't make sense to apply volume if you were using integer mode.

In JRiver, all data is handled as 64-bit.  The final delivery to the DAC will use the highest quality the device supports -- normally 24-bit dithered.

If you don't make any changes, 24-bit input will be bit-perfect at 24-bit output.

But if you do make changes like upsampling, volume, etc. the output will still be the highest quality available.  Doing delivery in native format (ie. integer mode) ensures there's no mangling of bits so the dither is what we want.  It may also be a little more efficient.  

Use of integer mode should have no bearing on what signal processing you do in the program.

(p.s. Please don't quote me in the thread at CA.  I have no desire to debate it.)
Logged
Matt Ashland, JRiver Media Center

jtwrace

  • Galactic Citizen
  • ****
  • Posts: 438
  • "Science is not a democracy"-Earl Geddes, Ph.D.
Re: Upsampling with Integer Mode Playback
« Reply #2 on: October 25, 2013, 12:58:44 pm »

Thanks.

Logged
W10 NUC i7 (Gen 10) > (Audiolense FIR) > Motu UltraLite mk5 > (4) Hypex NCore NC502MP > JBL M2 Master Reference +4 subs

My podcast:
https://www.youtube.com/channel/UCXMw_bZWBMtRWNJQfTJ38kA/videos

bobkatz

  • World Citizen
  • ***
  • Posts: 213
24 bit dither, was Re: Upsampling with Integer Mode Playback
« Reply #3 on: February 21, 2014, 12:43:32 pm »

Just started using JRiver on the Mac side. I don't find the "device uses 24 bits" option in the top of the dsp driver section as it is in the PC side.

I know that Matt is on the mend! Get well, Matt we love you and need you.

Anyway, I hope that someone else at JRiver or in the users knows the answer to this question. My request is quite simple: I want to send 24 integer bits to the DAC, dithered down from the long wordlength inside JRiver. In this case it doesn't matter whether we're upsampling or not. I think that integer mode means that whatever integers JRiver is putting out will go out to the final device. All well and good. But JRiver needs to know what wordlength it needs to format for the the final device and dither to that wordlength. I don't see that choice in the options. I'm using Soundflower to choose channels and Soundflower is feeding to the Motu audio interface which is going out spdif. For testing of bit integrity and distortion I'm taking the SPDIF output and feeding it back to the spdif input and analyzing distortion in Spectrafoo. I don't see any dither no matter how hard I try... I know it works on the PC side, as long as you set the "device uses 24 bits" option. Keep in mind that putting SPDIF in this loop automatically truncates things to 24 bits so it is not only desirable but NECESSARY for JRiver to dither its output down to 24 bits for a proper analysis of the situation.

Foo can also look at the incoming 32 bit signal if we want but measuring distortion on that does not reflect the real world situation of DACs or spdif interfaces.
Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: 24 bit dither, was Re: Upsampling with Integer Mode Playback
« Reply #4 on: February 21, 2014, 01:19:02 pm »

Some tests using Foo to see what's up:

1) This is direct from JRiver through Soundflower without the Motu interface in play.  No EQ or other processing going on in JRiver.

JRiver at 0 dB:

a) Integer mode: 2444 source at 0 dB in JRiver, no EQ.   Reads: Exactly 24 bits.

b) Float mode: Same source still reads exactly 24 bits.


JRiver at -80 dB to see floating point activity:


b) Float mode: bits 19 through 32 are blinking and happy


c) Integer mode: bits 19 through 32 are blinking and happy. There's no distinction in foo's bitscope so we can't say for sure if it's float or fixed. But regardless, as you can see, there is no provision in JRiver Mac for devices which truncate to 24 bits and then must be dithered to 24 bit fixed point.

Still in integer mode, return fader to 0 dB. This is confusing, I now see bits beyond 24 being used so in this case JRiver's "bit accuracy" is not working. It should be 24 bits. I don't know what caused the change. Let try to exorcise some ghosts out.

I can't get the ghosts out, JRiver is apparently continually delivering too many bits. 16 bit sources are also compromised. I'll relaunch everything and try again.

I have tested other applications (notably Reaper, Pure music with itunes) and am able to get bit-integrity through Soundflower so it seems that something is not quite right with JRiver Mac.


Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: 24 bit dither, was Re: Upsampling with Integer Mode Playback
« Reply #5 on: February 21, 2014, 01:25:02 pm »

Well, it may not be JRiver...  Something's happened inside my Mac or Soundflower has gone south (it won't be the first time for Soundflower) because I'm getting greater than 16 bits at all times from any source routed to Soundflower. Stand by for the details.
Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: 24 bit dither, was Re: Upsampling with Integer Mode Playback
« Reply #6 on: February 21, 2014, 01:33:40 pm »

OK, I found the problem. In Apple's audio media setup, somehow, Soundflower's output volume was not set to 0 dB. Now I'll return to my measurements. Stay tuned.

Oh  for those who think I'm just a measurer. I have a reason for this request: I can hear the difference...  :-)
Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: 24 bit dither, was Re: Upsampling with Integer Mode Playback
« Reply #7 on: February 21, 2014, 01:45:22 pm »

OK, I finished my measurements. Just as I suspect. JRiver has no mechanism (that I can find) to dither  its output to 24 bits for feeding a DAC. This means a sound quality loss, folks. What am I missing? Or what can we do to fix the problem.

Note: It's not enough to say "bit integrity". In only one case is the bit-accuracy of JRiver important: When it is set to 0 dB, no equalization or other processing. In that case we can observe that JRiver is able to send exactly the wordlength of the source material out its outputs, bit-accurate.

Aha, I have an idea. A dithering plugin. That's what I used on the PC in the past when JRiver was not fully configured for dither, in the early days of MC 18. Oops... it looks like JRiver Mac has not yet reached the point where it can see VST plugins (or AU, especially). They're all greyed out in the open dialogue box when I try to select them. So, are we dead in the water for the moment regarding dithering in MC 19 Mac?

BK
Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: Upsampling with Integer Mode Playback
« Reply #8 on: February 25, 2014, 07:11:58 pm »

Has any of the developers responded to this message of mine? Specifically, about providing 24-bit dithering to the DAC for the Mac version of JRiver. Thanks! I do miss Matt and wish him well. I know he would have been on top of this one.
Logged

6233638

  • Regular Member
  • Citizen of the Universe
  • *****
  • Posts: 5353
Re: Upsampling with Integer Mode Playback
« Reply #9 on: February 26, 2014, 12:18:22 am »

Is the "bitdepth simulator" available in the Parametric EQ on the Mac version? I don't have a Mac nearby right now, but have tested it on the Windows version.
I wonder if that might work as a "limiter" until this is fixed. If I set it to 24-bit, 20-bit, 16-bit, or <16-bit, my DAC changes its status LEDs accordingly. (it monitors the incoming signal)
Logged

bobkatz

  • World Citizen
  • ***
  • Posts: 213
Re: Upsampling with Integer Mode Playback
« Reply #10 on: March 08, 2014, 07:56:50 am »

Bump....

(sorry)


BK

Has any of the developers responded to this message of mine? Specifically, about providing 24-bit dithering to the DAC for the Mac version of JRiver. Thanks! I do miss Matt and wish him well. I know he would have been on top of this one.
Logged
Pages: [1]   Go Up