Я пишу секвенсор битбокс для iphone, используя CoreAudio.
У меня есть 4 звука, которые играют на паттерне. У меня есть AUGraph с IORemote и MultiChannelMixer вместе. 4 входа микшера имеют функцию обратного вызова, считывающую звуковые буферы, прикрепленные к нему. Он работает хорошо, если паттерн секвенсора прост и не воспроизводит слишком много звуков одновременно. Если я включаю несколько звуков одновременно, появляются глюки и звучит, как будто процессор перегружен (я использую iPhone 1-го поколения для тестирования).
Я использую звуковые файлы CAF (16 бит, 44,1 кГц) и канонический аудиоформат:
size_t bytesPerSample = sizeof (AudioUnitSampleType);
stereoStreamFormat.mFormatID = kAudioFormatLinearPCM;
stereoStreamFormat.mFormatFlags = kAudioFormatFlagsAudioUnitCanonical;
stereoStreamFormat.mBytesPerPacket = bytesPerSample;
stereoStreamFormat.mFramesPerPacket = 1;
stereoStreamFormat.mBytesPerFrame = bytesPerSample;
stereoStreamFormat.mChannelsPerFrame = 2;
stereoStreamFormat.mBitsPerChannel = 8 * bytesPerSample;
stereoStreamFormat.mSampleRate = 44100.0;
Есть ли что-то, чего мне не хватает или что я должен знать, что может улучшить мою программу? Или я бью ограничение процессора для iPhone 1-го поколения?
Большое спасибо.
Паскаль