Моя цель - иметь возможность воспроизводить несколько звуков (для создания ударной установки), используя Superpowered API, поскольку мне нужна очень низкая задержка.
Я не могу найти общую архитектуру в файле .mm.
На данный момент у меня есть в моем .mm файле:
- 1 выход SuperpowerIOSAudioIO*
- 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);
}
Но с этим я могу воспроизводить только один звук за раз.
Кто-нибудь знает Superpowered API?