AudioMotion.js Versions Save

Media player and real-time audio spectrum analyzer written in JavaScript.

v24.4

1 month ago

Maintenance update with some improvements and bug fixes.

If you hated the media panel auto-hide feature before, please try it again! 😅

What's new

Added:

  • Support for #EXTALB directive in m3u playlists (discussed in #37);
  • Version control to let users know when the app has been updated (the update message should start appearing with the next version).

Changed & improved:

  • Media panel auto-hide improvements: fixed the scrollbar on small windows (#54); added a small delay before triggering; avoid changing state when mouse leaves the window;
  • Song metadata is now saved to the stored playqueue and playlists;
  • Added instructions on how to install the app in the Getting started section;
  • Added links to the docs website and changelog (click the version number) on the Help panel.

Fixed:

  • File explorer stalling on "Loading..." when folder was not found (#55);
  • Built-in background images not loading.

v24.3

1 month ago

📢 audioMotion is now an online web app that can play music and video directly from your device! No download necessary.

What's new

Added:

  • Support for the File System Access API, allowing the web app to read files from your local device (depends on browser support);
  • Video playback - suggested by @JesusGod-Pope666-Info;
  • Bark, Mel and linear frequency scales (**) - suggested by @TF3RDL (here) and @hsnam95 (here);
  • Frequency weighting filters (**);
  • New dual-channel layouts: horizontal (side-by-side channels) and combined (overlaid channels) - suggested by @TF3RDL;
  • Allow selecting different gradients for each channel, when using a dual-channel layout;
  • New bar coloring modes: by level (bar amplitude) and by index (bar position);
  • Press 0 (zero) to quickly randomize analyzer settings;
  • ANSI switch to use IEC/ANSI preferred frequencies for octave bands - suggested by @jonathan-annett;
  • LINEAR switch to use linear amplitude values, instead of decibels (**);
  • NOTES switch to display musical note labels in the X-axis scale;
  • ROUND switch to render analyzer bars wih rounded corners on top;
  • Config options to customize the backgrounds folder and how many individual media files appear in the Background options;
  • Config option to limit the maximum frame-rate;
  • Config option to adjust on-screen display font size - suggested by @kimycai;
  • Config option to auto-hide the media panel, expanding the analyzer area;
  • Config options to remember the contents of the play queue and the last used folder between sessions;
  • Enabled some server-side configuration options via config.json file - see Self-hosting audioMotion;

** Special thanks to @TF3RDL for the code snippets which helped immensely in the implementation of these features!

Changed & improved:

  • User preset funcionality now provides 9 slots for saving your favorite analyzer configurations;
  • Prism and Rainbow gradients have been updated with softer colors (the old versions can be enabled in the Config panel);
  • Random Mode has been renamed to Randomize and it's now possible to remove the Analyzer Mode from the randomized settings;
  • AUTO gradient functionality has been changed to Gradients option under Settings affected by Randomize;
  • PEAKS now work for Line and Area graph analyzer modes in Radial view;
  • STEREO switch has been replaced by the Channel Layout setting;
  • Peaks hold and decay times are now more consistent on varying frame rates;
  • Improved frequency scale labeling (label font size slightly reduced in fullscreen);
  • Play queue size limit increased to 2000 files;
  • Source and Speakers settings are now automatically restored between sessions - suggested by @dieterstoll;
  • Smoothing setting has been moved to General settings;
  • Added more options to the minimum and maximum values in the Frequency range;
  • New default settings: 20Hz - 20kHz frequency range, FFT smoothing set to 0.7, Scale-Y off and info displayed at both the start and end of the song;
  • New fonts for the user interface and internal console;
  • New custom UI controls to replace standard range inputs and radio buttons;
  • If you are self-hosting audioMotion, it can now run from any subdirectory (no need to use a virtual host or custom port);
  • Updated documentation;

Fixed:

  • Reflex not working on PIP mode on some circumstances;
  • Some special characters in file/directory names preventing files from being loaded.

v24.3-beta.0

1 month ago

Updated source code is in the dev branch

Please use this post in Discussions to send any questions or feedback about this release.

Online web app:

Button Icon

What's new

Added:

Changed & improved:

  • The play queue (and stored playlists) can now mix files hosted on the server with ones from the local device;
  • Minor changes to default settings: Scale-Y off and track info displayed at both the start and end of the song;
  • Increased font sizes in the player main panel and help screen;
  • Updated documentation.

v24.2-beta.1

2 months ago

Please use this post in Discussions to send any questions or feedback about this release.

Online web app:

Button Icon

What's new

Added:

  • Save and load playlists in local mode (File System API) - these are stored in the browser's IndexedDB storage;
  • Prism (legacy) and Rainbow (legacy) gradients - disabled by default, enabled them in the Config panel;
  • Basic support for video file extensions (audio playback only) - thanks @JesusGod-Pope666-Info for the suggestion.

Improved:

  • Fixed retrieving metadata for queued songs when using the File System API;
  • Improved autoplay start time when adding an m3u playlist to the play queue;
  • Update the right-channel gradient selection when the LINK button is activated.

Check also the v24.2-beta.0 release notes for a complete list of changes since latest stable version.

v24.2-beta.0

2 months ago

Updated source code is in the dev branch

A little over two years ago, I started working on turning audioMotion into a native application using Electron, but then I realized it would be a pain to keep up with the constant framework updates and huge dependency tree.

Then, I wanted to believe File System Access API was gaining traction for wider browser adoption and thought it would be really cool to have an official audioMotion web app that everyone could use to play their own music without needing to download or install anything, while also being easier for me to maintain. So I began adding support for that too. Turns out, it's 2024 and this API is still supported by Chromium only.

In the meantime, I've found out that some people were actually using audioMotion as a self-hosted web app and, since this is also how I use it myself on my old NAS, I wanted to keep the app working on any standard web server as well.

TL;DR - audioMotion code is now more complex than ever, but lately I simply haven't had the time or energy to work on it as much as I'd like to, so I still don't have a stable version working 100% as I want.

However, this version does have a lot of new cool features added since the last public release, and my wife and I have been using it at home, and she keeps telling me I need to publish it.

So.. there you have it! Click the button below to open the app:

Button Icon

⚠️ This is BETA software! Expect bugs!

Please use this post in Discussions to send feedback or bug reports about this beta version.

Known limitations:

  • Access to local device works only on Chromium-based browsers, due to currently limited File System Access API support
    should work on Chrome and Edge by default; on Brave you'll need to enable it in chrome://flags/#file-system-access-api
  • Saving and loading playlists on File System API mode doesn't work yet;
  • Documentation hasn't been updated yet.

What's new since v21.11 (latest stable release)

Added:

  • Support to File System Access API, allows the web app to play music from your local device;
  • Bark, Mel and linear frequency scales for improved visualization of mid-range and high frequencies;
  • Frequency weighting filters;
  • New dual-channel layouts: horizontal (side-by-side channels) and combined (overlaid channels);
  • New bar coloring modes: by level (bar amplitude) and by index (bar position);
  • Rounded corner bars (optional);
  • Option to display musical note labels in the X-axis scale;
  • Option to use linear amplitude values, instead of dB;
  • Option to use IEC/ANSI preferred frequencies for octave bands;
  • Allow selecting different gradients for the left and right channels, when using a dual-channel layout;
  • Playlists can now be saved to the hard disk (native app only).

Changed / improved:

  • The Prism and Rainbow gradients have been updated with softer colors;
  • The custom preset funcionality now provides 9 slots for saving your favorite presets;
  • The Smoothing setting has been moved to General settings, and the default value changed to 0.7 (from 0.5);
  • Random Mode has been renamed to Randomize and it's now possible to remove the Mode from the settings randomized;
  • The AUTO gradient button/functionality has been removed - check Gradients under Settings affected by Randomize to have new gradient(s) selected when Randomize is active;
  • The STEREO button has been replaced by the Channel Layout setting;
  • Added more options to the minimum and maximum values in the frequency range;
  • New fonts for the user interface and internal console;
  • New custom UI controls to replace standard range inputs and radio buttons;
  • audioMotion can now run from a subdirectory in web server mode.

Fixed:

  • Reflex not working on PIP mode on some circumstances.

v21.11

2 years ago

What's new :syringe: :mask:

:birthday: It's audioMotion's THIRD Anniversary and we have plenty of new features to celebrate!!! :tada: 🥳

Added:

Changed / improved:

  • FFT Size setting moved to the Config panel, under General settings;
  • Volume is now saved and restored between sessions;
  • Background Image Fit options can now be enabled/disabled in the Config panel;
  • Default value for Background Dim changed from 0.3 to 0.5;
  • Improved progression curve for volume control;
  • Improved performance when adding a lot of files to the play queue;
  • Play queue limited to 1000 songs;
  • New layout for Config and Help modal windows;
  • New fully functional demo site (includes demo songs, radio streams and background images and videos);
  • Release microphone audio stream when switching back to the music player;
  • Webpack upgraded from v4 to v5;
  • Improved documentation;
  • Code quality improvements.

Fixed:

  • Memory leak from unused resources not being released;
  • Keyboard shortcuts not working after clicking the Fullscreen button;
  • Undefined codec profile displayed in song info;
  • AbortError error messages when playing or pausing;
  • Incorrect "already at first track" message when skipping to previous track.

v20.12

3 years ago

What's new :mask:

:tada: Celebrating audioMotion's 2nd Anniversary! :confetti_ball:

New features:

  • :fire: Revamped user interface with a cool new look! :sunglasses:
  • Stereo (dual channel) analyzer option :headphones: :notes: :musical_note:
  • :mega: Built-in volume control

Changed / improved:

  • Song info may now be displayed continuously (no fade-out), and also at the end of the song; display times are now customizable in the Config panel;
  • The display of album covers in song info is now optional;
  • Options to upload a local file and to load a song from an URL are now always available, not only in local file mode;
  • Hold the previous/next player buttons (or left/right arrow keys) to rewind/fast-foward the current song;
  • Frequency and level scales are now toggled via independent SCALE X and SCALE Y switches;
  • The size of scale labels on both axes is now scaled relatively to the canvas height;
  • Added timestamp to console messages and a button to clear the console;
  • Added a keyboard shortcut (C) for toggling Radial visualization;
  • Shortcut changes:
    • Up and down arrow keys are now used to control the volume - for gradient selection use G or Shift+G;
    • J and K keys still work as alternate shortcuts to previous/next song, but are no longer documented and may be reassigned in the future;
    • Clicks on canvas now display song information (same behavior as the D key);
  • Updated documentation website.

Fixed:

  • Clicks on switches not being properly detected sometimes;
  • Random mode not working when audio source was set to microphone;
  • An unexpected error message when deleting the last song from the queue.

v20.9

3 years ago

What's new :mask:

This is a minor update to address two bugs:

  • A day-one design flaw which connected the microphone output to the speakers, generating feedback loops;
  • An unexpected error message when trying to load a playlist with an empty value in the playlist selection.

v20.8

3 years ago

What's new :mask:

Added:

Changed:

  • Improved the background image Pulse effect to look more synced regardless of music style;
  • Any image located in the song's folder can now be used as album cover when a picture is not found in the song metadata (see the documentation for filename precedence).

Fixed:

  • Audio files with uppercase extensions not recognized when audioMotion was running on a standard web server.

v20.6

3 years ago

What's new :mask:

Added:

  • Album cover image retrieved from the song metadata or from a file named cover or folder (.jpg|png|gif|bmp) inside each folder is now shown in the file explorer background, the on-screen song information and, optionally, in the analyzer background;

  • New Background, Image Fit and Image Dim settings.

Changed:

  • Slightly increased the opacity of the image reflection when Reflex is On.

Removed:

  • The NO BG switch has been replaced by the new Background setting.

Fixed:

  • Linux binary built with latest pkg version can now open the browser automatically;
  • A typo that could cause "Unexpected null" errors on some browsers.