Tutorial 23: Placing Sounds on Entites



SOUNDONCE=[path, channel (1-4), flush, volume, attenuation] SOUNDLOOP=[path, channel (1-4), flush, volume, attenuation] SOUNDCLEAR
SOUNDCLEAR=[channel]
SOUNDFADE=[channel, startvalue(0-1), endvalue(0-1), time in ms]
SOUNDPITCH=[channel, startvalue(1 is default) , endvalue, time in ms]

USEFUL CONSOLE COMMANDS
Msound_perf (1-4)

SOUNDONCE & SOUNDLOOP
NEW SCRIPT.
Ready to have some automap fun?

Place an automap on a path. Make sure it is still. At 4 secs make it move to a new point where it comes to rest at 10 secs. And stay there for 4 seconds and then moves again. Play this!

Now to add some sound.

At 0.1 put a node
Soundonce=cine\automap\automap_idle.wav,1,1,1,1

Play this! Woohhooo….. SOUND! But the sound was so fast.

So Lets LOOP that sound. Change the node to read
Soundloop=cine\automap\automap_idle.wav,1,1,1,1

Play this.

Now what do all those numbers mean?

CHANNEL
The First number is the CHANNEL. Any entity can be given 4 Sounds!

Drop a cmd node at 1.0 and have it read
Soundonce= soundonce=battle\mystech\bane\m1fx_bane_chargeup1.wav,2,1,1,1
Play this

Drop a cmd node at 1.1 and have it read
Soundloop= battle\mystech\nuts\mystech_ring_eerie3.wav,3,1,1,1

Play this. Sounds like garbage.

NOTE: IF YOU START PUTTING MULTIPLE SOUNDS ON DIFFERENT CHANNELS, YOU WILL HAVE TO KEEP TRACK OF THEM ALL!!!!!!!

Delete the nodes at 1.0 & 1.1

FLUSH
The Second number is the FLUSH value. It works JUST LIKE the flush command for animations.
1 = Play sound IMEDIATELY
0 = WAIT for the previously (SAME TRACK) sound to finish Playing.

Drop a cmd node at 4.0 secs and have it read
Soundonce=cine\automap\automap_idle2moving.wav,1,1,1,1

Drop a node at 4.1
Soundloop=cine\automap\automap_moving.wav,1,0,1,1

Play this. Notice the moving loop sound WAITS for the idle_2_moving sound to finish playing.

Drop a node at 9.6
Soundonce=cine\automap\automap_moving2idle.wav,1,1,1,1

Drop a node at 9.7
Soundloop=cine\automap\automap_idle.wav,1,0,1,1

Play this. Neat eh?

VOLUME
That 3rd number is VOLUME. From ‘0’ to ‘1’.
Change all the nodes so that the volume is set to .1
Play it

NOTE: IT seems to me that high pitched noises play louder than bassy sounds. So explosions usually are at 1.0 and high pitched sounds (like the automap) I put at .2

NOTE: Make sure all the volume values are the same, otherwise the sounds will pop.

ATTENUATION
The 4th number is attenuation. A little trickier than volume, Attenuation is how ‘strong’ a sound is. Or how far away you are will a sound still be heard.

The values are kinda like this

0 – heard throughout map
1 –
2 – upto 100 feet ???
3 –
4 – a whisper

this is a best guess.

Change all the attenuation values on the automap to .1
They should look like this
Soundloop=cine\automap\automap_moving.wav,1,0,1,.1

Play the script and make sure you (the Camera) are standing still and listen how the sound of the automap drops off as it moves away.

Sometimes tweaking between volume and attenuation is necessary.

A PHILOSOPHICAL QUESTION: If a sound is played on a script and the camera is nowhere near the hearing distance, does that sound actually get played????

Unknown.

NOTE: The more sounds you play, the MORE MEMORY is BEING USED to put those wavs in memory. So be conscious!

SOUNDCLEAR
SOUNDCLEAR=[channel]

To quickly turn off a sound enter the soundclear cmd. To turn off a specific channel then type soundclear=[channel]
Simple.
NOTE: This will turn off a sound completely and is very noticeable. So use the soundfade cmd.

SOUNDFADE=[channel, startvalue(0-1), endvalue(0-1), time in ms]

To fade specific sounds up and down. Very useful on looping sounds.
A LOT of the time I would turn on Looping sounds at such a low volume and then fade them up. This is a lot more pleasing to the ear than just having em start.

NEWSCRIPT
Place an ob_automap
At 0.1 put a cmd node

Soundloop=cine\automap\automap_idle.wav,1,1,.01,1

This will technically PLAY the sound, you just wont be able to hear it.
NOTE: Remember to keep track of sounds like this.
NOTE: putting the volume at 0 WILL NOT PLAY THE SOUND!!!!

At 1.0 put a cmd node
Soundfade=1,0,1,2000

Play this. This will fade up the sound in 2 seconds.

Now put a cmd node at 4.0 seconds
Soundfade=1,1,.3,4000

Play this. Now the sound will take 4 seconds to get to a low volume level and stay there

Now put a cmd node at 9.0 seconds
Soundfade=1,1,.3,4000

Play this. Notice the Pop in audio. OOOPPPSSSSSY! You must remember what level you had set it.
Change the node at 9.0 seconds to read
Soundfade=1,.3,0,4000

Play it. Sounds better!
NOTE: Don’t FORGET to SOUNDCLEAR that sound. Even though you can’t hear it…. It’s still playing.

A useful console command
Msound_perf (1-4)
I use msound_perf 3. that will display ALL sounds that are playing. With Volume and Attenuation noted in the front of the sound path. Handy! Check it Out! (be sure to set it back to ‘0’ to remove it).

SOUNDPITCH=[channel, startvalue(1 is default) , endvalue, time in ms]

NEWSCRIPT
Put an ob_automap
At .1 put cmd node
Soundloop=cine\automap\automap_idle.wav,1,1,1,1

At 1.0 put a cmd node
Soundpitch=1,1,3,4000

Play this. Neat huh! This pitches UP the sound in 4 seconds. Change the node to
Soundpitch=1,1,3,400

Change the Node to read
Soundpitch=1,3,1,4000

Notice that this was NOT a smooth pitch. ALL SOUNDS have a default pitch of 1. You immediately started at 3, which has a noticeable change in sound. Change it back to
Soundpitch=1,1,3,4000
At 5.0 put a cmd node
Soundpitch=1,3,1,400

Play this. NO SOUND IS SAFE!!!!

NOTE: Sometimes you may wanna START a sound at a certain pitch. The best way is this
NEWSCRIPT
Put an ob_automap
At .1 put cmd node
Soundloop=cine\automap\automap_idle.wav,1,1,.01,1
At .2 put a cmd node
Soundpitch=1,3,3,100
This will put the sound immediately at 3 in .1 of a second.
At .3 put a cmd node
Soundfade=1,0,1,100

This is a little complex, but it works.

HONE YOUR SKILLZ
Put 4 sounds (each on their own channel) on the automap. Fade them, pitch them, all at different times. As one sound pitches up, have the other pitch down. Make sure that you soundclear each one by the end of the script. See what I mean by KEEPING TRACK of your sounds.