HydrogenAudio

Hydrogenaudio Forum => General Audio => Topic started by: sjoc2000 on 2013-01-09 16:09:52

Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: sjoc2000 on 2013-01-09 16:09:52


Hello, new member here;

I have been trying to figure out precisely what the audio signal path is from JRiver via USB to a Dac.

I have been trying to find explanations on the net for these questions, with little success.

First of all what would be the form of the data from the media player (mp); serial bits, bytes, or packets? How does the mp embed the driver (wasapi, asio?) information, or how is the driver implemented?

Then with this example, the transfer medium being USB, where does the data stream go after the mp; I/O Hub Controller, CPU...? If someone can explain the places stages and processes that the signal goes through in the computer it would be helpful. Where does framing, buffering, and reclocking occur?

Finally, is the data output per USB to the Dac converted to PCM, or are raw packets output in serial form to the Dac?

Any responses from members here, that have an understanding of these processes would be very much appreciated.

Sincerely,

Jim
Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: saratoga on 2013-01-09 16:27:15
I have been trying to figure out precisely what the audio signal path is from JRiver via USB to a Dac.


Jriver runs on a normal Windows PC right?  So what you're really asking is how does a USB DAC work?

Basically:

PC Memory > USB Bus > A/D converter

First of all what would be the form of the data from the media player (mp); serial bits, bytes, or packets? How does the mp embed the driver (wasapi, asio?) information, or how is the driver implemented?


Data in this case is PCM samples.  Its buffered by Windows and then copied over the USB by the driver.

Then with this example, the transfer medium being USB, where does the data stream go after the mp; I/O Hub Controller, CPU...? If someone can explain the places stages and processes that the signal goes through in the computer it would be helpful. Where does framing, buffering, and reclocking occur?


I'm not sure what you mean by framing and reclocking.  Buffering occurs after most or all stages in the transfer.  If you want to know how IO works on x86 PCs, this may not be the best place to ask.  However, its not going to be very relevant to your questions either.

Finally, is the data output per USB to the Dac converted to PCM, or are raw packets output in serial form to the Dac?


Both.  USB is a packet-based bus that in this case is carrying PCM audio.
Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: sjoc2000 on 2013-01-10 00:18:00
Saratoga;

Thanks big time for the help.

This subject and explanations are helpful to me, and I'm sure for some others that want to begin or further their understanding of this subject.  I'm going to try to ask some questions, but in parts, so that there is not too much to deal with all at once, if that's ok with you.

So JRiver, after I select a track, sends that track in it's compressed form by DMA to Ram, where JRiver instructs wasapi through the CPU to decompress the file and place it in a buffer?  Upon being instructed wasapi will then move the data after changing it to PCM to a memory position in the USB section of the I/O controlling hub?

Jim
Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: saratoga on 2013-01-10 00:26:39
So JRiver, after I select a track, sends that track in it's compressed form by DMA to Ram, where JRiver instructs wasapi through the CPU to decompress the file and place it in a buffer?  Upon being instructed wasapi will then move the data after changing it to PCM to a memory position in the USB section of the I/O controlling hub?


No, before any of what I described happens, JRiver first decodes the file into PCM audio.
Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: lvqcl on 2013-01-10 02:18:50
So you want to know how your hardware copies some data from RAM to a USB port? I don't think you'll find much information about such low-level hardware questions here at HA.

JRiver instructs wasapi through the CPU to decompress the file and place it in a buffer?  Upon being instructed wasapi will then move the data after changing it to PCM to a memory position in the USB section of the I/O controlling hub?


BTW: WASAPI is Windows Audio Session API, and API is Application Programming Interface. (It's a protocol, a set of rules how programs should communicate with each other).
Title: Trying to figure out audio signal path from JRiver via USB to Dac?
Post by: sjoc2000 on 2013-01-10 04:04:51
Thankyou gentlemen.  I've only been at this awhile, and have a ways to go in understanding what's going on in audio processing in a computer.  Sometimes it's half the battle just to figure out how to ask the question correctly.  We all start with low level questions, that's how we get to the higher level ones.  Thanks for your patience and answers.

Jim