----------------------
This thrilling new release of beets focuses on making the tagger more usable in
a variety of ways. First and foremost, it should now be much faster: the tagger
now uses a multithreaded algorithm by default (although, because the new tagger
is experimental, a single-threaded version is still available via a config
option). Second, the tagger output now uses a little bit of ANSI terminal
coloring to make changes stand out. This way, it should be faster to decide what
to do with a proposed match: the more red you see, the worse the match is.
Finally, the tagger can be safely interrupted (paused) and restarted later at
the same point. Just enter ``b`` for aBort at any prompt to stop the tagging
process and save its progress. (The progress-saving also works in the
unthinkable event that beets crashes while tagging.)
Among the under-the-hood changes in 1.0b4 is a major change to the way beets
handles paths (filenames). This should make the whole system more tolerant to
special characters in filenames, but it may break things (especially databases
created with older versions of beets). As always, let me know if you run into
weird problems with this release.
Finally, this release's ``setup.py`` should install a ``beet.exe`` startup stub
for Windows users. This should make running beets much easier: just type
``beet`` if you have your ``PATH`` environment variable set up correctly. The
:doc:`/guides/main` guide has some tips on installing beets on Windows.
Here's the detailed list of changes:
* **Parallel tagger.** The autotagger has been reimplemented to use multiple
threads. This means that it can concurrently read files from disk, talk to the
user, communicate with MusicBrainz, and write data back to disk. Not only does
this make the tagger much faster because independent work may be performed in
parallel, but it makes the tagging process much more pleasant for large
imports. The user can let albums queue up in the background while making a
decision rather than waiting for beets between each question it asks. The
parallel tagger is on by default but a sequential (single- threaded) version
is still available by setting the ``threaded`` config value to ``no`` (because
the parallel version is still quite experimental).
* **Colorized tagger output.** The autotagger interface now makes it a little
easier to see what's going on at a glance by highlighting changes with
terminal colors. This feature is on by default, but you can turn it off by
setting ``color`` to ``no`` in your ``.beetsconfig`` (if, for example, your
terminal doesn't understand colors and garbles the output).
* **Pause and resume imports.** The ``import`` command now keeps track of its
progress, so if you're interrupted (beets crashes, you abort the process, an
alien devours your motherboard, etc.), beets will try to resume from the point
where you left off. The next time you run ``import`` on the same directory, it
will ask if you want to resume. It accomplishes this by "fast-forwarding"
through the albums in the directory until it encounters the last one it saw.
(This means it might fail if that album can't be found.) Also, you can now
abort the tagging process by entering ``b`` (for aBort) at any of the prompts.
* Overhauled methods for handling fileystem paths to allow filenames that have
badly encoded special characters. These changes are pretty fragile, so please
report any bugs involving ``UnicodeError`` or SQLite ``ProgrammingError``
messages in this version.
* The destination paths (the library directory structure) now respect
album-level metadata. This means that if you have an album in which two tracks
have different album-level attributes (like year, for instance), they will
still wind up in the same directory together. (There's currently not a very
smart method for picking the "correct" album-level metadata, but we'll fix
that later.)
* Fixed a bug where the CLI would fail completely if the ``LANG`` environment
variable was not set.
* Fixed removal of albums (``beet remove -a``): previously, the album record
would stay around although the items were deleted.
* The setup script now makes a ``beet.exe`` startup stub on Windows; Windows
users can now just type ``beet`` at the prompt to run beets.
* Fixed an occasional bug where Mutagen would complain that a tag was already
present.
* Fixed a bug with reading invalid integers from ID3 tags.
* The tagger should now be a little more reluctant to reorder tracks that
already have indices.