Ezekial
10-11-2006, 02:07 PM
Hi, I recently had a thread going in the "Sound Card and Audio I/O Hardware" forum about feeding 24 bit data to a 24 bit audio I/O device. The question was basically how can we be certain that the audio is not being downgraded to 16 bit or some other lesser quality before finally being sent out of the audio I/O device?
I'm a Windows programmer and have written some apps using both the MM WaveOut* API and DirectX's DirectSound. In either of these API's you can specify what format the audio will be sent to the audio I/O device at - but you cannot dictate at what format the audio I/O device will playback the audio.
I now realize I was completely overlooking Window's KMixer system driver in the previous thread. I have both an SB Audigy and an M-Audio Delta 44 in my PC. My understanding is that anything that uses the Window's built in volume control (which is accessable by double clicking on the small speaker icon located in the lower right corner of the screen) is going to have it's audio output routed through the KMixer system driver before going to the audio I/O device for playback.
So, the SB Audigy output will be routed through the KMixer system driver but the M-Audio Delta 44 will not. Based on what I know about KMixer, it can do various processing of audio - changing sample rates and possibly bit resolution. This is needed because if two different apps are playing back audio at the same time at different sample rates and/or bit resolution the two streams must be converted to one audio format before being sent to the audio I/O device since the device can of course only be set to one audio format at any given moment.
Now, it's my understanding that the Delta 44 is not using the KMixer system driver. It comes with it's own configuration tool (the M-Audio Delta Control Panel) which allows you to set the sample rate but not the bit resolution. So, my question is that the Delta 44 must have it's own mechanism similar to the KMixer system driver that mixes two streams together, right?
If so, I'm interested to know how exactly that works as far as sound quality playback. For example, the Delta 44 is capable of playing back at 24bit/96KHz, it would seem pretty obvious that the sample rate is set in the Control Panel as allowed but how do we know what bit resolution the audio is being played back at? Will the Delta 44 always playback at 24 bit? For example, if streams from two different apps are being sent at once, say one is 16 bit and the other is 24 bit, will the 16 bit stream be upsampled to 24 bit, then mixed with the 24 bit stream and be sent to the Delta 44 so that it can always output the audio at 24 bit quality?
Zeke
I'm a Windows programmer and have written some apps using both the MM WaveOut* API and DirectX's DirectSound. In either of these API's you can specify what format the audio will be sent to the audio I/O device at - but you cannot dictate at what format the audio I/O device will playback the audio.
I now realize I was completely overlooking Window's KMixer system driver in the previous thread. I have both an SB Audigy and an M-Audio Delta 44 in my PC. My understanding is that anything that uses the Window's built in volume control (which is accessable by double clicking on the small speaker icon located in the lower right corner of the screen) is going to have it's audio output routed through the KMixer system driver before going to the audio I/O device for playback.
So, the SB Audigy output will be routed through the KMixer system driver but the M-Audio Delta 44 will not. Based on what I know about KMixer, it can do various processing of audio - changing sample rates and possibly bit resolution. This is needed because if two different apps are playing back audio at the same time at different sample rates and/or bit resolution the two streams must be converted to one audio format before being sent to the audio I/O device since the device can of course only be set to one audio format at any given moment.
Now, it's my understanding that the Delta 44 is not using the KMixer system driver. It comes with it's own configuration tool (the M-Audio Delta Control Panel) which allows you to set the sample rate but not the bit resolution. So, my question is that the Delta 44 must have it's own mechanism similar to the KMixer system driver that mixes two streams together, right?
If so, I'm interested to know how exactly that works as far as sound quality playback. For example, the Delta 44 is capable of playing back at 24bit/96KHz, it would seem pretty obvious that the sample rate is set in the Control Panel as allowed but how do we know what bit resolution the audio is being played back at? Will the Delta 44 always playback at 24 bit? For example, if streams from two different apps are being sent at once, say one is 16 bit and the other is 24 bit, will the 16 bit stream be upsampled to 24 bit, then mixed with the 24 bit stream and be sent to the Delta 44 so that it can always output the audio at 24 bit quality?
Zeke