Как позволить iPhone генерировать звук определенной частоты и амплитуды? - PullRequest
2 голосов
/ 18 ноября 2011

Мне нужно, чтобы мой iPhone на короткое время генерировал постоянный звук определенной частоты и амплитуды. Затем я слышу звук через наушники. Что мне делать?

Ответы [ 2 ]

1 голос
/ 19 ноября 2011

Используйте API Audio Queue или RemoteIO Audio Unit. Заполните буферы обратного вызова выборками синусоидальной волны соответствующей частоты:

buffer[i] = myVolume * sinf( twoPiFrequencyOverSampleRate * i );

Сохраните фазу между обратными вызовами, чтобы избежать кликов.

1 голос
/ 18 ноября 2011

Самый простой подход - просто воспроизвести семпл, который уже находится на необходимой частоте. Если вы используете OpenAL, то вы можете отрегулировать высоту от половины до двойной. Итак, скажем, у вас есть звуковой сигнал с частотой 440 Гц, тогда OpenAL позволяет воспроизводить звуковые сигналы от 220 Гц до 880 Гц. Для непрерывного тона я бы использовал другой сэмпл, опять же с известной частотой, но подходящий для зацикливания, и воспроизвел его зацикленным (снова с использованием OpenAL).

Любой синтезатор должен быть способен воспроизводить основные тоны на известных частотах. Если у вас есть доступ к Sound Forge, вы можете использовать Tools / Synthesis / Simple для генерации простых тонов.

вот ссылка, которая поможет вам

http://atastypixel.com/blog/using-remoteio-audio-unit/

...