Sound sequence

A sound sequence is as the name implies a series of sounds that are played sequentially. The most common sound sequences are used for sector movement, such as doors opening or platform lowering: these typically have a sequence made of a "start" sound played once, followed by a "moving" sound played on a loop until the sector stops moving the a "stop" sound is played once.

However, sound sequences can be used for other purposes. Heretic uses sound sequences for its ambient sounds, and they can be scripted with ACS functions such as SoundSequence and its variants. The console command playsequence can be used to test sound sequences.

To override a sector's default sound sequences, use the UDMF soundsequence property with the sound sequence name, a sound sequence thing with the relevant sequence index, or the Sector_ChangeSound special with the sequence index. For polyobjects, use the sound parameter in Polyobj_StartLine or Polyobj_ExplicitLine.

Note that a sector has only one sound sequence. If a sector behaves both as a door and a platform, it will use the same sound sequence name (in UDMF) or index (with sound sequence thing) for both its door movements and its platform movements. Sector_ChangeSound can be used to attempt to work around this limitation, setting a door sound before running a door special and a platform sound before running a platform special.

Standard sound sequences

The following sequences are defined in ZDoom:

The following sequences are defined in the Hexen IWAD:

When playing Hexen, the DoorNormal, Platform, and Silence sequences are overridden by those from the Hexen IWAD. The Silence sequence is identical for obvious reasons, so only DoorNormal and Platform are redefined.

Sector movement

The default sound sequence used for sector movement depends on the type of movement. Sector movement sequences are caused by the following specials:

SpecialDefault sequenceNotes
Ceiling_CrushAndRaiseCeilingNormal
Ceiling_CrushAndRaiseACeilingNormal
Ceiling_CrushAndRaiseDistCeilingNormal
Ceiling_CrushAndRaiseSilentACeilingSemiSilent
Ceiling_CrushRaiseAndStayCeilingNormal
Ceiling_CrushRaiseAndStayACeilingNormal
Ceiling_CrushRaiseAndStaySilACeilingSemiSilent
Ceiling_LowerAndCrushCeilingNormal
Ceiling_LowerAndCrushDistCeilingNormal
Ceiling_LowerByValueCeilingNormal
Ceiling_LowerByValueTimes8CeilingNormal
Ceiling_LowerInstantCeilingNormal
Ceiling_LowerToFloorCeilingNormal
Ceiling_LowerToHighestFloorCeilingNormal
Ceiling_LowerToLowestCeilingNormal
Ceiling_MoveToValueCeilingNormal
Ceiling_MoveToValueTimes8CeilingNormal
Ceiling_RaiseByValueCeilingNormal
Ceiling_RaiseByValueTimes8CeilingNormal
Ceiling_RaiseInstantCeilingNormal
Ceiling_RaiseToNearestCeilingNormal
Door_AnimatedAnimated door, uses the sequences defined in ANIMDEFS with OpenSound and CloseSound
Door_CloseDoor, see below
Door_CloseWaitOpenDoor, see below
Door_LockedRaiseDoor, see below
Door_OpenDoor, see below
Door_RaiseDoor, see below
Elevator_LowerToNearestFloor
Elevator_MoveToFloorFloor
Elevator_RaiseToNearestFloor
Floor_DonutFloor
Floor_LowerByValueFloor
Floor_LowerByValueTimes8Floor
Floor_LowerInstantFloor
Floor_LowerToHighestFloor
Floor_LowerToLowestFloor
Floor_LowerToLowestTxTyFloor
Floor_LowerToNearestFloor
Floor_MoveToValueFloor
Floor_MoveToValueTimes8Floor
Floor_RaiseByTextureFloor
Floor_RaiseByValueFloor
Floor_RaiseByValueTimes8Floor
Floor_RaiseByValueTxTyFloor
Floor_RaiseInstantFloor
Floor_RaiseToHighestFloor
Floor_RaiseToLowestCeilingFloor
Floor_RaiseToNearestFloor
Floor_RaiseAndCrushFloor
FloorAndCeiling_LowerByValueFloor
FloorAndCeiling_LowerRaiseCeilingNormalAlso plays "Floor" sequence, though see Boom emulation note in article
FloorAndCeiling_RaiseByValueFloor
Generic_CeilingCeilingNormal
Generic_CrusherCeilingNormalUse sequence "Silence" instead if arg3 is true
Generic_Crusher2CeilingNormalUse sequence "Silence" instead if arg3 is true
Generic_DoorDoor, see below
Generic_FloorFloor
Generic_LiftPlatformUse sequence "Floor" instead if arg3 is 4
Generic_StairsFloor
Pillar_BuildFloor
Pillar_BuildAndCrushFloor
Pillar_OpenFloor
Plat_DownByValueFloor
Plat_DownWaitUpStayPlatform
Plat_DownWaitUpStayLipPlatformUse sequence "Floor" instead if arg4 is true
Plat_PerpetualRaisePlatform
Plat_PerpetualRaiseLipPlatform
Plat_RaiseAndStayTx0Floor
Plat_ToggleCeilingSilence
Plat_UpByValueFloor
Plat_UpByValueStayTxFloor
Plat_UpNearestWaitDownStayPlatform
Plat_UpWaitDownStayPlatform
Polyobj_DoorSlideDoor, see below
Polyobj_DoorSwingDoor, see below
Polyobj_MoveDoor, see below
Polyobj_MoveTimes8Door, see below
Polyobj_OR_MoveDoor, see below
Polyobj_OR_MoveTimes8Door, see below
Polyobj_OR_RotateLeftDoor, see below
Polyobj_OR_RotateRightDoor, see below
Polyobj_RotateLeftDoor, see below
Polyobj_RotateRightDoor, see below
Stairs_BuildDownFloor
Stairs_BuildDownSyncFloor
Stairs_BuildUpFloor
Stairs_BuildUpDoomFloor
Stairs_BuildUpSyncFloor

Door sound sequences also depend on the game played.

GameDoor
Doom DoorNormal
Heretic HereticDoor
Hexen DoorNormal
Strife See table below

Strife door sound sequences also depend on the upper texture name, as shown in the table below:

DORS* DoorStone
DORM* DoorLargeMetal
DORWL* DoorLargeWood
DORW* DoorSmallWood
Default DoorSmallMetal

Hexen does not specifically assign door or platform sequence indices in SNDSEQ, since the number of supported sequences is limited to the existing types. Instead, it uses the following hardcoded indices:

IndexDoorPlatformTheme
0DoorNormalPlatformStone
1DoorHeavyPlatformHeavy
2DoorMetalPlatformMetalMetal
3DoorCreakPlatformCreak
4SilenceSilenceSilence
5LavaLavaLava
6WaterWaterWater
7IceIceIce
8EarthEarthEarth
9DoorMetal2PlatformMetal2Metal 2

See also

This article is issued from Zdoom. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.