Tone

Tone is the base class of all other classes.

CONSTRUCTOR

new Tone ( )

Members

.context

Tone.Context READONLY #

The AudioContext

</>

Methods

.toTicks ( )

#
time
type: Time
↪ returns Ticks

the time in ticks

Convert a time representation into ticks.

</>

.receive ( )

#
channelName

A named channel to send the signal to.

type: String
channelNumber

The channel to connect to

type: Number
optional
↪ returns Tone

this

Receive the input from the desired channelName to the input

EXAMPLE

reverbEffect.receive("reverb");
</>

.send ( )

#
channelName

A named channel to send the signal to.

type: String
amount

The amount of the source to send to the bus.

↪ returns GainNode

The gain node which connects this node to the desired channel. Can be used to adjust the levels of the send.

Send this signal to the channel name.

EXAMPLE

source.send("reverb", -12);
</>

.toFrequency ( )

#
freq
↪ returns Hertz

the frequency in hertz

Convert a frequency representation into a number.

</>

.toSeconds ( )

#
time
type: Time
↪ returns Seconds

Convert Time into seconds. Unlike the method which it overrides, this takes into account transporttime and musical notation. Time : 1.40 Notation: 4n or 1m or 2t Now Relative: +3n

</>

Static Methods

.connect ( )

#
srcNode

The source node

dstNode

The destination node

outputNumber

The output channel of the srcNode

type: number
default: 0
inputNumber

The input channel of the dstNode

type: number
default: 0

Connect two nodes together so that signal flows from the first node to the second. The second node can be an AudioParam. Optionally specific the input and output channels.

</>

.connectSeries ( )

#
nodes
↪ returns Tone

connect together all of the arguments in series

</>

.dbToGain ( )

#
db
↪ returns Number

Convert decibels into gain.

</>

.defaultArg ( )

#
given
type: *
fallback
type: *
↪ returns *

If the given parameter is undefined, use the fallback. If both given and fallback are object literals, it will return a deep copy which includes all of the parameters from both objects. If a parameter is undefined in given, it will return the fallback property.

WARNING: if object is self referential, it will go into an an infinite recursive loop.

</>

.defaults ( )

#
values

The arguments array

type: Array
keys

The names of the arguments

type: Array
constr

The class constructor

↪ returns Object

An object composed of the defaults between the class’ defaults and the passed in arguments.

</>

.disconnect ( )

#
srcNode

The source node

dstNode

The destination node

outputNumber

The output channel of the srcNode

type: number
default: 0
inputNumber

The input channel of the dstNode

type: number
default: 0

Disconnect a node from all nodes or optionally include a destination node and input/output channels.

</>

.equalPowerScale ( )

#
percent

(0-1)

↪ returns Number

output gain (0-1)

Equal power gain scale. Good for cross-fading.

</>

.extend ( )

#
child
parent

(optional) parent to inherit from if no parent is supplied, the child will inherit from Tone

optional

have a child inherit all of Tone’s (or a parent’s) prototype to inherit the parent’s properties, make sure to call Parent.call(this) in the child’s constructor based on closure library’s inherit function

</>

.gainToDb ( )

#
gain

(0-1)

type: Number
↪ returns Decibels

Convert gain to decibels.

</>

.getContext ( )

#
resolve

Callback when the context is initialized

↪ returns Tone

Get the context when it becomes available

</>

.immediate ( )

#
↪ returns Number

the currentTime from the AudioContext

Return the current time of the AudioContext clock without any lookAhead.

</>

.intervalToFrequencyRatio ( )

#
interval

the number of semitones above the base note

↪ returns Number

the frequency ratio

Convert an interval (in semitones) to a frequency ratio.

EXAMPLE

tone.intervalToFrequencyRatio(0); // 1
tone.intervalToFrequencyRatio(12); // 2
tone.intervalToFrequencyRatio(-12); // 0.5
</>

.isArray ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is an array

Test if the argument is an Array

</>

.isBoolean ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is a boolean

Test if the argument is a boolean.

</>

.isDefined ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is undefined

Test if the arg is not undefined

</>

.isFunction ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is a function

Test if the arg is a function

</>

.isNote ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is a string

Test if the argument is in the form of a note in scientific pitch notation. e.g. “C4”

</>

.isNumber ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is a number

Test if the argument is a number.

</>

.isObject ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is an object literal.

Test if the given argument is an object literal (i.e. {});

</>

.isString ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is a string

Test if the argument is a string.

</>

.isUndef ( )

#
arg

the argument to test

type: *
↪ returns Boolean

true if the arg is undefined

Test if the arg is undefined

</>

.loaded ( )

#
↪ returns Promise

Returns a Promise which resolves when all of the buffers have loaded

</>

.noOp ( )

#

An empty function.

</>

.now ( )

#
↪ returns Number

the currentTime from the AudioContext

Return the current time of the AudioContext clock plus the lookAhead.

</>

.setContext ( )

#
ctx

The new audio context to set

Tone automatically creates a context on init, but if you are working with other libraries which also create an AudioContext, it can be useful to set your own. If you are going to set your own context, be sure to do it at the start of your code, before creating any objects.

</>

.start ( )

#
↪ returns Promise

This promise is resolved when the audio context is started.

Most browsers will not play any audio until a user clicks something (like a play button). Invoke this method on a click or keypress event handler to start the audio context. More about the Autoplay policy here

EXAMPLE

document.querySelector('#playbutton').addEventListener('click', () => Tone.start())
</>

.Offline ( )

#
callback

All Tone.js nodes which are created and scheduled within this callback are recorded into the output Buffer.

duration

the amount of time to record for.

type: Time
↪ returns Promise

The promise which is invoked with the Tone.Buffer of the recorded output.

Generate a buffer by rendering all of the Tone.js code within the callback using the OfflineAudioContext. The OfflineAudioContext is capable of rendering much faster than real time in many cases. The callback function also passes in an offline instance of Tone.Transport which can be used to schedule events along the Transport. NOTE OfflineAudioContext has the same restrictions as the AudioContext in that on certain platforms (like iOS) it must be invoked by an explicit user action like a click or tap.

EXAMPLE

//render 2 seconds of the oscillator
Tone.Offline(function(){
	//only nodes created in this callback will be recorded
	var oscillator = new Tone.Oscillator().toMaster().start(0)
	//schedule their events
}, 2).then(function(buffer){
	//do something with the output buffer
})

EXAMPLE

//can also schedule events along the Transport
//using the passed in Offline Transport
Tone.Offline(function(Transport){
	var osc = new Tone.Oscillator().toMaster()
	Transport.schedule(function(time){
		osc.start(time).stop(time + 0.1)
	}, 1)
	Transport.start(0.2)
}, 4).then(function(buffer){
	//do something with the output buffer
})
</>
docs generated Sep 15 2019