MusicBrainz Tagger 0.10.4

The 0.10.4 version of the tagger fixes a number of problems related to saving tracks.

This version contains the following bug fixes:

  • VBR MP3 files that have no ID3v2 tag, but have an ID3v1 tag may have had
    their Xing header corrupted, which could cause these MP3 files to show up with
    incorrect durations in audio players.
  • The tagger now reads the release year from the TYER ID3v2 tag, which means that
    if the ID3v2 tag has the right year, but MB does not, the release year from the ID3v2
    tag will be used when renaming the files.
  • Some files that were previously saved and then saved again, may have had an erroneous (1) appended to the filename.
  • Don Redman provided two improved bitmaps for the save and submit buttons, so that they look better when they are disabled.
  • Don also provided a new animation for the ‘page loading’ animation in the tagger. Thanks Don!

Robert Kaye

MusicBrainz Tagger 0.10.3

The 0.10.3 version of the tagger fixes a number of bugs and provides new options for configuring the file names.

This bug fix version fixes problems in the id3v2 tags generated by the
0.10.2 version. This version also supports logging, removing id3v2 tags
from ogg files, sports new toolbar icons, shows special too short
and silence trms.

With the increased load on the TRM signature server tagging clients may encounter
TRM server busy messages and the tagger now captures those and reminds the user
to donate money to MusicBrainz when the TRM server becomes busy. The tagger also
supports the new %type (album type), %status (album status), %year, $month, %date
(for first release date of the album) and %country (first release country)
variables for the saving tagged files. These values are now also written to
the metadata tags.

Bugs and RFEs Closed

Robert Kaye

ChangeLog

The 2.1.1 version of libmusicbrainz improves support for dealing with and overloaded TRM server that occaisonally returns 503 Resource Busy to prevent the sigserver from taking over the entire site.

The following changes were made for 2.1.1:

  • Return special TRMs for special conditions for TRM generation:

    c457a4a8-b342-4ec9-8f13-b6bd26c0e400 — Sigserver busy and overloaded
    f9809ab1-2b0f-4d78-8862-fb425ade8ab9 — Source file is too short to calculate TRM
    7d154f52-b536-4fae-b58b-0666826c2bac — File is silence

  • If the TRM signature server becomes overloaded, it will now start
    returning HTTP 503 error codes and the TRM generator will catch that
    and return the Sigserver busy TRM shown above.

Robert Kaye

Server Updates

A bug fix when adding albums, additions to the RDF web service.

Changes mainly of interest to MusicBrainz Users

Bug #874401 has been fixed.  This bug meant that when you added
“Various Artist” albums, any sortnames you specified for new artists
were ignored.  Now you can specify both the name and sortname as
you create the artist, as you’d expect.

Changes mainly of interest to MusicBrainz Programmers

Web service changes: release dates, and release type and status have been
added to the QuickTrackInfoFromTrackId query.  This query uses
the same RDF prepresentation that the GetAlbumFromGlobalId function
returns.  This query will be deprecated for the next version of the web
service; the QuickTrackInfoFromTRMId function has also been
deprecated.

Changes mainly of interest to MusicBrainz Server Programmers

We’re switching over to use
Memcached for our cacheing
implementation (after a short spell with Cache::SizeAwareFileCache at the
last release).  Of course this means you’ll probably want to install
Memcached on your machine if you want to run a MusicBrainz server.

Some obsolete cleanup scripts have been ditched, and “RemoveBadTOCs.pl” has
been completely rewritten (and renamed).

In Discid.pm,
_FindFreeDBEntry has been removed – it wasn’t used any more, and if
we had happened to invoke it there was a nasty bug in there waiting to bite,
which would have caused data corruption of the TOC table.

Bugs and RFEs Closed

Dave Evans

Server Updates

A miscellaneous collection of bug fixes, and some back-end changes, and integrated Amazon cover art.

Changes mainly of interest to MusicBrainz Users

Amazon Cover Art

MusicBrainz now matches its database against the Amazon.com catalog. 
For each match found we display the album cover art in the album detail
page.  We’ve also added links for more information on the albums at
Amazon, and a “buy” link that lets you purchase the album from your
preferred Amazon store.

Associated with this are two new preferences: one lets you choose your
preferred Amazon store (e.g. the one closest to you); the other one
turns off both the cover art and the links to Amazon.  One of the
conditions under which this content is licensed from Amazon is that we
must display the “buy” link whenever we display the cover art —
so don’t ask us to show cover art without the “buy” links, because we can’t
do that.  It’s both, or neither.

