1.0.0 • Published 3 years ago

aframe-audio-analyser v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

aframe-audio-analyser

Latest NPM release Minzipped size License

An aframe component for adding audio visualizations, using Web Audio. This is an updated version of aframe-audioanalyser-component, with various improvements.

Check out the live demo.

Example gif

These components mostly provide processed Web Audio data (beat detection, levels, volume, waveform). How that is visualized is up to you (by writing components that use this data to have a visual effect). Components will generally implement the tick handler and read the analyser data. See the examples for some example visualization components.

Properties

PropertyDescriptionDefault Value
srcSelector to an audio element or path to audio file.''
beatStartCutoffParameter for beat detection0.8
beatEndCutoffParameter for beat detection0.75
cacheWhether or not to cache audio buffers.false
enableBeatDetectionWhether or not to detect beats. Disable if not using.true
enableLevelsWhether or not to store frequency data. Disable if not using.true
enableVolumeWhether or not to calculate average volume. Disable if not using.true
enableWaveformWhether or not to store waveform data. Disable if not using.true
fftSizeFrequency domain.2048
smoothingTimeConstantHow smooth the frequency data is returned.0.8
uniqueWhether to share the audio instance with other visualizing entities.false

Members

MemberDescriptionType
analyserWeb Audio AnalyserNodeAnalyserNode
volumeWhether or not to store frequency data. Disable if not using.number
waveformWhether or not to calculate average volume. Disable if not using.Uint8Array
levelsWhether or not to store waveform data. Disable if not using.Uint8Array

To access the analyser node:

el.components.audioanalyser.analyser;

Events

Event NameDescription
audioanalyser-beat-lowLow beat detected.
audioanalyser-beat-midMidrange beat detected.
audioanalyser-beat-highHigh beat detected.
audioanalyserreadyAnalyserNode initialized.

Usage

<head>
  <script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
  <script src="https://unpkg.com/aframe-audio-analyser@1.0.0/dist/aframe-audio-analyser.umd.js"></script>
</head>
<body>
  <a-scene>
    <a-assets>
      <audio id="song" src="mysong.mp3" autoplay loop></audio>
    </a-assets>
    <a-entity audioanalyser="src: #song;" component-that-does-stuff-with-audioanalyser-data></a-entity>
  </a-scene>
</body>