All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Added 'Clear Output' button.
- Disabled aligner fixed.
- Alignment ready data is now properly added to the Lyric Align Task object being passed around (for debug purposes).
- NUSAutoLyrixAlignOnline from the GUI as an option, as it's currently not implemented.
- A separate GUI Settings Window which now supports most of LyricManager's settings
- GUI now supports specifying LyricAlignment location and working directory
- Widgets for remaining configuration added:
- Determining audio artist and song title
- Aligned Lyrics Formatting
- Aligned Lyrics File Copy Mode
- Icons added to GUI tool-buttons.
- Proper error handling for when bad API key is handed to the LyricExtractor Lyric fetcher.
- Added .qrc and resources.py files
- Enum-based QCheckBox and QRadioBox to encapsulate and represent various LyricManager settings.
- Better encapsulated widgets selecting lyric aligner(s) and lyric fetcher(s)
- Re-factored NUSAutoLyrixAlignOffline Aligner to properly copy temporary files and manage working directory
- Notes are now added to processing table hinting at issues/progress with processed files.
- Paths to individual audio files, as well as folders, is now supported.
- Fixed bug where LyricManager would occasionally only recognize .mp3 files, and not other valid types of audio files.
- Reduced superfluous error messages.
- Fixed bug related to NUSAutoLyrixAlign working directory not being saved properly
- Fixed line-edit widgets delivering strings as opposed to Path objects further on to the alignment pipeline
- Fixed crash if unable to query the current release of LyricManager on Github.
- Fixed AlignedLyricsFormatting Enum not being properly used in LyricManagerBase.
- Suppressed eyed3 logging output, apart from errors.
- Renamed .ui files to be more informative.
- Listed limitation of a single online lyrics source. LyricManager now supports 2 online lyric sources.
- LyricFetcher.Disabled from Enum as its existence un-necessarily complicates GUI code. Value 'None' used when the LyricFetcher source has yet to be set for a task.
- Github version check to inform users when a new release occurs.
- Multiple previously CLI-only settings now exposed in GUI (note they're not all currently functional)
- Support for getting artist and song name/title from mp3 tags, as opposed to from filename
- Icon for the application
- Changed GUI to give more space to 'folders to process' list and encapsulate settings in tabbed pages.
- NUSAutoLyrixAligner made more tolerant to missing paths/files to allow for use of previously cached output.
- Fixed broken local filename lyric fetcher
- Application exit procedure from generating an exception when application closes in a 'normal' fashion
- 2 GUI splitters added to allow user to determine how to distribute the GUI layout.
- Added GUI settings entries for lyric fetchers that rely on external sources
- About dialogue box
- Updated freezing to lead to a significantly reduced distribution size, i.e from 450 mb down to 80 mb
- Fixed PyPi_Genius fetcher being overly sensitive to tokens being empty strings
- Re-factored most of the fetcher code to be more unified and simpler
- Re-factored many internals for more consistent naming.
- Genius fetching garbage removal to be simpler and up-to-date with the current garbage being left in lyric data.
- Many other changes
- Website_LyricsDotOvh from fetcher types as the source isn't working properly at all.
- Pre-release version.
- This version is broken, but the changes are so massive, that the commit was made so as to track progess a bit better.
- Proper path check to NUSAutoLyrixAligner
- Tons of type-hinting
- Supports parsing multiple audio folders
- Support for more extensions .wav and .aiff (previously just .mp3)
- Added Gui and Cli
- Switched from strictyaml to OmegaConf
- Updated and improved settings-example.yaml
- Added tqdm to requirements.txt
- LyricManager / main.py re-factored for clarity and encapsulation
- Re-factored LyricAlignerNUSAutoLyrixAlignOffline for better encapsulation, clarity and instructions for proper installation/use of external AudoLyrixAlign software
- Fixed out-dated and incorrectly type hinted entries in AudioLyricAlignTask
- YamlParser now converts paths into Pathlib.Path objects via function-based parsing
- Fixed yaml parser bug causing empty entries from getting turned into Path's pointing to the LyricManager cwd
- Removed 'None' which turns into a string from settings_example.yaml
- Added '' to None conversion in Enum conversion code
- Removed Genius as a 'default on' lyric source, as it'd necessitate a token, and the default behaviour should be as uncomplicated as possible.
- .gitignore now ignores fetch_history.genius, output*/ folders, and reports folder
- Separate LyricState Enum
- Refactored LyricManager - Functionally separate tasks are now much more encapsulated
- Attached lyric validity to AudioLyricAlignTask
- main.py version correlates with CHANGELOG
- Cleaned up lost of vestigial code
- Lyric validation in Genius fetcher. First draft, likely has numerous false positives and false negatives.
- Cleaned up yaml parser
- Fixed various breaking changes in the code due to base class changes.
- All Enums are now pure Python Enums
- Partial re-factor to
- requirements.txt now includes jsons
- Suppressed text output from lyricsgenius to not break tqdm progress-bar
- StringEnum
- A CHANGELOG.md
- Genius lyric fetcher now supports UTF-8 characters as that shit sneaks into some pages.
- Settings.yaml is more diligent in checking conflicting settings
- Incoming Settings.yaml values are all converted in one place
- Minor bug-fixes mostly related to unused/unresolved variables
- General polish
- Nothing