New Release XRSound 1.0 and Updated XR Vessels Released

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
That sounds much more like it's related to how the Orbiter core models the atmosphere of gas giants rather than anything XR vessel-specific: the XR1's lift profile is similar to the default DG's, and the XR2 and XR5 have even more left (empty) relative to the default DG, and lift is what determines aerobraking performance. I suggest you try your test with default DG and the XR1, and to create a new thread about it if you have issues since it's not XRSound-related in any case. :tiphat:
 

Ripley

Tutorial translator
Donator
Joined
Sep 12, 2010
Messages
2,893
Reaction score
10
Points
38
Location
Rome
Website
www.tuttovola.org
@all -- I don't have the Orbiter beta installed at the moment; can someone who has the latest Orbiter beta installed give this a quick test? If not, I'll see if I can get to it next week.
Can't help from here, no Orbiter, just sea!
 

Marijn

Member
Joined
Mar 5, 2008
Messages
582
Reaction score
6
Points
18
Location
Amsterdam
Edit: Never mind, I see that this question is already answered in previous posts..

Hello,

Today I wanted to mute the 'you are cleared to land' callout at 1500 meters for the XR5 in the XRSound\XRsound.cfg file by setting: YouAreClearedToLand = none

That did not work. I don't have a vessel specific XRSound file either which could override anything. I could not change the wav file either.

I found that I could mute the callout by setting 'ClearedToLandCallout=0' in the Config\XR5VanguardPrefs.cfg file.

There seem to be more settings which do not work as I was expecting in the XRSound.cfg file like the WarningGearIsUp and WarningGearIsUpAltitude which I cannot set to anything else.

I noticed the AudioGreeting = XRSound\Default\Welcome Aboard All Systems Nominal.wav is not the actual wav file which is played, which is the Welcome Aboard All Vanguard Systems Nominal.wav

Am I overlooking something? Thanks

Edit: XRSound1.1 and XR5Vanguard-1.13
 
Last edited:

Marijn

Member
Joined
Mar 5, 2008
Messages
582
Reaction score
6
Points
18
Location
Amsterdam
I think I understand the current features better now. But it's a bit confusing I must say.

These bullets raise my expectations

  • Automatically adds default sounds for any Orbiter vessel that defines thrusters -- not just XR vessels! You can also manually assign sounds to any vessel class via its XRSound-<vessel class>.cfg file; e.g., XRSound-DeltaGlider.cfg.
  • Each sound or group of sounds is fully configurable via XRSound.cfg and optional Orbiter vessel class-specific config files, or via the XRSound SDK (included).


  • Then it becomes clear that some restrictions exist

    Remember that XRSound.cfg only configures default sounds that XRSound plays automatically for vessels: XR vessels explicitly disable the default audio greeting callout that XRSound makes because they handle the callout themselves.
    The problem I am having with this is that the XR vessels configurable settings appear not to be the same bunch as in XRSound. For example, I was happy to see the 'WarningGearIsUpAltitude = 275' setting in XRSound. Because in my flights in the XR's, this warning always plays shortly after I deployed the gear. Both audio files are played at the same time which is annoying.

    But setting WarningGearIsUpAltitude to any other value is not applied by any XR vessel. The audio file is always played at 275ft and cannot be changed in any way. No other file, no other volume.

    So it seems to me that these new features are not available to XR vessels, which I was not expecting from a mod called XRSound.
 

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
The problem I am having with this is that the XR vessels configurable settings appear not to be the same bunch as in XRSound. For example, I was happy to see the 'WarningGearIsUpAltitude = 275' setting in XRSound. Because in my flights in the XR's, this warning always plays shortly after I deployed the gear. Both audio files are played at the same time which is annoying.
I don't follow you here -- do you mean you hear two simultaneous gear-up warning callouts when flying an XR vessel? I just tested that here and only one warning callout plays, as expected. If you're hearing two sets of sounds play, please retest that in a clean installation and post a scenario, and I'll see if I can reproduce it.

