Tone.PolySynth
↳ EXTENDS Tone.InstrumentTone.PolySynth handles voice creation and allocation for any instruments passed in as the second paramter. PolySynth is not a synthesizer by itself, it merely manages voices of one of the other types of synths, allowing any of the monophonic synthesizers to be polyphonic.
CONSTRUCTOR
new Tone.PolySynth ( [The number of voices to create
The constructor of the voices uses Tone.Synth by default.
DEFAULTS
EXAMPLE
//a polysynth composed of 6 Voices of Synth
var synth = new Tone.PolySynth(6, Tone.Synth).toMaster();
//set the attributes using the set interface
synth.set("detune", -1200);
//play a chord
synth.triggerAttackRelease(["C4", "E4", "A4"], "4n");
Members
.context
↝ Tone.Context READONLY #Get the audio context belonging to this instance.
.volume
↝ Decibels #The volume of the output in decibels.
EXAMPLE
source.volume.value = -6;
Methods
.triggerRelease ( )
#The notes to play. Accepts a single Frequency or an array of frequencies.
When the release will be triggered.
this
Trigger the release of the note. Unlike monophonic instruments, a note (or array of notes) needs to be passed in as the first argument.
EXAMPLE
poly.triggerRelease(["Ab3", "C4", "F5"], "+2n");
.set ( )
#Set a member/attribute of the voices.
EXAMPLE
poly.set({
"filter" : {
"type" : "highpass"
},
"envelope" : {
"attack" : 0.25
}
});
.triggerAttack ( )
#The notes to play. Accepts a single Frequency or an array of frequencies.
The start time of the note.
The velocity of the note.
this
Trigger the attack portion of the note
EXAMPLE
//trigger a chord immediately with a velocity of 0.2
poly.triggerAttack(["Ab3", "C4", "F5"], undefined, 0.2);
.triggerAttackRelease ( )
#The notes to play. Accepts a single Frequency or an array of frequencies.
the duration of the note
if no time is given, defaults to now
the velocity of the attack (0-1)
this
Trigger the attack and release after the specified duration
EXAMPLE
//trigger a chord for a duration of a half note
poly.triggerAttackRelease(["Eb3", "G4", "C5"], "2n");
EXAMPLE
//can pass in an array of durations as well
poly.triggerAttackRelease(["Eb3", "G4", "C5"], ["2n", "4n", "4n"]);
.get ( )
#the parameters to get, otherwise will return all available.
Get the synth’s attributes. Given no arguments get will return all available object properties and their corresponding values. Pass in a single attribute to retrieve or an array of attributes. The attribute strings can also include a “.” to access deeper properties.
.releaseAll ( )
#When the notes should be released.
this
Trigger the release portion of all the currently active voices.
.disconnect ( )
#Either the output index to disconnect if the output is an array, or the node to disconnect from.
this
disconnect the output
.toMaster ( )
#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();
.connect ( )
#optionally which output to connect from
optionally which input to connect to
this
connect the output of a ToneNode to an AudioParam, AudioNode, or ToneNode