Unravelling the .sms: Postulations

The SMS sound system in MSTS 1 has been quite well understood for some time, but there are still new things being learned as well as a wealth of information about what's already known that you can learn here.

Moderator: Moderators

Unravelling the .sms: Postulations

Postby apsey on Fri Mar 07, 2003 5:43 pm

Inspired by Ralf Hagen's good work, my career experience in sound, and a desire to manipulate the mixing of sounds of my own design within
MSTS, I set out to unravel some puzzlements.

In Mr. Hagen's good published work, he teaches:

Volume:
The Volume-Value supposedly goes from 0 to 1 however people have already successfully experimented with values over 1. I think that the
Volume-Value indicates, with which volume in fractions of the original volume of the wav File, the file is played, thus with 0.5 half so
loud, with 1.0 at original volume and with 2.0 at double volume.


I believe I have unearthed additional and meaningful data:

Mr. Hagen is correct on all points, but there's a missing bit. Specifically, The volume entered for the ScalabilityGroup has its upper
limit at 1.0 and no number above that will increase what I shall call the Master Volume for the Scalability group in question.

NOTE: It has been established that ScalabilityGroup 5 is used for "full-bore" slider settings, Scalability group 3 for the lesser settings, and ScalabilityGroup 1 for the sound-challenged. Additionally, I have discovered the availability of ScalabilityGroup 2, which appears to make itself available to all slider settings and is used for things like "wind" and other sounds globally necessary for the ambience to seem acceptable to even the soundcard-handicapped. I have not, however, found ScalabilityGroup 4 in use and have not tinkered with that.

SCALABILITYGROUP MASTER VOLUME FUNCTION
It appears to this author, the ScalabilityGroup volume declaration allows an overall adjustment to be imposed on all volumes within the SG
itself. Its benefit is to enable some manner of throttling back, or alternately goosing the collection of .wav files called within the
group; a way to make adjustments for the most robust and weakest in the recorded series of audio files.

To clarify this, somewhat, let's digress to the problem most people have with MP3 files and the varying peak and RMS levels inherent in a
collection from various sources which become especially problematic when burned to an audio CD without first being either "Peak" normalized,
RMS normalized, or otherwise processed to give the various components of the collection a common volume ground.

It's much the same within MSTS although we are dealing with .wav files and not mp3s. Pity that--think of the HD space we'd save if MP3s
were implemented within the .sim. There is, in fact, a little program floating around that will make a browser "think" an mp3 is a .wav but
I've lost track of it. It may work within MSTS and since we're dealing with compression and lo-fi anyhow, what me worry.

A quick review of dozens and dozens of MSTS audio files (both default and third-party), reveals something expected but reportedly
interesting nonetheless: Volumes of .wav files are all over the place. That is not to pre-suppose it is an intentional avenue to give a
"leg-up" to mixing--it is instead revealing that sound in the hands of those unfamiliar with its software, its waveforms, its RMS energy,
can quickly make a mess of things and more often do, than not. To those unschooled and unskilled, it becomes indeed a "Black Art."

VOLUME(S) GREATER THAN 1.0
Although it is true that ScalabilityGroup (Master) volumes greater than "1.0" have no effect, it is not of volume falues
within individual elements within the ScalabilityGroup. Let me explain by way of example:

1. If the Master ScalabilityGroup volume is set to 1.0, only volumes less than 1.0 will have an effect within the SG.

2. If the Master ScalabilityGroup volume is set to 0.5, volumes within the group may be defined up to 2.0 effectively doubling the SG
Master to result in 1.0.


3. If the Master ScalabilityGroup volume is set to 0.25, then volume values within the group of 4.0 should be possible, insofar as 4-times
the declared, multiplied against the root ScalabilityGroup setting of 0.25 yields 1.0--which is all we've got to play with--their ain't no more and as Bugs Bunny might say: "That's all folks."

CONCLUSION
Declaring something less than 1.0 as a ScalabilityGroup value allows a conveniently sophisticated ability to "mix" sounds linked to various
trigger mechanisms and I am impressed with the malleability allowed. Having said that, I am also sympathetic toward the MSTS hobby design
community who find sound design more daunting a task than it need be. Certainly the .sms interface is not a friendly one for those talented
people with other disciplines as their forte.

