Tone.MembraneSynth

↳ EXTENDS Tone.Instrument

Tone.MembraneSynth makes kick and tom sounds using a single oscillator with an amplitude envelope and frequency ramp. A Tone.OmniOscillator is routed through a Tone.AmplitudeEnvelope to the output. The drum quality of the sound comes from the frequency envelope applied during Tone.MembraneSynth.triggerAttack(note). The frequency envelope starts at note * .octaves and ramps to note over the duration of .pitchDecay.

CONSTRUCTOR

new Tone.MembraneSynth ( [
options
] )
options

the options available for the synth see defaults below

type: Object
optional

DEFAULTS

{
pitchDecay : 0.05 ,
octaves : 10 ,
oscillator :
{
type : sine
}
,
envelope :
{
attack : 0.001 ,
decay : 0.4 ,
sustain : 0.01 ,
release : 1.4 ,
attackCurve : exponential
}
}

EXAMPLE

var synth = new Tone.MembraneSynth().toMaster();
synth.triggerAttackRelease("C2", "8n");

Members

.envelope

Tone.AmplitudeEnvelope #

The amplitude envelope.

</>

.octaves

Positive #

The number of octaves the pitch envelope ramps.

</>

.oscillator

Tone.OmniOscillator #

The oscillator.

</>

.pitchDecay

Time #

The amount of time the frequency envelope takes.

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

.volume

Decibels #

The volume of the output in decibels.

EXAMPLE

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

Methods

.dispose ( )

#
↪ returns Tone.MembraneSynth

this

Clean up.

</>

.triggerRelease ( )

#
time

the time the note will release

type: Time
default: now
↪ returns Tone.MembraneSynth

this

Trigger the release portion of the note.

</>

.triggerAttack ( )

#
note

the note

time

the time, if not given is now

type: Time
default: now
velocity

velocity defaults to 1

type: number
default: 1
↪ returns Tone.MembraneSynth

this

Trigger the note at the given time with the given velocity.

EXAMPLE

kick.triggerAttack(60);
</>
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

.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

.fan ( )

#
nodes
↪ returns Tone.AudioNode

this

connect the output of this node to the rest of the nodes in parallel.

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

.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.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");
</>
docs generated Sep 15 2019