Портативная библиотека для воспроизведения сэмплов на отдельных каналах 5.1 с C / C ++? - PullRequest
1 голос
/ 06 апреля 2011

Я ищу бесплатную портативную библиотеку C или C ++, которая позволяла бы мне воспроизводить монофонические сэмплы на определенных каналах в настройке 5.1. Например, звук должен воспроизводиться через левый передний динамик, при этом все остальные динамики остаются тихими. Есть ли какая-нибудь библиотека, способная сделать это?

Я посмотрел на OpenAL. Однако я могу указать только позицию, из которой должен исходить звук, но мне кажется, что я не могу сказать что-то вроде «использовать только передний левый канал для воспроизведения этого звука».

Любые советы приветствуются!

Ответы [ 4 ]

3 голосов
/ 06 апреля 2011

Я посмотрел на OpenAL. Однако я могу указать только позицию, из которой должен исходить звук, но мне кажется, что я не могу сказать что-то вроде «использовать только передний левый канал для воспроизведения этого звука».

Я не думаю, что это правда. Я думаю, что вы можете сделать это с OpenAL, хотя это не тривиально. OpenAL работает только с позиционными данными, если вы подаете данные формата mono. Если вы установите стерео или выше, он воспроизводит данные так, как они были предоставлены. Однако вам гарантирована только поддержка стерео. Вам нужно проверить, доступно ли в вашей системе расширение формата 5.1 (AL_FORMAT_51CHN16). Если так, то я думаю, что вы подаете свой звук на нужный канал и подаете нули на все остальные каналы, когда вы буферизируете семплы. Обратите внимание, что вам нужна аппаратная поддержка для звуковой карты. Устройство «универсального программного обеспечения» его не обрежет.

См. это обсуждение из списка рассылки OpenAL.

В качестве альтернативы я думаю, что PortAudio является открытым, кроссплатформенным и поддерживает многоканальный выход. Вам все еще нужно чередовать данные, чтобы при отправке звука на один канал вы отправляли нули всем остальным. При открытии потока на устройстве вам также необходимо будет выполнить некоторую проверку, чтобы убедиться, что устройство поддерживает 6 каналов вывода.

0 голосов
/ 07 апреля 2011

Я использую BASS Audio Library http://www.un4seen.com для всех моих аудио, звуковых и музыкальных проектов. Я очень счастлив с этим.

BASS - это звуковая библиотека, предоставляющая разработчикам мощный и эффективный сэмпл, поток (MP3, MP2, MP1, OGG, WAV, AIFF, сгенерированный пользователем и т. Д. С помощью надстроек), MOD музыку (XM, IT, S3M) , MOD, MTM, UMX), музыка MO3 (сжатые MOD / MP3 / OGG) и функции записи. Все в крошечной DLL, размером до 100 КБ *. Доступны C / C ++, Delphi, Visual Basic, MASM, .Net и другие API. BASS доступен для платформ Windows, Mac, Win64, WinCE, Linux и iOS.

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

Основные характеристики

  • Сэмплы Поддержка WAV / AIFF / MP3 / MP2 / MP1 / OGG и сгенерированных пользователем сэмплов

  • Потоки семплов Поток любых данных семплов в 8/16/32 бит, как в «push», так и в «pull» системах. Потоки файлов Потоковое воспроизведение файлов MP3 / MP2 / MP1 / OGG / WAV / AIFF. Интернет-потоковая передача файлов . Потоковая передача данных с HTTP и FTP-серверов (в том числе Shoutcast, Icecast и Icecast2) с поддержкой IDN и прокси-серверов и настраиваемой буферизацией ** Потоковая передача пользовательских файлов ** Потоковая передача данных из любой точки мира с использованием любого метода доставки с использованием как «push», так и «pull» систем

  • Многоканальный Поддержка более чем простого стерео, включая многоканальные файлы OGG / WAV / AIFF

...

  • Несколько выходов Одновременно используйте несколько звуковых карт и перемещайте каналы между ними

  • Назначение громкоговорителей Назначение потоков и музыки MOD для определенных громкоговорителей, чтобы использовать преимущества аппаратного обеспечения, способного воспроизводить не только обычное стерео (до 4 отдельных стерео выходов со звуковой картой 7.1)

  • 3D-звук Воспроизведение сэмплов / потоков / музыки в любом 3D-положении

Лицензирование

BASS бесплатен для некоммерческого использования. Если вы некоммерческая организация (например, физическое лицо) и не зарабатываете деньги на своем продукте (через продажи, рекламу и т. Д.), То вы можете использовать BASS в нем бесплатно. В противном случае потребуется одна из следующих лицензий.

0 голосов
/ 06 апреля 2011

http://fmod.org может сделать тоже самое

0 голосов
/ 06 апреля 2011

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

...