Tone.DuoSynth

↳ EXTENDS Tone.Monophonic

Tone.DuoSynth is a monophonic synth composed of two MonoSynths run in parallel with control over the frequency ratio between the two voices and vibrato effect.

CONSTRUCTOR

new Tone.DuoSynth ( [
options
] )
options

the options available for the synth see defaults below

type: Object
optional

DEFAULTS

{
vibratoAmount : 0.5 ,
vibratoRate : 5 ,
harmonicity : 1.5 ,
voice0 :
{
volume : -10 ,
portamento : 0 ,
oscillator :
{
type : sine
}
,
filterEnvelope :
{
attack : 0.01 ,
decay : 0 ,
sustain : 1 ,
release : 0.5
}
,
envelope :
{
attack : 0.01 ,
decay : 0 ,
sustain : 1 ,
release : 0.5
}
}
,
voice1 :
{
volume : -10 ,
portamento : 0 ,
oscillator :
{
type : sine
}
,
filterEnvelope :
{
attack : 0.01 ,
decay : 0 ,
sustain : 1 ,
release : 0.5
}
,
envelope :
{
attack : 0.01 ,
decay : 0 ,
sustain : 1 ,
release : 0.5
}
}
}

EXAMPLE

var duoSynth = new Tone.DuoSynth().toMaster();
duoSynth.triggerAttackRelease("C4", "2n");

Members

.frequency

Frequency #

the frequency control

</>

.harmonicity

Positive #

Harmonicity is the ratio between the two voices. A harmonicity of 1 is no change. Harmonicity = 2 means a change of an octave.

EXAMPLE

//pitch voice1 an octave below voice0
duoSynth.harmonicity.value = 0.5;
</>

.voice1

Tone.MonoSynth #

the second voice

</>

.vibratoAmount

Positive #

The amount of vibrato

</>

.vibratoRate

Frequency #

the vibrato frequency

</>

.voice0

Tone.MonoSynth #

the first voice

</>
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;
</>
inherited from Tone.Monophonic

.portamento

Time #

The glide time between notes.

</>

Methods

.dispose ( )

#
↪ returns Tone.DuoSynth

this

clean up

</>

.getLevelAtTime ( )

#
time

The time to query the envelope value

type: Time
↪ returns NormalRange

The output level between 0-1

Get the level of the output at the given time. Measures the envelope(s) value at the time.

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

.unsync ( )

#
↪ returns Tone.Instrument

this

Unsync the instrument from the Transport

</>
inherited from Tone.Instrument

.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

instrument.sync()
//schedule 3 notes when the transport first starts
instrument.triggerAttackRelease('C4', '8n', 0)
instrument.triggerAttackRelease('E4', '8n', '8n')
instrument.triggerAttackRelease('G4', '8n', '4n')
//start the transport to hear the notes
Transport.start()
</>
inherited from Tone.Instrument

.triggerAttackRelease ( )

#
note

The note to trigger.

duration

How long the note should be held for before triggering the release. This value must be greater than 0.

type: Time
time

When the note should be triggered.

type: Time
default: now
velocity

The velocity the note should be triggered at.

default: 1
↪ returns Tone.Instrument

this

Trigger the attack and then the release after the duration.

EXAMPLE

//trigger "C4" for the duration of an 8th note
synth.triggerAttackRelease("C4", "8n");
</>
inherited from Tone.Monophonic

.setNote ( )

#
note

The note to change to.

time

The time when the note should be set.

type: Time
default: now
↪ returns Tone.Monophonic

this

Set the note at the given time. If no time is given, the note will set immediately.

EXAMPLE

//change to F#6 in one quarter note from now.
synth.setNote("F#6", "+4n");

EXAMPLE

//change to Bb4 right now
synth.setNote("Bb4");
</>
inherited from Tone.Monophonic

.triggerRelease ( )

#
time

If no time is given, the release happens immediatly

type: Time
default: now
↪ returns Tone.Monophonic

this

Trigger the release portion of the envelope

EXAMPLE

synth.triggerRelease();
</>
inherited from Tone.Monophonic

.triggerAttack ( )

#
note

The note to trigger.

time

When the note should start.

type: Time
default: now
velocity

velocity The velocity scaler determines how “loud” the note will be triggered.

type: number
default: 1
↪ returns Tone.Monophonic

this

Trigger the attack of the note optionally with a given velocity.

EXAMPLE

synth.triggerAttack("C4");
 

EXAMPLE

//trigger the note a half second from now at half velocity
synth.triggerAttack("C4", "+0.5", 0.5);
</>
docs generated Sep 15 2019