ASIO: please increase maxASIOChannels


#1

Hi Jules,

Please increase maxASIOChannels to 196

there are devices on the market that support more than 160 channels:

http://www.rme-audio.de/en_products_hdspe_madi_fx.php


#2

Sure, no problem.


#3

even if the chance is not to big, but if there is a device that has more channels than maxASIOChannels, it will corrupt heap memory in this loop

	      
                        for (i = 0; i < totalNumOutputChans; ++i)
                        {
                            ASIOChannelInfo channelInfo = { 0 };
                            channelInfo.channel = i;
                            channelInfo.isInput = 0;
                            asioObject->getChannelInfo (&channelInfo);

                            outputChannelNames.add (String (CharPointer_UTF8 (channelInfo.name)));
                            outputFormat[i] = ASIOSampleFormat (channelInfo.type);

                            if (i < 2)
                            {
                                // clear the channels that are used with the dummy stuff
                                outputFormat[i].clear (bufferInfos [outputBufferIndex + i].buffers[0], preferredSize);
                                outputFormat[i].clear (bufferInfos [outputBufferIndex + i].buffers[1], preferredSize);
                            }
                        }

there should be at lease some warning

jassert(totalNumOutputChans<=maxASIOChannels);


#4

Yeah, it should all really be dynamically allocated, not sure why I wrote it with a fixed number of channels. I’ll take a look.


#5

There is also another quirk i have with JUCE-RME-ASIO combination.
When i change the blocksize of the device, in its own control panel, audio will stop, or sound will stutter.
Other ASIO-Software like Cubase will automatically reinitialized with the new blocksize.


#6

Oh, I don’t have time to spend digging into that kind of thing right now, but I have just checked in a fix that gets rid of maxASIOChannels.


#7

thanks!