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
.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”.
.context
↝ Tone.Context READONLY #Get the audio context belonging to this instance.
.numberOfInputs
↝ Number READONLY #The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
.numberOfOutputs
↝ Number READONLY #The number of outputs coming out of the 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.
.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.
.volume
↝ Decibels #The volume of the output in decibels.
EXAMPLE
source.volume.value = -6;
Methods
.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"]);
.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");
.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.
.sync ( )
#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()
.chain ( )
#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);
.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
.disconnect ( )
#Either the output index to disconnect if the output is an array, or the node to disconnect from.
this
disconnect the output
.fan ( )
#this
connect the output of this node to the rest of the nodes in parallel.
.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();
.unsync ( )
#this
Unsync the instrument from the Transport