new Meter(channels, smoothing, clipMemory)
get the rms of the input signal with some averaging can also just get the value of the signal or the value in dB
inspired by https://github.com/cwilso/volume-meter/blob/master/volume-meter.js The MIT License (MIT) Copyright (c) 2014 Chris Wilson
Parameters:
Name | Type | Argument | Description |
---|---|---|---|
channels |
number |
<optional> |
(optional) number of channels being metered |
smoothing |
number |
<optional> |
(optional) amount of smoothing applied to the volume |
clipMemory |
number |
<optional> |
(optional) number in ms that a "clip" should be remembered |
Extends
Members
-
<private> _jsNode :ScriptProcessorNode
-
Type:
- ScriptProcessorNode
-
<private> _lastClip :number
-
last time the values clipped
Type:
- number
-
<private> _values :Array.<number>
-
the raw values for each of the channels
Type:
- Array.<number>
-
<private> _volume :Array.<number>
-
the rms for each of the channels
Type:
- Array.<number>
-
bufferSize :number
-
the default buffer size
Type:
- number
- Inherited From:
- Source:
-
channels :number
-
Type:
- number
-
clipMemory :number
-
Type:
- number
-
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
-
default output of the ToneNode
Type:
- GainNode
- Inherited From:
- Source:
-
smoothing :number
-
Type:
- number
-
waveShaperResolution :number
-
the default resolution for WaveShaperNodes
Type:
- number
- Inherited From:
- Source:
Methods
-
<private> _onprocess(event)
-
called on each processing frame
Parameters:
Name Type Description event
AudioProcessingEvent -
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()
-
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
-
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
-
getDb(channel) → {number}
-
get the volume of the signal in dB
Parameters:
Name Type Argument Description channel
number <optional>
Returns:
- Type
- number
-
getLevel(channel) → {number}
-
get the rms of the signal
Parameters:
Name Type Argument Description channel
number <optional>
which channel Returns:
the value- Type
- number
-
getValue(channel) → {number}
-
get the value of the signal
Parameters:
Name Type Argument Description channel
number <optional>
Returns:
- 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
-
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
-
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