Tone.GrainPlayer

↳ EXTENDS Tone.Source

Tone.GrainPlayer implements granular synthesis. Granular Synthesis enables you to adjust pitch and playback rate independently. The grainSize is the amount of time each small chunk of audio is played for and the overlap is the amount of crossfading transition time between successive grains.

CONSTRUCTOR

new Tone.GrainPlayer (
url
, [
callback
] )
url

The url to load, or the Tone.Buffer to play.

type: String or Tone.Buffer
callback

The callback to invoke after the url is loaded.

type: function
optional

DEFAULTS

{
onload : Tone.noOp ,
overlap : 0.1 ,
grainSize : 0.2 ,
playbackRate : 1 ,
detune : 0 ,
loop : false ,
loopStart : 0 ,
loopEnd : 0 ,
reverse : false
}

Members

.buffer

Tone.Buffer #

The audio buffer belonging to the player.

</>

.detune

Cents #

Adjust the pitch independently of the playbackRate.

</>

.grainSize

Time #

The size of each chunk of audio that the buffer is chopped into and played back at.

</>

.loaded

Boolean READONLY #

If all the buffer is loaded

</>

.loopEnd

Time #

The loop end time.

</>

.loopStart

Time #

The loop start time.

</>

.overlap

Time #

This is the duration of the cross-fade between sucessive grains.

</>

.playbackRate

Positive #

The playback rate of the sample

</>

.reverse

boolean #

The direction the buffer should play in

</>
inherited from Tone.AudioNode

.numberOfInputs

Number READONLY #

The number of inputs feeding into the AudioNode. For source nodes, this will be 0.

</>
inherited from Tone.AudioNode

.channelCount

Number READONLY #

channelCount is the number of channels used when up-mixing and down-mixing connections to any inputs to the node. The default value is 2 except for specific nodes where its value is specially determined.

</>
inherited from Tone.AudioNode

.channelCountMode

String READONLY #

channelCountMode determines how channels will be counted when up-mixing and down-mixing connections to any inputs to the node. The default value is “max”. This attribute has no effect for nodes with no inputs.

</>
inherited from Tone.AudioNode

.channelInterpretation

String READONLY #

channelInterpretation determines how individual channels will be treated when up-mixing and down-mixing connections to any inputs to the node. The default value is “speakers”.

</>
inherited from Tone.AudioNode

.context

Tone.Context READONLY #

Get the audio context belonging to this instance.

</>
inherited from Tone.AudioNode

.numberOfOutputs

Number READONLY #

The number of outputs coming out of the AudioNode.

</>
inherited from Tone.Source

.volume

Decibels #

The volume of the output in decibels.

EXAMPLE

source.volume.value = -6;
</>
inherited from Tone.Source

.state

Tone.State READONLY #

Returns the playback state of the source, either “started” or “stopped”.

</>
inherited from Tone.Source

.fadeOut

Time #

The fadeOut time of the amplitude envelope.

</>
inherited from Tone.Source

.mute

boolean #

Mute the output.

EXAMPLE

//mute the output
source.mute = true;
</>
inherited from Tone.Source

.fadeIn

Time #

The fadeIn time of the amplitude envelope.

</>

Methods

.dispose ( )

#
↪ returns Tone.GrainPlayer

this

Clean up

</>

.start ( )

#
startTime

When the player should start.

type: Time
default: now
offset

The offset from the beginning of the sample to start at.

type: Time
default: 0
duration

How long the sample should play. If no duration is given, it will default to the full length of the sample (minus any offset)

type: Time
optional
↪ returns Tone.GrainPlayer

this

Play the buffer at the given startTime. Optionally add an offset and/or duration which will play the buffer from a position within the buffer for the given duration.

</>
inherited from Tone.AudioNode

.disconnect ( )

#
output

Either the output index to disconnect if the output is an array, or the node to disconnect from.

↪ returns Tone.AudioNode

this

disconnect the output

</>
inherited from Tone.AudioNode

.fan ( )

#
nodes
↪ returns Tone.AudioNode

this

connect the output of this node to the rest of the nodes in parallel.

</>
inherited from Tone.AudioNode

.chain ( )

#
nodes
↪ returns Tone.AudioNode

this

Connect the output of this node to the rest of the nodes in series.

EXAMPLE

//connect a node to an effect, panVol and then to the master output
 node.chain(effect, panVol, Tone.Master);
 
</>
inherited from Tone.AudioNode

.connect ( )

#
outputNum

optionally which output to connect from

type: number
default: 0
inputNum

optionally which input to connect to

type: number
default: 0
↪ returns Tone.AudioNode

this

connect the output of a ToneNode to an AudioParam, AudioNode, or ToneNode

</>
inherited from Tone.AudioNode

.toMaster ( )

#
↪ returns Tone.AudioNode

this

Connect ‘this’ to the master output. Shorthand for this.connect(Tone.Master)

EXAMPLE

//connect an oscillator to the master output
var osc = new Tone.Oscillator().toMaster();
</>
inherited from Tone.Source

.sync ( )

#
↪ returns Tone.Source

this

Sync the source to the Transport so that all subsequent calls to start and stop are synced to the TransportTime instead of the AudioContext time.

EXAMPLE

//sync the source so that it plays between 0 and 0.3 on the Transport's timeline
source.sync().start(0).stop(0.3);
//start the transport.
Tone.Transport.start();

 

EXAMPLE

//start the transport with an offset and the sync'ed sources
//will start in the correct position
source.sync().start(0.1);
//the source will be invoked with an offset of 0.4
Tone.Transport.start("+0.5", 0.5);
</>
inherited from Tone.Source

.unsync ( )

#
↪ returns Tone.Source

this

Unsync the source to the Transport. See Tone.Source.sync

</>
inherited from Tone.Source

.stop ( )

#
time

When the source should be stopped.

type: Time
default: now
↪ returns Tone.Source

this

Stop the source at the specified time. If no time is given, stop the source now.

EXAMPLE

source.stop(); // stops the source immediately
</>
docs generated Sep 15 2019