{"ast":null,"code":"// fxauto.js - fx estimation by autocorrelation\n// (c) 2015 Mark Huckvale University College London\n\nfunction fxauto(z, A, p, C, s) {\n  var u = this;\n  var n = this.constructor.prototype;\n  this.srate = s;\n  this.tmin = Math.round(this.srate / C);\n  this.tmax = Math.round(this.srate / z);\n  this.bias = new Float32Array(this.tmax + 1);\n  this.ac = new Float32Array(this.tmax + 1);\n  var m = Math.log(A);\n  var B = m * m;\n  var D = 1;\n  var E = 0.95;\n  var v = Math.log(p);\n  var w = v * v;\n  var o = 1;\n  var x = 0.95;\n  var G = (m + v) / 2;\n  var F = G * G;\n  var H = 1;\n  var t = 1;\n  var q = B * G * o + m * H * w + D * F * v - D * G * w - B * H * v - m * F * o;\n  var y = E * G * o + m * H * x + D * t * v - D * G * x - E * H * v - m * t * o;\n  var J = B * t * o + E * H * w + D * F * x - D * t * w - B * H * x - E * F * o;\n  var I = B * G * x + m * t * w + E * F * v - E * G * w - B * t * v - m * F * x;\n  for (var r = this.tmin - 1; r <= this.tmax; r++) {\n    G = Math.log(this.srate / r);\n    this.bias[r] = G * G * y / q + G * J / q + I / q;\n  }\n  this.CalculateFx = function (a, O) {\n    var Q = 0;\n    for (var j = 0; j < O; j++) {\n      Q += a[j] * a[j];\n    }\n    Q = Math.sqrt(Q / O);\n    for (var f = this.tmin - 1; f <= this.tmax; f++) {\n      var T = 0;\n      var R = 0;\n      var S = 0;\n      for (var j = 0; j < O - f; j++) {\n        S += a[j] * a[j + f];\n        T += a[j] * a[j];\n        R += a[j + f] * a[j + f];\n      }\n      this.ac[f] = this.bias[f] * S / Math.sqrt(T * R);\n    }\n    var N = this.tmin - 1;\n    var d = this.ac[N];\n    for (var f = this.tmin; f <= this.tmax; f++) {\n      if (this.ac[f] > d) {\n        d = this.ac[f];\n        N = f;\n      }\n    }\n    if (N <= this.tmin + 1 || N >= this.tmax - 1 || d < 0.5) {\n      return {\n        fx: 0,\n        tx: N / this.srate,\n        vs: d,\n        en: Q\n      };\n    }\n    var K = this.ac[N - 1];\n    var P = this.ac[N];\n    var l = this.ac[N + 1];\n    var g = 0.5 * (l - K) / (2 * P - K - l);\n    var h = N + g;\n    var b = 2;\n    if (d > 0.9) {\n      for (var L = b; L > 1; L--) {\n        var e = true;\n        for (var M = 1; M < L; M++) {\n          var c = Math.round(M * h / L);\n          if (this.ac[c] < 0.9 * d) {\n            e = false;\n          }\n        }\n        if (e) {\n          h = h / L;\n          break;\n        }\n      }\n    }\n    return {\n      tx: h / this.srate,\n      fx: this.srate / h,\n      vs: d,\n      en: Q\n    };\n  };\n}\nexport default fxauto;","map":{"version":3,"names":["fxauto","z","A","p","C","s","u","n","constructor","prototype","srate","tmin","Math","round","tmax","bias","Float32Array","ac","m","log","B","D","E","v","w","o","x","G","F","H","t","q","y","J","I","r","CalculateFx","a","O","Q","j","sqrt","f","T","R","S","N","d","fx","tx","vs","en","K","P","l","g","h","b","L","e","M","c"],"sources":["D:/Project/UC_Trains_Voice/react-demo/src/function/fxauto.js"],"sourcesContent":["// fxauto.js - fx estimation by autocorrelation\r\n// (c) 2015 Mark Huckvale University College London\r\n\r\nfunction fxauto(z, A, p, C, s) {\r\n    var u = this;\r\n    var n = this.constructor.prototype;\r\n    this.srate = s;\r\n    this.tmin = Math.round(this.srate / C);\r\n    this.tmax = Math.round(this.srate / z);\r\n    this.bias = new Float32Array(this.tmax + 1);\r\n    this.ac = new Float32Array(this.tmax + 1);\r\n    var m = Math.log(A);\r\n    var B = m * m;\r\n    var D = 1;\r\n    var E = 0.95;\r\n    var v = Math.log(p);\r\n    var w = v * v;\r\n    var o = 1;\r\n    var x = 0.95;\r\n    var G = (m + v) / 2;\r\n    var F = G * G;\r\n    var H = 1;\r\n    var t = 1;\r\n    var q = B * G * o + m * H * w + D * F * v - D * G * w - B * H * v - m * F * o;\r\n    var y = E * G * o + m * H * x + D * t * v - D * G * x - E * H * v - m * t * o;\r\n    var J = B * t * o + E * H * w + D * F * x - D * t * w - B * H * x - E * F * o;\r\n    var I = B * G * x + m * t * w + E * F * v - E * G * w - B * t * v - m * F * x;\r\n    for (var r = this.tmin - 1; r <= this.tmax; r++) {\r\n      G = Math.log(this.srate / r);\r\n      this.bias[r] = (G * G * y) / q + (G * J) / q + I / q;\r\n    }\r\n    this.CalculateFx = function (a, O) {\r\n      var Q = 0;\r\n      for (var j = 0; j < O; j++) {\r\n        Q += a[j] * a[j];\r\n      }\r\n      Q = Math.sqrt(Q / O);\r\n      for (var f = this.tmin - 1; f <= this.tmax; f++) {\r\n        var T = 0;\r\n        var R = 0;\r\n        var S = 0;\r\n        for (var j = 0; j < O - f; j++) {\r\n          S += a[j] * a[j + f];\r\n          T += a[j] * a[j];\r\n          R += a[j + f] * a[j + f];\r\n        }\r\n        this.ac[f] = (this.bias[f] * S) / Math.sqrt(T * R);\r\n      }\r\n      var N = this.tmin - 1;\r\n      var d = this.ac[N];\r\n      for (var f = this.tmin; f <= this.tmax; f++) {\r\n        if (this.ac[f] > d) {\r\n          d = this.ac[f];\r\n          N = f;\r\n        }\r\n      }\r\n      if (N <= this.tmin + 1 || N >= this.tmax - 1 || d < 0.5) {\r\n        return { fx: 0, tx: N / this.srate, vs: d, en: Q };\r\n      }\r\n      var K = this.ac[N - 1];\r\n      var P = this.ac[N];\r\n      var l = this.ac[N + 1];\r\n      var g = (0.5 * (l - K)) / (2 * P - K - l);\r\n      var h = N + g;\r\n      var b = 2;\r\n      if (d > 0.9) {\r\n        for (var L = b; L > 1; L--) {\r\n          var e = true;\r\n          for (var M = 1; M < L; M++) {\r\n            var c = Math.round((M * h) / L);\r\n            if (this.ac[c] < 0.9 * d) {\r\n              e = false;\r\n            }\r\n          }\r\n          if (e) {\r\n            h = h / L;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n      return { tx: h / this.srate, fx: this.srate / h, vs: d, en: Q };\r\n    };\r\n  }\r\n  \r\nexport default fxauto"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}