Once we have a non-profit corporation for MusicBrainz, we will be able
start using our associate IDs and start earning a small percentage on albums
sold via MusicBrainz.  In the process of adding the Amazon cover art,
we’ve also reworked the way that artist, album and moderation links are
shown to make the album page less cluttered.

FreeDB

These changes only affect “FreeDB moderations” — i.e. when
a web service client requests album information based on
a MusicBrainz disc ID (and TOC) that we’ve not seen before,
causing the corresponding album to be automatically imported from FreeDB.

Firstly, the code used to turn the TOC into a FreeDB ID was flawed;
sometimes it yielded the correct FreeDB ID, and sometimes it didn’t. 
Of course, this has now been fixed.  However it is likely that there
are now some albums which have been automatically imported into MusicBrainz
but which were then associated with the wrong disc ID and TOC. 
It should be possible to write a “fix” script to identify and remove such
broken data; however that script so far has not been written.

Secondly, the minimum number of tracks need for an automatic import to
proceed has been raised from 2 to 5 (bug #800776).

Finally, the logic that tries to prevent the automated import of “Various
Artists” albums has been considerably strengthened; this should mean that
the FreeDB Moderations page will
tend to contain less junk in future.

Edit Artist Name bug fix

Previously, when an “Edit Artist Name” moderation was applied, the artist’s
page index (used for browsing) would be changed, when it should have
remained unchanged.

For example, if there was an artist “Bob Price”
(sortname: “Price, Bob”), then changing the name to “Bob Pryce” would have
moved that artist from the “P” page to the “B” page.  Since the “Edit
Artist Sortname” moderation also (correctly) modified the page index value,
the page which Bob ended up on would depend on whether the most recently
applied moderation was the “Name” or the “Sortname” moderation.

This bug has now been fixed, but it is likely that there are still some artists in
the database who are on the wrong index page as a result.  Editing
their sortnames will fix the error.  At some point a “fix” script needs to
be written to find and correct such broken data.

Privacy

Previously, by using the “I forgot my password” feature, it was possible to
discover the e-mail address of any user.  This (bug #893529) was fixed
on the live server the day it was reported (so it falls between the previous
release and this one).

You’ll know if someone abused this flaw to find
your address, because you will have received the “this is your password”
reminder e-mail, even though you didn’t ask for it to be sent.  As far
as I am aware, the only person this happened to was me, and that was because
the bug finder was testing
out the bug on me before he reported it 🙂

Other Changes

“Add Track” moderations on “Various Artists” albums previously showed a
blank artist name/sortname (on the voting pages, for example).  From
now on newly entered “Add Track” moderations will show the correct artist;
moderations which were already in the database before this release will just
not show the artist name (bug #868238).

When selecting an “inline moderation” to display on a “Various Artists” page,
the server no longer first picks a moderation “by the same artist”,
since it is very unlikely that
the selected moderation will have anything to do with the page you’re
looking at.

Many more timezones have been added to the allowed list, as seen on the
preferences page (bug #757534).  Also a few extra
date/time display formats have been added.

You can now choose your preferred Google domain (e.g. http://www.google.de). 
The MusicBrainz logo on the Google results pages is much nicer too 🙂

Some dates were being incorrectly displayed as being Jan 1st, 1970 (or
maybe Dec 31st, 1969, depending on your time zone).  These dates
are now correctly displayed as “never”.

The cache expiration of the sidebar panel content (server stats, top
moderators, top voters) became broken during
the move to the new Mason
It’s fixed now.

New and Changed Documentation

A couple of typos have been fixed on the MM page
Another has been fixed on the mq_examples page.

Added the mb_server codebase.

Added release number / CVS Tag information to the
CVS modules page.

Changes mainly of interest to MusicBrainz Programmers

The database dumps
will now be performed every other day, instead of every day.

Changes mainly of interest to MusicBrainz Server Programmers

Perl

The MusicBrainz scripts now look for the Perl binary at
/home/httpd/musicbrainz/mb_server/cgi-bin/perl instead of
/usr/bin/perl.  Thus, you can now easily run your mb_server
from one installation of Perl, but have your system-wide Perl (which maybe
your operating system depends on extensively) be kept separate. 
All you’ll probably have to do is copy the Perl binary you were previously
using into the new path.

This change is described in the INSTALL file.

Cacheing

A cacheing layer has been added: MusicBrainz::Server::Cache
Currently this is based on Cache::SizeAwareFileCache (from the
Cache::Cache distribution).  There are new options in
DBDefs.pm to control this.  In
the future the implementation of the cache might change; code using the
cache should neither care nor notice if it does.

So far the following things are cached in this way: user data
(UserStuff.pm); FreeDB responses; and user voting history statistics (as
displayed on the “profile” page).

Discid / FreeDB

As noted above, the FreeDB ID algorithm has been fixed — previously it
would sometimes give the wrong answer.  In fact much of
Discid.pm
and
FreeDB.pm
have been tidied up and revamped:

  • Discid->GenerateAlbumFromDiscid has been tidied up,
    as has Insert and InsertTOC.
  • Discid->GetAlbumAndIdFromDiscid has been removed.
  • Discid->ParseTOC has been added – this takes a TOC and returns
    lots of useful things from it, including the track count, lengths,
    MusicBrainz disc ID, and FreeDB ID.
  • In FreeDB.pm, _lba_to_msf and IsNumber have been removed,
    and Lookup has been greatly simplified.
  • Finally, FreeDB.pm now caches query responses from the FreeDB server.

Other Changes

Other changes include:

  • XML::DOM is not required,
    so it has been removed from the dependency list in the
    INSTALL file.
  • A hack has been added to
    MusicBrainz.pm
    to avoid re-executing the same SQL again and again for every page,
    when it only needs to be done once (when the database connection is first
    made).  However this is a hack! — it’s not
    done using proper DBI techniques, and it may break things, somewhere, some
    day.  Let us know if it causes you any trouble!
  • mq.pl now logs the authenticated user
    (if known) into the access log.  The URL logged is now of the form
    /mm-2.0/QUERYNAME, like
    mq_2_1.pl has been doing for a while
    now.  Also these two scripts have been tweaked in various small,
    cosmetic ways so as to make them as similar as possible.

Bugs and RFEs Closed

Dave Evans

ChangeLog

The 2.1.0 version of libmusicbrainz improves mp3 duration checking, adds query strings for release dates and amazon asins.

The following changes were made for 2.1.0:

  • Moved the python bindings into a new seperate project
  • rewrote the mp3 duration detection code to be more robust by making it vastly easier. In the process the bitzi related code has been tossed. This should make the libary smaller and the mp3 duration checking faster.
  • Due to the bitzi code being removed, the SHA1 and Bitprint related functions have been removed.
  • Added query items for Release Dates/Countries, Amazon Asins and Amazon cover art URLs
  • Move include files into include/musicbrainz so that the example files will compile outside of the libmusicbrainz client source tree.

Robert Kaye

Server Updates

Two new moderation suggestion reports – duplicate albums, and more duplicate artists.

Not many changes today.  Well, we did have a main release only
two days ago!

Changes mainly of interest to MusicBrainz Users

Matthias Friedrich and Wendell T. Hicken have created two new reports:
one listing
duplicate albums
and another one with
more duplicate artists.

“Guess Case” will now put “(bonus disc)” (or “disk”) in lower case.

Changes mainly of interest to MusicBrainz Server Programmers

The database import script is now potentially much faster
(down from 2 hours to 20 minutes).  It also no longer asks two
questions at the start, so it’s easier to run it completely unattended.

The unused “trmstats.pl” script has been removed.

Dave Evans

Server Updates

Voting “inline”, a faster voting infrastructure, send e-mails using your real e-mail address, and a small number of other changes.

Changes mainly of interest to MusicBrainz Users

Inline Moderation

(This feature by Robert Kaye)

In an effort to reduce the voting backlog, the system now shows you
one vote at a time whenever you’re on an artist, album or track page.
The moderation chosen is, in order of preference: for this artist; for one of
your subscribed artists; for an artist related to this artist; or anything
at random.  When you click one of the three voting buttons (yes, no,
abs) then the voting panel reloads to show something else to vote on.
The rest of the page remains unchanged.

Faster Voting Pages

The moderation database tables have been reorganised behind the
scenes.  The result of this is that
the voting pages (in particular)
should be much faster.  See “Moderation Table Restructuring” below
for more technical details of what’s actually changed.

Reveal My E-Mail Address

When sending an e-mail to another moderator, it’s now possible
(as long as you’ve told MusicBrainz your e-mail address) to choose
to reveal your e-mail address to the other party.  Doing so makes it
much easier for them to reply to you.  The default setting is
controlled by a new preference, which in turn
defaults to “off” (i.e. don’t reveal my address).
Read the help for more information.

Other Changes

  • When searching for moderations, you can now search for mods
    on artists related to some given artist.
  • Tied votes are now passed (previously there had to be a clear majority to
    win).
  • When sending an e-mail to another moderator, sometimes extra quotes were
    added to the subject line (so instead of the subject being Hi
    there
    for example, it would be “Hi there”).  These
    stray quotes have now been removed.
  • The HTML generated by a “Link with Icon” (for an artist, album or track
    link) now ensures that the icon will be on the same line as the text which
    follows.
  • For “Edit Artist Alias”, “Edit Artist Sortname”, “Edit Track Number” and
    “Merge Artist” moderations, if the record being changed is missing then close
    the moderation with a “Failed prerequisite” status instead of “Internal
    error”.
  • The “Show TRM” page now sorts the matched tracks by artist and album, and
    only shows each album once (even if more than one track on that album
    matches the TRM).
    Example.

New and Changed Documentation

Changes mainly of interest to MusicBrainz Programmers

If you download and import the MusicBrainz database (including the
moderation tables) from time to time, read “Moderation Table Restructuring”
(below).

Changes mainly of interest to MusicBrainz Server Programmers

Mason

(This feature by Duncan Findlay)

The MusicBrainz server now uses Mason
1.25 (previously we used 1.05).  Mason underwent something of a
redesign following 1.05, so making it past this “hurdle” should help us in
the future.

Moderation Table Restructuring

The moderation-related tables have been reorganised, so as to speed up the
voting pages.  Almost all queries against the moderation tables deal
with open moderations, but Postgres seemed to be having trouble optimising
those queries (despite an index on moderation.status).  Well, maybe we
missed something obvious, maybe not.  Anyway, what we’ve done is to
split the three tables (moderation, moderationnote and votes) into six
(moderation_open, moderation_note_open, vote_open;
and
moderation_closed, moderation_note_closed, vote_closed).  So most
queries can now just refer to moderation_open, which is a MUCH smaller table
than moderation used to be.

As a side-effect, the data for closed moderations is now dumped into a
separate file (mbdump-closedmoderation.tar.bz2), making the
mbdump-moderation.tar.bz2 file much smaller.  Hence, if you
want to download open moderation data but have no need for closed
moderations, life has just become a little easier for you.

Other Changes

The CreateTables-mysql.sql
script has been removed.  It was generally poorly maintained, and
hardly ever tested, and the costs of maintaining it outweighed the
benefits.  If you want to create a MusicBrainz database in MySQL,
start with the CreateTables.sql
script.


RDFDump.pl
has been fixed. RDF dumps now contain all artists
we have in the database.

Bugs and RFEs Closed

Dave Evans

Server Updates

Easy ways to link to MusicBrainz, country / date release information, log in permanently, revamped moderation suggestion reports, and the usual cornucopia of miscellaneous bug fixes and enhancements.

Changes mainly of interest to MusicBrainz Users

Linking to MusicBrainz

(This feature by Robert Kaye)

One of the main aims of MusicBrainz has always been to provide unchanging,
globally-unique identifiers for various music-related things (artists,
albums, tracks).  Until recently these identifiers have been all too
hard to find and use. 

The official “permanent” way of linking to HTML web pages for MusicBrainz
artists, albums and tracks is now like this, using the 128-bit globally
unique identifier (GUID) values:

To make it easier to link to artists, albums and tracks as you find them,
there are now two new links next to each linkable item:

Permanent link is a link to the permanent URL, so if you
just want to get the URL without any fancy markup, then you can use your
browser to copy the URL behind these links to your clipboard.

Link to this takes you to a page where you can
choose what appearance you want your link to have, then copy the HTML
provided so you can paste it into your web page (or web log, etc).

Releases

(This feature by Dave Evans with help from Matthias Friedrich)

A Release is when a particular album (or single, etc) was made
available in a particular country on a particular date.  For example,
you could say that the single
White Flag
was released in the United Kingdom in 2003.

The date part of a release can be just a year (e.g. 1977), or a
year and a month (July 1977) or a specific day (12th July 1977).

When searching for albums, or showing a list of albums on the “show artist”
page, the first known release date is shown for each album.  On the
latter page, albums are listed (within release type) by first release date, in
forward chronological order.  Albums with no release data will have
no known first release date.  Albums with a first release date are
listed first, then the ones without.

Releases are edited using the Release Editor page, which works much
like the Album Editor.  It’s based on your session cookie, so
you can only edit one album’s releases at a time.  The main way in
which it’s different from the Album Editor is that when you’ve finished, all
the changes you make are entered as a single moderation.  Hence a
single “Edit Releases” moderation may include, say, two releases to add and
one to edit. 

“Edit Releases” moderations are auto-moderated if no releases are being
removed, and EITHER there are no releases being edited OR the user is an
automoderator.  This should make it possible to initially add a lot of
“release” data without having to vote it all through.

Log In Permanently

When you log in, there are now two extra tick box options:
“Log in permanently” and “Only from this IP address”. 

By choosing “Log in permanently” you will be sent a non-session cookie (it
expires after one year) including your user name and a hashed form of your
password.  When you close and restart your browser, instead of having
to log in to MusicBrainz again, this “permanent” cookie will be detected and
you will automatically be logged in straight away.  You will only have
to log in again if the cookie expires or is deleted, or if you click
“Logout” (which causes this cookie to be deleted), or if your password is
changed.

By choosing “Only from this IP address” you gain some little protection
against someone maliciously “stealing” your MusicBrainz cookies and trying
to use them to log in as you – your cookies will only be valid when used
from your IP address.

As part of the “Log in permanently” feature it was necessary to update the
way in which you update your password – you must now enter your old (existing)
password in order to change it to something else.  Some simple rules
now apply to passwords to ensure that the password isn’t too easy to guess:
new passwords must be at least six characters long, and must be neither all
letters nor all numbers.  Finally, password changing is now done on a
separate page, not the main “update my profile” page.

Moderation Suggestion Reports

(This feature by Matthias Friedrich and Dave Evans)

All the “moderation suggestion reports” have been completely rewritten;
the main visible change is that instead of producing a single (sometimes
VERY long) page per report, each report is now split over a series of pages,
like when you browse over moderations, artists or albums.  This
generally means that the reports are much faster and nicer to use.

There is one completely new report, called “Tracks with broken featuring
artist tags”.  This report looks for tracks which should, but don’t,
say “Foo (feat. Bar)” – for example, “Foo featuring Bar” would be in this
report.  Next to each track found is a link to edit that track’s
name.  The editing is done in a pop-up window.  If the report
thinks it knows what the track name should be, then the link says “Suggest”,
and clicking on the link opens the pop-up with the new track name pre-filled
in with what it thinks the new name should be.  All you have to do is
make sure it guessed right and submit the form.

Editing

When a moderation fails in an unusual way (e.g. failed prerequisite, internal
error) the ModBot now always adds a note describing exactly
what went wrong.  (This was partially implemented before; the gaps have
now been filled in).

The “edit track name” page now shows the warning about pending moderations,
when appropriate.

When adding [non-album tracks], it is now mandatory to
enter a moderation note – you are strongly encouraged to provide some URL
with “evidence” as to what the track is.  A “Guess Case” button has
also been added.

When changing a “Various Artists” track (particularly when first converting
an album to Various Artists), the track name is now split in the correct
place more often.  This fixes bug #854750.

When adding artists, or moving a track to a new artist, it is now possible
to create a new artist with the same name as another artist’s alias
(bugs #788282, #837930).

The “Add Artist” page now has a “Guess Case” button.  It also has a
button to copy the artist name into the artist sortname (but this should be
exactly the same as leaving the sortname blank).

Previously some users experienced a Javascript error while merging artists
or moving albums.  This bug has now been fixed.

The “Guess Case” buttons now put these words in lower case when within
parentheses: acoustic instrumental live demo skit.

Other Changes

The “top moderators” sidebar panel has been replaced by the “top voters”
panel.

When browsing moderations (e.g. when voting), closed moderations now say
“Closed”, instead of “Expires” or “Expired”.  The little red “X” that
you had to click on to delete a moderation has now been changed to a much
more obvious textual link saying “Delete mod”.

A “fix” (run on demand by the MusicBrainz server administrators)
script has been created to find and fix track names which should say “Foo
feat. Bar”, but don’t.  (by Matthias Friedrich)

There is a “fix” script
which recalculates the “modpending” count (and thus, for example, removes
the “mod pending” highlight from things which actually have no mods pending). 
This script had been out of date and useless for a while; it has now been
rewritten and is now up-to-date and useful again.

The “Tag lookup” form has been added to
the main search page,
the idea being to make it easier to do a combined artist+album+track search.

The very old, very out-of-date downloads of the MySQL and Access databases
have been removed from the downloads page.

New and Changed Documentation

Changes mainly of interest to MusicBrainz Server Programmers

Two missing foreign keys have been added: moderationnote to moderator, and
moderationnote to moderation.

At server startup, we now pre-load many Mason components, for faster
subsequent response, and for a smaller memory footprint.

A SQL interpolation bug fix in TRM->GetTRMFromTrackId
has been fixed.

Bugs and RFEs Closed

Dave Evans