Ambient Sounds Tutorial
The following is a tutorial for placing ambient sounds in your level. It is semi-complete, meaning that there are one or two things which I am not sure of, either because I never discovered them or because they were never implemented in DromEd or DromEd2 by LGS. However, this should contain some useful information on how to use different types of sounds in your level. This should be applicable to both D1 and D2. If any parts of this tutorial are found to be incorrect or obsolete, let me know and I'll fix it.
This tutorial assumes no pre-existing knowledge of ambient sounds.
Ambient Sound in Thief and Thief 2 are created using the property A > AmbientHacked. This property may be added to almost any object in the game, including fnord objects or SFX. Certain objects in the game have a default Ambient property. If you create a torch, it will sound like a torch when you place it in your level. Objects like the torch inherit an AmbientHacked property from their parent object in the Object Hierarchy. Most of the time, you will want to leave these inherited ambient sounds alone. However, occasionally you may want to edit them.
In the Inverted Manse, I had a bunch of debris and unused material in an abandoned factory setting. In one location, I created a coil to go along with some trashed electronic material. However, I wanted to give the impression that the coil was not working properly. By default, a coil inherits an AmbientHacked property entitled coil_lp. In order to change this, all I had to do was click on Properties of the coil, then delete the AmbientHacked property. If I wanted, instead of deleting the property, I could have of course simply Edited the ambient property to change the sound, but I had no need to do this.
When placing your own ambient sound 95% of the time you will want to use a marker. The reason for this is because you have the most control over placement of a marker. Because it is not rendered and has no physical properties, you can place it wherever you want. It is also easier to remember where you place sounds when you use a marker (or you give an object a name) so you can identify it easily should you need to edit it. LGS often used markers, increased the size of the markers, AND named these markers so they could be identified easily in DromEd, but something like that isn't necessary.
Let's move on to specifics.
IDENTIFYING THE SOUNDS YOU WANT:
All of the sounds for Thief are kept in the snd.crf file located somewhere in your Thief directory (or on the disc if you don't have full install). You can potentially unzip this file into a folder (be ware! The one for Thief 2 is over 300 MB). Listen to the sounds and find the ones you want. The sound effects and music-type sounds are located in the SFX folder, and in Thief 2, also in the MiscVOs folder.
Also, you can find sounds in the Object Hierarchy in DromEd. They are located under Sound > Schema > Ambients and they are segregated by mission. However, you cannot play them in the Object Hierarchy. Find the ones that you want, then close the Object Hierarchy. Go to the command window and type in "play_schema x" (no quotes) where "x" is the name of the sound. For example, you could try "play_schema m13wind." To stop it, type in "halt_schema m13wind" or simply "halt_schemas" (again, no quotes). I find the easiest way to do this is to open up a SECOND DromEd window, then find the list in the Object Hierarchy. Then in the other DromEd, type in what you need.
In the Thief games, LGS "combined" different sounds. The sounds you see in the Object Hierarchy are not always individual sounds, but can sometimes be combinations of sounds. M05wind for example, is made up of at least 3 different wind sounds that I can hear. The advantage of searching for sounds in snd.crf is that you can find and play individual sounds. However, sometimes the names given to the ambients in the Object Hierarchy are not similar to the names of the wav files, and it can be frustrating searching for the one you want. The names you use in DromEd for your AmbientHacked property MUST BE the name in the Object Hierarchy, and not any of the wav files in the snd.crf file. Therefore at some point you most likely will have to use the method mentioned in the 2nd paragraph (above) to get the final sound you're looking for.
In advanced sound editing, you can edit the schemas, which are the files which dictate how the sounds are combined and set up in the Object Hierarchy. I should hopefully have a tutorial on schemas out at the time this document is released.
THE DIALOGUE BOX:
When you add the property AMBIENT HACKED to an object or when you click Edit on an existing property, you'll be presented with a dialogue box. Below is list of what they do.
ENVIRONMENTAL SOUND TECHNIQUES:
Certain sounds are meant to be played as Environmental Sounds, certain sounds are not. An example of an Environmental Sound would be M01tones. Such a sound plays a series of tones like music around the player, and generally sounds awful if they are played any other way. Try looking at the OMs and experimenting to see which ones work.
Almost all of the Thief 2 OMs use tones or rumbling of one variety or another for interiors and wind noises for the exteriors. However, sometimes when you "cut" from one sound to another, the result sounds quite choppy. This was the case even in some of the OMs. The following is a technique I discovered which should smooth this over a bit.
Create or look at an interior area with a door leading to an exterior area. Make sure gen and convict are loaded and the place is room-brushed. On the interior side of the door, create a marker with the AmbientHacked property. Give it a small radius (like 5) and the Environmental Flag. Leave the other boxes blank. Now create a marker outside the door and give it the AmbientHacked property. Give it a small radius (and make sure this radius does not interfere with the radius of the first marker) and the Environmental Flag. Now, give this second marker a sound. Let's use M04wind. Place this name in the SCHEMA NAME box. Now, go in game. The sound should begin when you go outside, then cease when you go inside. Works well, but sounds choppy, eh?
Now for the smoothing part. Create a third marker and place it between these markers. Give this marker a large radius (such as 20 or 30) and make sure the Flags are set to NONE. Set the Override Volume high, perhaps all the way to -1. Give this marker the Schema Name M04wind also. Now go in game. There should be a small area of overlap of wind, but effectively what this does is "smooth" over the transition from environmental sound to no sound. When the Environmental "wind" sound cuts out, the NONE Flag sound is there to mask it out. If you toy with it a bit, the effect can be quite convincing.
A useful way to get sounds to go on and off is to use sound traps. To get them to work, create a sound trap and place it somewhere. Open up the Links and then create a SoundDescription link from the sound trap to a sound in the ObjectHierarchy. An "on" signal (such as a button/lever with a Control Device link to the sound trap) will turn the sound on. An "off" signal (via button to inverter to the soundtrap with ControlDevice links, or flipping a lever off) will shut the sound off.
There is a limit to the number of ambient objects you can have in your level. In creating the Inverted Manse, I used tons of torches. Near the very end, I got an error which said "Ran Out of Ambient Objects." I had to reconfigure a couple of things to cut down on the number of ambient objects. I am not sure what the exact number is, but I believe it was somewhere around 225 when I began getting the error. It probably won't be a problem for most folk, but it is something to keep in mind when creating large levels.
EDITING THE PLAY PARAMS:
Chances are you won't ever need to do this, but each Ambient "object" in the Object Hierarchy has a specific set of properties called Play Params and Loop Params which you can tinker with. While you probably won't want to fool with these, as they specify things like whether or not the sound is a voice or an ambient, occasionally they can be useful. For example, in The Inverted Manse I had Garrett's "End Potion" sound triggered by a VO Trap, but the sound in the gamesys was set to "Play Once." In order to get this sound to play more than once (I had more than one special potion), I unchecked this property.
Potentially, you could also change things like the default volume (useful when you're substituting sounds rather than writing new schemas), the initial delay between the time when the sound is triggered and when the sound is played, and pan and fade factors, among others. HOWEVER, the information in Play Params and Loop Params is merely a reflection of what is in the schema files, so if you do a reload_schemas command this information will disappear. If you are going to adjust anything beyond the Flags in either Play Params or Loop Params for a sound, it's best to adjust the schema files themselves, then do a reload_schemas command in DromEd so the changes will be done for you.