You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
New functionality: tag. Export metadata tags of loop points to a copy of the input audio file(s) - (credit: some of the implementation code was based on/inspired by RemedyTwo's fork)
New functionality: play-tagged. Reads the metadata tags of loop points from an audio file and plays it looping
New audio source option: --url. Can now load and process audio from a youtube link (or any stream supported by yt-dlp)
New loop point search options
--min-loop-duration , --max-loop-duration : added min loop duration and max loop duration (in seconds) as optional constraints to the CLI
--approx-loop-position : specify the approximate desired loop start and loop end in seconds, searching around those points only +/- 2 seconds
--brute-force : enables an alternative loop discovery mode that checks the entire audio track instead of the detected beats; useful in case the main algorithm does not yield the desired results.
--disable-pruning : disables the internal filtering of potential loop points
New export option for split-audio command: --format, to change the format of the exported split audio files (currently supported formats: WAV, FLAC, OGG, MP3)
Official Python 3.10 and 3.11 support
Changed
Complete re-write of the CLI with much better interface and usability, use pymuisclooper --help for the new commands and options or consult the README
Re-implemented playback using the python sounddevice library instead of mpg123 for better cross-platform compatibility
Significant runtime improvement to the core loop search algorithm (now runs 10x faster).
Better loop point alignment thanks to an internal implementation of Audacity's "At Zero Crossings" functionality (less cases of audio popping/clicking due to misaligned loop points)
Much nicer formatting and interface in interactive mode thanks to the rich python package
Increased the minimum Python requirement to Python 64-bit >=3.9
Removed
Multiprocessing option (--n-jobs). Batch mode operations are otherwise unaffected and work as if --n-jobs was fixed to 1.