Как разработать приложение для iPhone с функцией реверберации? - PullRequest
6 голосов
/ 20 января 2011

Я занимаюсь разработкой приложения для iPhone (например, Audio Processing). Я должен дать некоторый эффект к аудио. Если это настольное приложение , есть много вариантов. Мы можем получить хорошие примеры и полный проект, такой как Audacity. Но я хочу разработать для iPhone.

Я получил приложение с опцией реверберации; (посмотрите на следующую ссылку). Просто смотрю "видео" , я не тестировал это приложение на своем устройстве iPhone.
http://www.appstorehq.com/reverb-iphone-89870/app

У меня вопрос; Как я могу разработать приложение с функцией реверберации? Есть ли документация для этого? Если это так, просто поделитесь с нами.

ПРИМЕЧАНИЕ: Мы можем использовать AudioUnit для разработки приложения с функцией реверберации (мне не ясно с этим).

РЕДАКТИРОВАТЬ: Я не люблю использовать сторонние библиотеки.

Если кто-то знает об этом, пожалуйста, поделитесь с нами.

Спасибо.

Ответы [ 7 ]

4 голосов
/ 25 февраля 2012

если вы нацелены на ios5, вы можете просто подтип аудиоустройства kAudioUnitSubType_Reverb2 аудиоустройства эффекта.

блок реверберации

AudioComponentDescription auEffectUnitDescription;
    auEffectUnitDescription.componentType = kAudioUnitType_Effect;
    auEffectUnitDescription.componentSubType = kAudioUnitSubType_Reverb2;
    auEffectUnitDescription.componentManufacturer = kAudioUnitManufacturer_Apple;

AUGraphAddNode(
                              processingGraph,
                              &auEffectUnitDescription,
                              &auEffectNode), 

Если вы не сможете просто написать свой собственный код реверберации в обратном вызове remoteio.Простая задержка может быть проще и звучит похоже.

3 голосов
/ 25 февраля 2012

iOS 5.0 имеет встроенную поддержку OpenAL, так что теперь это намного проще - вам не нужно кодировать алгоритм самостоятельно. Он также обеспечивает поддержку различных пространств реверберации:

  • Маленькая комната
  • Средний номер
  • Большой номер (2 конфигурации)
  • Средний зал (3 конфигурации)
  • Большой зал (2 конфигурации)
  • Тарелка
  • Средняя камера
  • Большая палата
  • Собор

Я предлагаю вам попробовать обертку ObjectAL, которая уже имеет отличную поддержку эффекта реверберации: https://github.com/kstenerud/ObjectAL-for-iPhone

Получите исходный код из этого репозитория, загрузите "ObjectAL.xcodeproj" и запустите цель ObjectALDemo на любом устройстве iOS 5.0 (также должно работать на симуляторе). Это даст вам хорошую отправную точку и ощущение того, на что способен эффект реверберации.

Если вы все еще не используете какую-либо стороннюю библиотеку, вы можете просто взять соответствующие фрагменты из ObjectAL. Найдите связанный с реверберацией код в следующих исходных файлах (и соответствующих им заголовках):

Удачи в вашем проекте!

1 голос
/ 03 февраля 2011

АС - хорошее место для начала.

написать свой собственный AU реверберации, который содержит реализацию реверберации. Есть множество способов реализации реверберации. Свертывание реверберации средней / длинной громкости очень важно для телефона, но для чего-то, например FDN (сеть с задержкой обратной связи), не потребуется много памяти или ЦП.

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

если вы не можете написать оптимальный низкоуровневый код или вы (в настоящее время) не понимаете основную обработку аудиосигнала, тогда вам придется преодолеть несколько препятствий - в этом случае это может быть большой путь.

0 голосов
/ 14 февраля 2011

Это ответ, который я дал раньше, но я считаю, что он уместен здесь.Я собираюсь согласиться с остальными и сказать, что вам придется немного ближе познакомиться с core-audio, если вы хотите сделать это правильно.

Я настоятельно рекомендую это core-audioкнига. Он научит вас, что нужно делать правильно, и избавит вас от многих разочарований.

Глава об аудиоэффектах еще не была опубликована, но если она похожа на остальную часть книги, то стоит подождать.

РЕДАКТИРОВАТЬ

Скорее всего, вам потребуется сделать это с аудиоэффектом (который является формой аудиоустройства).

0 голосов
/ 09 февраля 2011

вам нужно научиться кодированию на уровне DSP, с кулинарной книгой DSP все в порядке, и есть другие. Но в основном вам нужно уметь обрабатывать звуковой сигнал в частотной области и такие вещи, как БПФ. Как только вы это сделаете, реализация фильтра реверберации должна быть простой.

0 голосов
/ 25 января 2011

Ничего хорошего, я попробовал подход с аудиоустройством, и хотя он есть в документации, он еще не реализован инженерами Apple. Каждый раз, когда вы вызываете функцию для установки свойства реверберации, вы получите только код состояния ошибки. Вы должны будете реализовать свой собственный эффект реверберации. Попробуйте прочитать какую-нибудь книгу о DSP, и вы можете найти подсказку.

0 голосов
/ 20 января 2011

Поиск в документации iOS по «реверберации» приводит к ссылке на Core Audio Overview , которая ссылается на реверберацию как «единицу эффекта». Возможно, стоит продолжить изучение?

...