But setting WarningGearIsUpAltitude to any other value is not applied by any XR vessel. The audio file is always played at 275ft and cannot be changed in any way. No other file, no other volume.

So it seems to me that these new features are not available to XR vessels, which I was not expecting from a mod called XRSound.
This is by design since the sound handling and sound settings in the XR vessels were not changed when I ported the vessels to use XRSound: XR vessels still play all their own sounds and so those sounds are configured on a per-vessel-class (as well as a per-scenario basis) as they have always been. Removing all that existing sound logic in the XR vessel code would be a lot of work for minimal benefit, and we would lose some features, too: there are only a few configuration settings new to XRSound.cfg that are not already present in the XR vessels, and we would lose the ability to optionally configure XR vessel sound settings on a per-scenario basis.
 

Marijn

Member
Joined
Mar 5, 2008
Messages
582
Reaction score
6
Points
18
Location
Amsterdam
I don't follow you here -- do you mean you hear two simultaneous gear-up warning callouts when flying an XR vessel? I just tested that here and only one warning callout plays, as expected. If you're hearing two sets of sounds play, please retest that in a clean installation and post a scenario, and I'll see if I can reproduce it.
Sorry for not being clear. I am experimenting with making Orbiter movies. Have a look (and listen) at a landing I made yesterday:

What I mean is that the callouts become cluttered. It goes "Gear down" "Warning gear is up" "Gear down and locked". On top you have the altitude callouts. I want to avoid that, mainly for cinematic reasons.

I understand that's proper airplane design and I probably should lower the gear a bit earlier, but that's how I like it and I thought that muting the warning or changing the altitude at which it is triggered would be a way to get rid of it.

Actually, the clip is the default XR5 'On Final Approach to KSC' scenario. You start off in a low energy situation. Lowering the gear earlier would mean that you hardly make it to the runway imho.


This is by design since the sound handling and sound settings in the XR vessels were not changed when I ported the vessels to use XRSound: XR vessels still play all their own sounds and so those sounds are configured on a per-vessel-class (as well as a per-scenario basis) as they have always been. Removing all that existing sound logic in the XR vessel code would be a lot of work for minimal benefit, and we would lose some features, too: there are only a few configuration settings new to XRSound.cfg that are not already present in the XR vessels, and we would lose the ability to optionally configure XR vessel sound settings on a per-scenario basis.
That's just fine. The XR vessels are suberb as they are. Now I know now which settings can be adjusted and which cannot.
 
Last edited:

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
What I suggest in that case is to simply disable both the altitude and warning callouts. To do that, edit your $ORBITER_ROOT\Config\XR5VanguardPrefs.cfg and make the following two edits:

Code:
#--------------------------------------------------------------------------
# Enable or disable specific categories for voice callouts
#
# 0 = callouts for named category disabled
# 1 = callouts for named category enabled (default)
#--------------------------------------------------------------------------
EnableAudioStatusGreeting=1
EnableVelocityCallouts=1
[COLOR="Red"]EnableAltitudeCallouts=0[/COLOR]
EnableDockingDistanceCallouts=1
EnableInformationCallouts=1
EnableRCSStatusCallouts=1
EnableAFStatusCallouts=1
[COLOR="Red"]EnableWarningCallouts=0[/COLOR]
That way, you won't have any altitude callouts or gear warnings in your flights. :tiphat:
 

Marijn

Member
Joined
Mar 5, 2008
Messages
582
Reaction score
6
Points
18
Location
Amsterdam
Hello,

I am not hearing any sound when firing the attitude control thrusters and holding the Ctrl button for fine control. The attack and sustain sound is audible normally when not holding Ctrl.

Any suggestions what I can do about that?

Orbiter 2016
XRSound 1.1

Here's the XRSound log from a session where I applied a normal attitude control to roll left (sounding) and then a fine control burst to roll back to the right holding Ctrl (no sound).

