{"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":["/var/www/gavt/react-demo/src/function/fxauto.js"],"sourcesContent":["// 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 { fx: 0, tx: N / this.srate, vs: d, en: Q };\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 { tx: h / this.srate, fx: this.srate / h, vs: d, en: Q };\n    };\n  }\n  \nexport default fxauto"],"mappings":"AAAA;AACA;;AAEA,SAASA,MAAMA,CAACC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAEC,CAAC,EAAE;EAC3B,IAAIC,CAAC,GAAG,IAAI;EACZ,IAAIC,CAAC,GAAG,IAAI,CAACC,WAAW,CAACC,SAAS;EAClC,IAAI,CAACC,KAAK,GAAGL,CAAC;EACd,IAAI,CAACM,IAAI,GAAGC,IAAI,CAACC,KAAK,CAAC,IAAI,CAACH,KAAK,GAAGN,CAAC,CAAC;EACtC,IAAI,CAACU,IAAI,GAAGF,IAAI,CAACC,KAAK,CAAC,IAAI,CAACH,KAAK,GAAGT,CAAC,CAAC;EACtC,IAAI,CAACc,IAAI,GAAG,IAAIC,YAAY,CAAC,IAAI,CAACF,IAAI,GAAG,CAAC,CAAC;EAC3C,IAAI,CAACG,EAAE,GAAG,IAAID,YAAY,CAAC,IAAI,CAACF,IAAI,GAAG,CAAC,CAAC;EACzC,IAAII,CAAC,GAAGN,IAAI,CAACO,GAAG,CAACjB,CAAC,CAAC;EACnB,IAAIkB,CAAC,GAAGF,CAAC,GAAGA,CAAC;EACb,IAAIG,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,IAAI;EACZ,IAAIC,CAAC,GAAGX,IAAI,CAACO,GAAG,CAAChB,CAAC,CAAC;EACnB,IAAIqB,CAAC,GAAGD,CAAC,GAAGA,CAAC;EACb,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,IAAI;EACZ,IAAIC,CAAC,GAAG,CAACT,CAAC,GAAGK,CAAC,IAAI,CAAC;EACnB,IAAIK,CAAC,GAAGD,CAAC,GAAGA,CAAC;EACb,IAAIE,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAG,CAAC;EACT,IAAIC,CAAC,GAAGX,CAAC,GAAGO,CAAC,GAAGF,CAAC,GAAGP,CAAC,GAAGW,CAAC,GAAGL,CAAC,GAAGH,CAAC,GAAGO,CAAC,GAAGL,CAAC,GAAGF,CAAC,GAAGM,CAAC,GAAGH,CAAC,GAAGJ,CAAC,GAAGS,CAAC,GAAGN,CAAC,GAAGL,CAAC,GAAGU,CAAC,GAAGH,CAAC;EAC7E,IAAIO,CAAC,GAAGV,CAAC,GAAGK,CAAC,GAAGF,CAAC,GAAGP,CAAC,GAAGW,CAAC,GAAGH,CAAC,GAAGL,CAAC,GAAGS,CAAC,GAAGP,CAAC,GAAGF,CAAC,GAAGM,CAAC,GAAGD,CAAC,GAAGJ,CAAC,GAAGO,CAAC,GAAGN,CAAC,GAAGL,CAAC,GAAGY,CAAC,GAAGL,CAAC;EAC7E,IAAIQ,CAAC,GAAGb,CAAC,GAAGU,CAAC,GAAGL,CAAC,GAAGH,CAAC,GAAGO,CAAC,GAAGL,CAAC,GAAGH,CAAC,GAAGO,CAAC,GAAGF,CAAC,GAAGL,CAAC,GAAGS,CAAC,GAAGN,CAAC,GAAGJ,CAAC,GAAGS,CAAC,GAAGH,CAAC,GAAGJ,CAAC,GAAGM,CAAC,GAAGH,CAAC;EAC7E,IAAIS,CAAC,GAAGd,CAAC,GAAGO,CAAC,GAAGD,CAAC,GAAGR,CAAC,GAAGY,CAAC,GAAGN,CAAC,GAAGF,CAAC,GAAGM,CAAC,GAAGL,CAAC,GAAGD,CAAC,GAAGK,CAAC,GAAGH,CAAC,GAAGJ,CAAC,GAAGU,CAAC,GAAGP,CAAC,GAAGL,CAAC,GAAGU,CAAC,GAAGF,CAAC;EAC7E,KAAK,IAAIS,CAAC,GAAG,IAAI,CAACxB,IAAI,GAAG,CAAC,EAAEwB,CAAC,IAAI,IAAI,CAACrB,IAAI,EAAEqB,CAAC,EAAE,EAAE;IAC/CR,CAAC,GAAGf,IAAI,CAACO,GAAG,CAAC,IAAI,CAACT,KAAK,GAAGyB,CAAC,CAAC;IAC5B,IAAI,CAACpB,IAAI,CAACoB,CAAC,CAAC,GAAIR,CAAC,GAAGA,CAAC,GAAGK,CAAC,GAAID,CAAC,GAAIJ,CAAC,GAAGM,CAAC,GAAIF,CAAC,GAAGG,CAAC,GAAGH,CAAC;EACtD;EACA,IAAI,CAACK,WAAW,GAAG,UAAUC,CAAC,EAAEC,CAAC,EAAE;IACjC,IAAIC,CAAC,GAAG,CAAC;IACT,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,CAAC,EAAEE,CAAC,EAAE,EAAE;MAC1BD,CAAC,IAAIF,CAAC,CAACG,CAAC,CAAC,GAAGH,CAAC,CAACG,CAAC,CAAC;IAClB;IACAD,CAAC,GAAG3B,IAAI,CAAC6B,IAAI,CAACF,CAAC,GAAGD,CAAC,CAAC;IACpB,KAAK,IAAII,CAAC,GAAG,IAAI,CAAC/B,IAAI,GAAG,CAAC,EAAE+B,CAAC,IAAI,IAAI,CAAC5B,IAAI,EAAE4B,CAAC,EAAE,EAAE;MAC/C,IAAIC,CAAC,GAAG,CAAC;MACT,IAAIC,CAAC,GAAG,CAAC;MACT,IAAIC,CAAC,GAAG,CAAC;MACT,KAAK,IAAIL,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,CAAC,GAAGI,CAAC,EAAEF,CAAC,EAAE,EAAE;QAC9BK,CAAC,IAAIR,CAAC,CAACG,CAAC,CAAC,GAAGH,CAAC,CAACG,CAAC,GAAGE,CAAC,CAAC;QACpBC,CAAC,IAAIN,CAAC,CAACG,CAAC,CAAC,GAAGH,CAAC,CAACG,CAAC,CAAC;QAChBI,CAAC,IAAIP,CAAC,CAACG,CAAC,GAAGE,CAAC,CAAC,GAAGL,CAAC,CAACG,CAAC,GAAGE,CAAC,CAAC;MAC1B;MACA,IAAI,CAACzB,EAAE,CAACyB,CAAC,CAAC,GAAI,IAAI,CAAC3B,IAAI,CAAC2B,CAAC,CAAC,GAAGG,CAAC,GAAIjC,IAAI,CAAC6B,IAAI,CAACE,CAAC,GAAGC,CAAC,CAAC;IACpD;IACA,IAAIE,CAAC,GAAG,IAAI,CAACnC,IAAI,GAAG,CAAC;IACrB,IAAIoC,CAAC,GAAG,IAAI,CAAC9B,EAAE,CAAC6B,CAAC,CAAC;IAClB,KAAK,IAAIJ,CAAC,GAAG,IAAI,CAAC/B,IAAI,EAAE+B,CAAC,IAAI,IAAI,CAAC5B,IAAI,EAAE4B,CAAC,EAAE,EAAE;MAC3C,IAAI,IAAI,CAACzB,EAAE,CAACyB,CAAC,CAAC,GAAGK,CAAC,EAAE;QAClBA,CAAC,GAAG,IAAI,CAAC9B,EAAE,CAACyB,CAAC,CAAC;QACdI,CAAC,GAAGJ,CAAC;MACP;IACF;IACA,IAAII,CAAC,IAAI,IAAI,CAACnC,IAAI,GAAG,CAAC,IAAImC,CAAC,IAAI,IAAI,CAAChC,IAAI,GAAG,CAAC,IAAIiC,CAAC,GAAG,GAAG,EAAE;MACvD,OAAO;QAAEC,EAAE,EAAE,CAAC;QAAEC,EAAE,EAAEH,CAAC,GAAG,IAAI,CAACpC,KAAK;QAAEwC,EAAE,EAAEH,CAAC;QAAEI,EAAE,EAAEZ;MAAE,CAAC;IACpD;IACA,IAAIa,CAAC,GAAG,IAAI,CAACnC,EAAE,CAAC6B,CAAC,GAAG,CAAC,CAAC;IACtB,IAAIO,CAAC,GAAG,IAAI,CAACpC,EAAE,CAAC6B,CAAC,CAAC;IAClB,IAAIQ,CAAC,GAAG,IAAI,CAACrC,EAAE,CAAC6B,CAAC,GAAG,CAAC,CAAC;IACtB,IAAIS,CAAC,GAAI,GAAG,IAAID,CAAC,GAAGF,CAAC,CAAC,IAAK,CAAC,GAAGC,CAAC,GAAGD,CAAC,GAAGE,CAAC,CAAC;IACzC,IAAIE,CAAC,GAAGV,CAAC,GAAGS,CAAC;IACb,IAAIE,CAAC,GAAG,CAAC;IACT,IAAIV,CAAC,GAAG,GAAG,EAAE;MACX,KAAK,IAAIW,CAAC,GAAGD,CAAC,EAAEC,CAAC,GAAG,CAAC,EAAEA,CAAC,EAAE,EAAE;QAC1B,IAAIC,CAAC,GAAG,IAAI;QACZ,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,CAAC,EAAEE,CAAC,EAAE,EAAE;UAC1B,IAAIC,CAAC,GAAGjD,IAAI,CAACC,KAAK,CAAE+C,CAAC,GAAGJ,CAAC,GAAIE,CAAC,CAAC;UAC/B,IAAI,IAAI,CAACzC,EAAE,CAAC4C,CAAC,CAAC,GAAG,GAAG,GAAGd,CAAC,EAAE;YACxBY,CAAC,GAAG,KAAK;UACX;QACF;QACA,IAAIA,CAAC,EAAE;UACLH,CAAC,GAAGA,CAAC,GAAGE,CAAC;UACT;QACF;MACF;IACF;IACA,OAAO;MAAET,EAAE,EAAEO,CAAC,GAAG,IAAI,CAAC9C,KAAK;MAAEsC,EAAE,EAAE,IAAI,CAACtC,KAAK,GAAG8C,CAAC;MAAEN,EAAE,EAAEH,CAAC;MAAEI,EAAE,EAAEZ;IAAE,CAAC;EACjE,CAAC;AACH;AAEF,eAAevC,MAAM","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}