Class: Recorder

Tone. Recorder

new Recorder(channels)

Record an input into an array or AudioBuffer it is limited in that the recording length needs to be known beforehand
Parameters:
Name Type Description
channels number
Source:

Extends

Members

<private> _jsNode :ScriptProcessorNode

Type:
  • ScriptProcessorNode
Source:

<private> _recordBufferOffset :number

Type:
  • number
Source:

<private> _recordBuffers :Array.<Float32Array>

Float32Array for each channel
Type:
  • Array.<Float32Array>
Source:

bufferSize :number

the default buffer size
Type:
  • number
Inherited From:
Source:

channels :number

the number of channels in the recording
Type:
  • number
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

default output of the ToneNode
Type:
  • GainNode
Inherited From:
Source:

waveShaperResolution :number

the default resolution for WaveShaperNodes
Type:
  • number
Inherited From:
Source:

Methods

<private> _audioprocess(event)

internal method called on audio process
Parameters:
Name Type Description
event AudioProcessorEvent
Source:

chain()

connect together all of the arguments in series
Parameters:
Type Argument Description
AudioParam | Tone <repeatable>
Inherited From:
Source:

clear()

clears the recording buffer
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:

<abstract> dispose()

a dispose method
Inherited From:
Source:

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

getAudioBuffer() → {AudioBuffer}

Source:
Returns:
Type
AudioBuffer

getFloat32Array() → {Array.<Float32Array>}

Source:
Returns:
Type
Array.<Float32Array>

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

isEmpty() → {boolean}

true if there is nothing in the buffers
Source:
Returns:
Type
boolean

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
Inherited From:
Source:

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}

Inherited From:
Source:
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:

record(time)

Record for a certain period of time will clear the internal buffer before starting
Parameters:
Name Type Description
time Tone.Time
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
Inherited From:
Source:
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