1.2.1
This Opus 1.2.1 minor release fixes a relatively rare issue where
the 1.2 encoder would wrongly assume a signal to be bandlimited to
12 kHz and not encode frequencies between 12 and 20 kHz. This only
happens on a few clips, but it is good to update to avoid a potential
loss of quality.
1.2.
This Opus 1.2 major release brings many quality improvements, new
features, and bug fixes. You can read all the details in this release
demo page. Changes since 1.1.x include:
Speech quality improvements especially in the 12-20 kbit/s range
Improved VBR encoding for hybrid mode
More aggressive use of wider speech bandwidth, including fullband speech starting at 14 kbit/s
Music quality improvements in the 32-48 kb/s range
Generic and SSE CELT optimizations
Support for directly encoding packets up to 120 ms
DTX support for CELT mode
SILK CBR improvements
Support for all of the fixes in draft-ietf-codec-opus-update-06 (the mono downmix and the folding fixes need --enable-update-draft)
Many bug fixes, including integer wrap-arounds discovered through fuzzing (no security implications)
- Fixed several warnings from clang static analyzer.
- Fixed a misleading indentation warning from gcc6.
- A few minor OS/2 fixes.
- Support for building the Windows version using Open Watcom compiler.
- Other minor fix/tidy-ups.
- Fixed lots of possible crashes in the IT, XM, S3M, STM, STX, AMF, IMF,
GDM and MED module loaders.
- Fixed a possible endless loop in the IT loader with malformed files.
- Fixed signed integer overflow leading to crashes in the sample loader.
- Fixed a possible crash in MMCMP depacker with malformed files.
- Fixed the broken fixed-line comment reader which might possibly lead
to crashes, and also badly translated several song messages. The new
code is adapted from libopenmpt.
- Support for building the Windows version using Open Watcom compiler.
- A few minor OS/2 fixes.
- CMake updates.
- Other minor fixes/tidy-ups.
* Note: New release tarballs are now hosted on github:
https://github.com/quodlibet/mutagen/releases
* ID3:
* Add iTunes grouping frame `id3.GRP1`
* Fix exposing text frames where the text can't be encoded with the
reported encoding due to merging of frames
* OGG: Fix wrong StreamInfo.length (small negative value) for all
ogg based formats in rare cases.
Core
Release v1.1.4.1
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
PCM API
pcm: dmix: Fix the inconsistent PCM state
pcm: dshare: Call snd_pcm_dshare_state() directly
pcm: dmix: Workaround for binary incompatibility
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
build: Define __USE_UNIX98 for old glibc
Configuration
conf: Check the availability of PTHREAD_MUTEX_RECURSIVE
Test/Example code
test: add a test for list operation to user-defined element sets
ver 0.20.9 (2017/06/04)
* decoder
- ffmpeg: support *.adx
* fix byte order detection on FreeBSD/aarch64
* fix more random crashes when compiled with clang
0.04 Tue 13 Jun 2017 22:27:29 BST
- Use ExtUtils::MakeMaker instead of Module::Build
- Fixed encoding in POD (RT#85212)
- Fixed stack corruption in discid_put (RT#98179)
- Updated tests for libdiscid 0.6.x (RT#89285)
- Fixed typo in POD (RT#85212)
Core
Release v1.1.4
Drop ppc64-specific workaround for versioned symbols
conf/ucm: broxton: add broxton-rt298 conf files
Config API
conf: Allow dynamic top-level config directory
HWDEP API
hwdep: add support for MOTU FireWire series and RME Fireface series
hwdep: add Line6 USB series support
Mixer API
conf: Allow dynamic top-level config directory
PCM API
ALSA: pcm: Use recursive mutex
pcm: dmix: Disable var_periodsize as default
pcm:plugin: Fix sound capture via MMAP access
plugin:dshare: wrong state reporting
pcm:file: delegate htimestamping to slave instead of always getting real_htimestamp
pcm:plug: save converter config
dmix plugin: drain - quickfix for the previous patch
dmix plugin: fix drain for nonblock mode
pcm file plugin: handle snd_pcm_mmap_begin() error path in snd_pcm_file_mmap_commit()
always handle return value from snd_config_get_id() (coverity)
pcm_plugin: unify the snd_pcm_mmap_begin result value checking
pcm: rate: Add capability to pass configuration node to plugins
pcm: extplug: refinement of masks in extplug
pcm: status dump fix timestamp formatting
pcm: file: Enable file writing for capture path
pcm: direct: fix race on clearing timer events
pcm: dmix_rewind corrupts application pointer fix
pcm: dmix: Allow disabling x86 optimizations
pcm: Disable locking in async mode
pcm: Avoid lock for snd_pcm_nonblock()
pcm: multi: Drop the fixed slave_map[] in snd_pcm_multi_open()
pcm: direct: Fix deadlock in poll_descriptors
pcm: direct: don't return bogus buffer levels in xrun state
pcm: direct: check state before enter poll on timer
pcm: direct: Fix for sync issue on xrun recover
pcm: direct: returning semop error code for semaphore up/down failures
rate: dynamic update avail_min on slave
plugin: dynamically update avail_min on slave
pcm: rate: fix the hw_ptr update until the boundary available
pcm: dshare: enable silence
pcm: direct: allow users to configure different period sizes
RawMidi API
rawmidi: virtual: fix reading into a small buffer
Sequencer API
seq: improve documentation about new get pid/card functions
Timer API
timer: obsolete legacy rtctimer instance
Topology API
topology: Fix issue in parsing routes when generating topology binary
conf: Allow dynamic top-level config directory
topology: Allow a data section to contain multiple tuples objects
topology: Group elements with the same index value into a block
topology: Look up references for an object based on its index
topology: Remove code parsing index value in paring each object
topology: Insert new element based on its index value
topology: coverity - remove dead code
always handle return value from snd_config_get_id() (coverity)
topology: Fix incorrect license in source comments.
topology: fix unused-const-variable warning
Use Case Manager API
ucm parser: fix possible string overflow in uc_mgr_import_master_config()
ucm: Add command 'get _file' to get the config file name of the opened card
ucm: Load device-specific configuration file based on the card long name
ucm: Assure the user input card name not to exceed max size of card long name
ucm: parser needs limits.h
ucm: Add ATTRIBUTE_UNUSED for unused parameters of execute_component_seq()
ALSA Lisp
conf: Allow dynamic top-level config directory
Configuration
conf: topology: Fix index mismatch for skl and bxt
conf: Allow dynamic top-level config directory
conf: Remove dmix.direct_memory_access setup
conf/cards: add VC4-HDMI card
pcm: dmix: Allow disabling x86 optimizations
conf: Add card config for Intel HDMI/DP LPE audio
conf/cards: add support for pistachio-card.
conf/ucm: broxton: add broxton-rt298 conf files
External Rate Converter Plugin SDK
pcm: rate: Add capability to pass configuration node to plugins
Kernel Headers
hwdep: add support for MOTU FireWire series and RME Fireface series
hwdep: add Line6 USB series support
timer: obsolete legacy rtctimer instance update to libtool 1.3.3
libopenmpt 0.2-beta24 (2017-05-22)
[Bug] localtime() was used to determine the version of Schism Tracker used to save IT and S3M files. This function is not guaranteed to be thread-safe by the standard and is now no longer used.
[Bug] Compilation with GCC 4.1 was broken since 0.2-beta20.5.
Improvements to seeking: Channel panning was not always updated from instruments / samples when seeking, and out-of-range global volume was not applied correctly in some formats.
Work-around for reading MIDI macros and plugin settings in some malformed IT files written by old UNMO3 versions.
Improve tracker detection in IT format.
ver 0.20.8 (not yet released)
* output
- osx: fix build failure due to missing "noexcept"
* playlist
- m3u: support MIME type `audio/mpegurl`
* fix build failure with GCC 4.x
ver 0.20.7 (2017/05/15)
* database
- simple: fix false positive directory loop detection with NFS
* enforce a reasonable minimum audio_buffer_size setting
* cap buffer_before_play at 80% to prevent deadlock
* fix random crashes when compiled with clang
----------------------------
2016-11-28 (0.8.7) Robin Gareus <robin@gareus.org>
* fix release builds (mistake in 0.8.6)
2016-11-28 (0.8.6) Robin Gareus <robin@gareus.org>
* explicitly request single-screen fullscreen on OSX
* weak-link against libjack (binaries)
* add NetBSD support
(pkgsrc changes)
- Drop two patches, upstream nos supports NetBSD
(although the one patch still necessary)
- (note) Does this really fit to audio category ?
This application shows video syncing to audio.
pkgsrc changes:
- Update MASTER_SITES to MASTER_SITE_PYPI
- Update HOMEPAGE
- Get rid of PYTHON_VERSIONS_INCOMPATIBLE
(beets is now compatible with Python 3 too)
- Misc cosmetic fixes and simplifications
Changes:
1.4.3 (January 9, 2017)
-----------------------
Happy new year! This new version includes a cornucopia of new features from
contributors, including new tags related to classical music and a new
:doc:`/plugins/absubmit` for performing acoustic analysis on your music. The
:doc:`/plugins/random` has a new mode that lets you generate time-limited
music---for example, you might generate a random playlist that lasts the
perfect length for your walk to work. We also access as many Web services as
possible over secure connections now---HTTPS everywhere!
1.4.2 (December 16, 2016)
-------------------------
This is just a little bug fix release. With 1.4.2, we're also confident enough
to recommend that anyone who's interested give Python 3 a try: bugs may still
lurk, but we've deemed things safe enough for broad adoption. If you can,
please install beets with ``pip3`` instead of ``pip2`` this time and let us
know how it goes!
1.4.1 (November 25, 2016)
-------------------------
Version 1.4 has **alpha-level** Python 3 support. Thanks to the heroic efforts
of :user:`jrobeson`, beets should run both under Python 2.7, as before, and
now under Python 3.4 and above. The support is still new: it undoubtedly
contains bugs, so it may replace all your music with Limp Bizkit---but if
you're brave and you have backups, please try installing on Python 3. Let us
know how it goes.
1.3.19 (June 25, 2016)
----------------------
This is primarily a bug fix release: it cleans up a couple of regressions that
appeared in the last version. But it also features the triumphant return of the
:doc:`/plugins/beatport` and a modernized :doc:`/plugins/bpd`.
It's also the first version where beets passes all its tests on Windows! May
this herald a new age of cross-platform reliability for beets.
1.3.18 (May 31, 2016)
---------------------
This update adds a new :doc:`/plugins/hook` that lets you integrate beets with
command-line tools and an :doc:`/plugins/export` that can dump data from the
beets database as JSON. You can also automatically translate lyrics using a
machine translation service.
The ``echonest`` plugin has been removed in this version because the API it
used is `shutting down`_. You might want to try the
:doc:`/plugins/acousticbrainz` instead.
.. _shutting down: https://developer.spotify.com/news-stories/2016/03/29/api-improvements-update/
1.3.17 (February 7, 2016)
-------------------------
This release introduces one new plugin to fetch audio information from the
`AcousticBrainz`_ project and another plugin to make it easier to submit your
handcrafted metadata back to MusicBrainz.
The importer also gained two oft-requested features: a way to skip the initial
search process by specifying an ID ahead of time, and a way to *manually*
provide metadata in the middle of the import process (via the
:doc:`/plugins/edit`).
Also, as of this release, the beets project has some new Internet homes! Our
new domain name is `beets.io`_, and we have a shiny new GitHub organization:
`beetbox`_.
1.3.16 (December 28, 2015)
--------------------------
The big news in this release is a new :doc:`interactive editor plugin
</plugins/edit>`. It's really nifty: you can now change your music's metadata
by making changes in a visual text editor, which can sometimes be far more
efficient than the built-in :ref:`modify-cmd` command. No more carefully
retyping the same artist name with slight capitalization changes.
This version also adds an oft-requested "not" operator to beets' queries, so
you can exclude music from any operation. It also brings friendlier formatting
(and querying!) of song durations.
1.3.15 (October 17, 2015)
-------------------------
This release adds a new plugin for checking file quality and a new source for
lyrics. The larger features are:
* A new :doc:`/plugins/badfiles` helps you scan for corruption in your music
collection. Thanks to :user:`fxthomas`. 🐛`1568`
* :doc:`/plugins/lyrics`: You can now fetch lyrics from Genius.com.
Thanks to :user:`sadatay`. 🐛`1626` 🐛`1639`
* :doc:`/plugins/zero`: The plugin can now use a "whitelist" policy as an
alternative to the (default) "blacklist" mode. Thanks to :user:`adkow`.
🐛`1621` 🐛`1641`
1.3.14 (August 2, 2015)
-----------------------
This is mainly a bugfix release, but we also have a nifty new plugin for
`ipfs`_ and a bunch of new configuration options.
1.3.13 (April 24, 2015)
-----------------------
This is a tiny bug-fix release. It copes with a dependency upgrade that broke
beets.
1.3.12 (April 18, 2015)
-----------------------
This little update makes queries more powerful, sorts music more
intelligently, and removes a performance bottleneck. There's an experimental
new plugin for synchronizing metadata with music players.
Packagers should also note a new dependency in this version: the `Jellyfish`_
Python library makes our text comparisons (a big part of the auto-tagging
process) go much faster.
1.3.11 (April 5, 2015)
----------------------
In this release, we refactored the logging system to be more flexible and more
useful. There are more granular levels of verbosity, the output from plugins
should be more consistent, and several kinds of logging bugs should be
impossible in the future.
There are also two new plugins: one for filtering the files you import and an
evolved plugin for using album art as directory thumbnails in file managers.
There's a new source for album art, and the importer now records the source of
match data. This is a particularly huge release---there's lots more below.
There's one big change with this release: **Python 2.6 is no longer
supported**. You'll need Python 2.7. Please trust us when we say this let us
remove a surprising number of ugly hacks throughout the code.
libopenmpt 0.2-beta23 (2017-04-23)
[Change] The libmpg123 binary download script on Windows now downloads libmpg123 1.24.0.
[Change] MSVC builds of libopenmpt will now only load known DMO plugins.
[Bug] foo_openmpt: Interpolation filter and volume ramping settings were confused in previous versions. This version resets both to the defaults.
Upstream changes:
0.98 2017-04-28
- RT #119101, stop including MYMETA files in the tarball.
0.97 2017-04-27
- WAV: GH #2, fixed an integer overflow error that could result in an incorrect song_length_ms
for >16-bit files.
0.96 2016-11-21
- Ogg: RT #118888, fixed crash when trying to read Vorbis comments in an
incorrectly framed file with a bad terminal header page.
- Removed hints/darwin.pl, don't try to be smarter than Perl about how to build things.
- Fixed various minor compiler warnings output by the latest clang on macOS.
0.95 Unreleased community build
- Improved DFF parsing for files which end with corrupted chunk. (Adrian Smith)
- Improved ID3 support for DFF files. (Adrian Smith)
0.94 Unreleased community build
- DSF/DFF: Support dsd file scanning for dsd and dsdiff files. (Kimmo Taskinen)
- AIFF: Fixed scanning of 24 bit files. (Adrian Smith)
Version 1.0.28 (2017-04-02)
* Fix buffer overruns in FLAC and ID3 handling code.
* Move to variable length header storage.
* Fix detection of Large File Support for 32 bit systems.
* Remove large stack allocations in ALAC handling code.
* Remove all use of Variable Length Arrays.
* Minor bug fixes and improvements.
------
- Avoid repeating genre in metadata printout for specifications like
(144)Thrash Metal.
- In remote control mode, only enforce --quiet if no verbosity was required.
- Prevent --loop and --shuffle or --random from messing with the remote
control LOADLIST command (printout of the list would loop without reason).
- Fix the mpg123 command (esp. our provided binaries on Windows) to now find
modules again relative to the executable directory, not the current working
directory. This was a regression in 1.23 and might be security-relevant if
you called mpg123 in working directories with untrusted content.
Note that mpg123 1.23 looked for modules relative to the current working
directory only if the installation prefix for modules did not exist.
So, usage on an intact installation (with /usr/lib/mpg123 or the like) was
safe. Nevertheless this new version fixes the search to be relative to the
binary path as it was with 1.22 and before.
- At least consistent behaviour of playlist code in the face of looping.
Looping is about individual tracks, always. They are looped also in random
mode. Jumping (prev/next keys) is between tracks and resets the loop counter.
The display of currently playing track in the playlist is fixed for random
and looped play now (bug 198).
- Looping is now mentioned for a to-be-repeated track with --verbose.
- Move some compiler nagging from --enable-debug to --enable-nagging, fix up
some new build failures by adding some pesky feature test macros.
- Try not to pollute the terminal buffer with old progress bars in inverse
video. Only the currently live one shall be seen. That one is pretty. The
others are not.
- Using plain dlopen()/LoadLibrary() for opening modules instead of libltdl.
This also means that --with-module-suffix is gone in configure.
- Windows builds only work when Unicode support is there (older than Windows
2000/XP will definitely not work anymore).
- The out123 tool now features tone generation, with a mix of differing
wave patterns. Makes sense to be able to test the audio output by itself,
and it's fun. See --wave-freq and related parameters.
- libmpg123 version 43:
-- Add flags MPG123_NO_PEEK_END and MPG123_FORCE_SEEKABLE, as suggested
by Bent Bisballe Nyeng.
-- Build fix for MSVC (consistent definition of ssize_t, spotted by manx,
bug 243).
-- Build fix for --with-cpu=ppc_nofpu (thanks to Michael Kostylev, bug 244).
-- Add asm optimized MSVC++ Win32|x64 and UWP|x64 builds
-- Remove old, broken MSVC++ builds
- libout123 version 2:
-- Added OUT123_BINDIR.
-- New search order for output plugin directory: MPG123_MODDIR, or (relative
to executable directory OUT123_BINDIR) ../lib/mpg123, plugins
libout123/modules/.libs, libout123/modules, ../libout123/modules/.libs,
../libout123/modules, and at last the installation prefix $libdir/mpg213/.
This shall ensure that a build inside a source tree does not try to use old
modules from the system prefix. The normal libtool wrapper deals with the
shared libout123 or libmpg123 only, not modules.
Note that if you set MPG123_MODDIR to a non-existing directory, no modules
will be found (earlier versions fell back to other choices).
-- The OUT123_NAME parameter is now copied by out123_param_from(), as is
the newly added OUT123_BINDIR.
-- Coreaudio: Use AudioComponents API on OSX >= 10.6 (thanks to Michael Weiser).
-- Coreaudio: Fix behaviour of out123_drop(), not killing the output anymore
without re-opening the device (bug 236, thanks to Taihei for the fix).