Полифоническое воспроизведение звука - PullRequest
4 голосов
/ 02 декабря 2008

Мне нужно воспроизведение аудио с этими функциями: хорошая производительность (для игры), контроль высоты тона и возможность наложения одного и того же сэмпла несколько раз в одно и то же время (полифония). Какой бы быстрый способ получить это на iphone SDK?


Вот что я узнал до сих пор:

Нет доступных библиотек или примеров кода, которые делают это, пожалуйста, покажите мне неправильно.

SoundEngine.cpp (из примеров кода CrashLanding и TouchFighter) использует OpenAL и позволяет контролировать высоту тона, но каждый раз, когда запускается буфер, если воспроизводится тот же буфер, его точка воспроизведения возвращается к началу.

Одно грязное решение для получения полифонии с SoundEngine.cpp, не вдаваясь в его реализацию (что мне непонятно), состоит в загрузке нескольких буферов для одного и того же звукового файла. Допустим, мне нужна полифония максимум 4 голосов на звук, затем я загружаю 4 буфера для одного и того же файла. Я просто должен был бы обернуть все это в классе менеджера. Безопасно ли идти по этому пути? И / или есть ли способ заставить SoundEngine.cpp быть полифоническим?

Ответы [ 2 ]

2 голосов
/ 15 декабря 2008

FMOD (www.fmod.org) предоставляет все эти функции. Посмотрите их пример виртуальных голосов для полифонии и эффекта DSP смещения высоты звука в документах.

Я просто клиент, никак не связанный с ними.

0 голосов
/ 08 июля 2009

SoundEngine от CrashLanding - беспорядок, я бы держался подальше от этого. Написание того, что вы хотите от OpenAL, не сложно, это несколько часов работы. Вы можете посмотреть на Finch или на Cocos 2D sound egine .

...