Source

beets / NEWS

1.0b5
-----
* A new plugin, "lastid", adds Last.fm acoustic fingerprinting support
  to the autotagger. Similar to the PUIDs used by MusicBrainz Picard,
  this system allows beets to recognize files that don't have any
  metadata at all. You'll need to install some dependencies for this
  plugin to work; a guide is available on the project wiki here:
    http://code.google.com/p/beets/wiki/LastID
* To support the above, there's also a new system for extending the
  autotagger via plugins. Plugins can currently add components to the
  track and album distance functions as well as augment the MusicBrainz
  search.
* String comparisons in the autotagger have been augmented to act more
  intuitively. Previously, if your album had the title "Something (EP)"
  and it was officially called "Something", then beets would think this
  was a fairly significant change. It now checks for and appropriately
  reweights certain parts of each string. As another example, the title
  "The Great Album" is considered equal to "Great Album, The".
* New event system for plugins (thanks, Jeff!). Plugins can now get
  callbacks from beets when certain events occur in the core.
* The BPD plugin is now disabled by default. This greatly simplifies
  installation of the beets core, which is now 100% pure Python. To use
  BPD, though, you'll need to set "plugins: bpd" in your .beetsconfig.
* The "import" command can now remove original files when it copies
  items into your library. (This might be useful if you're low on disk
  space.) Set the "import_delete" option in your .beetsconfig to "yes".
* Importing without autotagging ("beet import -A") now prints out album
  names as it imports them to indicate progress.
* There's a new "mpdupdate" plugin that will automatically update your
  MPD index whenever your beets library changes. Read the plugin's
  documentation on the wiki:
    http://code.google.com/p/beets/wiki/MPDUpdate
* Efficiency tweak should reduce the number of MusicBrainz queries per
  autotagged album.
* A new "-v" command line switch enables debugging output.
* Fixed bug that completely broke non-autotagged imports ("import -A").
* Fixed bug that logged the wrong paths when using "import -l".
* Fixed autotagging for the creatively-named band !!!.
* Fixed normalization of relative paths.
* Fixed escaping of / characters in paths on Windows.

1.0b4
-----
* 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 UnicodeErrors or SQLite
  ProgrammingErrors with 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.

1.0b3
-----
* Album art. The tagger now, by default, downloads album art from
  Amazon that is referenced in the MusicBrainz database. It places the
  album art alongside the audio files in a file called (for example)
  "cover.jpg". The "import_art" config option controls this behavior,
  as do the -r and -R options to the import command. You can set the
  name (minus extension) of the album art file with the
  "art_filename" config option.
* Plugin architecture. Add-on modules can now add new commands to the
  beets command-line interface. The "bpd" and "dadd" commands were
  removed from the beets core and turned into plugins; BPD is loaded
  by default. To load the non-default plugins, use the "plugins" config
  value (a space-separated list of plugin names). You can also set the
  "pluginpath" config option to a colon-separated list of directories
  to search for plugins. Plugins are just Python modules under the
  "beetsplug" namespace package containing subclasses of
  beets.plugins.BeetsPlugin. See the "beetsplug" directory for examples.
* Support for MusicBrainz ID tags. The autotagger now keeps track of the
  MusicBrainz track, album, and artist IDs it matched for each file. It
  also looks for album IDs in new files it's importing and uses those to
  look up data in MusicBrainz. Furthermore, track IDs are used as a
  component of the tagger's distance metric now. Tangentially, change
  required the database code to support a lightweight form of migrations
  so that new columns could be added to old databases--this is a
  delicate feature, so it would be very wise to make a backup of your
  database before upgrading to this version.
* As a consequence of adding album art, the database was significantly
  refactored to keep track of some information at an album (rather than
  item) granularity. Databases created with earlier versions of beets
  should work fine, but they won't have any "albums" in them--they'll
  just be a bag of items. This means that commands like "beet ls -a"
  and "beet rm -a" won't match anything. To "upgrade" your database,
  you can use the included "albumify" plugin. Running "beets albumify"
  with the plugin activated will group all your items into albums,
  making beets behave more or less as it did before.
* Fixed some bugs with encoding paths on Windows. Also, : is now
  replaced with - in path names (instead of _) for readability.
* MediaFiles now have a "format" attribute, so you can use $format in
  your library path format strings like "$artist - $album ($format)"
  to get directories with names like "Paul Simon - Graceland (FLAC)".

1.0b2
-----
* Support for Ogg Vorbis and Monkey's Audio files and their tags.
  (This support should be considered preliminary: I haven't tested it
  heavily because I don't use either of these formats regularly.)
* An option to the "beet import" command for logging albums that
  are untaggable (i.e., are skipped or taken "as-is"). Use
  "beet import -l LOGFILE PATHS". The log format is very simple: it's
  just a status (either "skip" or "asis") followed by the path to the
  album in question. The idea is that you can tag a large collection
  and automatically keep track of the albums that weren't found in
  MusicBrainz so you can come back and look at them later.
* Fixed UnicodeEncodeError on terminals that don't (or don't claim to)
  support UTF-8.
* Importing without autotagging ("beet import -A") is now faster and
  doesn't print out a bunch of whitespace. It also lets you specify
  single files on the command line (rather than just directories).
* Fixed importer crash when attempting to read a corrupt file.
* Reorganized code for CLI in preparation for adding pluggable
  subcommands. Also removed dependency on the aging "cmdln" module.

1.0b1
-----
First public release.