Skip to content

Releases: arkrow/PyMusicLooper

PyMusicLooper v3.0.0

07 Jul 15:55
Compare
Choose a tag to compare

Added

  • 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.

PyMusicLooper v2.5.3

13 Jan 21:05
Compare
Choose a tag to compare
  • Completely removed defunct preserve tags function and its associated errors

Release Edit [2023.12.07]

Uploaded pymusiclooper.exe, a Windows x64 binary (packaged using pyinstaller) based on the v2.5.3 release, due to the existence of some tools that depend on the legacy v2.x CLI. This binary is standalone and does not require Python.

Optional external dependencies: mpg123 (for pymusiclooper.exe's own playback/preview through the terminal); ffmpeg (adds support for additional file formats and proprietary codecs).

PyMusicLooper v2.5.2

12 Jan 15:09
Compare
Choose a tag to compare
  • Hotfix for v2.5.1's redundant mpg123-related error message

PyMusicLooper v2.5.1

12 Jan 14:04
Compare
Choose a tag to compare
  • Added workaround for libsndfile mp3 loading issue
  • Fixed error handling when no loop points were found, when audio has not been loaded or when mpg123 is unavailable.
  • Moved the --recursive, --flatten and --n-jobs into their own "Batch Options" CLI arguments category for clarity

PyMusicLooper v2.5.0

09 Jun 22:24
Compare
Choose a tag to compare
  • Added option to print loop points to terminal STDOUT (contributed by Coolsonickirby).
  • Project relicensed to MIT license as of v2.5+.

PyMusicLooper v2.4.0

21 Mar 15:27
Compare
Choose a tag to compare
  • Temporarily disabled preserve_tags features to resolve dependency installation issues; pending re-implementation.

PyMusicLooper v2.0.0

02 Oct 22:30
Compare
Choose a tag to compare
  • Removed --json export option in favor of the more versatile--txt option
  • Performance improvements to beat comparisons as a result of using native numpy functions whenever possible
  • Code refactoring and streamlining of internal functions

V2.0 Rationale: This release marks a milestone in stability over the v1.x versions, rather than a major update. Future major releases will be reserved for large changes in the code base (e.g. overhaul of the core algorithm), or breaking changes in API/shell commands.

PyMusicLooper v1.7.0

13 Sep 13:22
Compare
Choose a tag to compare

Changes since v1.6.0

  • Added a --txt option to export a loop.txt file compatible with LoopingAudioConverter
  • Recursive batch export now replicates the source directory tree structure by default to avoid name conflicts
  • Added a --flatten option for recursive batch export to output to a single folder without replicating the source directory structure (previous behaviour)
  • Lowered note similarity threshold to improve loop point quality (from 10% to 8%)
  • Renamed default output directory name from looper_output to Loops

Bug fixes

  • Fixed JSON export bug
  • Fixed a bug with non-recursive batch export.

PyMusicLooper v1.6.0

03 Jun 19:07
Compare
Choose a tag to compare
PyMusicLooper v1.6.0 Pre-release
Pre-release
  • Added -i/--interactive feature to CLI for manual loop previewing and selection
  • Fixed an issue with the loop ranking algorithm triggering with lists having < 2 candidates

PyMusicLooper v1.5.0

23 May 21:41
b6ee700
Compare
Choose a tag to compare
PyMusicLooper v1.5.0 Pre-release
Pre-release
  • Batch command option removed
  • Batch mode is now enabled automatically if the given path is a directory