foobar2000 OpenAL output component



Important note regarding an updated version compatible with foobar2000 0.9x:


There is currently NO version of the OpenAL output component for foobar 0.9x, the reason is that the SDK is in a very early state and that there is NO support for 3rd party output components. From the foobar2000 forum http://www.hydrogenaudio.org/forums/index.php?showtopic=42612# :

<snip>

Peter (foobar2000 developer)


"In my opinion, current "output API" as used by the Kernel Streaming output is not ready for SDK inclusion and should not be used because of various design issues (flooding device list, no proper output switcher GUI) and will likely change with upcoming 0.9.X releases."

</snip>

In other words, there will be NO 3rd party output components for foobar2000 0.9. So for now, please stay with foobar2000 0.83 if you want to use OpenAL as output API.

Update : Started a forum thread about it, read it here :    http://www.hydrogenaudio.org/forums/index.php?act=ST&f=34&t=43929



Current versions :   

V 0.81 (09.04.2004)

Download :

Download the latest version for foobar2000 V0.8x by clicking on this link :

foo_output_oal.zip


Requirements :

The OpenAL output component has the following software requirements .
  1. The foobar2000 V0.8x application.
Installation :

Follow these steps to install and run the OpenAL component :

  1. Unpack the ZIP file to a temporary directory.
  2. Copy the DefOpenAL32.DLL to your foobar2000 installation directory. (this can be skipped if the soundcard supports OpenAL through driver DLL. If unsure, copy the DLL, it won't harm.)
  3. Copy the foo_output_oal.dll to the "component" subdirectory of your  foobar2000 installation directory.
  4. You need the C-Runtime DLL MSVCR71.DLL to run the component. If you don't have it download it here and copy it to your Windows/sytem(32) directory.
  5. Start foobar2000, go to output preferences and choose OpenAL.
  6. The component should autodetect the best rendering mode, feel free to edit the options in the configuration dialog.


Known limitations :

There are some known limitations  :
  • This version is only tested on Creative Audigy hardware with latest drivers and emulation driver. Other hardware may or may not work.
  • Only support for 8 and 16 Bit fixed-point samples on non nVidia nForce soundchips. This is a limitation of the OpenAL API V1.0.  24/32 bit support through nVidia extension (nForce1/2 only but see problem below)
  • Only support for 1 or 2 channels. This is a limitation of the OpenAL API V1.0.
  • It won't work with nForce APU with current drivers (2.45 or below). This is a driver bug and NOT a bug in my component. I filed a bug report to nVidia but never received an answer from nVidia. I'm still waiting for an updated driver or any hint from nVidia...here is a decription of the bug as send to nVidia by mail  :
<snip>

Bug description :
 
It isn't possible to create a OpenAL hardware device after creating/destroying the same device before in one process. This sequence will fail :
 
alCreateDevice()
...
alDestroyDevice()
alCreateDevice()
 
The second alCreateDevice will return a NULL pointer, the creation fails.
 
I modified the OpenALEnum sample from the nVidia Audio SDK to show the bug. There are only two changes to the original sample code.
 
1. I changed the name of the device because the latest OpenAL driver has changed the name too.
2. I loop the original code 10 times, two times would be enough to show the bug. 
 
If there is any workaround for current drivers please let me know.

<snip>

Bug reports, comments and suggestions :

Please send your feedback to my email address     fb2k (at) bockholdt (dot) com

Use the official foobar2000 forum to discuss problems. You can find the forum here. I'm a regular visitor of this forum too.


Version history :
Links :

foobar2000 player :      http://www.foobar2000.org/

OpenAL Specification :    http://www.openal.org



Copyright 2003-2006 (C) Arne Bockholdt.  EMail : fb2k (AT) bockholdt (DOT) com