OpenAL output for foobar2000 v1.1.
This is an experimental plugin for testing only, use at your own risk!
This plugin supports only 32 bit integer OpenAL output,
so it convert foobar2000's 32 bit float wav data to 32 bit integer wav.
Supports 1.0, 2.0, 4.0, 5.0, 5.1, 6.1, 7.1 channels output.
Sample rate depends on your sound card.
Works only with default OpenAL device.
Tested on Creative Sound Blaster X-Fi XtremeMusic under Win7x64.
Use from DSP Manager, also set output device to NULL Output.
http://sourceforge.net/projects/foobar-openal/ (http://sourceforge.net/projects/foobar-openal/)
OpenAL Driver for Creative Sound Blaster:
http://connect.creativelabs.com/openal/Downloads/oalinst.zip (http://connect.creativelabs.com/openal/Downloads/oalinst.zip)
P.S.: I have a weak knowledge in programming, so the support will not be.
Interesting idea for bypassing the fact that output services are not publically documented.
Your source package could be significantly reduced in size if you omit unnecessary files. For instance, the IntelliSense database (.SDF) which is auto generated by the IDE, the solution settings file (.SUO), the user specific project settings files (.VCXPROJ.USER), the resource editor automation file (.APS), and most importantly, the precompiled header cache files (the IPCH folder, located in the same folder as the .SLN file), which are also automatically generated by the compiler whenever the project is completely rebuilt, or partially regenerated whenever one of the included header files is modified.
Keeping a separate copy of the source tree without these files should make things easier to package up recursively, although you could create an exclusions mask file for 7-zip to process when packing up the files instead.
That should reduce the source distribution down to about 14.6KB.
Your source package could be significantly reduced in size if you omit unnecessary files...
Thanks, kode54! I have reduced source code package.
OpenAL output for foobar2000 v1.1.
This is an experimental plugin for testing only, use at your own risk!
This plugin supports 16 bit or 32 bit fixed point OpenAL output,
so it converts foobar2000's 32 bit float wav data to 16 or 32 bit integer wav.
Supports 1.0, 2.0, 4.0, 5.0, 5.1, 6.1, 7.1 channels output.
Sample rate depends on your sound card.
Works only with default OpenAL device.
Tested on Creative Sound Blaster X-Fi XtremeMusic under Win7x64.
Use from DSP Manager, also set output device to NULL Output.
http://sourceforge.net/projects/foobar-openal/ (http://sourceforge.net/projects/foobar-openal/)
OpenAL Driver for Creative Sound Blaster:
http://connect.creativelabs.com/openal/Downloads/oalinst.zip (http://connect.creativelabs.com/openal/Downloads/oalinst.zip)
I have written new version 0.02, that supports also 16 bit output mode.
New version available: 0.04 (beta).
http://sourceforge.net/projects/foobar-openal/ (http://sourceforge.net/projects/foobar-openal/)
Changes since 0.02:
- reworked buffering algorithm;
- now uses a fixed buffer size (works with all sound devices in my pc);
- added device selector;
- added buffer size selector;
- fixed some crashes with non supported settings;
Known issues:
- possible crashes;
- possible noise on non supported sample rates (e.g. on Generic Software with 88200 Hz, 176400, ...)
- foobar2000 volume control don't work with this plugin;
Can someone update the plugin with the new Foobar SDK to achieve perfect compatibility (and being OpenAL Soft now finally mature enough - 1.22 - to avoid proprietary OpenAL implementations)?
Up, now it is even more needed due to the 64bit switch
If ASIO is already possible to use on x64 version of F2K, you can use Crystal Mixer instead of this plugin (it even uses OpenAL Soft):
https://crystal-mixer.sourceforge.net/
It does generally the same as this plugin, and I think it even comes from the same author, seeing by the GUI and his annotation on SourceForge.
In current state of both plugins, yes, there are some changes in sound of Creatives OAL in this plugin vs OAL Soft in Crystal Mixer.
As for foo_dsp_openal, it may use Creative OAL library in some bult-in way, because, opposing to Crystal Mixer, it doesn't use any system library during playback. I checked deleting ct_oal.dll in my system, which was mentioned by the OP, and I think even oal_soft.dll, soft_oal.dll, OpenAL32.dll but none of these is used and write protected while playing.
Crystal Mixer uses OpenAL Soft's soft_oal.dll, and you can replace it yourself to even newer, updated version of OpenAL Soft library than it is shipped with the Crystal Mixer (which apparently the program updates during the installation into your system folder). It is used by ASIOHost64.exe during playing.
You can even experiment with replacing it using modified OpenAL Soft library with WASAPI-exclusive mod
https://github.com/ThreeDeeJay/openal-soft/releases/tag/1.22.2-WASAPI-exclusive
I don't really know why and how it works in this case, but it works. Apparently what's happening here is:
[F2K]>[ASIO>Crystal Mixer]>[OpenAL Soft>WASAPI Exclusive]
and that library replaced over stock, also somehow affects the sound when used with Crystal Mixer set in F2K.
Now that output services are documented, would it be possible to make as a native output source component?