Большинство простых и низкоуровневых аудио-библиотек (например, OpenAL, SDL и т. Д.) Могут легко воспроизводить сигналы PCM. Вы заполняете буфер волной, которую хотите играть, и воспроизводите ее. Чтобы сделать форму волны из таких вещей, как частота и громкость и многое другое, вам нужно написать немного кода (возможно, пару строк для простых волн) и знать основную тригонометрию.
OpenAL - это кросс-платформенный API, ориентированный на 3D-игры. Его интерфейс философски похож на OpenGL и предоставляет функции для управления аудиоисточниками в виртуальной 3D-среде (положение, скорость и т. Д.) И предоставляет некоторые эффекты звука и среды (реверберация и т. Д.). Я знаю, что он может декодировать некоторые сжатые форматы (MP3, Vorbis, ...) с использованием расширений, но я не уверен, есть ли у него какие-либо функции кодирования.
SDL (или простой слой с прямым медиа) также является кросс-платформенным и ориентированным на игры, но он предлагает гораздо больше, чем аудио. Но любая функциональность, которую он предлагает, является очень простой, и это преднамеренно и по дизайну. SDL - это уровень абстракции платформы. Это звуковые возможности, также очень простые и низкоуровневые; обеспечивая только воспроизведение и запись волн ИКМ. Конечно, есть библиотеки расширений (например, SDL_mixer), которые имеют больше функциональности.
Ссылки:
- OpenAL on Wikipedia
- OpenAL homepage (кажется вниз, по состоянию на Aug 5, 2013)
- OpenAL Soft, вилка библиотеки OpenAL доступны Creative Labs
- SDL homepage
- SDL_mixer
Насколько я знаю, оба проекта отправляют документацию и примеры вместе с их исходным кодом, поэтому вы можете захотеть получить их исходный код и начать экспериментировать.
Если я понял, что вы хотите сделать правильно, любая из этих библиотек может делать то, что вы хотите довольно легко, но, по моему личному мнению, SDL проще и проще в использовании (если вы не хотите 3D позиционного звука и эффектов .)
Простые и низкоуровневые аудио-библиотеки (например, OpenAL, SDL и т. Д.) Могут легко воспроизводить формы * PCM *. Вы заполняете буфер волной, которую хотите играть, и воспроизводите ее. Чтобы сделать форму волны из таких вещей, как частота и громкость и многое другое, вам нужно написать немного кода (возможно, пару строк для простых волн) и знать основную тригонометрию. – yzt
@yzt Знаете ли вы какие-либо ссылки на это для OpenAL? Единственное, что я могу найти, это загрузить файлы wav ... –
Похоже, вы думаете о команде 'PLAY', доступной в некоторых версиях Basic. Посмотрите на http: // stackoverflow.com/q/11355353/103167 –