lamejs
Version:
Pure JavaScript MP3 Encoder
80 lines (76 loc) • 1.96 kB
JavaScript
var common = require('./common.js');
var System = common.System;
var VbrMode = common.VbrMode;
var Float = common.Float;
var ShortBlock = common.ShortBlock;
var Util = common.Util;
var Arrays = common.Arrays;
var new_array_n = common.new_array_n;
var new_byte = common.new_byte;
var new_double = common.new_double;
var new_float = common.new_float;
var new_float_n = common.new_float_n;
var new_int = common.new_int;
var new_int_n = common.new_int_n;
var assert = common.assert;
var Encoder = require('./Encoder.js');
/**
* ATH related stuff, if something new ATH related has to be added, please plug
* it here into the ATH.
*/
function ATH() {
/**
* Method for the auto adjustment.
*/
this.useAdjust = 0;
/**
* factor for tuning the (sample power) point below which adaptive threshold
* of hearing adjustment occurs
*/
this.aaSensitivityP = 0.;
/**
* Lowering based on peak volume, 1 = no lowering.
*/
this.adjust = 0.;
/**
* Limit for dynamic ATH adjust.
*/
this.adjustLimit = 0.;
/**
* Determined to lower x dB each second.
*/
this.decay = 0.;
/**
* Lowest ATH value.
*/
this.floor = 0.;
/**
* ATH for sfbs in long blocks.
*/
this.l = new_float(Encoder.SBMAX_l);
/**
* ATH for sfbs in short blocks.
*/
this.s = new_float(Encoder.SBMAX_s);
/**
* ATH for partitioned sfb21 in long blocks.
*/
this.psfb21 = new_float(Encoder.PSFB21);
/**
* ATH for partitioned sfb12 in short blocks.
*/
this.psfb12 = new_float(Encoder.PSFB12);
/**
* ATH for long block convolution bands.
*/
this.cb_l = new_float(Encoder.CBANDS);
/**
* ATH for short block convolution bands.
*/
this.cb_s = new_float(Encoder.CBANDS);
/**
* Equal loudness weights (based on ATH).
*/
this.eql_w = new_float(Encoder.BLKSIZE / 2);
}
module.exports = ATH;