A beautifully simple app, Cavalier is made using Python and LibAdwaita. It offers 4 drawing modes, configurable color schemes (including gradients), plus lots of options to tweak the included animation spacing, padding, roundness, smoothness, noise reduction, etc.
With a little bit of tweaking you can get some especially pretty results:
Cavalier makes use of CAVA, a popular cross-platform bar spectrum audio visualizer” that can be used in a terminal (via ncurses) or desktop (using SDL). The devs of CAVA say the tool is not scientific and is merely designed to ‘look responsive and aesthetic’ when music is playing.
The latest update, issued this weekend, adds a brand new “Particles” drawing mode, plus color profiles so you can create different creations and switch between them easily, without needing re-make them from scratch.
There are also new keyboard shortcuts to change many of the settings without needing to open up the preferences panel, which is great for making immediate minor tweaks to the look and feel of your chosen visualizer.
Cavalier’s main window and be resized, and there are options to hide the header bar (which contains the menu) when the app is not in focus, and show/hide window controls.
You can get Cavalier on Flathub. The app should “just work” with most Linux setups, regardless of specific audio stack or desktop environment, though I only tested it on Fedora with GNOME Shell and PipeWire.
I will mention that that the app is relatively resource intensive. On my fairly modest Linux laptop running Cavalier at the same time as audio and other apps did result in some performance issues, including heat and audio clipping. On powerful PCs it’s unlikely to be an issue.