AudioMotion Analyzer Versions Save

High-resolution real-time graphic audio spectrum analyzer JavaScript module with no dependencies.

4.4.0

3 months ago

What's new

Added:

  • canvas property in the constructor options to use your own canvas - thanks @orangecoding for the suggestion;
  • getOptions() - retrieve all analyzer settings as an options object. Also added a getOptions() button to fluid and multi demos to copy the current settings to the clipboard - thanks @biigpongsatorn for the suggestion;
  • radialInvert - render radial spectrum bars towards the center of the screen;
  • radius - customize the size of the radial spectrum - thanks @orangecoding for the suggestion.

Changed & improved:

  • The constructor can now take the options object as the first argument if you don't need to define the container;
  • start has been explicitly marked as a constructor-specific property in the Options object description and will no longer work with setOptions() as of the next major release.

Fixed:

  • Bug preventing radial mode from working when set in the constructor options - thanks @lexterror and @ianrothmann for reporting it;
  • Reverted an unintended property name change in the object passed to the onCanvasDraw callback, introduced in v4.2.0.

4.3.0

7 months ago

What's new

Added:

Fixed:

  • Fixed opacity for reflex effect on dual-combined channel layout.

Improved:

  • Improved maxFPS frame rate throttling.

4.2.0

8 months ago

What's new

Added:

Fixed:

  • Corrected ESM exports in package.json - thanks @cprussin (#54).

Improved:

  • Peak hold and decay times and radial spin speed should now remain consistent on any frame rate;
  • showPeaks now works for Graph mode in radial view;
  • Code quality and documentation improvements - also thanks @Staijn1 for #55.

4.1.1

9 months ago
  • Fix a rendering bug when roundBars is combined with mirror and radial;
  • Add a polyfill for Array.findLastIndex() to restore compatibility with not-so-recent browsers.

4.1.0

9 months ago

What's new:

Added:

Fixed:

  • Avoid drawing the Y-axis scale and unlit LEDs twice, in 'dual-combined' channel layout.

Improved:

  • Improved frequency scales labeling (especially for noteLabels) - label sizes were slightly reduced in fullscreen;
  • Code cleanup and optimizations.

4.0.0

1 year ago

What's new:

🚨 BREAKING CHANGES:

  • Removed deprecated properties:

  • getBars() now includes an additional freq property for each element, representing the center frequency of the band. In addition, the range of each band has been adjusted so that frequencies that were previously at the lower edge (freqLo) are now located at the center of the band.

  • stereo has been DEPRECATED and will be removed in version 5 - use channelLayout instead.

Added:

  • ansiBands - use ANSI/IEC preferred frequencies for the octave bands;
  • channelLayout - adds option for dual channel combined spectrum, with both channel graphs overlaid;
  • frequencyScale - adds linear and perceptual (Bark/Mel) frequency scales;
  • gradientLeft and gradientRight - allow to select different gradients for each channel;
  • isBandsMode read-only property;
  • linearAmplitude - use linear values instead of dB for spectrum amplitudes;
  • linearBoost - amplify low energy values when using linear amplitude;
  • noteLabels - display musical note labels instead of frequency values on the X-axis;
  • weightingFilter - select from five different weighting filters for improved spectrum visualization;
  • Two new built-in gradients: orangered and steelblue.

Thank you @jonathan-annett (#28) and @TF3RDL (#30 and #38) for the suggestions that led to the implementation of several of these new features.

Fixed:

  • LED peaks showing below zero level when reflexRatio > 0.

Changed and improved:

  • Optimized generation of octave bands, with more accurate ranges and center frequencies;
  • Frequency labels on the X-axis now show different values depending on the value of ansiBands, to properly match the bands' center frequencies;
  • The onCanvasDraw callback is now passed an additional object with timestamp and gradients information;
  • The prism and rainbow gradients were recreated using the beautiful 12-bit rainbow palette by Kate Morley - If you need the old colors check this post;
  • Custom gradients can now register a single color;
  • splitGradient now works for horizontal gradients in radial visualization;
  • maxFreq is now capped to half the AudioContext's sample rate (Nyquist frequency);
  • Export additional types and interfaces in the TypeScript definition file;
  • Code optimizations, minor fixes and clean-up;
  • Revised and improved demos and documentation.

4.0.0-beta.5

1 year ago

What's new:

New in 4.0.0-beta.5:

  • Strings for dual channelLayout modes changed from camelCase to hyphen-separated words;
  • The dual-vertical channel layout now properly displays background colors from both selected gradients;
  • Fixed overlay display in dual-combined channel layout;
  • Added two new built-in gradients: 'orangered' and 'steelblue'.

4.0.0-beta.4

1 year ago

4.0.0-beta.3

1 year ago

4.0.0-beta.1

1 year ago