Итак, я работаю над программным обеспечением для обработки звука, и я немного запутался в обработке звука ASIO. Из того, что я читаю, похоже, что когда выполняется обратный вызов переключателя буфера, мне нужно обработать «вход» в «выход». Но что, если у меня разное количество входных и выходных каналов? И я предполагаю, что мне нужно выполнить преобразование формата, если мой формат ввода и вывода не совпадают, верно?
ASIO SDK как обрабатывать аудиобуферы
comment
Какой плагин вы разрабатываете? Я предполагаю, что плагин эффекта, если у вас есть входы и выходы?
- person marko   schedule 30.03.2015
comment
Да по существу. Я просто смущен тем, как он хочет, чтобы я обрабатывал данные. Я знаю, когда это нужно сделать, но я не знаю, какие буферы мне нужно обработать, а в какие записать обратно.
- person Caleb Merchant   schedule 30.03.2015
Ответы (1)
Что вам нужно сделать, так это получить доступ к asioDriverInfo.inputsChannels и asioDriverInfo.inputBuffers. Я использовал этот фрагмент кода, чтобы выяснить перечисление ввода/вывода моего устройства. Я надеюсь, что это помогает.
string cad;
if (ASIOStart() == ASE_OK)
{
for (int i = 0; i < asioDriverInfo.inputChannels + asioDriverInfo.outputChannels; i++)
{
cad = asioDriverInfo.channelInfos[i].isInput? "input" : "output ";
cout<<"Chanel "<<i<<" : "<<asioDriverInfo.channelInfos[i].name<<" "<<cad<<endl;
}
for (int i = 0; i < asioDriverInfo.inputBuffers + asioDriverInfo.outputBuffers; i++)
{
cad = asioDriverInfo.bufferInfos[i].isInput? "input" : "output ";
cout<<"Buffer "<<i<<asioDriverInfo.bufferInfos[i].buffers<<" : " << cad <<" chanel "<<asioDriverInfo.bufferInfos[i].channelNum<<endl;
}
...and rest of stuff
person
Antonio Paredes Picon
schedule
07.04.2015