Code:
02.15.2019 08:54:25.498 - Parsing config file 'XRSound\XRSound.cfg'
02.15.2019 08:54:25.498 - Successfully parsed configuration file 'XRSound\XRSound.cfg'
02.15.2019 08:54:33.924 - ----------------------------------------------------------------------------
02.15.2019 08:54:33.925 - XRSound 1.10 (Build Date: Mar  9 2018) initialized using sound driver DirectSound8; irrKlang version = 1.6.0.  XRSound UpdateInterval = 0.050 (20.0 updates per second)
02.15.2019 08:54:33.928 - [MyXR5][class XR5Vanguard] Using configuration file(s): XRSound\XRSound.cfg (no override found [XRSound\XRSound-XR5Vanguard.cfg])
02.15.2019 08:54:33.928 - Parsing config file 'XRSound\XRSound.cfg'
02.15.2019 08:54:33.928 - Successfully parsed configuration file 'XRSound\XRSound.cfg'
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10009, playbackType = InternalOnly (1), filename = 'XRSound\Default\SwitchOn1.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10010, playbackType = InternalOnly (1), filename = 'XRSound\Default\SwitchOff1.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10000, playbackType = InternalOnly (1), filename = 'XRSound\Default\Air Conditioning.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10001, playbackType = Wind (6), filename = 'XRSound\Default\Landed Wind.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10002, playbackType = Radio (5), filename = 'XRSound\Default\Welcome Aboard All Systems Nominal.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::AddDefaultSound INFO: default sound ID 10014 disabled via config file.
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10032, playbackType = BothViewClose (4), filename = 'XRSound\Default\Wheelbrakes Noise.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10033, playbackType = InternalOnly (1), filename = 'XRSound\Default\Docking Radar Beep.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10004, playbackType = BothViewFar (2), filename = 'XRSound\Default\Main Engines.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10005, playbackType = BothViewFar (2), filename = 'XRSound\Default\Main Engines.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10006, playbackType = BothViewFar (2), filename = 'XRSound\Default\Main Engines.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10040, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10041, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10042, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10043, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.929 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10044, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10045, playbackType = BothViewClose (4), filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10008, playbackType = BothViewMedium (3), filename = 'XRSound\Default\RCS Sustain.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10018, playbackType = BothViewFar (2), filename = 'XRSound\Default\Crash.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10019, playbackType = BothViewFar (2), filename = 'XRSound\Default\Metal Crunch.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10021, playbackType = Radio (5), filename = 'XRSound\Default\Touchdown.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10024, playbackType = Radio (5), filename = 'XRSound\Default\100 Knots.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10034, playbackType = BothViewFar (2), filename = 'XRSound\Default\Flight Wind.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10035, playbackType = BothViewFar (2), filename = 'XRSound\Default\Reentry Plasma.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10037, playbackType = InternalOnly (1), filename = 'XRSound\Default\Autopilot On.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10038, playbackType = InternalOnly (1), filename = 'XRSound\Default\Autopilot Off.wav']
02.15.2019 08:54:33.930 - [MyXR5][0.000] DefaultSoundGroupPreStep::SetFolder: successfully scanned folder path 'XRSound\Default\Cabin Ambience' for soundID 11001: 12 sound file(s) found with extensions [.wav .ogg  .mp3 .flac .mod .it .s3d .xm].
02.15.2019 08:54:33.930 - [MyXR5][0.000] XRSoundEngine::AddDefaultSound INFO: default sound ID 11000 disabled via config file.
02.15.2019 08:54:33.931 - [MyXR5][0.000] DefaultSoundGroupPreStep::SetFolder: successfully scanned folder path 'XRSound\Default' for soundID 11003: 299 sound file(s) found with extensions [.wav .ogg  .mp3 .flac .mod .it .s3d .xm].
02.15.2019 08:54:33.931 - [MyXR5][0.000] DefaultSoundGroupPreStep::SetFolder: successfully scanned folder path 'XRSound\Default' for soundID 11004: 299 sound file(s) found with extensions [.wav .ogg  .mp3 .flac .mod .it .s3d .xm].
02.15.2019 08:54:33.931 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10036, playbackType = BothViewFar (2), filename = 'XRSound\Default\Sonic Boom.wav']
02.15.2019 08:54:33.931 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10039, playbackType = Radio (5), filename = 'XRSound\Default\Subsonic.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] DefaultSoundGroupPreStep::SetFolder: successfully scanned folder path 'XRSound\Default' for soundID 11002: 299 sound file(s) found with extensions [.wav .ogg  .mp3 .flac .mod .it .s3d .xm].
02.15.2019 08:54:33.932 - [MyXR5][0.000] DefaultSoundGroupPreStep::SetFolder: successfully scanned folder path 'XRSound\Default\Music' for soundID 11005: 1 sound file(s) found with extensions [.wav .ogg  .mp3 .flac .mod .it .s3d .xm].
02.15.2019 08:54:33.932 - XRSoundDLL::GetXRSoundEngineInstance: creating new XRSound engine instance for vessel 'MyXR5' [class name 'XR5Vanguard'], bInvokedByClientVessel = 1, dwThrusterCount = 22, bShouldHaveDefaultSounds = 1
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 1, playbackType = InternalOnly (1), filename = 'XRSound\Default\SwitchOn1.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 2, playbackType = InternalOnly (1), filename = 'XRSound\Default\SwitchOff1.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 3, playbackType = Radio (5), filename = 'XRSound\Default\Off.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 4, playbackType = Radio (5), filename = 'XRSound\Default\Rotation.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 5, playbackType = Radio (5), filename = 'XRSound\Default\Translation.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 8, playbackType = Radio (5), filename = 'XRSound\Default\Error1.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 9, playbackType = Radio (5), filename = 'XRSound\Default\100 Knots.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 10, playbackType = Radio (5), filename = 'XRSound\Default\V1.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 11, playbackType = Radio (5), filename = 'XRSound\Default\Rotate.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 6, playbackType = Radio (5), filename = 'XRSound\Default\Gear Up.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 7, playbackType = Radio (5), filename = 'XRSound\Default\Gear Down.wav']
02.15.2019 08:54:33.932 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 14, playbackType = Radio (5), filename = 'XRSound\Default\Pitch.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 15, playbackType = Radio (5), filename = 'XRSound\Default\On.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 16, playbackType = InternalOnly (1), filename = 'XRSound\Default\BeepHigh.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 17, playbackType = InternalOnly (1), filename = 'XRSound\Default\BeepLow.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 18, playbackType = InternalOnly (1), filename = 'XRSound\Default\Autopilot On.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 19, playbackType = InternalOnly (1), filename = 'XRSound\Default\Autopilot Off.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 20, playbackType = InternalOnly (1), filename = 'XRSound\Default\Retro doors are closed.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 23, playbackType = BothViewFar (2), filename = 'XRSound\Default\Sonic Boom.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 27, playbackType = BothViewFar (2), filename = 'XRSound\Default\ScramJet.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 13, playbackType = InternalOnly (1), filename = 'XRSound\Default\Warning Beep.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 28, playbackType = InternalOnly (1), filename = 'XRSound\Default\Gear Whine.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 29, playbackType = InternalOnly (1), filename = 'XRSound\Default\Gear Locked Thump.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 30, playbackType = BothViewFar (2), filename = 'XRSound\Default\Crash.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 31, playbackType = BothViewFar (2), filename = 'XRSound\Default\Error Sound File Missing.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 43, playbackType = InternalOnly (1), filename = 'XRSound\Default\Fuel Flow.wav']
02.15.2019 08:54:33.933 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 44, playbackType = InternalOnly (1), filename = 'XRSound\Default\Fuel Flow.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 45, playbackType = InternalOnly (1), filename = 'XRSound\Default\Fuel Flow.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 46, playbackType = InternalOnly (1), filename = 'XRSound\Default\Door Opened Thump.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 50, playbackType = InternalOnly (1), filename = 'XRSound\Default\Hover doors are closed.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 51, playbackType = InternalOnly (1), filename = 'XRSound\Default\SCRAM doors are closed.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 52, playbackType = InternalOnly (1), filename = 'XRSound\Default\Airlock.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 61, playbackType = BothViewClose (4), filename = 'XRSound\Default\Wheel Chirp.wav']
02.15.2019 08:54:33.934 - [MyXR5][0.000] XRSoundEngine::LoadWav success: [soundID = 62, playbackType = BothViewClose (4), filename = 'XRSound\Default\Tires Rolling.wav']
02.15.2019 08:54:34.004 - Parsing config file 'XRSound\XRSound.cfg'
02.15.2019 08:54:34.004 - Successfully parsed configuration file 'XRSound\XRSound.cfg'
02.15.2019 08:54:34.134 - XRSoundDLL::GetXRSoundEngineInstance: returning NULL for vessel 'MyXR5_Bay' [class name 'XRPayloadBay'], bInvokedByClientVessel = 0, dwThrusterCount = 0, bShouldHaveDefaultSounds = 0
02.15.2019 08:54:34.134 - XRSoundDLL::GetXRSoundEngineInstance: returning NULL for vessel 'CSA_XR5_ER_LOX-03-1' [class name 'CSA_XR5_ER_LOX'], bInvokedByClientVessel = 0, dwThrusterCount = 0, bShouldHaveDefaultSounds = 0
02.15.2019 08:54:34.134 - XRSoundDLL::GetXRSoundEngineInstance: returning NULL for vessel 'CSA_XR5_ER_LOX-08-1' [class name 'CSA_XR5_ER_LOX'], bInvokedByClientVessel = 0, dwThrusterCount = 0, bShouldHaveDefaultSounds = 0
02.15.2019 08:54:34.134 - XRSoundDLL::GetXRSoundEngineInstance: returning NULL for vessel 'CSA_XR5_ER_MainFuel-13-1' [class name 'CSA_XR5_ER_MainFuel'], bInvokedByClientVessel = 0, dwThrusterCount = 0, bShouldHaveDefaultSounds = 0
02.15.2019 08:54:34.142 - [MyXR5][0.010] XRSoundEngine::PlayWav playing sound [soundID = 10000, playbackType = InternalOnly (1), bLoop = 1, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\Air Conditioning.wav']
02.15.2019 08:54:41.222 - [MyXR5][0.060] XRSoundEngine::LoadWav success: [soundID = 10017, playbackType = Radio (5), filename = 'XRSound\Default\Off.wav']
02.15.2019 08:54:41.673 - [MyXR5][0.511] XRSoundEngine::LoadWav success: [soundID = 26, playbackType = Radio (5), filename = 'XRSound\Default\Wheels Up.wav']
02.15.2019 08:54:41.674 - [MyXR5][0.511] XRSoundEngine::PlayWav playing sound [soundID = 26, playbackType = Radio (5), bLoop = 0, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\Wheels Up.wav']
02.15.2019 08:54:42.173 - [MyXR5][1.012] XRSoundEngine::StopWavImpl: stopping sound [soundID = 26, playbackType = Radio (5), bLoop = 0, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\Wheels Up.wav']
02.15.2019 08:54:42.174 - [MyXR5][1.012] XRSoundEngine::LoadWav success: [soundID = 26, playbackType = Radio (5), filename = 'XRSound\Default\All Vanguard Systems Nominal.wav']
02.15.2019 08:54:42.175 - [MyXR5][1.012] XRSoundEngine::PlayWav playing sound [soundID = 26, playbackType = Radio (5), bLoop = 0, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\All Vanguard Systems Nominal.wav']
02.15.2019 08:54:47.099 - [MyXR5][5.937] XRSoundEngine::PlayWav playing sound [soundID = 10045, playbackType = BothViewClose (4), bLoop = 0, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\RCS Attack.wav']
02.15.2019 08:54:47.100 - [MyXR5][5.937] XRSoundEngine::PlayWav playing sound [soundID = 10008, playbackType = BothViewMedium (3), bLoop = 1, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\RCS Sustain.wav']
02.15.2019 08:54:49.001 - [MyXR5][7.840] XRSoundEngine::StopWavImpl: stopping sound [soundID = 10008, playbackType = BothViewMedium (3), bLoop = 1, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\RCS Sustain.wav']
02.15.2019 08:55:05.679 - [MyXR5][24.518] XRSoundEngine::LoadWav success: [soundID = 11001, playbackType = InternalOnly (1), filename = 'XRSound\Default\Cabin Ambience\amb0.wav']
02.15.2019 08:55:05.681 - [MyXR5][24.518] XRSoundEngine::PlayWav playing sound [soundID = 11001, playbackType = InternalOnly (1), bLoop = 0, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\Cabin Ambience\amb0.wav']
02.15.2019 08:55:16.557 - XRSoundEngine::DestroyInstance: destroying XRSound engine instance for vessel 'MyXR5'
02.15.2019 08:55:16.557 - [MyXR5][33.299] XRSoundEngine::StopWavImpl: stopping sound [soundID = 10000, playbackType = InternalOnly (1), bLoop = 1, volume = 1.00, bPaused = 0, bEnabled = 1, filename = 'XRSound\Default\Air Conditioning.wav']
02.15.2019 08:55:16.564 - XRSound 1.10 (Build Date: Mar  9 2018) terminating.
Thanks
 

GLS

Addon Developer
Addon Developer
Joined
Mar 22, 2008
Messages
3,923
Reaction score
48
Points
73
[*]XRSound.lib is statically linked; no need to bundle Visual Studio redistribution files with an add-on in order to use XRSound, and add-ons that link with XRSound.lib can still run without XRSound.dll installed.
Any chance of this being (also) compiled with the "MD" switch, so the DLL can also be compiled with "MD"?
 

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
Any chance of this being (also) compiled with the "MD" switch, so the DLL can also be compiled with "MD"?
No, because then users would need to know to download and install the correct Visual Studio 2017 redistributable package in order for XRSound to run, and that requirement causes problems for normal users getting XRSound to work.

The reasons detailing why I prefer static linking are in this post.
 

GLS

Addon Developer
Addon Developer
Joined
Mar 22, 2008
Messages
3,923
Reaction score
48
Points
73
No, because then users would need to know to download and install the correct Visual Studio 2017 redistributable package in order for XRSound to run
They would need it for the addon anyway... :shrug:
 

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
Can't you just switch your add-on to use static linking? It's a lot simpler for end users to get it running that way anyway.

In any case, I'm not inclined to do multiple builds of XRSound because of developer confusion about which version to build with and because not all developers use Visual Studio 2017 (some use newer or older versions). Static linking works with all of those versions, but dynamic will not (i.e., we would need a version of XRSound.lib for each different compiler version).
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
35,553
Reaction score
68
Points
138
Location
Wolfsburg
Can't you just switch your add-on to use static linking? It's a lot simpler for end users to get it running that way anyway.

Well, remember, that people only need to install the runtime once for all add-ons using it.



That is the big advantage of MD, it greatly reduces the memory demands and loading times, because then, the runtime must only be loaded into memory once the first time and can be simply referenced by the next DLL using it, without any I/O. With static linking of the runtime library, a copy of it exists in every process.
 

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
1,486
Reaction score
18
Points
38
That is the big advantage of MD, it greatly reduces the memory demands and loading times, because then, the runtime must only be loaded into memory once the first time and can be simply referenced by the next DLL using it, without any I/O.
I am pretty sure this is not what happens when using a DLL
(see:
for further details)
Each process loads it only once (into memory) but every other process still has it's own copy (in memory).
So in case of memory (RAM) usage, this doesn't make much of a difference.

If Orbiter core already uses a DLL (the C++ runtimes are a good example), chances are high that the same functions might be used by the add-on (thread). So here they can share the same code from the same memory.

By means of (disk-)storage however a DLL is (usually) present only once on the disk and therefore sames space.

The dynamic linking makes much sense for functions that are used by many add-ons! (OrbiterSound is a very good example here; XRSound might not yet be used so often).


...just wanted to throw in this info (and BTW if it's wrong, please tell me, so I can facepalm and strike-though this post ;) )

---------- Post added at 20:11 ---------- Previous post was at 19:25 ----------

Addendum:
.rdata and .text segments might get shared! As this Q&A at the end of the video clarifies:
https://youtu.be/JPQWQfDhICA?t=54m6s
 
Last edited:

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
35,553
Reaction score
68
Points
138
Location
Wolfsburg
.rdata and .text segments might get shared! As this Q&A at the end of the video clarifies:
https://youtu.be/JPQWQfDhICA?t=54m6s

Yes - that is the magic what virtual memory does. If we wouldn't have it yet, we would wish somebody would invent it. :lol:


(For those not too deep into Windows programming: .text contains the machine code instructions of the DLL, .rdata is the read-only/constant data)


As you can expect: Every DLL instance in a process sure needs its own copy of the .data segment.
 

dbeachy1

O-F Administrator
Administrator
Moderator
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
8,584
Reaction score
68
Points
123
Location
VA
Website
alteaaerospace.com
By means of (disk-)storage however a DLL is (usually) present only once on the disk and therefore sames space.

The dynamic linking makes much sense for functions that are used by many add-ons!
With respect, we will just have to agree to disagree on that. From my perspective, saving a few hundred kilobytes of disk space is utterly insignificant compared to the poor user experience of users having to remember to go and find the correct version of the Microsoft Visual Studio redistributable files and manually install them in order to get XRSound working. If a user forgets to do that (how many users actually read the install.txt file before installing it?), or if they install the x64 version of the MSVC redistributable files instead of the x86 version (which a number of users do, since they assume they need the x64 version for their 64-bit Windows), Orbiter will die on startup with a cryptic error message in the log. I already detailed all this in my 2016 post discussing the issues: from my perspective, a good user experience matters far more here han a few hundred K of disk space, I want XRSound to "just work" when users install it. So it's for that reason that XRSound and the XR vessels use static linking, and that's not going to change (sorry :)).
 

Face

Addon Developer
Addon Developer
Beta Tester
Joined
Mar 18, 2008
Messages
4,111
Reaction score
43
Points
73
Location
Vienna
From my perspective, saving a few hundred kilobytes of disk space is utterly insignificant compared to the poor user experience of users having to remember to go and find the correct version of the Microsoft Visual Studio redistributable files and manually install them in order to get XRSound working. If a user forgets to do that (how many users actually read the install.txt file before installing it?), or if they install the x64 version of the MSVC redistributable files instead of the x86 version (which a number of users do, since they assume they need the x64 version for their 64-bit Windows), Orbiter will die on startup with a cryptic error message in the log. I already detailed all this in my 2016 post discussing the issues: from my perspective, a good user experience matters far more here han a few hundred K of disk space, I want XRSound to "just work" when users install it.
All good points. To be fair, there is always the possibility to create a setup for it, where such prerequisites are taken into account. AFAIK, Dan made a custom installer for OS, too.
 

Urwumpe

Not funny anymore
Addon Developer
Donator
Joined
Feb 6, 2008
Messages
35,553
Reaction score
68
Points
138
Location
Wolfsburg
...poor user experience of users having to remember to go and find the correct version of the Microsoft Visual Studio redistributable files and manually install them...

Once. Not once for this add-on. Once for all add-ons compiled like that. Also, it isn't about a few KB. It isn't even about a few KB for one add-on, the VC++ runtime is pretty huge.
 

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
1,486
Reaction score
18
Points
38
[...]I want XRSound to "just work" when users install it. So it's for that reason that XRSound and the XR vessels use static linking, and that's not going to change (sorry :)).
No need to apologize. I totally agree with your reasoning. :thumbup:

I just wanted to point out the possibilities, the risks and some background information.
 
Top