Feature #1314

OpenAL environment effects on Mac OS X

Added by rti about 7 years ago. Updated about 7 years ago.

Status:New Start date:06/06/2011
Priority:Normal Due date:
Assignee:- % Done:

0%

Category:OS: Mac
Target version:-

Description

One way could be ASA (Apple Spatial Audio Extension)
http://developer.apple.com/library/mac/#samplecode/OpenALExample/Introduction/Intro.html

Another way could be OpenAL soft
http://kcat.strangesoft.net/openal.html


Related issues

related to Ryzom - Feature #167: Implement occlusion and obstruction in sound drivers Assigned 11/03/2008
related to Ryzom - Feature #168: Environment room size does not work the same under differ... Assigned 11/03/2008
related to Ryzom - Bug #1298: Crash assert in simple_sound when entering guild hall Feedback 05/22/2011

History

#1 Updated by rti about 7 years ago

On the first glance, OpenAL soft looks quite promising.

NLSOUND output with Apple's OpenAL.framwork:

DBG 70e8fca0 audio_mixer_user.cpp 352 initDriver <Unknown> : AM: Init Driver 'OpenAL' ('openal')...
INF 70e8fca0 sound_driver.cpp 108 createDriver <Unknown> : Creating statically linked sound driver OpenAL
DBG 70e8fca0 ext_al.cpp 25 alExtInit <Unknown> : AL: Initializing extensions
DBG 70e8fca0 audio_mixer_user.cpp 407 initDevice <Unknown> : AM: Init Device...
DBG 70e8fca0 sound_driver_al.cpp 300 initDevice <Unknown> : AL: Opening device: 'NULL'
DBG 70e8fca0 sound_driver_al.cpp 303 initDevice <Unknown> : AL: ALC_DEVICE_SPECIFIER: 'Built-in Output'
DBG 70e8fca0 sound_driver_al.cpp 320 initDevice <Unknown> : AL: AL_VERSION: '1.1', AL_RENDERER: 'Software', AL_VENDOR: 'Apple Computer Inc.'
DBG 70e8fca0 sound_driver_al.cpp 321 initDevice <Unknown> : AL: AL_EXTENSIONS: AL_EXT_OFFSET AL_EXT_LINEAR_DISTANCE AL_EXT_EXPONENT_DISTANCE AL_EXT_float32 AL_EXT_STATIC_BUFFER
DBG 70e8fca0 ext_al.cpp 40 alExtInitDevice <Unknown> : AL: Initializing device extensions
DBG 70e8fca0 sound_driver_al.cpp 331 initDevice <Unknown> : AL: EAX-RAM: Not available, ALC_EXT_EFX: Not available
DBG 70e8fca0 sound_driver_al.cpp 337 initDevice <Unknown> : AL: Max. sources: 256, Max. effects: 0
WRN 70e8fca0 sound_driver_al.cpp 343 initDevice <Unknown> : AL: ALC_EXT_EFX is required, environment effects disabled
WRN 70e8fca0 audio_mixer_user.cpp 437 initDevice <Unknown> : AM: OptionEnvironmentEffects not available, _UseEax = false

NLSOUND output with OpenAL soft:

DBG 70e8fca0 audio_mixer_user.cpp 352 initDriver <Unknown> : AM: Init Driver 'OpenAL' ('openal')...
INF 70e8fca0 sound_driver.cpp 108 createDriver <Unknown> : Creating statically linked sound driver OpenAL
DBG 70e8fca0 ext_al.cpp 25 alExtInit <Unknown> : AL: Initializing extensions
DBG 70e8fca0 audio_mixer_user.cpp 407 initDevice <Unknown> : AM: Init Device...
DBG 70e8fca0 sound_driver_al.cpp 300 initDevice <Unknown> : AL: Opening device: 'NULL'
DBG 70e8fca0 sound_driver_al.cpp 303 initDevice <Unknown> : AL: ALC_DEVICE_SPECIFIER: '(null)'
DBG 70e8fca0 sound_driver_al.cpp 320 initDevice <Unknown> : AL: AL_VERSION: '1.1 ALSOFT 1.13', AL_RENDERER: 'OpenAL Soft', AL_VENDOR: 'OpenAL Community'
DBG 70e8fca0 sound_driver_al.cpp 321 initDevice <Unknown> : AL: AL_EXTENSIONS: AL_EXT_DOUBLE AL_EXT_EXPONENT_DISTANCE AL_EXT_FLOAT32 AL_EXT_IMA4 AL_EXT_LINEAR_DISTANCE AL_EXT_MCFORMATS AL_EXT_MULAW AL_EXT_MULAW_MCFORMATS AL_EXT_OFFSET AL_EXT_source_distance_model AL_LOKI_quadriphonic AL_SOFTX_buffer_samples AL_SO
DBG 70e8fca0 ext_al.cpp 40 alExtInitDevice <Unknown> : AL: Initializing device extensions
DBG 70e8fca0 sound_driver_al.cpp 331 initDevice <Unknown> : AL: EAX-RAM: Not available, ALC_EXT_EFX: Present
DBG 70e8fca0 sound_driver_al.cpp 337 initDevice <Unknown> : AL: Max. sources: 256, Max. effects: 1
DBG 70e8fca0 effect_al.cpp 68 setEnvironment <Unknown> : AL: CStandardReverbEffectAL::setEnvironment, size: 100.000000
DBG 70e8fca0 audio_mixer_user.cpp 494 initDevice <Unknown> : AM: Reverb OK

#2 Updated by kervala about 7 years ago

Do you think if we'll use OpenAL soft under Mac OS X it could fix the crashes ?

Under Linux, OpenAL soft is the default lib under most of Linux distros.

Under Windows, we have choice between proprietary OpenAL drivers from Creative (in software for non-Creative cards) or OpenAL soft.

Perhaps it could be a great idea to completely switch to OpenAL soft for all platforms by default.

#3 Updated by rti about 7 years ago

As described in #1298 it indeed fixed a crash on the first glance. Needs further testing I think.

Yes, unifying the OpenAL implementation could make stuff easier. :)

#4 Updated by rti about 7 years ago

While talking about testing... if someone wants to test:

http://files.rtti.de/ryzom-core-client-0.8.0.1588-ALsoft.app.zip

This version contains the OpenAL soft library.
Also, the workaround for #1116 from r1562 is removed in this build.

#5 Updated by rti about 7 years ago

Known problems with the OpenAL soft build:

  • occasional "Stream Overflow Error" exceptions, mainly while/after teleporting
  • #1157 Missing Textures - Too many open files

#6 Updated by rti about 7 years ago

  • Too strong reverb effect

#7 Updated by rti about 7 years ago

This is a new build with OpenAL soft backend. If someone wants to test, please report any problem.

http://files.rtti.de/ryzom-core-client-0.8.0.1610-ALsoft.app.zip

  • This build contains a workaround for the file descriptor limitation
    • I am in dialog with KittyCat at #openal to find a clean solution

Remaining known issues:

  • occasional "Stream Overflow Error" exceptions, mainly while/after teleporting
  • Too strong reverb effect

#8 Updated by rti about 7 years ago

KittyCat from #openal fixed the file descriptor limitation problem and it works great.
You can get this openal soft version using:

git clone git://repo.or.cz/openal-soft.git openal-soft

#9 Updated by kervala about 7 years ago

rti wrote:

KittyCat from #openal fixed the file descriptor limitation problem and it works great.
You can get this openal soft version using:
[...]

Great news, thanks :)

Also available in: Atom PDF