This long overdue release of beets includes far too many exciting and useful
features than could ever be satisfactorily enumerated.
As a technical detail, it also introduces two new external libraries:
MediaFile and Confuse used to be part of beets but are now reusable
dependencies---packagers, please take note.
Finally, this is the last version of beets where we intend to support Python
2.x and 3.5; future releases will soon require Python 3.6.
cutoggvorbis is a small and fast command line Ogg/Vorbis editor. It lets
you select sections of an Ogg/Vorbis interactively or via a timetable and
save them to separate files without quality loss. It uses ogg123 for playback
and even works with files bigger than 2GB.
cutmp3 is a small and fast command line MP3 editor. It lets you select
sections of an MP3 interactively or via a timetable and save them to separate
files without quality loss. It uses mpg123 for playback and works with VBR
files and even with files bigger than 2GB. Other features are configurable
silence seeking and ID3 tag seeking, which are useful for concatenated mp3s.
This is part of addressing PR pkg/56378.
MediaFile is a simple interface to the metadata tags for many audio file
formats. It wraps Mutagen, a high-quality library for low-level tag
manipulation, with a high-level, format-independent interface for a common set
of tags.
MediaFile is part of the beets project. It was originally written by Adrian
Sampson and is now developed by the beets community.
1.45.1 - 2020-07-31
Fix flake8 tests when run after calling setup.py build
No longer use mmap when rewriting files. Fixes slow save performance with
Windows network shares, ZFS and more
1.45.0 - 2020-07-11
WAVE support with ID3 tags
DSDIFF support with ID3 tags
MP4: Add support for nero chapters
wavpack: add support for wavpack DSD
wavpack: add bits_per_sample
MP4: handle DecoderSpecificInfo with wrong instance size
docs: various fixes
tests: depend on flake8 now (instead of pycodestyle and pyflakes)
docs: fix warnings with sphinx v3
Fuzzing related:
Fuzzing integration with python-afl
Fix various unhandled error cases in ogg, asf, oggvorbis, id3
aac: Fix ZeroDivisionError in case frequency is unknown
musepack: handle truncated stream header
musepack: handle invalid sample rate index
musepack: handle duplicate RG/SH packets
oggtheora: handle truncated header packet
oggtheora: fail if FRN in the header packet is zero
oggtheora: handle empty pages in more cases
ogg: handle empty pages in to_packets()
aiff: handle overflow in read_float()
libkeyfinder is a small C++11 library for estimating the musical key of
digital audio. It is published under the GNU General Public License version
3 or later.
ver 0.23.4 (2021/11/11)
* protocol
- add optional position parameter to "searchaddpl"
* decoder
- ffmpeg: support libavcodec 59
* output
- alsa: add option "thesycon_dsd_workaround" to work around device bug
* fix crash on debug builds if startup fails
* systemd
- remove "RuntimeDirectory" directive because it caused problems
- ignore the "pid_file" setting if started as systemd service
* Windows
- enable the "openmpt" decoder plugin
Packaged by nia for wip.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides sndfile plugin for GStreamer, which allows reading
various raw audio formats with libsndfile.
Packaged by nia for wip.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides the Musepack plugin for GStreamer, which allows
decoding .mpc audio.
Packaged by nia for wip
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides a tracker music (MOD/S3M/XM/IT) decoder plugin for
GStreamer.
Packaged by nia for wip.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides the GStreamer plugin for loading LV2 plugins.
Packaged by nia for wip.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides the GStreamer plugin for loading LADSPA plugins.
Packaged by nia in wip.
GStreamer is a library that allows the construction of graphs of
media-handling components, ranging from simple mp3 playback to complex
audio (mixing) and video (non-linear editing) processing.
Applications can take advantage of advances in codec and filter technology
transparently. Developers can add new codecs and filters by writing a
simple plugin with a clean, generic interface.
This package provides the Fluidsynth MIDI plugin for GStreamer.
2.3.1:
* Adjusted cmake build settings and header files that cmake installs
2.3.0:
* Disable setting "SOUNDTOUCH_ALLOW_NONEXACT_SIMD_OPTIMIZATION" by
default. The original purpose of this setting was to avoid performance
penalty due to unaligned SIMD memory accesses in old CPUs, but that is
not any more issue in concurrent CPU SIMD implementations and having
this setting enabled can cause slight compromise in result quality.
* Bugfix: soundtouch.clear() to really clear whole processing pipeline
state. Earlier individual variables were left uncleared, which caused
slightly different result if the same audio stream were processed
again after calling clear().
* Bugfix: TDstretch to align initial offset position to be in middle of
correlation search window. This ensures that with zero tempo change
the output will be same as input.
* Bugfix: Fix a bug in TDstrectch with too small initial skipFract value
that occurred with certain processing parameter settings: Replace
assert with assignment that corrects the situation.
* Remove OpenMP "_init_threading" workaround from Android build as it's
not needed with concurrent Android SDKs any more.
2.2:
* Improved source codes so that compiler can autovectorize them more
effectively. This brings remarkable improvement e.g. ARM cpus equipped
with NEON vfpu: Bencmarked 2.4x improvement in execution speed in
ARMv7l vs the previous SoundTouch version for both integer and
floating point sample types.
* Bugfix: Resolved bad sound quality when using integer sample types in
non-x86 CPU
* Bugfix: Fixed possible reading past end of array in BPM peak detection
algorithm
2021-05-29 -- 1.2.1
* Fixed: GCC 4.4 test suite compilation
Thanks to Samuli Suominen for the patch!
* Fixed: Missing unistd.h include in
examples/read/read.cpp
* Fixed: Compile errors when uriparser is located in a
non-standard path that is passed to configure through
variable PKG_CONFIG_PATH
* Fixed: Update the GNU Autotools build system
so that ./autogen.sh runs without warnings
* Fixed: Allow linking with LLD
* Improved: Modernize the GNU Autotools build system
Thanks to David Seifert for the pull request!
* Soname: 4:3:0 (please see https://verbump.de/
for what these numbers do)
4.5.0 (20210606):
Changes by Alice Rowan:
- xmp_load_module_from_callbacks and xmp_test_module_from_callbacks
added to api
- fix xmp_set_position et al. when used during loops, pattern delay
- make xmp_set_position() consistently clear pattern break/jump vars
- avoid shell command injection when calling external unmo3 or unrar
- fix volume event handling for FAR modules
- fix GDM loader to correctly handle empty notes
- fix GDM fine effects
- fix incorrect handling of GDM speed effect
- implement GDM surround effect
- add support for DSMI 0.8 and 0.9 AMF modules
- fix incorrect DSMI AMF volume and note 0x7f handling
- fix DSMI AMF track 0 remapping bug
- fix DSMI AMF speed effect and pan command conversions
- fix IMAGO Orpheus channel panning and status values
- fix S3M ADPCM4 samples
- fix OctaMED 'tracker compatibility' tempos, more accurate OctaMED
8-channel mode BPM tables.
- ignore MED volume/slide effects with param of 0, fix speed bound.
- improve MOD loader checks for Mod's Grave WOW files
- fix Schism Tracker version date calculation
- fix MED2 BPM handling
- fix MED modules with pattern lengths > 256
- fix MED instrument corruption
- allow up to 512 rows in X-Tracker patterns
- add support for DigiBooster Pro pan envelopes
- fix DigiBooster Pro volume envelope number of points
- fix fine effects for DigiBooster Pro modules
- fix loading DigiBooster Pro modules with large sample chunks
- fix IT bug where Cxx on same row as SBx would not be ignored
- fix IT bug where Qxy would ignore the volume parameter
- fix IT sample global volume and sample vibrato
- fix two IT bugs related to note off and volume handling
- fix event out-of-bounds reads due to invalid key values
- fix multiple out-of-bounds reads/writes, memory corruptions,
uninitialized reads and hangs in several loaders (thanks to
Lionel Debroux for providing fuzz files)
- fix xmp_release_module double frees when invoked multiple times
- check external sample file names before opening them
- make it possible to disable module depacker functionality
- make it possible to disable prowizard module loaders
Changes by viiri:
- fix samples corruption in STM modules
- support more versions of STM modules
Changes by Özkan Sezer:
- add new xmp_syserrno call to the api
- xmp_get_format_list() now returns const char* const*, not char**
(no ABI change)
- xmp_test_module, xmp_load_module, xmp_set_instrument_path and
xmp_smix_load_sample() now accept const char* path parameters
(no ABI change)
- xmp_load_module_from_memory() now accepts a const void* memory
param (no ABI change)
- xmp_load_module_from_memory() no longer accepts sizes <= 0.
- explicitly document that callers of xmp_load_module_from_file()
are responsible for closing their own file.
- remove nonportable use of fdopen in xmp_load_module_from_file()
- fix a seek issue with xmp_load_module_from_memory
- fix memory-io functions' error handling
- fix number of envelope points sanity check in IMF loader
- rewrite the UMX loader
- revise sanity checks to prevent oob reads in s404 depacker
- fix vorbis depacker to function properly on big endian systems
- fix windows static library builds
- fix win64 compatibility in ptpopen
- fix build with C89 compilers
- fix issues related to visibility attributes
- fix compatibility with old gcc, mingw, djgpp
- fix warnings in configure script
- fix Watcom C build on OS/2
- fix Amiga build
- several code clean-ups
Changes by Carsten Teibes:
- fix lite build mod loader symbols
Changes by NoSuck:
- add new xmp_set_row() call to skip replay to the given row
- IT: T00 now repeats previous slide
- prevent clobbering of muted channels' volumes in IT modules
- clamp number of IT envelope nodes at load time
- fix IT message (comment) length miscalculation
- fix IT volume panning effect
- fix mute status on player creation
Changes by Cameron Cawley:
- fix sanity check in Digital Symphony loader
- fix and enable the Coconizer loader
- support compiling for Windows with OpenWatcom
Changes by Ghabry:
- add xmp_test_module_from_memory and xmp_test_module_from_file
calls to api
Fix problems reported by Ralf Hoffmann:
- fix MMD3 instrument type sanity check
- fix strictness of MOD pattern data tester
- fix loading of XMLiTE XM modules
- fix loading of ST modules with invalid names
Fix problems reported by Lionel Debroux:
- fix PTM loader issues
- fix MED4 invalid sample load error
- fix NNA and DCT/DCA issues
Fix problems reported by Dennis Mulleneers:
- handle XM 16-bit samples with odd in-file data
Fix problems reported by Jay Garcia:
- fix smix sample allocation
- force reset of buffer state on player start
Fix problems reported by Vitaly Novichkov:
- fix Emscripten builds
- fix linkage errors with MSVC debug builds
Other changes:
- fix IT pattern delay volume reset bug (read row events only
once per row)
- fix volume, pitch and pan slides lagging behind one frame
- fix tempo assignment in module scan to fix seek issues/crashes
- fix double free in case of ADPCM sample load error
- code refactoring and cleanup
- add new xmp_set_tempo_factor() call to set the replay tempo
multiplier
- fix XM keyoff with instrument
- fix loading xm instruments with more than 16 samples
ver 0.23.3 (2021/10/31)
* protocol
- add optional position parameter to "add" and "playlistadd"
- allow range in "playlistdelete"
* database
- fix scanning files with question mark in the name
- inotify: fix use-after-free bug
* output
- alsa: add option "stop_dsd_silence" to work around DSD DAC noise
* macOS: fix libfmt related build failure
* systemd: add "RuntimeDirectory" directive
v0.5.1
-Hot fix panic when accessing index out of range 7fa610b
v0.5.0
Brief description of changes
-Rewrite application state's data model in #19 that separates application's
data from application's states
-Improve data locking performance in #20 that uses parking_lot for better
performance and restricts the locking scope to local in functions.
-Change the application's behavior on startup in #21 that connects to an
available device if no playback is found.
-Add a file logger in #23.
-Add a library page in #24.
-Rewrite the context page state's structure in #25.
-Reduce the number of possible panics (88567e1) and handle the integrated
player's events (2e64d1d).
v1.37 - 28.10.2021
- Fixed potential thread issues between user input thread and audio thread, like
when jamming a sample, toggling tuning tone, playing sample in the sample
editor, adjusting sample loop, etc.
v1.36 - 10.10.2021 (23:12 GMT+2)
- Fixed clicking issues in v1.35 during sample looping. Sorry!
- Fixed an issue where the quadrascope was not updated properly when a F00
command was triggered before the last channel.
v1.35 - 10.10.2021
- Implemented a config entry in protracker.ini for disabling the 2x downsample
dialog that shows up when attempting to load >22kHz samples.
(NO_DWNSMP_ON_SMP_LOAD)
- Don't attempt to center window after leaving fullscreen mode. This could lead
to issues on multi-monitor setups.
- Further accuracy changes to the Paula emulator. Read two samples at once into
the AUDxDAT buffer. This is a minor change, but it can have a very small
impact on sample-changing commands (EFx/E8x).
21.11
GStreamer support is now deprecated.
Wine users should migrate to 6.20 and newer, and everyone else should move to codecs that are not patent-encumbered.
GStreamer support will be fully removed in the first release after Wine 7.0.
Removed Features:
Removed the C++ wrapper. Use the headers/PE binaries found in Wine 6.20 and newer.
Fixes:
Minor fixes and cleanups found by Coverity
Dont assert on WMA buffer and FAUDIO_FORMAT_EXTENSIBLE type
FACT: Send FACTNOTIFICATIONTYPE_CUESTOP Notification on Cue Stop
Continued work on the experimental Wine/Win32 platform backend
Version 1.16 - 3 Sep 2021
Change applyplugin to use libsndfile.
Fix URL in documentation.
Fix so delay can handle a delay of zero.
Version 1.17 - 9 Sep 2021
Simplify, and hopefully accelerate, clip checking code in applyplugin.
Improved usage message.
ver 0.23.2 (2021/10/22)
* protocol
- fix "albumart" timeout bug
* input
- nfs: fix playback bug
* output
- pipewire: send artist and title to PipeWire
- pipewire: DSD support
* neighbor
- mention failed plugin name in error message
* player
- fix cross-fade regression
* fix crash with libfmt versions older than 7
ver 0.23.1 (2021/10/19)
* protocol
- use decimal notation instead of scientific notation
- "load" supports relative positions
* output
- emit "mixer" idle event when replay gain changes volume
- pipewire: emit "mixer" idle events on external volume change
- pipewire: attempt to change the graph sample rate
- snapcast: fix time stamp bug which caused "Failed to get chunk"
* fix libfmt linker problems
* fix broken password authentication
ver 0.23 (2021/10/14)
* protocol
- new command "getvol"
- show the audio format in "playlistinfo"
- support "listfiles" with arbitrary storage plugins
- support relative positions in "addid"
- fix relative positions in "move" and "moveid"
- add "position" parameter to "findadd" and "searchadd"
- add position parameter to "load"
* database
- proxy: require MPD 0.20 or later
- proxy: require libmpdclient 2.11 or later
- proxy: split search into chunks to avoid exceeding the output buffer
- simple: add option to hide CUE target songs
- upnp: support libnpupnp instead of libupnp
* archive
- zzip, iso9660: ignore file names which are invalid UTF-8
* decoder
- openmpt: new plugin
- wavpack: fix WVC file support
* player
- do not cross-fade songs shorter than 20 seconds
* output
- oss: support DSD over PCM
- pipewire: new plugin
- snapcast: new plugin
* tags
- new tags "ComposerSort", "Ensemble", "Movement", "MovementNumber", and "Location"
* split permission "player" from "control"
* add option "host_permissions"
* new build-time dependency: libfmt
All checksums have been double-checked against existing RMD160 and
SHA512 hashes.
The following distfiles couldn't be fetched (possibly they are fetched
conditionally):
./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-32000-1.0.13.tar.gz
./audio/freeswitch-sounds-ru/distinfo freeswitch/freeswitch-sounds-ru-RU-elena-48000-1.0.13.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-32000-1.0.8.tar.gz
./audio/freeswitch-music/distinfo freeswitch/freeswitch-sounds-music-48000-1.0.8.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-32000-1.0.18.tar.gz
./audio/freeswitch-sounds-fr/distinfo freeswitch/freeswitch-sounds-fr-ca-june-48000-1.0.18.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-32000-1.0.22.tar.gz
./audio/freeswitch-sounds-en/distinfo freeswitch/freeswitch-sounds-en-us-callie-48000-1.0.22.tar.gz