Afterthoughts
I didn't want to end this post on the above note. Here, then, are some tips for those wishing to excel in the MSTS sound arena:

1. Use a high quality recording, and make sure the dynamics are such they will survive in the "mix." That likely will require raising the
program energy to maximum levels and making final level adjustments within the .sms.

2. Remember the "floor" of noise in MSTS is that of a railroad, making use of a wide dynamic range nearly hopeless. Just as listening to
Classical Music in a throbbing automobile will cause the pianissimo to be lost beneath the roar of engine, road, and wind--so too the sounds
for MSTS. The medicine for that ill is called "Dynamic Compression" and it should be generously dispensed to your .wav file if it is to be
heard and manipulated within the din of train rattling.

I have enjoyed this little venture into sharing and as I feel inclined to articulate additional finds, I will. By sharing discoveries, we
all benefit.

Have fun!
Kind regards,
Mike
User avatar
apsey
Getting the hang of things now
 
Posts: 32
Joined: Tue Nov 26, 2002 11:44 am
Location: Tampa

Postby scefhwil on Fri Mar 07, 2003 10:22 pm

Mike, thanks very much for that information. The debate about values greater than 1.0 has not until now been resolved. It is a shame, (althought not surprising?) that the sim doesn't provide any form of amplification. That said even with all volume levels maxed out a .wav played in-sim does seem quieter than when played in windows or a .wav editor.

You don't mention the interaction of the VolumeTweak () parameters in the soundcfg.dat file? Are you aware of these?

You mention "Dynamic Compression". If you would be so kind could you detail how to do this, say using Goldwave as thats probably the 'prog of choice' for most who have dabbled and uploaded any sounds for MSTS?

Stuart
scefhwil
Very Active Forum Member
 
Posts: 1087
Joined: Tue Dec 04, 2001 12:00 am
Location: Bristol, England

Postby apsey on Sat Mar 08, 2003 1:03 am

Thank you Stuart, my friend.

It is a shame, (although not surprising?) that the sim doesn't provide any form of amplification. That said even with all volume levels maxed out a .wav played in-sim does seem quieter than when played in windows or a .wav editor.


Agreed as it would seem. Of course the manipulation of sounds within Windows is somewhat muddied-up by the Windows drivers themselves and how adjustment of the playback volume of one function i.e., streaming media, affects others. But for this discussion I'll cast that aside in hope those following along have already managed a suitable wrangling of that aspect of things.

You don't mention the interaction of the VolumeTweak () parameters in the soundcfg.dat file? Are you aware of these?


My only reason for not mentioning it was a failure to realize it was there. No, I was not aware of those Stuart and I thank you.

VolumeTweak ( 1.0 0.4 )

Above are the default numbers. My tests suggest the first number demotes ScalabilityGroup 1,3 and 5 "master" volumes to a role of "Sub-master." That is to say, if the VolumeTweak above is raised to( 2.0 0.4 ) the resultant sound output increases accordingly and whereas no increase beyond 1.0 in ScalabilityGroup parent number allows increase, increase in the first order VolumeTweak does--up to a cap of 2.0, I think.

As for the second order digit, that appears to control ScalabilityGroup 2, and possibly 4, which house the sounds added trackside. In most cases, I think it could be raised to at least 1.0 with good result excepting perhaps exterior rain, the recording of which is quite "hot" in level when compared to other sounds added by routebuilders.

I am suspecting at this moment to later discover undocumented ScalabilityGroup2 marries to ScalabilityGroup 5 and ScalabilityGroup 4 marries to its odd-numbered counterparts less robust in resource gobbling (1 & 3).

If I were designing the .sms system, and not that I could, I would want some control over the cab/external sounds but also of trackside sounds. I rather think that's what we're onto in this thread.

You mention "Dynamic Compression". If you would be so kind could you detail how to do this, say using Goldwave as thats probably the 'prog of choice' for most who have dabbled and uploaded any sounds for MSTS?


Although I indeed have Goldwave, my heart has been in SoundForge through the years. Just as PhotoShop and Paint Shop Pro have similar functions, so too Goldwave and SoundForge, I'm quite sure--especially in elemental areas such as this.

