- Joined
- Jan 14, 2008
- Messages
- 9,196
- Reaction score
- 1,538
- Points
- 203
- Location
- VA
- Website
- alteaaerospace.com
- Preferred Pronouns
- he/him
Hi all! I'm pleased to announce that XRSound 3.0 is now public on GitHub as open source. EDIT 3-Aug-2021: XRSound is now a direct part of the open-source Orbiter repository here: https://github.com/orbitersim/orbiter/tree/main/Sound/XRSound 
The only major change so far for version 3.0 is that, for licensing reasons with the irrKlang sound engine that XRSound uses, XRSound must now be linked dynamically, and thus it now requires that the Visual Studio 2019 redistributable files be installed by end users in order to use it. However, this is much less of an issue going forward now that the new open-source Orbiter core will also require the VS 2019 redistributable files, and so users must already have that installed anyway in order to run the new Orbiter. As such, I also switched XRSound.lib's build settings to generate code for dynamic linking ("Multithreaded DLL" for release builds and "Multithreaded Debug DLL" for debug builds) instead of static linking. This means that new vessels that link with the new XRSound.lib to play custom sounds will now need to use dynamic linking instead of static linking. However, note that XRSound.dll version 3.0 will work with existing vessel binaries linked with XRSound 1.x or 2.x. In addition, there are no new features or bugfixes in XRSound 3.0, so there is no need to update from version 2.0 unless you want to play around with the open-source 3.0 version or use the upcoming 64-bit version.
Regarding 64-bit support for XRSound 3.0, I added 64-bit build targets and have the code compiling cleanly in 64-bit mode. However, I have not tested it with 64-bit Orbiter yet because I still need to get Orbiter x64 to run on its own on my local machine. I'll dig into that more this coming week, but the new 32-bit XRSound 3.0 build is working fine in my testing so far. I will be updating my Web site with the open-source announcement this coming week.
One last thing to note: as a result of cleaning up some VS 2019 warnings in the XRSound codebase, there is one breaking compile-time change in XRSound 3.0 vs. 2.0 when you recompile your existing vessel with the 3.0 XRSound.lib, which is that the PlaybackType enum is now a class instead of an unscoped enum; e.g., XRSound:: PlaybackType::InternalOnly instead of 2.0's XRSound::InternalOnly. However, that is easy to update in your vessel's source code with search-and-replace, and there are no other breaking 3.0 changes I'm aware of.
A huge thanks again to Dr. Martin Schweiger for his amazing Orbiter program and for releasing it under the MIT license. Orbiter has a bright future!
Happy Orbiting!
The only major change so far for version 3.0 is that, for licensing reasons with the irrKlang sound engine that XRSound uses, XRSound must now be linked dynamically, and thus it now requires that the Visual Studio 2019 redistributable files be installed by end users in order to use it. However, this is much less of an issue going forward now that the new open-source Orbiter core will also require the VS 2019 redistributable files, and so users must already have that installed anyway in order to run the new Orbiter. As such, I also switched XRSound.lib's build settings to generate code for dynamic linking ("Multithreaded DLL" for release builds and "Multithreaded Debug DLL" for debug builds) instead of static linking. This means that new vessels that link with the new XRSound.lib to play custom sounds will now need to use dynamic linking instead of static linking. However, note that XRSound.dll version 3.0 will work with existing vessel binaries linked with XRSound 1.x or 2.x. In addition, there are no new features or bugfixes in XRSound 3.0, so there is no need to update from version 2.0 unless you want to play around with the open-source 3.0 version or use the upcoming 64-bit version.
Regarding 64-bit support for XRSound 3.0, I added 64-bit build targets and have the code compiling cleanly in 64-bit mode. However, I have not tested it with 64-bit Orbiter yet because I still need to get Orbiter x64 to run on its own on my local machine. I'll dig into that more this coming week, but the new 32-bit XRSound 3.0 build is working fine in my testing so far. I will be updating my Web site with the open-source announcement this coming week.
One last thing to note: as a result of cleaning up some VS 2019 warnings in the XRSound codebase, there is one breaking compile-time change in XRSound 3.0 vs. 2.0 when you recompile your existing vessel with the 3.0 XRSound.lib, which is that the PlaybackType enum is now a class instead of an unscoped enum; e.g., XRSound:: PlaybackType::InternalOnly instead of 2.0's XRSound::InternalOnly. However, that is easy to update in your vessel's source code with search-and-replace, and there are no other breaking 3.0 changes I'm aware of.
A huge thanks again to Dr. Martin Schweiger for his amazing Orbiter program and for releasing it under the MIT license. Orbiter has a bright future!

Happy Orbiting!
Last edited: