0
0

Hi,

it seems to me this function just delivers the current value from system panel. Am I right? How do I determine if one soundcard has 2 channels and the other one has just 1?

thanks
slajar

  • You must to post comments
0
0

Hi,

i read the documentation carefully and now I think fmod assumes larger knowledge of the target soundsystem as I have 😉 That means my target sound system could be a stereo sound card, a 5.1 sound card (e.g. SBLive!) and a multi channel sound card (with 10 hardware channels).
In my enumeration process all of them are displayed as FMOD_SPEAKERMODE_STEREO. That’s not correct. If I switch the speaker type in the control panel (Windows) to FMOD_SPEAKERMODE_5POINT1. I can see all three of them as 5.1 cards. Actually, windows allows to switch the speaker mode seperately for each of them (just choose the particular sound device as primary, and switch the speaker mode). I assume that’s a bug of fmodex.
Well, I am not able to switch to some speaker mode that supports 10 stereo (ok 8 is fmods limitation by now.) channels. Assuming I would use ASIO instead of DSOUND, I can use all 8 of them. Now, I have the next problem. How can I determine if this soundcard supports 4 channels or even 8?

Is there any other solution beside to have some kind of a configuration file where the user specifies it’s sound setup? I would be happy to have a function in fmod that tells me how many channels are available for this particular sound device.

regards
slajar

  • You must to post comments
0
0

Hi,

I just read the DirectSound documentation and I just found the same speaker configurations as provided by fmodex. Unfortunately, that doesn’t sound good. If the only solution is knowing this in advance, is there a database or something like that?
I am not quite sure but I think ASIO provides the capability to inquire the current channel setup. How can this been done in a fmodex way?

thank you + best regards
slajar

  • You must to post comments
0
0

if you use dsound output (the default) and call getDriverCaps it returns the control panel speaker mode, as simple as that. You can use it to pass it to System::setSpeakerMode to override fmod’s default to stereo if you want. If you are trying to call getDriverCaps while the app is still running, that wont work, you have to shut down the app, change windows control panel speaker mode, then restart the app. It works.

  • You must to post comments
0
0

Hi brett,

thank you for your response.
The function getDriverCaps is good for one soundcard systems. Since my application is usually a 2-3 soundcard system. Actually, each of them might be different. If I have a stereo soundcard, a 5.1 soundcard and a 7.1 soundcard. I will have to have the knowledge about this in advance to select the speakermodes in the control panel.
IMHO, I tought it might be possible to enumerate channels for each sound card. It seems this is not supported by DirectX :(
Actually, there is still a bug in fmodex, that ONLY the first speakermode is shown. For example when I select stereo for the stereo soundcard and 5.1
for the 5.1 card and 7.1 for the 7.1 card. Then FMOD will show up with the speakermode settings for the primary sound device.
What I was looking for, was a method to determine the count of channels no matter of the speaker mode for each sound card. I am sure WDM audio has a property like this :( Directx doesn’t support this inquiry.

ASIO has to support this enumeration since this audio layer should support multichannel mastering devices. Is there no chance FMODEx can handle this?

Thank you
slajar

  • You must to post comments
0
0

[quote="slajar":8yxnv695]Hi brett,

thank you for your response.
The function getDriverCaps is good for one soundcard systems. Since my application is usually a 2-3 soundcard system. Actually, each of them might be different. If I have a stereo soundcard, a 5.1 soundcard and a 7.1 soundcard. I will have to have the knowledge about this in advance to select the speakermodes in the control panel.
[/quote:8yxnv695]

There is no difference, if you set different speaker modes in your control panel for each sound device, then fmod will simply return the same values.

Windows doesnt have 1 speaker mode for all sound devices. It has one for each.

[quote:8yxnv695]
Actually, there is still a bug in fmodex, that ONLY the first speakermode is shown.
[/quote:8yxnv695]

This is incorrect. I have multiple soundcards here and it shows 5.1 for one and stereo for another, which is what i have selected in the control panel.

[quote:8yxnv695]
What I was looking for, was a method to determine the count of channels no matter of the speaker mode for each sound card. I am sure WDM audio has a property like this :( Directx doesn’t support this inquiry.
[/quote:8yxnv695]

This is pointless and you shouldnt be wanting to do this. You should be matching your output to whatever speaker mode the user has selected, otherwise your audio will sound wrong (ie attempting to play 5.1 stream even though the user only has stereo speakers plugged into the first output and nothing else).

  • You must to post comments
0
0

Hi brett,

thank you for you quick response.

[quote="brett":1sp7cvpt]
There is no difference, if you set different speaker modes in your control panel for each sound device, then fmod will simply return the same

Windows doesnt have 1 speaker mode for all sound devices. It has one for each.
[/quote:1sp7cvpt]
That’s what I tought , too.

[quote:1sp7cvpt]
This is incorrect. I have multiple soundcards here and it shows 5.1 for one and stereo for another, which is what i have selected in the control panel.
[/quote:1sp7cvpt]
I’ll need to build a test case for this issue, I think.

[quote:1sp7cvpt]
This is pointless and you shouldnt be wanting to do this. You should be matching your output to whatever speaker mode the user has selected, otherwise your audio will sound wrong (ie attempting to play 5.1 stream even though the user only has stereo speakers plugged into the first output and nothing else).[/quote:1sp7cvpt]

Ok, if the system wide per soundcard speakermode works correctly, you are right :)

How about ASIO? Is there a good way to determine the channel count?

regards
slajar

  • You must to post comments
0
0

Hi,

I don’t want to be anoying, but I am not sure how to use ASIO with fmodex right now. Did anyone use ASIO on a multichannel (10 channels etc.) sound card? How do you detmine the channel count in ASIO mode?

thank you in advance
slajar

  • You must to post comments
Showing 7 results
Your Answer

Please first to submit.