Audio (Module)

Module for the audio subsystem.

Functions

localSound ( sound : Text, volume : Number )

Start playing a local sound without any particular emitter object. sound must be a valid ID of a Sound definition. volume is the volume of the sound in the range 0…1.

This is useful for example for UI/HUD sound effects. Use World.Thing.startSound() to play a sound originating from a thing.

setAmbientSequence ( sequenceNumber : Number, commands : Array )

(Availability: Heretic only; since 2.3).

In Heretic, ambient sound effects are linked to DoomEd numbers 1200-1299. When one of these map spots is placed in a map (coordinates do not matter), the corresponding ambient sequence is registered for playing. sequenceNumber zero corresponds DoomEd number 1200. There can be up to eight sequences playing in the map, although only one at a time.

Each ambient sequence is composed of an array of commands. Below is an example of one of Heretic's built-in sequences (“Drops”, DoomEd number 1202):

Audio.setAmbientSequence(2, [
    "play",      "amb3",
    "delay",     16,
    "delayrand", 31,
    "play",      "amb7",
    "delay",     16,
    "delayrand", 31,
    "play",      "amb3",
    "delay",     16,
    "delayrand", 31,
    "play",      "amb7",
    "delay",     16,
    "delayrand", 31,
    "play",      "amb3",
    "delay",     16,
    "delayrand", 31,
    "play",      "amb7",
    "delay",     16,
    "delayrand", 31,
    "end"
])

The available commands are:

Command Parameters Description
play soundID Play a sound (random volume)
playabsvol soundID, volume Play a sound at specified volume (0…127)
playrelvol soundID, volumeOffset Play a sound at volume relative to previous sound's volume
delay tics Wait given number of tics (1 second = 35 tics)
delayrand arg Wait for P_Random() & arg tics (note: bitwise AND operator)
end Sequence terminator. Another one of the map's sequences is started at random after a delay.

This function can be called from a Map Info "On setup" script to set up ambient sound sequences in that map. The sound sequences are reset back to the built-in sequences whenever the map changes.

This function can also be called during a map. If the currently playing sequence is modified, it will restart as if the end command had been used.