Giter VIP home page Giter VIP logo

Comments (1)

abrahamjuliot avatar abrahamjuliot commented on May 25, 2024

Concept inspired by https://audiofingerprint.openwpm.com:
https://es6console.com/kd9pjq7z/

const hashMini = str => {
  const json = `${JSON.stringify(str)}`
  let i, len, hash = 0x811c9dc5
  for (i = 0, len = json.length; i < len; i++) {
    hash = Math.imul(31, hash) + json.charCodeAt(i) | 0
  }
  return ('0000000' + (hash >>> 0).toString(16)).substr(-8)
}

const getAudioProps = () => {
  const contextOffline = OfflineAudioContext || webkitOfflineAudioContext
  const audioOffline = new contextOffline(1, 44100, 44100)
  const oscillator = audioOffline.createOscillator()
  const dynamicsCompressor = audioOffline.createDynamicsCompressor()
  const analyser = audioOffline.createAnalyser()
  const biquadFilter = audioOffline.createBiquadFilter()

  const audioData = {
    analyserChannelCount: analyser.channelCount,
    analyserChannelCountMode: analyser.channelCountMode,
    analyserChannelInterpretation: analyser.channelInterpretation,
    analyserSampleRate: analyser.context.sampleRate,
    analyserFftSize: analyser.fftSize,
    analyserFrequencyBinCount: analyser.frequencyBinCount,
    analyserMaxDecibels: analyser.maxDecibels,
    analyserMinDecibels: analyser.minDecibels,
    analyserNumberOfInputs: analyser.numberOfInputs,
    analyserNumberOfOutputs: analyser.numberOfOutputs,
    analyserSmoothingTimeConstant: analyser.smoothingTimeConstant,
    analyserContextListenerForwardXMax: analyser.context.listener.forwardX.maxValue,
    dynamicsCompressorAttackDefault: dynamicsCompressor.attack.defaultValue,
    dynamicsCompressorKneeDefault: dynamicsCompressor.knee.defaultValue,
    dynamicsCompressorKneeMax: dynamicsCompressor.knee.maxValue,
    dynamicsCompressorRatioDefault: dynamicsCompressor.ratio.defaultValue,
    dynamicsCompressorRatioMax: dynamicsCompressor.ratio.maxValue,
    dynamicsCompressorReleaseDefault: dynamicsCompressor.release.defaultValue,
    dynamicsCompressorReleaseMax: dynamicsCompressor.release.maxValue,
    dynamicsCompressorThresholdDefault: dynamicsCompressor.threshold.defaultValue,
    dynamicsCompressorThresholdMin: dynamicsCompressor.threshold.minValue,
    oscillatorDetuneMax: oscillator.detune.maxValue,
    oscillatorDetuneMin: oscillator.detune.minValue,
    oscillatorFrequencyDefault: oscillator.frequency.defaultValue,
    oscillatorFrequencyMax: oscillator.frequency.maxValue,
    oscillatorFrequencyMin: oscillator.frequency.minValue,
    biquadFilterGainMax: biquadFilter.gain.maxValue,
    biquadFilterFrequencyMax: biquadFilter.frequency.maxValue,
    biquadFilterFrequencyMin: biquadFilter.frequency.minValue
  }
  //console.log(biquadFilter)
  
  return audioData

}

a = getAudioProps()
console.log(a)

from creepjs.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.