Tone.PolySynth

↳ EXTENDS Tone.Instrument

Tone.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 ( [
polyphony
= 4 ] , [
voice
= Tone.Synth ] )
polyphony

The number of voices to create

type: number or Object
default: 4
voice

The constructor of the voices uses Tone.Synth by default.

type: function
default: Tone.Synth

DEFAULTS

{
polyphony : 4 ,
volume : 0 ,
detune : 0 ,
voice : Tone.Synth
}

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

.detune

Cents #

The detune in cents

</>

.voices

Array #

the array of voices

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

.numberOfInputs

Number READONLY #

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

</>
inherited from Tone.AudioNode

.numberOfOutputs

Number READONLY #

The number of outputs coming out of the AudioNode.

</>
inherited from Tone.Instrument

.volume

Decibels #

The volume of the output in decibels.

EXAMPLE

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

Methods

.dispose ( )

#
↪ returns Tone.PolySynth

this

Clean up.

</>

.get ( )

#
params

the parameters to get, otherwise will return all available.

type: Array
optional

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 ( )

#
time

When the notes should be released.

type: Time
default: now
↪ returns Tone.PolySynth

this

Trigger the release portion of all the currently active voices.

</>

.set ( )

#
params
value
type: number
optional
rampTime
type: Time
optional
↪ returns Tone.PolySynth

this

Set a member/attribute of the voices.

EXAMPLE

poly.set({
	"filter" : {
		"type" : "highpass"
	},
	"envelope" : {
		"attack" : 0.25
	}
});
</>

.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 ( )

#
notes

The notes to play. Accepts a single Frequency or an array of frequencies.

time

The start time of the note.

type: Time
default: now
velocity

The velocity of the note.

type: number
default: 1
↪ returns Tone.PolySynth

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 ( )

#
notes

The notes to play. Accepts a single Frequency or an array of frequencies.

duration

the duration of the note

type: Time
time

if no time is given, defaults to now

type: Time
default: now
velocity

the velocity of the attack (0-1)

type: number
default: 1
↪ returns Tone.PolySynth

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 ( )

#
notes

The notes to play. Accepts a single Frequency or an array of frequencies.

time

When the release will be triggered.

type: Time
default: now
↪ returns Tone.PolySynth

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");
</>
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

.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 Jan 11 2019