#autorecordmic
##Example:
How you work with autorecordmic
is that you first instantiate it. It begins to listen to the
the ambient sounds in the room and it determines an average volume or activity level for the
space. Once that sampling is finished a function will be called where you should then call listen
.
If the activity level goes above the average then recording is started and once it goes below recording
is stopped.
var autorecordmic = require( 'autorecordmic' );
if( autorecordmic.isAvailable ) {
var mic = autorecordmic( {
onSampleFinished: function() {
console.log( 'sampling finished' );
mic.listen();
},
onRecordStart: function() {
console.log( 'started recording' );
},
onRecordStop: function() {
console.log( 'stopped recording' );
var data = mic.getStereoData()
mic.listen();
}
}, function( err ) {
if( !err ) {
console.log( 'good to go' );
} else {
console.log( 'oopsy error' );
}
});
}
##autorecordmic.isAvailable
autorecordmic.isAvailable will be true when autorecordmic is able to record. In order for
autorecordmic to be able to record the browser must have AnalyserNode, getUserMedia and AudioContext.
Scope: inner member of autorecordmic
Type: Boolean
##class: autorecordmic
Members
###new autorecordmic(settings, callback)
autorecordmic will listen to the users surrounding for a certain period
of time and then use the average volume to determine silence.
If the silence is broken then recording will start. Generally this would
be used in situations where someone would like to record speaking in a
relatively quiet environment. Although it may work quite well in moderate
situations.
When you instantiate autorecordmic you can pass the following settings:
{
averageDuration: 3000,
recordStartLevel: 10,
quietDuration: 1000,
maxDuration: 6000,
onSampleFinished: null,
onRecordStart: null,
onRecordStop: null
volume: 1,
bufferSize: 2048,
mono: false
onSampleData: null
}
Params
- settings
Object
- Settings are described above. - callback
function
- This callback will be called when the silence has been sampled
and autorecordmic is ready to begin listening
###autorecordmic.mic
mic is the recordmic which will be used to record audio. Use this also to grab the recorded
data.
For more info on record mic go here:
https://www.npmjs.org/package/recordmic
Type: recordmic
###autorecordmic.listen()
Calling this function will cause autorecordmic to begin listening. While it's listening
if the sound intensity goes above recordStartLevel autorecordmic will begin recording audio.
###autorecordmic.stop()
Calling this function will stop recording and stop listening.
###autorecordmic.getChannelData()
getChannelData will return return both left and right channel data from our recording.
If we're recording in mono one of the channels will be null.
The data returned for each channel are Float32Array arrays.
Returns: Object
- This object will have two variables 'left' and 'right' which
contain the data for each channel.
###autorecordmic.getMonoData([mono])
This will return mono data for our recording. What is returned is a Float32Array.
The mono setting will determine which array will be returned. If mono is set to true
then the left channel will be returned over the right.
Params
- [mono]
String
- This is optional. either 'left' or 'right' to determine which channel will be returned.
Returns: Float32Array
- The sound data for our recording as mono
###autorecordmic.getStereoData([mono])
getStereoData will return both the left and right channel interleaved as a Float32Array.
You can also pass in a value for mono. If you do then one of the channells will be interleaved as
stereo data.
So for instance in stereo:
[ left_data1, right_data1, left_data2, right_data2, left_data3, right_data3 ]
And if mono is set to 'left':
[ left_data1, left_data1, left_data2, left_data2, left_data3, left_data3 ]
Params
- [mono]
String
- If you'd like to get mono data interleaved as stereo data either pass 'left' or 'right'
Returns: Float32Array
- Sound data interleaved as a Float32Array.