# Sound (of `Object`)

class `Sound`

  Defined in Sound.sc.

  The Sound class encapsulates sound functionality. Sound (midi) and audio (digial audio) resources share the same numbering namespace. That means that if you have both, sound 47 should be a midi version of audio 47, and audio 47 should be a digital audio version of sound 47. The appropriate one will play depending on the user’s current configuration (resource.cfg in the game folder).

  Example usage:

      (instance rainSound of Sound
              (properties
                      number 567      // Sound resource 567
                      loop -1
              )
      )

      // Then in script at some point:
      (rainSound play:)

## Properties

Inherited from `Object`:

Property | Description
--- | ---
name |

Defined in Sound:

Property | Description
--- | ---
nodePtr |
handle |
flags |
number |
vol | 0 to 127.
priority |
loop | -1 for looping.
signal |
prevSignal |
dataInc |
min |
sec |
frame |
client |
owner |

## Methods

`new`(theOwner)

`init`()

`dispose`()

`play`([theClient])

  Plays the sound.

  Parameters: | theClient (heapPtr) – An optional object that will be cue()’d when the sound has finished playing, or a cue marker is reached.

`stop`()

  Stops the sound.

`pause`([fPause])

  Pauses or unpauses the sound.

  Parameters: | fPause (boolean) – If TRUE or unspecified, the sound is paused. Otherwise it is unpaused.

`hold`(fHold)

`release`()

`fade`([theClient])

`fade`(toVolume fadeTicker fadeStep stopAfterFade [theClient])

  Fades a sound.

  Parameters: | theClient (heapPtr) – An optional object that becomes the sound’s client. It will be cue()’d when the fade is done. toVolume (number) – The target volume (0 if not provided). Ranges from 0-127. fadeTicker (number) – Unknown (25 if not provided). fadeStep (number) – The volume increment to fade each game cycle (10 if not provided). stopAfterFade (boolean) – TRUE if the sound should stop after fading, otherwise FALSE.

`mute`(param1 param2)

`setVol`(theVolume)

  Sets the sound volume (0 - 127).

`setPri`(thePri)

  Sets the sound priority.

`setLoop`(loopValue)

  Sets the loop value (-1 to loop endlessly, any other value to play once).

`snd2`(param1 param2 param3 param4)

  Sends MIDI data to the audio player.

`check`()

`clean`(theOwner)

`playBed`(theClient)

`changeState`()