New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

audio-rms

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

audio-rms - npm Package Compare versions

Comparing version

to
2.0.0

45

index.js

@@ -1,11 +0,11 @@

var inherits = require('util').inherits;
var Readable = require('readable-stream').Readable;
var inherits = require('util').inherits
var Readable = require('readable-stream').Readable
module.exports = AudioRms
function AudioRms(audioContext){
function AudioRms (audioContext) {
if (!(this instanceof AudioRms)) {
return new AudioRms(audioContext);
return new AudioRms(audioContext)
}
Readable.call(this, { objectMode: true });
Readable.call(this, { objectMode: true })

@@ -16,3 +16,3 @@ var self = this

this.input = audioContext.createGain()
this._meter = this.context.createScriptProcessor(512*2, 2, 2)
this._meter = this.context.createScriptProcessor(512 * 2, 2, 2)
this.input.connect(this._meter)

@@ -22,4 +22,5 @@

var lastR = 0
var smoothing = 0.8
this._processAudio = function(e){
this._processAudio = function (e) {
var rmsL = 0

@@ -31,11 +32,6 @@ var rmsR = 0

for (var i = 0, ii = e.inputBuffer.length; i < ii; i++) {
rmsL += (inputL[i] * inputL[i]) / 2
rmsR += (inputR[i] * inputR[i]) / 2
}
rmsL = Math.max(rms(inputL), lastL * smoothing)
rmsR = Math.max(rms(inputR), lastR * smoothing)
rmsL = Math.sqrt(rmsL) / 10
rmsR = Math.sqrt(rmsR) / 10
if (rmsL != lastL || rmsR != lastR){
if (rmsL !== lastL || rmsR !== lastR) {
self.push([rmsL, rmsR])

@@ -48,12 +44,21 @@ lastL = rmsL

this._meter.connect(audioContext.destination)
}
inherits(AudioRms, Readable);
inherits(AudioRms, Readable)
function rms (input) {
var sum = 0
var total = 0
for (var i = 0; i < input.length; i++) {
var x = input[i]
total += x
sum += x * x
}
return Math.sqrt(sum / input.length)
}
AudioRms.prototype._read = function(e){
if (!this._meter.onaudioprocess){
AudioRms.prototype._read = function (e) {
if (!this._meter.onaudioprocess) {
this._meter.onaudioprocess = this._processAudio
}
}
}
{
"name": "audio-rms",
"version": "1.1.0",
"version": "2.0.0",
"description": "Connect a Web Audio API AudioNode and stream out the realtime RMS audio level.",

@@ -5,0 +5,0 @@ "main": "index.js",