Tone.Sampler

↳ EXTENDS Tone.Instrument

Automatically interpolates between a set of pitched samples. Pass in an object which maps the note’s pitch or midi value to the url, then you can trigger the attack and release of that note like other instruments. By automatically repitching the samples, it is possible to play pitches which were not explicitly included which can save loading time. For sample or buffer playback where repitching is not necessary, use Tone.Player.

CONSTRUCTOR

new Tone.Sampler (
samples
, [
onload
] , [
baseUrl
] )
samples

An object of samples mapping either Midi Note Numbers or Scientific Pitch Notation to the url of that sample.

type: Object
onload

The callback to invoke when all of the samples are loaded.

type: function
optional
baseUrl

The root URL of all of the samples, which is prepended to all the URLs.

type: String
optional

DEFAULTS

{
attack : 0 ,
release : 0.1 ,
onload : Tone.noOp ,
baseUrl : ,
curve : exponential
}

EXAMPLE

var sampler = new Tone.Sampler({
	"C3" : "path/to/C3.mp3",
	"D#3" : "path/to/Dsharp3.mp3",
	"F#3" : "path/to/Fsharp3.mp3",
	"A3" : "path/to/A3.mp3",
}, function(){
	//sampler will repitch the closest sample
	sampler.triggerAttack("D3")
})

Members

.attack

Time #

The envelope applied to the beginning of the sample.

</>

.curve

String #

The shape of the attack/release curve. Either “linear” or “exponential”

</>

.loaded

Boolean READONLY #

If the buffers are loaded or not

</>

.release

Time #

The envelope applied to the end of the envelope.

</>
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.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.Instrument

.volume

Decibels #

The volume of the output in decibels.

EXAMPLE

source.volume.value = -6;
</>

Methods

.add ( )

#
note

The buffer’s pitch.

type: Note or Midi
url

Either the url of the bufer, or a buffer which will be added with the given name.

callback

The callback to invoke when the url is loaded.

optional

Add a note to the sampler.

</>

.dispose ( )

#
↪ returns Tone.Sampler

this

Clean up

</>

.releaseAll ( )

#
time

When to release the notes.

type: Time
optional
↪ returns Tone.Sampler

this

Release all currently active notes.

</>

.sync ( )

#
↪ returns Tone.Instrument

this

Sync the instrument to the Transport. All subsequent calls of triggerAttack and triggerRelease will be scheduled along the transport.

EXAMPLE

synth.sync()
//schedule 3 notes when the transport first starts
synth.triggerAttackRelease('8n', 0)
synth.triggerAttackRelease('8n', '8n')
synth.triggerAttackRelease('8n', '4n')
//start the transport to hear the notes
Transport.start()
</>

.triggerAttack ( )

#
note

The note to play

time

When to play the note

type: Time
optional
velocity

The velocity to play the sample back.

optional
↪ returns Tone.Sampler

this

</>

.triggerAttackRelease ( )

#
note

The note to play

duration

The time the note should be held

type: Time
time

When to start the attack

type: Time
optional
velocity

The velocity of the attack

default: 1
↪ returns Tone.Sampler

this

Invoke the attack phase, then after the duration, invoke the release.

</>

.triggerRelease ( )

#
note

The note to release.

time

When to release the note.

type: Time
optional
↪ returns Tone.Sampler

this

</>
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

.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

.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.Instrument

.unsync ( )

#
↪ returns Tone.Instrument

this

Unsync the instrument from the Transport

</>
docs generated Sep 15 2019