Releases: djfun/audio-visualizer-python
v2.2.4
Inverted Classic Visualizer and Quiet FFmpeg
View v2.2.4 on PyPI
New features
- FFmpeg output no longer prints to stdout unless avp is in
--verbose/-vmode - Added new "invert" option to Classic Visualizer: this makes the bars transparent, using user-selected color as background instead
- Visualizer with purple color, not inverted:
* Visualizer with purple, inverted:
Fixed bugs
- Image component now parses
path=myfile.jpgargs without raising an exception (regression due to stretch checkbox being replaced with a combobox in a prior version) - Tests now store config in
/tmpif usingpytest-xdistto run multiple tests in parallel (note: the single-process behaviour has not changed) - Added a tooltip to the second color selection in the Color component, explaining that gradient must be selected to enable the option
- Non-existent components are properly ignored if opening a "corrupt" (likely newer version) project file
- Alternative names for components now actually do something
- Exceptions raised by components during rendering now show tracebacks similar to other errors (as "details" the user can expand) as well as printing them to stdout
- Image component now applies file-extension allowlist to CLI arguments for consistency with the GUI. These extensions are stored on Core and were never intended to be more lenient in CLI mode, but the CLI parsing within components is very basic at the moment.
Technical changes
original.py,original.ui, andtest_comp_original.pywere all renamed, changingoriginaltoclassiccomponent.pymoved intolibcomponentsubpackage, moving all classes within that file into separate Python files- The
Componentclass inherited by all components is now namedBaseComponent - Numerous instances of
core.Corewere changed to justCore - Removed unused imports from various components
- Fixed asymmetrical ascii art in comments (this one is super important)
v2.2.3
Minor bugfix update
View v2.2.3 on PyPI
New features
- This only fixes one user-facing bug. See v2.2.1 for the list of features added since v2.2.0
Fixed bugs
- Fixed new bug caused by v2.2.1 fix for #92: creating a new project with unsaved changes would raise an UnboundLocalError
- This is a single-line change in
mainwindow.py
- This is a single-line change in
- Added new tests for MainWindow.createNewProject and MainWindow.openProject to prevent the error re-occuring
- Found and fixed an additional problem that made tests inconsistent
v2.2.1
New Waveform animation speed and Image shadow options
View v2.2.1 on PyPI
New features
- added "shadow" option to Image component (shadow responds to audio to enhance 3D effect)
- fixed #74 by adding animation speed option to Waveform. This setting introduces a "lag" effect of 10-90 frames depending on the chosen setting, fading between old and new lagged frames, while also showing a ghostly image of the current frame. The opacity of current frame is affected by the intensity of the audio, and the interval may reset early due to peaks in the audio. This new effect can be disabled by setting animation speed to 100%
- added "bars" option to Classic Visualizer with option to show previously-hidden 64th bar
- added window that shows version number if you press F1
- newly added components receive a random colour instead of white (not including the default new user experience, which remains as white bars on black background)
Fixed bugs
- fixed Conway kaleidoscope effect to look better
- changed default Conway grid to last 60+ minutes instead of 30
- fixed #92
- fixed issue where undo history window spawned tiny and needed to be resized manually
v2.2.0
Update Image and Conway's Game of Life components
This is our first release on PyPI! Thanks to @aeliton for creating our new pyproject.toml file.
Installation
Install the latest version from PyPI using pipx install audio-visualizer-python
New features
- Image component v2 - now has the option to "respond to audio" (scale up and down slightly in response to input audio) and additional scale/stretch options
- Conway's Game of Life v2 - cells now pulsate in response to audio, fade smoothly between iterations, and a new kaleidoscope option provides some mirrored visual effects
Technical changes
v2.1.2
Update to new dependencies
This program now runs with Qt 6 and modern versions of Pillow. The minimum Python version is 3.12
Installation on Ubuntu 24.04 (using X11, the default)
- From a fresh install, do the following:
sudo apt install ffmpeg git pipx libxcb-cursor0 - Run
pipx ensurepathand restart your terminal for pipx apps to be useable. - Now install AVP with
pipx install git+https://github.com/djfun/audio-visualizer-python - Run with
avp
Note: avp command only works after you ran pipx ensurepath and restarted terminal. This puts pipx-installed apps into your PATH variable, where the terminal searches for programs
Changes from v2.1.0
- The
--testargument was changed to--logto better reflect what it does (copy and shorten log files for users to find them easier) - The
--debugargument was changed to--verbose/-vto better reflect what it does (it makes the logging system very noisy) - A
--version/-Vargument was added to check the version of avp - Log files now include the current version of PyQt6
v2.1.0
Update to modern dependenices
Goodbye, Qt 5! This update doesn't change the program, but brings the dependencies up to modern versions.
New features
- Support for Qt 6 and modern Python versions
- This version was tested on FFmpeg 8.0.1, but any FFmpeg versions 4.4.1 or higher should work.
v2.0.0
Major Redesign with Component System
The original visualization effect is now called the "Classic Visualizer". Audio Visualizer Python (AVP) now has a component-based system so future visualization effects could possibly be added. I'll help anyone who wants to work on incorporating a new visualizer; just file an issue and I'll respond within a few days.
This major version change was long in the making. Most work was done back in 2017, but I have recently fixed a ton of bugs. I think it's ready for release. I'm currently planning to maintain this software for the foreseeable future.
New Features
- See this video demonstration of the new version 🎥
- An entirely new interface and project system for saving/loading your preferred settings.
- Instead of having just one visualizer, one text, and one choice of background, you can now layer as many of these components together as you want to.
- Added sensitivity and scale tweakable options for the classic visualizer effect
- Added two new visualization components which use FFmpeg filters: waveforms and spectrograms.
- Added a component which simulates Conway's Game of Life. This isn't really an audio visualization, but it can be used to make interesting repeating patterns.
Fixed bugs compared to v1.0.0
- Support for newer versions of FFmpeg
- Updated PyQt4 to PyQt5
Fixed bugs compared to v2.0.0-b1
- Python threads are removed, making the export process stable again. I'm not personally interested in improving the speed of export, but would appreciate and review any pull request to address this. I don't think there is much that can be done with pure Python.
- The window starts smaller and the Classic Visualizer is now selected by default, for a better first impression of the app
- Conway's Game of Life starts with a pattern instead of blank, for a better first impression
- A broken-due-to-deprecation use of the FFmpeg filter aevalsrc was fixed, making some Spectrum options functional again
- Changing current font of Text component updates preview immediately
- Undo/redo is prevented during the export process.
- The undo/redo history window automatically closes when exporting
- Minor dialog boxes now have the app name as a window title
- Fixed a crash on Windows caused by broken pipes raising a different exception than on Unix
- Fixed crashed caused by FFmpeg existing but not executable (permission error)
v2.0.0-b1
GUI Redesign with Component System
This major version change was long in the making. Most work was done back in 2017, but there was a memory error which made the program unstable. After fixing that major bug and updating everything to accommodate changes in our dependencies, it is now finally stable enough for a tagged release.
This is considered a Beta until we get some further testing, and hopefully some packages for easier installation to include in future releases. If you would like to help this project, please join me in the GitHub issues or make a pull request!
This release contains a bug that is fixed in newer versions, which may cause the export to fail.
- Use master branch or a newer release instead
New Features
- See this video demonstration of the new version 🎥
- An entirely new interface and project system for saving/loading your preferred settings.
- Instead of having just one visualizer, one text, and one choice of background, you can now layer as many of these components together as you want to.
- Added two new visualization components which use FFmpeg filters: waveforms and spectrograms.
- Added a component which simulates Conway's Game of Life. This isn't really an audio visualization, but it can be used to make interesting repeating patterns.
Fixed bugs compared to v1.0.0
- Support for newer versions of FFmpeg
- Updated PyQt4 to PyQt5