(function(){OnlineTuner=function(){this.VERSION="1.0";this.installArray();this.installFloat32Array()};OnlineTuner.prototype={$:function(a){return document.getElementById(a)},virtual:function(){throw"call pure virtual function";},installFloat32Array:function(){Float32Array.prototype.max=function(){return Math.max.apply(null,this)};Float32Array.prototype.indexof=function(a){return Array.prototype.indexOf.call(this,a)};Float32Array.prototype.slice=function(a,b){return Array.prototype.slice.call(this,a,b)};Float32Array.prototype.select=function(f){for(var i=0;ithis.peak){this.peakBand=i;this.peak=mag}a[i]=mag}}}function FFT(a,b){FourierTransform.call(this,a,b);this.reverseTable=new Uint32Array(a);var c=1;var d=a>>1;var i;while(c>1}this.sinTable=new Float32Array(a);this.cosTable=new Float32Array(a);for(i=0;i