-
Notifications
You must be signed in to change notification settings - Fork 2
/
soundinidoc.txt
312 lines (306 loc) · 10.9 KB
/
soundinidoc.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
; SOUND.INI
; All sounds in the game are specified here. The sound must
; first be specified in the sound list section. Then the appropriate
; sound data should be specified for those sounds that differ from
; the default ratings.
;[NameOfSoundEvent] ; Name of new sound event (up to 31 characters)
;Control= ; <ALL LOOP RANDOM PREDELAY INTERRUPT ATTACK DECAY AMBIENT>
;Sounds= ; <list of sounds>
;Volume= ; <0..100> (100 = full volume)
;Delay= ; minDelay maxDelay (milliseconds)
;Priority= ; <LOWEST LOW NORMAL HIGH CRITICAL>
;Type= ; <AMBIENT VIOLENT MOVEMENT QUIET LOUD GLOBAL SCREEN LOCAL PLAYER NORMAL GUN_SHY NOISE_SHY UNSHROUD SHROUD>
;FShift= ; minFrequenceDelta maxFrequencyDelta (in percent delta from normal pitch)
;VShift= ; max volume drop
;Limit= ; max number of events at one time
;Range= ; number of cells
;Loop= ; stop looping after this many iterations - loop control must be set
;MinVolume= ; minimum volume for GLOBAL Type event (ignored for all other types)
;Attack= ; number of sounds at start of sounds list that are attack sounds
;Decay= ; number of sounds at end of sounds list that are decay sounds
; the defaults for all events
[Defaults]
MinVolume=50
Range=10
Volume=80
Limit=5
Type= NORMAL SCREEN UNSHROUD
Priority=NORMAL
;-----------------------------------------------------------------------
;
;Explaination of the following attributes:
;
; Control
; Sounds
; Volume
; Delay
; Priority
; Type
; FShift
; VShift
; Limit
; Range
; Loop
; MinVolume
; Attack
; Decay
;
;
; CONTROL:
;
; Syntax: Control = <all loop random predelay interrupt attack decay ambient>
;
; The control attributes can be used in any combination to achieve desired
; playback effects.
; The default control behaviour is to play the
; first sound in the sound list just once. The following control keywords
; can be used to:
;
; all
; Use all sounds in sound list.
;
; loop
; Continually play sound event. Loop attribute can be used to
; specify how many times to loop the event.
; //Comments from CnC3 which also uses this audio engine.
; With this flag, the sound will play an Attack sound, and then
; play one of the sounds from the Sounds lists forever until something kills the sound, at
; which point it will play a Decay sound. Without this flag, the sound would just play
; 1 Attack, 1 Sound, and 1 Decay sound.
; Sounds with this flag are sometimes known as "permanent" sound, while sounds without
; this flag are known as "one-shot" sounds. In general, you can use a one-shot sound
; where a permanent sound is expected; for instance, as the sound for a Large Group Audio
; map, or as a move loop. However, you should NOT use permanent sounds where one-shot
; sounds are expected; the code will not kill the sound and it will last until the level is
; exited.
;
; random
; Randomly pick sound from sound list to play.
;
; predelay
; Normally if the DELAY attribute is specified the delay happens
; when the sound finishes playing. PREDELAY forces the delay to
; happen at the start of the sound. Random predelays help avoid
; 'phasing' when multiple instances of the same audio event happen
; at the same time.
;
; interrupt
; This new instances of this type sound event have priority over
; already playing instances.
;
; attack
; Specifies that the first sound in the sound list gets played,
; regardless, at the start of the audio event (see ATTACK attribute
; also). This sound is called the attack sound.
;
;
; decay
; Specifies that the last sound in the sound list gets played,
; regardless, at the end of the audio event. ( see DECAY attribute
; also). This sound is called the decay sound.
;
;
;
; ambient
; Specifies that this sound is a ambient sound.
;
;
; SOUND:
;
; Syntax: Sounds = {$}<sound1> {$}<sound2> ...{$}<sound32>
;
; Up to 32 sound files can be associated with an audio event. Do not
; specify path or extension of the file, just the name of the file. The
; file name must not be more that 31 characters. If there are spaces in the
; filename then enclose the name in double quotes(e.g. "Big Bad Sound").
; However, avoid using spaces if possible.
;
; The sound files should be WAVE format. We currently support IMA ADPCM, PCM,
; Stereo, Mono at any sample rate. For best performance, use Mono
; 22050Hz.
;
; Any sounds that require localization must have a dollar sign ($) in front
; of their names in the sound list (not in the filename itself).
;
; NOTE: all sound files should be normalized
;
;
; VOLUME:
;
; Syntax: Volume = <0..100>
;
; Volume level playback for audio event. We assume that all sounds are
; normalized. Use this attribute to set the mixing levels for audio.
; The value specified is the percentage of full volume. e.g. 25 means
; playback at one quarter of full volume.
;
;
; DELAY
;
; Syntax: Delay = <minDelay> < maxDelay>
;
; Used to specify a delay (in milliseconds) to wait at the end of an each
; sound that is played in an event. The control PREDELAY moves the wait to
; the start of each sound being played. The delay is randomized between
; the min and max delay times. e.g.:
;
; Delay = 3000 8000 ; wait from 3 to 8 seconds between sounds
; Delay = 1000 ; wait exactly 1 second between sounds
;
;
; PRIORITY
;
; Syntax: Priority = <LOWEST LOW NORMAL HIGH CRITICAL>
;
; Priority and Limit are the most important attributes of them all. While
; possibly hundreds of audio events want to trigger every frame, only a few
; will be chosen. It is vitally important to ensure that important events
; do not get dropped. The audio engine uses the priority of the audio event
; when choosing which events to drop. So make priorities are set correctly
; for all events.
;
;
; TYPE
;
; Syntax: Type = < AMBIENT VIOLENT MOVEMENT QUIET LOUD GLOBAL SCREEN LOCAL PLAYER NORMAL GUN_SHY NOISE_SHY UNSHROUD SHROUD>
;
; Type information allows the game engine to modify event behaviour. Meaning:
;
; ambient
;
; violent
;
; movement
;
; quiet
;
; loud
;
; global
; Positional audio event is always audible regardless of where in
; the world it is. Instead of fading to silence when out of range
; like normal events, global events do not fade below MINVOLUME.
;
; screen
; Audio event fades out only when it moves off the edge of the screen.
;
; local
;
; player
; Only the owning player will be able to hear the sound.
;
; normal
; default type.
;
; gun_shy
;
; noise_shy
;
; unshroud
; Not audible when not covered by shroud
;
; shroud
; Not audible when shrouded
;
; //Comments from CnC3 which also uses this audio engine.
; If this flag is present, the sound
; will not play if its position is inside the shroud or fog of war.
;
;
; FSHIFT
;
; Syntax: FShift = <minDelta> <maxDelta>
;
; The FShift attribute alows the playback frequency to be randomly changed
; in order to give some variance to repetitive sounds. The engine uses a
; percentage value to represent the frequency of a sound. 100 percent
; means normal frequency. 50 percent means half the frequency. 200 percent
; means twice the frequency, and so on.
;
; The minDelta and maxDelta values describe a range relative to 100 percent
; frequency. For example:
;
; FShift = -5 5 ; vary frequency between (100 -5) and (100 + 5)
; FShift = 5 10 ; vary frequency between 105% and 110% of original
; FShift = -50 0 ; vary frequency between 50% and 100% of original
;
;
; VSHIFT
;
; Syntax: VShift = <maxDrop>
;
; Like FShift, VShift is used to randomly change the volume of a sound
; in order the give it more variance. The VShift value is the maximum
; drop in volume alowed. For example,
;
; Volume = 80
; VShift = 10 ; vary volume between 80 and 70
;
;
; LIMIT
;
; Syntax: Limit = <max instances>
;
; Limit specifies the maximum number of instances of an audio event type
; that can be played SIMULTANEOUSLY. Limit of one, along with IMMEDIATE
; control, can be used to achieve monaural sounds.
;
;
; RANGE
;
; Syntax: Range = <cells>
;
; Specifies the audible range of a sound in game cells.
;
;
; LOOP
; Syntax: Loop = <count>
;
; By default looping is infinite. Loop can be used to specify the
; exact number of loop iterations. 0 count means loop forever.
;
;
; MIMVOLUME
;
; Syntax: MinVolume = <0.100>
;
; See "GLOBAL" TYPE above.
;
;
; ATTACK
;
; Syntax: Attack = <num>
;
; By default when the control keyword 'attack' is specified the first sound
; in the sound list is used as the attack sound. If the Attack attribute is
; supplied then the first <num> sounds in the sound list are considered
; attack sounds, and are randomly chosen from on playback. Obviously this
; is used in order to vary the attack sound.
;
; //Comments from CnC3 which also uses this audio engine.
; A list of WAVE files to play when starting up the sound. This key applies ONLY to
; AudioEvents. If this key is not empty, one of the WAVE files listed here will be
; played when the sound is started up, before the sounds in the "Sounds" list. The
; format is exactly the same as the "Sounds" list. Note that if the sound starts
; when it can't actually be heard (for instance, a 3D looping sound which is out of range),
; the "Attack" sound will be skipped when it finally becomes audible.
;
;
; DECAY
;
; Syntax: Decay = <num>
;
; By default when the control keyword 'decay' is specified the last sound
; in the sound list is used as the decay sound. If the Decay attribute is
; supplied then the last <num> sounds in the sound list are considered
; decay sounds, and are randomly chosen from on playback. Obviously this
; is used in order to vary the decay sound.
;
; //Comments from CnC3 which also uses this audio engine.
; A list of WAVE files to play when killing the sound. This key applies ONLY to
; AudioEvents. If this key is present and not empty, one of the WAVE files listed
; here will be played when the sound is killed. The format is exactly the same as
; the "Sounds" list.
;
;
; All sounds in the game are listed here (by name).