new Signal(value)
constant audio-rate signal
Tone.Signal is a core component which allows for synchronization of many components.
A single signal can drive multiple parameters by applying Scaling.
For example: to synchronize two Tone.Oscillators in octaves of each other,
Signal --> OscillatorA.frequency
^--> Tone.Multiply(2) --> OscillatorB.frequency
Tone.Signal can be scheduled with all of the functions available to AudioParams
Parameters:
Name | Type | Argument | Description |
---|---|---|---|
value |
number |
<optional> |
(optional) initial value |
Extends
Members
-
<private> _syncRatio :number
-
the ratio of the this value to the control signal value
Type:
- number
-
bufferSize :number
-
the default buffer size
Type:
- number
- Inherited From:
- Source:
-
context :AudioContext
-
A static pointer to the audio context
Type:
- AudioContext
- Inherited From:
- Source:
-
input :GainNode
-
default input of the ToneNode
Type:
- GainNode
- Inherited From:
- Source:
-
isFrequency
-
true if the input is in the format number+hz i.e.: 10hz
- Inherited From:
- Source:
-
isNotation
-
tests if a string is musical notation i.e.: 4n = quarter note 2m = two measures 8t = eighth-note triplet
- Inherited From:
- Source:
-
isTransportTime
-
tests if a string is transportTime i.e. : 1:2:0 = 1 measure + two quarter notes + 0 sixteenth notes
- Inherited From:
- Source:
-
output :GainNode
-
the output node
Type:
- GainNode
-
scalar :GainNode
-
scales the constant output to the desired output
Type:
- GainNode
-
waveShaperResolution :number
-
the default resolution for WaveShaperNodes
Type:
- number
- Inherited From:
- Source:
Methods
-
cancelScheduledValues(startTime)
-
Cancels all scheduled parameter changes with times greater than or equal to startTime.
Parameters:
Name Type Description startTime
Tone.Time -
chain()
-
connect together all of the arguments in series
Parameters:
Type Argument Description AudioParam | Tone <repeatable>
- Inherited From:
- Source:
-
connect(unit)
-
connect the output of a ToneNode to an AudioParam, AudioNode, or ToneNode
Parameters:
Name Type Description unit
Tone | AudioParam | AudioNode - Inherited From:
- Source:
-
dbToGain(db) → {number}
-
convert db scale to gain scale (0-1)
Parameters:
Name Type Description db
number - Inherited From:
- Source:
Returns:
- Type
- number
-
defaultArg(given, fallback) → {*}
-
if a the given is undefined, use the fallback
Parameters:
Name Type Description given
* fallback
* - Inherited From:
- Source:
Returns:
- Type
- *
-
disconnect()
-
disconnect the output
- Inherited From:
- Source:
-
dispose()
-
internal dispose method to tear down the node
-
equalPowerScale(percent) → {number}
-
equal power gain scale good for cross-fading
Parameters:
Name Type Description percent
number (0-1) - Inherited From:
- Source:
Returns:
output gain (0-1)- Type
- number
-
exponentialRampToValueAtTime(value, endTime)
-
Schedules an exponential continuous change in parameter value from the previous scheduled parameter value to the given value.
Parameters:
Name Type Description value
number endTime
Tone.Time -
exponentialRampToValueNow(value, endTime)
-
Schedules an exponential continuous change in parameter value from the current time and current value to the given value.
Parameters:
Name Type Description value
number endTime
Tone.Time -
expScale(gain) → {number}
-
Parameters:
Name Type Description gain
number (0-1) - Inherited From:
- Source:
Returns:
gain (decibel scale but betwee 0-1)- Type
- number
-
frequencyToSeconds(freq) → {number}
-
convert a frequency into seconds accepts both numbers and strings i.e. 10hz or 10 both equal .1
Parameters:
Name Type Description freq
number | string - Inherited From:
- Source:
Returns:
- Type
- number
-
gainToDb(gain) → {number}
-
convert gain scale to decibels
Parameters:
Name Type Description gain
number (0-1) - Inherited From:
- Source:
Returns:
- Type
- number
-
getValue() → {number}
-
Returns:
the current value of the signal- Type
- number
-
interpolate(input, outputMin, outputMax) → {number}
-
interpolate the input value (0-1) to be between outputMin and outputMax
Parameters:
Name Type Description input
number outputMin
number outputMax
number - Inherited From:
- Source:
Returns:
- Type
- number
-
linearRampToValueAtTime(value, endTime)
-
Schedules a linear continuous change in parameter value from the previous scheduled parameter value to the given value.
Parameters:
Name Type Description value
number endTime
Tone.Time -
linearRampToValueNow(value, endTime)
-
Schedules an linear continuous change in parameter value from the current time and current value to the given value at the given time.
Parameters:
Name Type Description value
number endTime
Tone.Time -
logScale(gain) → {number}
-
Parameters:
Name Type Description gain
number (0-1) - Inherited From:
- Source:
Returns:
gain (decibel scale but betwee 0-1)- Type
- number
-
noGC()
-
makes a connection to ensure that the node will not be garbage collected until 'dispose' is explicitly called use carefully. circumvents JS and WebAudio's normal Garbage Collection behavior
-
normalize(input, inputMin, inputMax) → {number}
-
normalize the input to 0-1 from between inputMin to inputMax
Parameters:
Name Type Description input
number inputMin
number inputMax
number - Inherited From:
- Source:
Returns:
- Type
- number
-
notationToSeconds(notation, bpm, timeSignature) → {number}
-
convert notation format strings to seconds
Parameters:
Name Type Argument Description notation
string bpm
number <optional>
timeSignature
number <optional>
- Inherited From:
- Source:
Returns:
- Type
- number
-
now() → {number}
-
Returns:
the currentTime from the AudioContext- Type
- number
-
receive(channelName)
-
recieve the input from the desired channelName to the input gain of 'this' node.
Parameters:
Name Type Description channelName
string - Inherited From:
- Source:
-
samplesToSeconds(samples) → {number}
-
convert a sample count to seconds
Parameters:
Name Type Description samples
number - Inherited From:
- Source:
Returns:
- Type
- number
-
secondsToFrequency(seconds) → {number}
-
convert a number in seconds to a frequency
Parameters:
Name Type Description seconds
number - Inherited From:
- Source:
Returns:
- Type
- number
-
send(channelName, amount) → {GainNode}
-
send signal to a channel name
Parameters:
Name Type Description channelName
string amount
number Returns:
- Type
- GainNode
-
setCurrentValueNow(now) → {number}
-
creates a schedule point with the current value at the current time
Parameters:
Name Type Argument Description now
number <optional>
(optionally) pass the now value in Returns:
the current value- Type
- number
-
setTargetAtTime(value, startTime, timeConstant)
-
Start exponentially approaching the target value at the given time with a rate having the given time constant.
Parameters:
Name Type Description value
number startTime
Tone.Time timeConstant
number -
setValue(value)
-
set the value of the signal right away will be overwritten if there are previously scheduled automation curves
Parameters:
Name Type Description value
number -
setValueAtTime(value, time)
-
Schedules a parameter value change at the given time.
Parameters:
Name Type Description value
number time
Tone.Time -
setValueCurveAtTime(values, startTime, duration)
-
Sets an array of arbitrary parameter values starting at the given time for the given duration.
Parameters:
Name Type Description values
Array.<number> startTime
Tone.Time duration
Tone.Time -
sync(signal)
-
Sync this to another signal and it will always maintain the ratio between the two signals until it is unsynced
Parameters:
Name Type Description signal
Tone.Signal to sync to -
toFrequency(time) → {number}
-
convert a time to a frequency
Parameters:
Name Type Description time
Tone.Time - Inherited From:
- Source:
Returns:
the time in hertz- Type
- number
-
toMaster()
-
connect 'this' to the master output
- Inherited From:
- Source:
-
toSamples(time) → {number}
-
convert a time into samples
Parameters:
Name Type Description time
Tone.time - Inherited From:
- Source:
Returns:
- Type
- number
-
toSeconds(time) → {number}
-
convert Tone.Time to seconds this is a simplified version which only handles numbers and 'now' relative numbers. If the Transport is included this method is overridden to include many other features including notationTime, Frequency, and transportTime
Parameters:
Name Type Description time
Tone.Time - Inherited From:
- Source:
Returns:
- Type
- number
-
toSeconds(time, bpm, timeSignature) → {number}
-
convert Tone.Time into seconds. unlike the method which it overrides, this takes into account transporttime and musical notation
Parameters:
Name Type Argument Description time
Tone.Time bpm
number <optional>
timeSignature
number <optional>
- Inherited From:
- Source:
Returns:
- Type
- number
-
toTransportTime(seconds, bpm, timeSignature) → {string}
-
Convert seconds to the closest transportTime in the form measures:quarters:sixteenths
Parameters:
Name Type Argument Description seconds
Tone.Time bpm
number <optional>
timeSignature
number <optional>
- Inherited From:
- Source:
Returns:
- Type
- string
-
transportTimeToSeconds(transportTime, bpm, timeSignature) → {number}
-
convert transportTime into seconds i.e.: 4:2:3 == 4 measures + 2 quarters + 3 sixteenths
Parameters:
Name Type Argument Description transportTime
string bpm
number <optional>
timeSignature
number <optional>
- Inherited From:
- Source:
Returns:
seconds- Type
- number
-
unsync()
-
unbind the signal control will leave the signal value as it was without the influence of the control signal