0
0

Hello!

Sorry for pounding on that question once again, but, please, may be anyone from development team could post a little c/c++ code snippet, what would list all the ASIO channels and how to select a pair of these for sound output.
I have been browsing through whole internet and and have seen this question popping up regularly. So far it has been answered that FMOD Ex is going to be really nice about it. However, I can not find any code sample or documentation about how ASIO channel selection is to be done.
I am simply trying to send diferent audio files to different outputs on soundcard.

So far:


system->setOutput(FMOD_OUTPUTTYPE_ASIO);

system->getNumDrivers(&numdrivers);

for (count=0; count < numdrivers; count++)
{

system->getDriverName(count, name, 256);
}

This will give only one driver name (ASIO driver itself).
How can I list and select channel pairs from there? It will work nice on default, 0-1, but how can I change these?

Thank you and best regards,

Andrus.

  • You must to post comments
0
0

Hi brett,

I read more about ASIO inclusion into FMOD and I think there is an easy way to provide us with the needed information. How about returning the IASIO interface structure when System::getOutputHandle is called? In this case we could just cast this pointer back to IASIO and we could call the function:

[code:3oosliej]
virtual ASIOError getChannels(long *numInputChannels, long *numOutputChannels) = 0;
[/code:3oosliej]

best regards
slajar

  • You must to post comments
0
0

Hi,

it’s me again ๐Ÿ˜‰ I have been searching the chm-File for the term "ASIO" a hundred of times and today I though I just do the same with the .h-File … fortunately I found:

[code:32zdjgng]
typedef struct FMOD_ADVANCEDSETTINGS
{
int cbsize; /* Size of structure. Use sizeof(FMOD_ADVANCEDSETTINGS) /
int maxMPEGcodecs; /
For use with FMOD_CREATECOMPRESSEDSAMPLE only. Mpeg codecs consume 29,424 bytes per instance and this number will determine how many mpeg channels can be played simultaneously. Default = 16. /
int maxADPCMcodecs; /
For use with FMOD_CREATECOMPRESSEDSAMPLE only. ADPCM codecs consume 2,136 bytes per instance (based on FSB encoded ADPCM block size – see remarks) and this number will determine how many ADPCM channels can be played simultaneously. Default = 32. /
int maxXMAcodecs; /
For use with FMOD_CREATECOMPRESSEDSAMPLE only. XMA codecs consume 20,512 bytes per instance and this number will determine how many XMA channels can be played simultaneously. Default = 32. */
int ASIONumChannels;
char **ASIOChannelList;
} FMOD_ADVANCEDSETTINGS;
[/code:32zdjgng]

That’s pretty nice since that’s almost what I wanted beside the ASIO configuration dialog. This is the only thing that’s just missing ๐Ÿ˜‰ Maybe delivering IASIO is still a good idea.

with kind regards
slajar

  • You must to post comments
0
0

Hi,

now I know how to determine the maximal supported hardware channels for ASIO. Actually, I will have to do the same for ALSA and CoreAudio, too. Is there a similar way?

kind regards
slajar

  • You must to post comments
0
0

Hi,

I found that System::getOutputHandle() does not return NULL in case of ASIO. It does return a pointer to somewhere. Is that pointer probably something from the ASIO API? I already tried to cast it to IASIO without success (it crashes immediately ).

regards
slajar

  • You must to post comments
0
0

You’re right, the handle is of type (AsioDrivers *) though.

  • You must to post comments
0
0

can you send me the code where you call the asio drivers and the paris of channels im in the need of it!

thanks in advance!
im searching for the same thing and cant find it :/

  • You must to post comments
Showing 6 results
Your Answer

Please first to submit.