Describing the finer points of dynamic compression in a brief forum post is something of a challenge but I'll try:

The term "Normalization" was brought to life by those in digital audio's MP3 compression-fi circles as the method of altering an mp3 file to be a sort of "normal operating level" but without invoking the sacred names "CCIR," "NAB" "SMPTE," or "AES."

Normalization comes in two flavors: Peak and RMS (root Mean Squared).

The former (Peak) is the more harmless to the audio insofar as it only raises the "hottest" track amplitude to a selected level, typically 0dB in linear fashion so as to preserve the dynamic relationship of the quiet passages. This isn't exactly what this medicine man prescribes for the likes of MSTS.

RMS normalization computes the "loudness" of any given instant within the track, and makes its (adjustable) alteration based on that. This is madness in high fidelity but an acceptable method of making sure you hear the reefer car's compressor in MSTS, I personally believe.

Audiodom had different words for these functions during my career and lifetime, but the results were largely the same and with the exception of a gentle "peak" normalization, the character of the audio will indeed be compromised. In the case of MSTS, mostly for the good of the overall experience.

Forgive me, but to guide anyone through a "dynamic compression" tutorial in GoldWave, I'd need to delve deeper into that program than I have in the past but it's a simple process, actually. The object of the exercise is to alter a wave file so that it has more "meat" on its bones.

High-fidelity aside, we're dealing with some low bit depths here, and some compromised fidelity at best. To compress the sound of a squealing brake on the curve should not be a problem.

Mostly what we need to do is:

Have Fun!
User avatar
apsey
Getting the hang of things now
 
Posts: 32
Joined: Tue Nov 26, 2002 11:44 am
Location: Tampa

Postby apsey on Sat Mar 08, 2003 1:36 am

In GoldWave, Effects>Volume>Maximize.

Watch the waveform, and experiment. Somewhere between flat-out distortion and "no change" is where the audio truth resides. Use headphones. Don't be *too* critical. And above all,

Have Fun!
User avatar
apsey
Getting the hang of things now
 
Posts: 32
Joined: Tue Nov 26, 2002 11:44 am
Location: Tampa

Postby apsey on Sun Mar 09, 2003 2:46 pm

I hope no one took offense when I said:

In GoldWave, Effects>Volume>Maximize.

Watch the waveform, and experiment. Somewhere between flat-out distortion and "no change" is where the audio truth resides. Use headphones. Don't be *too* critical.


If the terms "dynamic" and "compression" are understood, the process becomes fairly straightforward in any piece of software.

DYNAMIC RANGE
As relates to recorded audio, the term "dynamic range" describes the depth of the program audio. Just as classical composers used quietness (pianissimo), even silence, in places for emphasis, and loudness (fortissimo), so too a representative recording should reproduce that up to the limits of the hardware, and throttled by the practical aspects of the environment in which the recording is to be acoustically projected.

Some environmental noises restrict the usefulness of quiet passages, because a point is reached where the acoustically projected sound energy falls below the level of environmental noises, and is masked. Examples are within a moving vehicle and in a living area with noise about. The newest automobile sound systems have automatic compensation systems to adjust the dynamic range of playback relative to the noise floor--a fairly recent development.

As one point, here in the US at least, some broadcasters in the pre-FM days were accused of playing the commercials louder than the music. The truth, I believe, was somewhere in the middle of that insofar as the producers of commercial announcements were less fearful of the degradation imposed by dynamic compression than musicians were.

Nevertheless, the Federal Communications Commission responded to the complaints with a requirement that all broadcasters modulate their signals at least 80% but not more than 100%. The result was the trademark compressed sound of the era's "Top-40" radio. Not a bad thing, actually, when you consider that the raised thermal noise floors present in the recording/reproduction/broadcast hardware of the day did not allow for much silence anyhow. Hiss began even in good equipment back then in the -20dB range--not at all what we have today with -90 possible in the silken quietude of digital audio.

I think that summarizes Dynamic Range fairly well.

COMPRESSION
Considered the enemy by many who don't understand its use, compression allows a dynamic range to be "squeezed" and is responsible for giving us the audible whisper-vocals of, for example, a Celine Dion which suddenly soar into the power range with nary a missed (or distorted) syllable or "splattered" sibilant "s." Judiciously used, and on individual track components, the artistically programmed compressor is much more friend of the skilled recordist than enemy.

