Asterra Posted August 16, 2018 Share Posted August 16, 2018 I recently noticed something in NV I guess I'd never paid attention to. When wearing the sheriff duster (and probably others, but let's focus on this), extra sounds play when the character moves. Walking, running, etc. The sounds are meant to be the rustle of the outfit's leather, or whatever. The problem is that the sounds do not play positionally. So let's say you're in third-person. Your footsteps play through the speakers/headphones a bit to the left, because that's where the character is positioned on the screen. But the sounds coming from the armor play dead-center. This results in a distracting incongruity between footsteps and armor sounds. I figured I'd see about fixing this, and perhaps the same for other armors in the game. But I hit a snag. When it comes down to it, there are no differences, when viewing in GECK or FNVEdit, between the sound entries for running and the sound entries for the armor. No "use this sound positionally" or equivalent. There is a checkbox for forcing the sound to be 2D, but this is not checked for the armor (or the running). This could mean that there is some internal mechanic, at a lower level than the GECK, which is dictating how these sounds play. Whatever is pointing at the running sounds (and neither GECK nor FNVEdit indicate what) is also playing them positionally, while the sounds associated with armor play dead center with apparently no way to force positional. Would love some insight on this problem. Link to comment Share on other sites More sharing options...
dubiousintent Posted August 16, 2018 Share Posted August 16, 2018 The GECK can only play WAV files. You will need to test others outside of GECK.*sounds (Data\Sound\fx): noise/ambience/special effects(fx). WAV mono files. There are a number of sub-folders in the BSA under this category. These are just a sampling of common interest under this category:*amb (background noises): OGG files. (These can be either mono or stereo, though usually the latter.)*fx (sound effects): WAV mono files.Collision (havok) sounds are baked into the game engine. There are 96 of them, but only 32 are commonly used in the vanilla game. Haven't found anything indicating what format they are in, but it would seem your "armor" sounds are "collisions" and imply mono WAV. Please see the 'TIP: Collision Impact Sounds' and the 'Note: about the difference files under the 'Music & Sound' section of the wiki "Getting started creating mods using GECK" article. -Dubious- Link to comment Share on other sites More sharing options...
Asterra Posted August 16, 2018 Author Share Posted August 16, 2018 The GECK can only play WAV files. You will need to test others outside of GECK. I probably should have mentioned in advance that I investigated the individual sound files (running, and the sheriff armor) and found them both to be mono 16-bit 48Khz wavs. I was hoping that perhaps some difference in format might be dictating whether the sounds would play positionally. Collision (havok) sounds are baked into the game engine. This would seem to be the differentiator, and the reason why footstep sounds reliably come from the player character. This also explains why the footstep sounds do not appear to be used by anything, according to GECK. The playing of sounds in association with armor is a built-in function of the armor itself, very much unlike footsteps. I suppose with what knowledge I currently possess, there can be no actual fix for this bug. Now, as far as I can recall without jumping back in to test, every other sound that the player character makes (yells, weapon sounds, etc.) play positionally, as one would expect. Some are probably "baked in", but others are just entries, like the sound picker in a Weapon entry. Is it probably just an oversight that the sounds one can pick for an Armor entry uniquely fail to play positionally? Link to comment Share on other sites More sharing options...
dubiousintent Posted August 17, 2018 Share Posted August 17, 2018 To the best of my knowledge, mono files are always going to appear "dead center" because "positioning" requires different signals over multiple channels (e.g. stereo, quadrophonic, etc.). By definition "mono" signals are the same over all headphone/speaker channels. So, you only have the "option" of positioning sounds if they are in "stereo". As pointed out in the "Music & Sounds" section of the "Creating Mods" guide, OGG format is only used for some effects, and WAV format is roughly 5 times as large as MP3. (One can assume "stereo" is at least twice as large as mono; but also note that "stereo WAV" files are not treated properly. Instead they get "played twice".) When the game was developed, the target market was primarily consoles such as the XBox; and while the PC could handle a wider range of features, compromises were made to conform to the limitations of the consoles. Standardization of formats for particular sounds would be an early design decision, while switching from "stereo" to "mono" would be comparatively easy to implement late in the process if forced due to file/memory size constraints. Of course this is all speculation. To test that conclusion, you might try temporarily replacing a "mono" sound file with the "stereo" version renamed to use the "mono" file name (used by the associated mesh/texture file) and see if that makes a difference. There is some evidence that the "game engine" doesn't actually care what format the file is actually using. It will play a designated sound file regardless of the extension; just not in the GECK itself. -Dubious- Link to comment Share on other sites More sharing options...
Asterra Posted August 17, 2018 Author Share Posted August 17, 2018 (edited) Of course this is all speculation. To test that conclusion, you might try temporarily replacing a "mono" sound file with the "stereo" version renamed to use the "mono" file name (used by the associated mesh/texture file) and see if that makes a difference. Oh, I did that yesterday. It made no difference. And before you ask, I did also try ticking "2D Radius" with said replacement files, but all that did was cause the files to fail to play at all. (Just to clarify, there is no associated mesh or texture for these audio files; they are specified in the "Animation Sounds Template" section of a given Armor entry.) One thing I haven't tried, I suppose, is replacing the mono WAVs with stereo OGGs. But I would not expect this to magically produce the desired result when the stereo WAVs did in fact at least play. Edited August 17, 2018 by Asterra Link to comment Share on other sites More sharing options...
dubiousintent Posted August 17, 2018 Share Posted August 17, 2018 Afraid I'm out of ideas. You might want to PM EPDGaffney asking him to look at this thread. IIRC, he's a gaming sound engineer. -Dubious- Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 17, 2018 Share Posted August 17, 2018 I don't really have any ideas for this, unfortunately. None that won't be a more work than you probably expected, at least. The general concept for a fix would probably have to be to silence the files by replacing them with placeholder files, and then somehow scripting the sounds you want to play from the player positionally. Because as far as I can tell, these are indeed hard-coded, at least to a degree. Similar to some of the other sounds in the game, they have an entry in the GECK that is claimed never to be used, despite the fact that you can open up any armour form and see them being used. Another example is the heartbeat sounds for low health, which can be replaced by other sounds externally in Windows Explorer, despite having entries in the GECK which it claims are unused. I'm not actually sure if the entries in the GECK have any impact on these things or if they were a scrapped attempt that was replaced with engine-level code. Regarding the scripting, I say 'somehow' because I'd need to run through the available event handlers to see what approach would be the best for performance. I would be against a script that runs constantly and never turns off. I need to clarify as well that stereo sound files are considered superior to mono because they have that positioning built into them already, but in reality, for games, when you want to achieve a 3D effect, in almost all cases it's mono files that need to be used. That way the game kind of 're-stereos' them into the entire 3D sound output of your gameplay. There are exceptions to this, and often ways to ignore this rule, but in general, we use mono for 3D sounds and stereo for 2D, even in modern games. Link to comment Share on other sites More sharing options...
Asterra Posted August 17, 2018 Author Share Posted August 17, 2018 The general concept for a fix would probably have to be to silence the files by replacing them with placeholder files, and then somehow scripting the sounds you want to play from the player positionally. I was thinking along these lines, recently. If this was Skyrim, I'd already basically know exactly how to do it (having, in fact, written mods that position sounds precisely on actor nodes), but I have doubts the functions available to me in NV are quite that robust. Basically I'd need to solve two problems: 1: Playing sounds from an emitter I place in the game, or at least from a specified reference (the player). Again, in Skyrim, easy, but in NV, uncertain.2: Maybe even trickier. Invent a way of monitoring the player's mobility on the animation level, so the sounds of the armor will be in sync with footsteps the way they natively are through the Armor sound entry. I guess there's nothing stopping me from glancing over my options to see if either can be solved. Link to comment Share on other sites More sharing options...
EPDGaffney Posted August 18, 2018 Share Posted August 18, 2018 Well, here's a list of every function available in New Vegas (with possibly one or two missing entries):https://geckwiki.com/index.php/Complete_List_of_Function_in_Fallout_New_Vegas PlaySound3D will let you specify a reference, and whilst you can't specify a node, MoveToNode is available for you to move some X marker reference to any node on the player and play the sound from the X marker, though I personally wouldn't bother with that. Also, if you meant you can attach an emitter that remains indefinitely attached and playing sounds, then I don't believe we do have that available, so you'd have to update the marker's position any time you wish to play a sound. If the armour sounds are in sync with the player's footsteps, you may be able to do something on the NIF level, as is done with Creature forms, but that's not something I've ever messed with. PixelHate is I believe the authority on NifSkope functionality. I tried to get SetOnPlayGroupEventHandler to work for movement but gave up, though with more perseverance in your testing, you may have better luck. A really 'out-there' kind of idea would be SetNPCRadio, obviously playing the sound effects only if the player is moving and linking to silent 'tracks' otherwise, based purely on the condition-based topic-linking available in the quest form for radio stations. You'd have to make your own radio station and confirm that the function works on the player, but with some ingenuity, I could see this being your best choice. Link to comment Share on other sites More sharing options...
Asterra Posted August 18, 2018 Author Share Posted August 18, 2018 MoveToNode is available for you to move some X marker reference to any node on the player and play the sound from the X marker I mistakenly thought MoveToNode was not available, but it seems I was looking at the incorrect resources. Many more functions than I thought were available. If the armour sounds are in sync with the player's footsteps, you may be able to do something on the NIF level, as is done with Creature forms, but that's not something I've ever messed with. PixelHate is I believe the authority on NifSkope functionality. Playing with NIFs makes me unhappy. And anyway I don't see how that could be done in a way that would be transparent to body mods / vanilla armor replacers. What I'm currently thinking is that I'll replace the armor sounds with silence and then watch for IsSoundPlaying. That's assuming I get around to this project in any meaningful capacity. While I have your attention, I may as well talk about another audio thing that has been bugging me. I remember taking a stab at this one years ago, and giving up for more or less the same reason. This problem is quite a bit more substantial. Containers and doors have an audio problem. Some doors and some containers (ammo boxes, for example) play their open/closing sounds twice. In fact they play them with different stereo spatiality, because one of the playback instances is coming from sound entries built into their references, while the other playback instance is coming from... I don't know where. Something the GECK doesn't know about. I looked at the NIFs for doors and whatnot and never found any thing along the lines of sound designations, not that I am remotely an expert. Anyway, one can remove the aforementioned sound entries to solve this double-playback, which is what I will be doing. But that leaves a separate issue. Many (all?) doors and many containers in the game, after having been opened once, will, upon opening a second time or more, double-play the opening sound. This can be subtle since the two playbacks often happen within milliseconds of one another, but it always happens. I assume something is going wrong with whatever is responsible for triggering the noise in the first place, which, again, I have no clue on, since GECK doesn't know. The sounds are in GECK (example: Tool Cabinet (35AE), sound used: DRS02LockerOpen (293AF), GECK's # of uses of said: zero) but nothing points to them. What differentiates problem doors/containers from ones which don't have this issue seems to be that the troublemakers have open/close animations, which is why I reckon it has something to do with their meshes. But, again, I that's where I hit a wall. Link to comment Share on other sites More sharing options...
Recommended Posts