Source

beets / NEWS

Full commit
Adrian Sampson 75de21f 

Adrian Sampson e8994c8 




Adrian Sampson f00519b 

Adrian Sampson e8994c8 


Adrian Sampson c2306c2 



Adrian Sampson 4b75f2c 

Adrian Sampson f00519b 


Adrian Sampson 5f565f1 


Adrian Sampson 11091e0 
Adrian Sampson 6ce075a 
Adrian Sampson fad2ebf 




Adrian Sampson 37ca8f2 
Adrian Sampson c2306c2 
Adrian Sampson f8eddf7 
Adrian Sampson e8f20fd 

Adrian Sampson c2306c2 


Adrian Sampson 3821dac 
Adrian Sampson 733e4ac 
Adrian Sampson 75de21f 
Adrian Sampson 573b92d 
Adrian Sampson aff80da 
Adrian Sampson 3f0a96a 

Adrian Sampson 449cb72 
Adrian Sampson e8994c8 
Adrian Sampson 75de21f 
Adrian Sampson eb983b3 

Adrian Sampson 54b0138 


Adrian Sampson ddb35a1 




Adrian Sampson b215923 



Adrian Sampson ab41628 

Adrian Sampson 5270e1c 





Adrian Sampson 419370c 

Adrian Sampson eb983b3 
Adrian Sampson 6d0790a 


Adrian Sampson 44d9426 

Adrian Sampson 2235a71 

Adrian Sampson 5604080 
Adrian Sampson 876565b 

Adrian Sampson fd4d436 
Adrian Sampson eb983b3 
Adrian Sampson beba9d4 




Adrian Sampson be12f6a 


Adrian Sampson beba9d4 

Adrian Sampson 588c198 

Adrian Sampson e964b4a 





Adrian Sampson beba9d4 

Adrian Sampson 410dce1 
Adrian Sampson be12f6a 

Adrian Sampson 3da09ac 


Adrian Sampson 3c1a92a 

Adrian Sampson 588c198 
Adrian Sampson be12f6a 





Adrian Sampson beba9d4 
Adrian Sampson 685bd2d 
Adrian Sampson 28db182 
Adrian Sampson 7abccd2 
Adrian Sampson cb6760f 
Adrian Sampson beba9d4 
Adrian Sampson af5f30c 

Adrian Sampson 2664ae2 











Adrian Sampson 3997355 





Adrian Sampson dc1c343 

Adrian Sampson 7295f12 
Adrian Sampson dc1c343 





Adrian Sampson af9f454 



Adrian Sampson 7295f12 
Adrian Sampson f0e99f4 




Adrian Sampson af5f30c 



Adrian Sampson 5d942a8 

Adrian Sampson 2b13468 

Adrian Sampson b4d2663 
Adrian Sampson 7a01ff4 

Adrian Sampson af5f30c 
Adrian Sampson 5a3a466 

Adrian Sampson e1ececc 






Adrian Sampson 5a3a466 



Adrian Sampson a5e6430 




Adrian Sampson 7dc70a9 








Adrian Sampson e1ececc 



Adrian Sampson 08ad93f 
Adrian Sampson 0ad0fed 



Adrian Sampson d489473 




Adrian Sampson 5a3a466 
Adrian Sampson 26585d9 




Adrian Sampson ce72963 
Adrian Sampson 675c4a7 





Adrian Sampson ce72963 
Adrian Sampson 8613fca 
Adrian Sampson c35df8a 
Adrian Sampson 938a803 

Adrian Sampson ce72963 


Adrian Sampson 26585d9 
Adrian Sampson 004a00a 

1.0b7
-----
* "Various artists" releases are handled much more gracefully. The
  autotagger now sets the "comp" flag on albums whenever the album is
  identified as a "various artists" release by MusicBrainz. Also,
  there is now a distinction between the "album artist" and the "track
  artist", the latter of which is never "Various Artists" or other such
  bogus stand-in. (Thanks to Jonathan Buchanan for the bulk of the
  implementation!)
* The directory hierarchy can now be customized based on release type.
  In particular, the "path_format" setting in .beetsconfig has been
  replaced with a new [paths] section, which allows you to specify
  different path formats for normal releases, "compilation" releases,
  and every release type (see below). The default path formats have
  been changed to use $albumartist instead of $artist. More information
  about this change is available on the wiki.
* A new "albumtype" field reflects the release type as specified by
  MusicBrainz: http://wiki.musicbrainz.org/ReleaseType
* When deleting files, beets now appropriately "prunes" the directory
  tree -- empty directories are automatically cleaned up. (Thanks to
  wlof on GitHub for this!)
* When importing with the "delete" option and importing files that are
  already at their destination, files could be deleted (leaving zero
  copies afterward). This is fixed.
* Always show album directory in tagger output.
* "import -l" now logs duplicate albums.
* A new "import_resume" option can be used to disable the importer's
  resuming feature or force it to resume without asking. This option
  may be either "yes", "no", or "ask", with the obvious meanings. The
  -p and -P command-line flags override this setting and correspond to
  the "yes" and "no" settings.
* Resuming is automatically disabled when the importer is in quiet (-q)
  mode. Progress is still saved, however, and the -p flag (above) can
  be used to force resuming.
* The BEETSCONFIG environment variable can now be used to specify the
  location of the config file that is at ~/.beetsconfig by default.
* A new "import_quiet_fallback" option specifies what should happen in
  quiet mode when there is no strong recommendation. The options are
  "skip" (the default) and "asis".
* The "version" command now lists all the loaded plugins.
* A new plugin, called "info", just prints out audio file metadata.
* Fix a bug where some files would be erroneously interpreted as MP4.
* Fix permission bits applied to album art files.
* Fix malformed MusicBrainz queries caused by null characters.
* Fix a bug with old versions of the Monkey's Audio format.
* Fix a crash on broken symbolic links.
* Retry in more cases when MusicBrainz servers are slow/overloaded.
* The old "albumify" plugin for upgrading databases was removed.

1.0b6
-----
* A new "-q" command line switch for the import command suppresses all
  prompts for input; it pessimistically skips all albums that the
  importer is not completely confident about.
* Added support for the WavPack and Musepack formats. Unfortunately,
  due to a limitation in the Mutagen library (used by beets for
  metadata manipulation), Musepack SV8 is not yet supported. Here's
  the upstream bug in question:
  http://code.google.com/p/mutagen/issues/detail?id=7
* BPD now uses a pure-Python socket library and no longer requires
  eventlet/greenlet (the latter of which is a C extension). For the
  curious, the socket library in question is called Bluelet:
  https://github.com/sampsyo/bluelet
* Non-autotagged imports are now resumable (just like autotagged
  imports.)
* Fix a terrible and long-standing bug where track orderings were never
  applied. This manifested when the tagger appeared to be applying a
  reasonable ordering to the tracks but, later, the database reflects a
  completely wrong association of track names to files. The order
  applied was always just alphabetical by filename, which is frequently
  but not always what you want.
* We now use Windows' "long filename" support. Filenames on Windows now
  also never end in spaces.
* Fix crash in lastid when the artist name is not available.
* Fixed a spurious crash when LANG or a related environment variable is
  set to an invalid value (such as 'UTF-8' on some installations of Mac
  OS X).
* Fixed an error when trying to copy a file that is already at its
  destination.
* When copying read-only files, the importer now tries to make the copy
  writable. (Previously, this would just crash the import.)
* Fixed an UnboundLocalError when no matches are found during autotag.
* Fixed a Unicode encoding error when entering special characters into
  the "manual search" prompt.
* New command "beet version" just shows the current version.

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.