Программирование игр, создание игрового движка, OpenGL, DirectX, физика, форум
GameDev.ru / Программирование / Форум / Выбор бесплатного звукового API

Выбор бесплатного звукового API

Поделиться
Daniil PetrovПостоялецwww4 авг. 20163:48#0
Всем категорический привет!
Хотел бы послушать ваши мнения относительно бесплатных звуковых API - что вы используете и почему :)

Пока я склоняюсь к OpenAL в виду его простоты, но не знаю, какой именно выбрать - софтварный или от Creative?..
Креативовский уже устарел - версия 1.1, хотя рантайм библиотека аж версии 2.1, но у него есть все необходимые примеры и фреймворк для работы с ним и даже Ogg Vorbis, плюс поддержка EAX HD.
Софварный более современный, но у него отсутствуют примеры и поддержка EAX HD, плюс нет аппаратной поддержки.
Вроде как все плюсы и минусы перечислил, если что упустил, буду рад вашим дополнениям :)

P.S. желательно без ALUT, но не категорично.

Правка: 4 авг. 2016 4:03

ronnikoЗабаненwww4 авг. 20167:02#1
XAUDIO2
DirectSound
Daniil PetrovПостоялецwww4 авг. 20168:05#2
ronniko
> XAUDIO2
Я использую XInput, если проект компилировать с заголовочным файлом, идущим с Visual Studio, программа требует библиотеку версии не ниже Windows 8, а чтобы она запускалась на Windows 7, приходится вместо него включать заголовочный файл из DirectX SDK (June 2010), а здесь не та же песня?
И реально ли найти пример стриминга звука из FFmpeg в XAudio? Для OpenAL я такой нашёл :)

Правка: 4 авг. 2016 9:05

Саша123Забаненwww4 авг. 20169:02#3
bass + opus
Daniil PetrovПостоялецwww4 авг. 201610:27#4
Кстати, на сайте OpenAL Soft написано, что библиотека не поддерживает Vorbis, а к креативовскому OpenAL идёт урок, который при подключении соответствующих заголовков и использовании соответствующих библиотек вполне воспроизводит Ogg Vorbis!
Не значит ли это, что креативовская версия по сути его тоже не поддерживает и точно таким же образом оно пойдёт и через софтварный OAL?
romgermanПостоялецwww4 авг. 201612:18#5
Daniil Petrov
> плюс поддержка EAX HD
Разве эта штука не поддерживалась только определенными звуковыми картами? И она вроде уже давно устарела.
Саша123Забаненwww4 авг. 201612:30#6
romgerman
> И она вроде уже давно устарела.
According to Creative's OpenAL 1.1 specification, EAX should be considered deprecated as a developer interface. - https://en.wikipedia.org/wiki/Environmental_Audio_Extensions#Future_development
Скорее, просто умерла, потому что взамен ничего не дали.
Её фича - 3Д-звук на двух источниках, вместо как минимум 4 при стандартном подходе.
Почему умерла, надо разбираться. Я склоняюсь к версии, что всё решили деньги - есть же разница между одними наушниками и четырьмя колонками + сабвуфер? А если есть возможность снять с покупателя в 10 раз больше, то зачем снимать меньше.
Саша123Забаненwww4 авг. 201612:34#7
А, чёрт, перепутал с A3D - https://en.wikipedia.org/wiki/A3D
slava_mibМодераторwww4 авг. 201613:06#8
Daniil Petrov, тебе именно бесплатный нужен? Для каких целей? Просто многие "платные" двиги бесплатны для инди (например http://www.fmod.org/sales/ )
Daniil PetrovПостоялецwww4 авг. 201614:20#9
romgerman
> Разве эта штука не поддерживалась только определенными звуковыми картами? И она вроде уже давно устарела.
OpenAL до сих пор поддерживается всеми игровыми картами, а SB и EAX HD 5.0 держит... для себя, думаю, можно использовать, но большинству уже не похвастаешь результатом :) ну хотя бы даже без EAX HD, просто аппаратный OpenAL...

slava_mib
> тебе именно бесплатный нужен? Для каких целей?
Выводить звук из FFmpeg и 3D-звук с эффектами, а бесплатный, потому что делаю движок для себя, в качестве повышения квалификации в разработке игр на UE4.

Правка: 4 авг. 2016 14:40

Anders333Постоялецwww4 авг. 201615:31#10
я SFML  использую
Daniil PetrovПостоялецwww5 авг. 201614:48#11
А кто-нибудь знает максимальное количество источников OpenAL Soft? Креативовский ограничен только количеством источников звуковой карты!
TheLightWayПостоялецwww5 авг. 201618:03#12
Daniil Petrov
> А кто-нибудь знает максимальное количество источников OpenAL Soft?
У софтового это зависит от имплементации.
Вроде не по стандарту но работать должно
ALCint nummono, numstereo;
alcGetIntegerv(device, ALC_MONO_SOURCES, 1, &nummono);
alcGetIntegerv(device, ALC_STEREO_SOURCES, 1, &numstereo);
Daniil PetrovПостоялецwww6 авг. 20161:56#13
TheLightWay
Спасибо :)

/ Форум / Программирование игр / Звук

2001—2017 © GameDev.ru — Разработка игр