Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_dsp_openal: OpenAL output for foobar2000 v1.1 (Read 8237 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_dsp_openal: OpenAL output for foobar2000 v1.1

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/

OpenAL Driver for Creative Sound Blaster:
http://connect.creativelabs.com/openal/Downloads/oalinst.zip

P.S.: I have a weak knowledge in programming, so the support will not be.

 

foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #1
Interesting idea for bypassing the fact that output services are not publically documented.

foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #2
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.

foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #3
Your source package could be significantly reduced in size if you omit unnecessary files...

Thanks, kode54! I have reduced source code package.

foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #4
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/

OpenAL Driver for Creative Sound Blaster:
http://connect.creativelabs.com/openal/Downloads/oalinst.zip


I have written new version 0.02, that supports also 16 bit output mode.

foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #5
New version available: 0.04 (beta).
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;

Re: foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #6
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)?

Re: foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #7
Up, now it is even more needed due to the 64bit switch

Re: foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #8
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.

Re: foo_dsp_openal: OpenAL output for foobar2000 v1.1

Reply #9
Now that output services are documented, would it be possible to make as a native output source component?