IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
Understanding the PC audio chain
goodsound
post May 11 2006, 17:13
Post #1





Group: Banned
Posts: 179
Joined: 6-February 06
Member No.: 27586



I want to learn more about the entire PC audio chain. More specifically how and what components (hardware and software) does the audio data flow through between the source (harddisk, cd-drive) and the speakers. i.e. once it is put on the IDE bus what happens to it until it reaches the DAC. And a little bit information on what is the role of each component in the chain.

I believe Pohlmann's 4th ed book has a new chapter added on "PC Audio" but I haven't got my hands on it yet or dont know how much it would cover. Or if you could suggest some other reading or some links to some online reading would be great!

Thanks!

This post has been edited by goodsound: May 11 2006, 17:13
Go to the top of the page
+Quote Post
hankwang
post May 13 2006, 21:44
Post #2





Group: Members
Posts: 11
Joined: 18-January 04
Member No.: 11345



QUOTE (goodsound @ May 11 2006, 08:13) *
once it is put on the IDE bus what happens to it until it reaches the DAC. And a little bit information on what is the role of each component in the chain.

Why would you want to know this? A program (process) opens a file through the operating system, reads the data, and sends it to the soundcard driver that is in the operating system. The soundcard driver is usually not your business and implemented very differently depending on whether you run Windows, Linux, or OSX. If the soundcard uses DMA, the OS tells the card, which is on the PCI bus, at which memory location the audio data is residing, along with the sample rate/channels/bit depth, after which the soundcard reads the data by itself. When the soundcard is finished reading and playing, it gives an interrupt that signals the OS that the data transfer is ready and the OS puts fresh data into the buffer, and signals the user process that it needs fresh data.

I believe that with most general-purpose soundcards, the DSP on the soundcard does the mixing, sample-rate conversion, and volume adjustments all digitally, after which it is sent to the DAC.
Go to the top of the page
+Quote Post
MikeFord
post May 15 2006, 06:02
Post #3





Group: Members
Posts: 132
Joined: 22-May 04
Member No.: 14241



The hardware side I think is kind of "techy" and boring, chunks of data move from storage to some kind of buffer on the card, and the card clocks it out to the DAC or port or whatever.

The software is much more of a "routine shuttle launch" mess. I don't really understand all of what goes on in Windows (let alone anything else), but I think there is some issue about windows "mixer" that apparently likes to scale the data that passes through it. Its enough of a pest that something called ASIO was created, and its some kind of direct software path
Go to the top of the page
+Quote Post
goodsound
post May 15 2006, 17:20
Post #4





Group: Banned
Posts: 179
Joined: 6-February 06
Member No.: 27586



QUOTE
A program (process) opens a file through the operating system, reads the data, and sends it to the soundcard driver that is in the operating system.

As MikeFord indicated, via the windows mixer before the soundcard driver processes it ?

That’s the kind of information I am seeking. The “flow” of the digital audio data inside the pc. Maybe I’ll try re-phrasing my question/requirement -

I am particularly interested in knowing about components in the flow of digital audio data that do any kind of processing(dsp, resampling,etc..) on the data, be it hardware or software. Although in this regard, it doesn’t look like there will be much hardware in the way of the data, so I don’t know if this thread should be in the hardware forum or not.
Go to the top of the page
+Quote Post
Firon
post May 15 2006, 18:33
Post #5





Group: Members
Posts: 830
Joined: 3-November 05
Member No.: 25526



Your program outputs decoded audio with waveOut or DirectSound, which passes the audio through kmixer (which may resample and apparently always dithers), and then kmixer sends it to the card's drivers, I would assume. The drivers then probably send it to the DSP, where it gets resampled to 48KHz on most consumer cards, then it probably goes to the DAC.
Go to the top of the page
+Quote Post
goodsound
post May 15 2006, 22:22
Post #6





Group: Banned
Posts: 179
Joined: 6-February 06
Member No.: 27586



Thanks Firon, that helped. I think we are headed in the right direction. Now I understand why people talk about using KS and ASIO, instead of wO and DS. Because KS and ASIO allow you to bypass the kmixer.
(That confirms I have a problem with KS and WDM in my Windows(Me) setup, I will start a seperate thread for that).
Go to the top of the page
+Quote Post
hankwang
post May 16 2006, 10:14
Post #7





Group: Members
Posts: 11
Joined: 18-January 04
Member No.: 11345



QUOTE
As MikeFord indicated, via the windows mixer before the soundcard driver processes it ?

I don't know much about Windows, but I'm pretty sure that most of the mixing and resampling (CD, mic, pc speaker, line in, PCM, balance, master volume, etc.) is done inside the soundcard. The windows mixer (sound daemon in Linux) only needs to mix the PCM sound data from different programs, and resample if the different programs are using different sampling frequencies, before sending it to the sound card.
Go to the top of the page
+Quote Post
goodsound
post May 17 2006, 17:45
Post #8





Group: Banned
Posts: 179
Joined: 6-February 06
Member No.: 27586



now where does WDM fit into this puzzle ?

Seems like KS is a part of WDM(?). In that case if I have WDM drivers from the soundcard installed, does that mean it is bypassing kmixer (and using KS instead) anyway ?
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 20th September 2014 - 02:02