# JSDoc: Class: TonePlayer

# Class: TonePlayer

## sound.TonePlayer(options)

#### new TonePlayer(options)

This class handles the playing of tones.

##### Parameters:

Name | Type | Description
--- | --- | ---

`options`

Object

###### Properties

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`psychoJS` | module:core.PsychoJS |  |  | the PsychoJS instance
`duration_s` | number | <optional> | 0.5 | duration of the tone (in seconds). If duration_s == -1, the sound will play indefinitely.
`note` | string | number | <optional> | 'C4' | note (if string) or frequency (if number)
`volume` | number | <optional> | 1.0 | volume of the tone (must be between 0 and 1.0)
`loops` | number | <optional> | 0 | how many times to repeat the tone after it has played once. If loops == -1, the tone will repeat indefinitely until stopped.

Source:
  - sound/TonePlayer.js, line 14

### Extends

- SoundPlayer

### Methods

#### (protected, static) _initSoundLibrary()

Initialise the sound library.

Note: if TonePlayer accepts the sound but Tone.js is not available, e.g. if the browser is IE11, we throw an exception.

Source:
  - sound/TonePlayer.js, line 282

#### (static) accept(sound) → {Object|undefined}

Determine whether this player can play the given sound.

Note: if TonePlayer accepts the sound but Tone.js is not available, e.g. if the browser is IE11, we throw an exception.

##### Parameters:

Name | Type | Description
--- | --- | ---
`sound` | module:sound.Sound | the sound

Source:
  - sound/TonePlayer.js, line 60

##### Returns:

an instance of TonePlayer that can play the given sound or undefined otherwise

Type
  Object | undefined

#### getDuration() → {number}

Get the duration of the sound.

Source:
  - sound/TonePlayer.js, line 117

##### Returns:

the duration of the sound, in seconds

Type
  number

#### play(loopsopt)

Start playing the sound.

##### Parameters:

Name | Type | Attributes | Description
--- | --- | --- | ---
`loops` | boolean | <optional> | how many times to repeat the sound after it has played once. If loops == -1, the sound will repeat indefinitely until stopped.

Source:
  - sound/TonePlayer.js, line 188

#### setDuration(duration_s)

Set the duration of the tone.

##### Parameters:

Name | Type | Description
--- | --- | ---
`duration_s` | number | the duration of the tone (in seconds) If duration_s == -1, the sound will play indefinitely.

Source:
  - sound/TonePlayer.js, line 130

#### setLoops(loops)

Set the number of loops.

##### Parameters:

Name | Type | Description
--- | --- | ---
`loops` | number | how many times to repeat the track after it has played once. If loops == -1, the track will repeat indefinitely until stopped.

Source:
  - sound/TonePlayer.js, line 143

#### setVolume(volume, muteopt)

Set the volume of the tone.

##### Parameters:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`volume` | Integer |  |  | the volume of the tone
`mute` | boolean | <optional> | false | whether or not to mute the tone

Source:
  - sound/TonePlayer.js, line 156

#### stop()

Stop playing the sound immediately.

Source:
  - sound/TonePlayer.js, line 255