audioqueue kAudioQueueParam_Pitch - PullRequest
3 голосов
/ 02 июня 2011

Документация для Audio Queue Services в OS 10.6 теперь включает параметр высоты тона:

kAudioQueueParam_Pitch Количество центов для смещения высоты звука при воспроизведении аудио-очереди в диапазоне от -2400 до 2400 центов (где 1200 центов соответствуют одной музыкальной октаве). Этот параметр можно использовать, только если включен процессор времени / шага.

В других разделах того же документа все еще говорится, что громкость является единственным доступным параметром, и я не могу найти ссылку на процессор времени / шага, упомянутый выше.

Кто-нибудь знает, к чему это относится? Непосредственная запись значения в параметр не влияет на воспроизведение (хотя ошибка не выдается). Аналогичным образом работает настройка громкости.

Как обычно, без поддержки Apple.

1 Ответ

2 голосов
/ 24 августа 2013

Это доступно только в OSX до iOS 7. Если вы посмотрите на AudioQueue.h, вы обнаружите, что он условно доступен только в iOS 7. [примечание: при повторном чтении я вижу, что вы имели в виду OS X, а не iOS, но, надеюсь, следующее кроссплатформенное]

Кроме того, вам нужно включить очередь для time_pitch до установки алгоритма time_pitch, и только спектральный алгоритм поддерживает высоту тона (все они поддерживают скорость)

result = AudioQueueNewOutput(&(pAqData->mDataFormat), aqHandleOutputBuffer, pAqData,
                             0, kCFRunLoopCommonModes   , 0, &(pAqData->mQueue));
// enable time_pitch
UInt32 trueValue = 1;
AudioQueueSetProperty(pAqData->mQueue, kAudioQueueProperty_EnableTimePitch, &trueValue, sizeof(trueValue)); 
UInt32 timePitchAlgorithm = kAudioQueueTimePitchAlgorithm_Spectral; // supports rate and pitch
 AudioQueueSetProperty(pAqData->mQueue, kAudioQueueProperty_TimePitchAlgorithm, &timePitchAlgorithm, sizeof(timePitchAlgorithm));
...