Access all Channels of RME Multiface with AudioDeviceIOCallback


#1

Hi,

I currently installed Windows 7 on my Notebook and attached a RME Cardbus device and a Multiface.

I wrote some code to access all eight input and output channels. However, only two input and two output channels are available.

Does anyone know a solution for that? Here is (the main part) of my code

    m_AudioDeviceManager.initialise(8,8,nullptr,false,String::empty);
    m_AudioDeviceManager.setCurrentAudioDeviceType("DirectSound",true);
    AudioIODeviceType *m_AudioDeviceType = m_AudioDeviceManager.getCurrentDeviceTypeObject();
    m_AudioDeviceType->scanForDevices();
    AudioDeviceManager::AudioDeviceSetup p_Config;
    m_AudioDeviceManager.getAudioDeviceSetup(p_Config);
    p_Config.inputDeviceName  = "Analog (1-8) (2- RME Hammerfall DSP)";
    p_Config.outputDeviceName = "Analog (1-8) (2- RME Hammerfall DSP)";
   
    String p_Message = m_AudioDeviceManager.setAudioDeviceSetup(p_Config,true);
    printf("%s\n",p_Message.toStdString().c_str());

    m_AudioDeviceManager.addAudioCallback(this);   

This returns an empty string, so I expect no errors. When I do typos or stuff in the device names, errors occur.

Then, I reimplement the audioDeviceIOCallback

void T_MyClass::audioDeviceIOCallback (     const float                                **i_InputChannelData,
                                            int                                        i_NumInputChannels,
                                            float                                    **o_OutputChannelData,
                                            int                                        i_NumOutputChannels,
                                            int                                        i_NumSamples)
{
    printf("%d %d\n",i_NumOutputChannels,i_NumInputChannels);

}

And many "2 2"s occur, indictating only two input and two output channels.

Even more this

AudioSampleBuffer p_OutputBuffer(o_OutputChannelData,i_NumOutputChannels,i_NumSamples);

   p_OutputBuffer.copyFrom(0,0,&(*i_InputChannelData)[0],i_NumSamples,1.0f);
    p_OutputBuffer.copyFrom(1,0,&(*i_InputChannelData)[i_NumSamples],i_NumSamples,1.0f);

yields a successfull loop from input to output - for 2 channels.

 

Any ideas how to access the remaining 6 channels?

 

kind regards,

aldaris