Моя цель - иметь возможность воспроизводить несколько звуков (для создания набора ударных), используя Superpowered API, поскольку мне требуется очень низкая задержка.
Я не могу найти общую архитектуру вФайл .mm.
На данный момент в моем файле .mm:
- 1 SuperpoweredIOSAudioIO * output
- 10 SuperpoweredAdvancedAudioPlayer * (игроки [10]),так как у меня 10 барабанов
Но я не могу найти, как реализовать оставшуюся часть файла .mm, в частности цикл audioProcessing
.
У меня есть это в настоящее время:
static bool audioProcessing(Superpowered *clientdata, float **buffers, unsigned int inputChannels, unsigned int outputChannels, unsigned int numberOfSamples, unsigned int samplerate, uint64_t hostTime) {
Superpowered *self = clientdata;
bool overallSilence = true;
for(int i = 0; i < 10; i++) {
SuperpoweredAdvancedAudioPlayer *player = self->players[i];
bool silence = !player->process(self->stereoBuffer, false, numberOfSamples);
if (silence == false) {
overallSilence = false;
}
}
if (!overallSilence) SuperpoweredDeInterleave(self->stereoBuffer, buffers[0], buffers[1], numberOfSamples); // The stereoBuffer is ready now, let's put the finished audio into the requested buffers.
return !overallSilence;
}
и когда я хочу воспроизвести звук:
- (void)playWithPlayerAtIndex:(int) index {
SuperpoweredAdvancedAudioPlayer* player = players[index];
player->seek(0);
player->play(false);
}
Но при этом я могу воспроизводить только один звук за раз.
Кто-нибудьзнаете сверхспособность API?