Sophisticated compression tools allow an infinite set of variables to be incorporated, which make the device(s) seem more daunting than they really are. Still, comprehending and manipulating those tools requires a couple of things: 1) A basic understanding of the building blocks available to the recordist, and 2) Some familiarity with the terms used for the adjustment knobs. Lacking those things, most rely on "presets" which are found within today's audio software.

Still, some familiarity with the adjustments constituting the preset is beneficial. I am going to summarize the elements and define them, although I encourage anyone desiring to specialize in matters of recorded audio to seek a good book on the subject(s). Audio Cyclopedia by the late Howard W. Tremain comes first to mind.

DYNAMIC COMPRESSION
Here I define some elemental terms in my own words. Your software may or may not allow manipulation of each of these. My software of choice is Sonic Foundry's Sound Forge 6.0 Remember: The object of this exercise is convert a wimpy MSTS .wav file into something robust enough to swim in the noisy pond amongst the stronger fish, without suffering too much in the process of bionic conversion.

ATTACK
How fast the compressor "grabs" things like percussive hits. It is possible to adjust attack to virtually disallow such things. There is no "right" setting--it's up to you and what you are trying to accomplish.

THRESHOLD
At which level (volume) the compressor will "kick-in" to begin its work. Again, this malleable adjustment is infinite in its effects.

RATIO
Things getting sticky. This handy-dandy setting is what determines how the output is altered. at 1:1, there is no change; at 2:1 a 2dB increase in program level (above your chosen threshold) is required to produce a 1dB increase in output. At 5:1, it will take a 5dB rise in program volume to cause a 1dB gain in output. And so it goes to an upper limit of infinity. As you can easily see, the higher the ratio, the more squashing happens.

RELEASE
If we think of what happens when a signal rises above the threshold as an attack followed by a sort of "capture" then it follows when that signal falls below the threshold, there needs be some sort of release. That is exactly true, and lucky for us, that release is adjustable. Too long, and you will never hear a nice delayed fading ring-out (it will be held high). Too short, and you may hear the "pumping" sound of a compressor catching it's electronic "breath." And yet there is no real "sweet spot" because it all depends on the material being compressed. What may work for a voice, may not work for music; what works for this rock song may not work for another, and what works for this Steam Whistle, may make a mess of a different one. Play. Experiment. Learn.

OUTPUT
Here you make whatever final adjustments may be made to how the manipulated sound exits the compressor. At this point, it's all done. What you do now will determine how "hot" the resulting .wav will be in digital terms.

Have Fun!
User avatar
apsey
Getting the hang of things now
 
Posts: 32
Joined: Tue Nov 26, 2002 11:44 am
Location: Tampa

Postby scefhwil on Sun Mar 09, 2003 9:28 pm

Wow, thanks for that Mike. Not read it all yet, I'm going to print it off for some serious digestion.

Stuart
scefhwil
Very Active Forum Member
 
Posts: 1087
Joined: Tue Dec 04, 2001 12:00 am
Location: Bristol, England

Postby apsey on Sun Mar 09, 2003 9:54 pm

You are a most wonderful asset to this venue, Stuart. You are an important reason I paid to subscribe to UK Train-sim, and your visits to Trainsim (US) are always appreciated. You are free with your knowledge and discoveries, and it is inspiring. Thank you.

It occurs to me, the MSTS .sms file is a curious marriage of audio knowledge and script programming knowledge. The two disciplines are hardly common.

In your wonderful previous posts, you have demonstrated a good grasp of both, and as I enter the field I am want to assist you, thinking perhaps between us, a collective investigation may reveal new information. Clearly, my strength is more in audio than scripting.

Thank you for being here for all of us, Stuart. You are talented, dedicated, and I am honored to call you "friend."

Onward, through the fog.

Have fun! It's important in these times. ;-)
User avatar
apsey
Getting the hang of things now
 
Posts: 32
Joined: Tue Nov 26, 2002 11:44 am
Location: Tampa


Return to [MSTS1] Sounds

Who is online

Users browsing this forum: No registered users and 2 guests