Реверберация с OpenAL на iOS
Есть ли возможный способ сделать реверберацию с помощью OpenAL на iOS? У кого-нибудь есть фрагменты кода для достижения этого эффекта? Я знаю, что она не включена в библиотеку OpenAL для iOS, но я думаю, что есть еще способ ее запрограммировать.
Благодарю.
2 ответа
Реверберация теперь изначально поддерживается в OpenAL (начиная с iOS 5.0). Вы можете просмотреть пример реализации проекта ObjectAL:
https://github.com/kstenerud/ObjectAL-for-iPhone
Просто возьмите самый последний источник из этого репозитория, загрузите "ObjectAL.xcodeproj" и запустите цель ObjectALDemo на любом устройстве iOS 5.0 (также должно работать на симуляторе).
Фактическая реализация лежит в двух местах:
- https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/OpenAL/ALListener.m
- https://github.com/kstenerud/ObjectAL-for-iPhone/blob/master/ObjectAL/ObjectAL/OpenAL/ALSource.m
Найдите в этих файлах слово "реверберация" (и соответствующие файлы заголовков), чтобы найти имя свойств и констант OpenAL, используемых для установки и управления эффектом реверберации.
Удачи!
Вы можете использовать предварительно обработанный звук, если ситуация позволяет это сделать. Если вы хотите сделать это в реальном времени, загляните в DSP. Там нет никакого способа сделать это из коробки, о которой я знаю.
Дополнительные API-интерфейсы для настольных систем, такие как EFX и EAX, используют аппаратную обработку сигналов. Возможно, в будущем эти портативные устройства будут реализовывать полноценные API-интерфейсы OpenAL и OpenGL, но на данный момент у нас есть урезанные версии по практическим причинам, таким как стоимость, срок службы батареи и т. Д.
Я уверен, что есть способ, но он не будет легким.