Server Updates

No-vote changes are accepted by default, better replication support, links back to FreeDB, and a bunch of miscellaneous bug fixes and other enhancements

Changes mainly of interest to MusicBrainz Users

Changes to How Votes Work

Previously if a moderation expired
(1 week after it was entered) and no-one had voted
on it (not counting abstentions), the moderation would simply stay open
until someone did vote on it.  We all know where that got us
– a rather huge backlog of moderations waiting for votes. 😦

Now, the behaviour is a little different: once a moderation has expired
and there are no non-abstaining votes, then the system checks to see if
there are any moderators who are subscribed to the moderation’s artist
(not counting the original moderator).  If there are none, then the
moderation is accepted.  If there are subscribers, then the
moderation may stay open for up to a further
1 week.  (If a vote is cast within that time,
the usual rules apply).  If after that extra time there are
still no votes, then the moderation is accepted.

This therefore differs from the old behaviour in two ways: (1) The default
state for a moderation with no votes is to be accepted (instead of
languishing in an “open” state).  (2) The length of time that the
system will wait before doing so depends on whether or not the moderation’s
artist has any subscribers (not counting the original moderator).

Thanks to Matthias Friedrich for implementing this!

Web-Based Automoderator Elections

After several rather disorganised and confusing Automoderator elections,
it was decided that something more formal, controlled and automated was
probably a good idea.  Hence, the AutoTransaction elections are now
held via this web site.  If you’re an
Automoderator, you can nominate someone for Automod status by clicking on
the “Nominate” link on their profile page.  Anyone may examine the
election information, but it is a private ballot and only Automods may
vote.  The system posts automated messages to the
mb-automods mailing list.

MusicBrainz Mirror Servers

Rob has done lots of work to ensure that the system is more “replication
aware”.  There are various things that MusicBrainz mirror servers can’t
do – for example, they do not store any moderator / moderation data. 
Hence, you can’t log in to a mirror server, and you can’t submit TRMs to one
either.  So when you’re on a mirror server, at various times you’ll see
messages to the effect that what you’re looking for is only available or
possible on the main server.

Other Changes

Moderator Names: previously the system accidentally allowed
non-unique moderator names.  Obviously this was not a good thing,
so moderator names must now be unique.  Any duplicate moderators
have been merged together.

FreeDB Imports: MusicBrainz now remembers the FreeDB category/id
and stores that information in the moderation data as the album is
added.  The ModBot will also a note citing the URL of the FreeDB source
data, like this: “Imported from“.

Voting: There was a bug whereby if two votes were cast on the same
moderation at the same time, then the “yes/no” totals could become
wrong.  This has now been fixed.

Error Messages: Errors thrown up by the database were often
not reported to the user.  For example, you may have seen a page which
simply said “Error:” (without giving an error message).  This has now
been fixed.

Disc ID Detail: On the Album Info page, you can now choose to examine
the details of any Disc IDs attached to this album, including the length of
each track (according to each Disc ID), in seconds or sectors. 
Example 1;
Example 2;
Example 3.

Album Attributes: When adding albums, the release type/status now both
default to “I don’t know” (i.e. “None”).  Also, on the “Edit album attributes”
page, you can now remove album attributes (set them back to “None”).

Guess Case: “Guess Case” now recognises
[untitled], [unknown] and [no artist]; it also no longer adds spaces
to punctuated numbers (e.g. 1,234.56)  It more correctly capitalises
hyphenated words “Like-This”.  It no longer capitalises “disc 1” (and
so on), nor various common non-English articles of speech
(der, und, de, du, les, et, …). 
It knows to capitalise YMCA, NYC and R&B.  (all changes by Rob

Release Editor: If there are no releases, you now immediately get a
blank row so you can add a release.  On the “review changes” page which
follows, the album name is now shown.

Adding a moderation note to “change track name”
now also adds that note to the “change track artist” mod. 
The “Add to Cart” (Amazon) button has been fixed (by Andy Grundman). 
There is now a link to the Style page at the top
of the “list of moderations” pages. 
You can look up a moderator name on the main Search page
The section headings in the bar on left (e.g. Quick Search) are now

Changes mainly of interest to MusicBrainz Server Programmers


As part of the work to improve the support for mirror servers, the way that
database connections are configured has completely changed: see the section
entitled “The Database” in, and see also
Additionally, now checks your
Postgres locale settings, and can take care of more of the configuration for
you.  “ –clean” now runs the scripts in the right order.

The INSTALL file and the
Import HOWTO have
been updated to reflect the new way of doing things.  A couple of
errors in INSTALL have also been fixed.

now shows a message if we’re continuing to process a packet
part-way through.  As soon as the downloaded replication packet
has been decompressed, it is deleted.  The sanity checks on
schema_sequence and replication_sequence have been fixed. 
In ProcessReplicationChanges,
the progress meter has been tweaked to be more useful. Also, as
each replication transaction is processed, the packet data is deleted,
so that we can safely stop and restart, and be sure that we restart exactly
where we left off.


UpdateWordCounts now only writes to
the database if the numbers are currently wrong, to avoid creating
unnecessarily large replication packets. now only show the
output of RunReports if
there was an error. 
QuerySupport::AssociateCDFromAlbumId was unused, and has
been removed. 
Mason 1.26 compatibility has been achieved by not using newlines between
<& and the component name (fixed by Matthias).

CreateTables.sql has been tidied up. 
An error has been fixed in InsertDefaultRows.sql. 
$trm->LoadFull was unused, and has been removed. 
Many instances of $sql->Finish have been moved to the
correct place in the code, or added where missing. 
$discid->LoadFull now always returns a reference to
an array, instead of sometimes returning undef. 

Variables in have been tidied up, and some TODO comments have been
added.  MM::CreateDumpRDF was unused, and has been
The RDF parser module ( has been rewritten, and is much more
maintanable.  Additionally we can now handle multiple ordinals per
query (in case we should ever need to do that). 
In, error checking has been added to the code which actually sends
e-mails.  DEBUG_MAIL_SPOOL has been added (handy for

Bugs and RFEs Closed

Dave Evans

Server Updates

This release adds support for data replication, makes others’ votes more visible, and allows moderation notes to be e-mailed to other voters, not just the moderator.

Changes mainly of interest to MusicBrainz Users

Votes on open moderations are no longer as “aggressively hidden” as they
used to be.  Now you can always see the voting on any mod, regardless
of status etc, by going to the Moderation Detail
page.  On the main voting pages
you’ll only not be able to see the vote counts as long as you haven’t voted;
as soon as you vote (or when the mod closes, or if it’s your mod anyway)
then the vote counts are shown.

All URLs in moderation notes are now hyperlinked, not just ones that link to
other MusicBrainz pages.  See
(Technically there are limitations to this – only http, https and ftp URLs
are detected, and finding where the URL ends is a bit of a fuzzy science –
but it gets it right most of the time).

From now on, whenever you add a note to a moderation, you’ll get mailed all
future notes added to that moderation.  If you don’t like this new
behaviour, you can disable it via a new preference.  In that case
you’ll only get mailed notes which were added to your own mods.

Each entry in the Style Guide is now “linkable”,
so you can refer style guide entries to other users just by posting a link.

For new Tagger users, it’s now much more obvious that you have to copy your
username / password into the relevant part of the “Options” window.

Previously it was possible to add artists, albums etc with trailing
whitespace in their names.  This caused problems with artists
especially, where the name is meant to be unique.  The system now tries
much harder to remove such whitespace before the data is written to the
database.  As a one-off exercise for this release, all
trailing-whitespace data should now have been removed.

Previously, strange side-effects could have occurred in various places if the
names of artists, etc. contained the “_” or “%” characters.  These
potential side-effects have now been fixed.

The Top Moderators page has been revamped; the
moderator names listed there are now links to their profile pages.

On the Browse Releases page, there is now
a “title” attribute (which in most browsers is shown as a “tooltip”) which
shows the track, disc id and TRM id counts for each release.

If there is an error when adding a track, previously the system just
reported “Error”.  Now it shows you the full error message, as
originally intended.

Changes mainly of interest to MusicBrainz Programmers

The TRM “gateway” on the server has now been reimplemented in
mod_perl.  For the most part this shouldn’t make much difference to
you; but it does mean for example that you can use any URL at,
and that we can get
on use of the signature server. 
There are also some new “special” TRMs
which can be returned to indicate various exceptional conditions.

New and Changed Documentation

The documentation for the client
and TunePimp have been
extended and reorganised.

Changes mainly of interest to MusicBrainz Server Programmers


The server now supports one-way data replication, for most (but not all)
tables.  (The tables excluded are the moderation and moderator tables
– nine tables in all).  The replication is based on the “dbmirror” code
contributed to the Postgres codebase.

Every hour, the ExportAllTables script
runs and exports the changed rows into a “replication packet” file (a
compressed “tar” file).  Those files are then made available on our
FTP site
Every so often (for example, once a week) a complete database export is
run, and this too is made available on our FTP site.  By initially
importing one of these full databases (minus the moderation tables),
then applying each replication packet, a slave database can keep up-to-date
with the master.

The RDF Dump

We no longer perform regular RDF exports (the “mbdump.rdf.bz2” file). 
The script which did the exports still exists, however.  If you want RDF
then one way to do it would be to set yourself up as a Postgres mirror, and
run the RDF export script against your database.


The "cron" scripts
have been rewritten; they are now configured via, and the
INSTALL file now mentioned the existence of
these scripts.

Other Changes

Text::Unaccent version 1.05 couldn’t handle non-string data safely
(including “undef”).  We’re now running a patched version of this
module; the relevant patch is available on our FTP site.

There is a new “cleanup” script,
some old scripts have been removed.

Various database write operations have been moved into more appropriate places
in the code, as have some read operations.  Lots of SQL has been
rewritten, and some unused methods have been removed from
now complains and shows the error message in the event of failure. 
There were miscellaneous HTML fixes.
was changed to allow false values; “remove” was renamed to “delete”.

Bugs and RFEs Closed

Dave Evans

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

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 “” has
been completely rewritten (and renamed).

_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 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.


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.


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. 
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


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.


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 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
(; 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
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, _lba_to_msf and IsNumber have been removed,
    and Lookup has been greatly simplified.
  • Finally, 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
    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!
  • now logs the authenticated user
    (if known) into the access log.  The URL logged is now of the form
    /mm-2.0/QUERYNAME, like 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

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 “” 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
  • When sending an e-mail to another moderator, sometimes extra quotes were
    added to the subject line (so instead of the subject being Hi
    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
  • 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
  • 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).

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”

Changes mainly of interest to MusicBrainz Server Programmers


(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;
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
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).


(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

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.


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”

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

Server Updates

Moderation Search; Add Album gets “Guess” buttons; a new “moderation suggestions” report.

Changes mainly of interest to MusicBrainz Users

Moderation Search

Previously it was only possible to list moderations using one of a number of
fixed means: for example, “New Mods”, “FreeDB Mods”, “Artist Mods”
etc.  Now, all of these have been replaced a rather flexible
Moderation Search facility.

Moderation Search allows you to find moderations according to any
combination of the following criteria: moderation status, automod flag,
moderation type, moderator, vote cast (by you or anyone else),
artist (including “my subscribed artists”), and moderation ID (range).
You can also query by album, or by track.
Finally you can choose whether to show them oldest to newest, or the other
way round.  The number of possible combinations is
simply astronomical.

The old, fixed search types (“New”, “FreeDB” etc) now simply pre-fill the
search form with the appropriate values.  So for example, you can run
one of the preset searches (say, “My Failed Mods”), and then click “Advanced
Search” to customise your current search in whatever way you please.
There’s a new page which lists
the presets.  If you like you can set a new
to cause the “Moderate” link in the top navigation bar to
go to that page instead of running the “New Mods” query.

Some other points of note:

  • Many more queries than before are possible.  For example, show me
    moderations by (some moderator name) which I haven’t voted on yet; or, show
    me (some moderator name)’s automods only.
  • Many of the moderation URLs have now moved.  Hopefully all the links on
    the site have been updated, but if you do hit an old link (e.g. in an old
    “subscriptions” e-mail) you should get redirected.
  • The “subscriptions” e-mails now contain an extra link, which is
    effectively like “New Mods”, but for your subscribed artists only.
  • There’s now a page where you
    can search for moderators
    (so you can include them in your
    search).  Interestingly this is currently the only place in the whole
    site where you can effectively “browse moderators”.  No doubt a page
    dedicated to doing just that will be added some time in a future release.
  • Sometimes your moderation searches may “time out” – just like normal
    searches (for tracks, etc) the search is cancelled if it’s still running
    after 30 seconds.  If this happens, try narrowing down your search,
    maybe by using the “moderation ID” filter (e.g. only where the ID is at
    least 530000).

Add Album

The manual “Add Album” pages now have “Guess Case” and “Guess Sortname”

Other Changes

Previously only two statistics were recorded for each moderator; a count of
“accepted moderations”, and one of “failed moderations”.
Now the “accepted” count has been split into two, one for auto-moderations,
and one for the rest; and the “failed” count has also been split into two,
one for “failed vote” moderations, and one for the other types of
failure.  For example, see your own profile page.

When moving an album to another artist, the original artist is no
longer shown in the search results (bug #576354).

Each moderation type has a name, and just to ensure that the name of each
type is unique, two of the types have been renamed.
Previously there were two types of “Add Track” (one used up to
17th August 2001, and one used thereafter); now the former is called
“Add Track (old version)”.
Additionally there are in fact two types both known as “Merge Albums” (one
for single-artist albums, and one for Various Artists).
The latter is now called “Merge Albums (Various Artists)”.

The “auto-notes” added by the Album Editor (e.g. “The first of a set
of 3 moderations”) were previously recorded against the moderator’s own
name; now, they are added by the ModBot.

If you use the “compact” album listing, then manually switch to a “full”
listing, the expand/collapse links now work, instead of switching you back
to a “compact” listing.

There is now a new moderation suggestions report, called “Superfluous Data
Tracks”.  Thanks to our script/report writer,
Matthias Friedrich, for
this.  This report lists albums which include a final “data track”,
but have no Disc ID.

Also in the are of suggestions reports: the “bad entries” report
now does HTML-escaping properly.  The “unknown” report also now does
this; it also runs much more efficiently, shows counts of how many tracks
and artists it found, and correctly includes the page footer.

Voting more than once on a moderation sometimes caused that moderation to
show up twice when it should not – this is now fixed (bug #829524).

New and Changed Documentation

Changes mainly of interest to MusicBrainz Server Programmers

Added help text to the INSTALL file and to, stating that
the current live SQL scripts must be used to import a live dataset.

RDFDump – the RDF dump file (link) is now valid XML. Previously it tried to
put long lines of hyphens (“—–” etc) within a comment (bug #829181).

Bugs and RFEs Closed

Dave Evans

Server Updates

The “Album Editor” has landed! Plus a bunch of other bug fixes and updates.

Changes mainly of interest to MusicBrainz Users

Album Editor

The Album Editor lets you edit all sorts of aspects of an album on (almost)
one screen.  Currently this means you can edit the album name and
attributes, and the track names and numbers (and yes, there are lots of “Guess
Case” buttons to play with).  You can also add and remove tracks. 
The Album Editor is found under a link called “Edit All” on each album.

So far there are a few limitations which you should know about:

  1. It only works for single artist albums
    (don’t worry, there will be a multiple-artists version).
  2. When you click the “Enter Moderations” button when you’re done,
    you still get the same moderations we currently have – for
    example, 1 x “Edit Album Name” + 10 x “Edit Track Name” + 1 x “Edit Album
    Attributes”.  A future version will probably enter a single
    “Modify Album” moderation encompassing all of these things, in order to
    (hopefully) make voting easier. 
    See bug #816269.
  3. You can’t use the Album Editor on [non-album tracks].

Other Changes

If you choose to show the whole album when reviewing “Add Album” mods,
there is now an extra preference which, when enabled, causes the “Edit” links
to be shown on those albums.  This saves a page load when you want to
edit the album, at the expense of making the moderation pages a bit bigger.

“Merge Artists” mods now merge by artist ID, not name.  This means that
if the target artist is renamed whilst the merge is open, then the merge
should still succeed.  Also, both the source and destination artists are
marked as “mod pending”.

“Remove TRM Id” mods were previously problematic if they had to be undone
(e.g. if they failed the vote).  This has now been fixed.  If the
TRM cannot be re-added then the ModBot may note “Unable to re-insert
TRM”.  This will only happen on “Remove TRM Id” mods inserted before this
server update, but closed after; mods inserted after the update will be OK.

When the ModBot added a note to your moderations the e-mail used to say:
“Unfortunately moderator ‘ModBot’ has not supplied their e-mail address,
so you can’t reply to them.”.  This message has been removed.

The “page selector”, used on the moderation pages and the browse artists /
browse albums pages, now appears both above and below the things you’re

When moving a Disc ID, [non-album tracks] releases are now not offered as a
possible place to move it to.

“Guess Case” now also knows about the following words:
album original single (lower case, if inside brackets);
ft. (becomes feat.); and finally, LP EP BWV and the Roman numerals I to X.

Changes mainly of interest to MusicBrainz Programmers

Nothing new in this release.

Changes mainly of interest to MusicBrainz Server Programmers

When DBDefs::DB_STAGING_SERVER is set, a “Debug” link appears in the nav
bar.  This takes you to /debug.html, a page which displays your session
data etc.  Currently the debug.html page can be accessed even on the live
server, but this may change in future.

Bugs and RFEs Closed

Dave Evans

Server Updates

Various improvements to the tagger lookup pages, the voting system, data accuracy and all sorts of other things.

Changes mainly of interest to MusicBrainz Users

Album “Meta” Counts

The count of tracks, disc ids and TRMs held for each album (the “albummeta”
data) was often inaccurate.  Additionally, some albums didn’t have an
“albummeta” row, which actually caused them to disappear entirely from their
respective artists’ pages!  These bugs have now been fixed.

The “compact” display mode of the “show artist” page displays these counts; if
one of the counts is zero it now just leaves a blank space, instead of showing
a zero and the relevant icon.  This makes it easier to spot which albums
have no disc ids or no TRMs.

Like the “compact” display mode, these meta counts are now also shown when you
perform an album search.

Non-Album Tracks

The album name “Non-album tracks” is now changed to “[non-album tracks]”, in
keeping with the style of using “[…]” to signify special meaning within
MusicBrainz (e.g. [silence], [data track] etc).

As new N.A.T. albums are created, they (i.e. the album name itself) won’t be
added to the search indices (although the tracks within them will be).  The
existing N.A.T. album names are staying in the indices, for now, but may be
removed soon.

If two artists, both with N.A.T. albums, are merged, then the two N.A.T.
albums are merged together, keeping all the tracks.

Previously if the track numbers of non-album tracks for an artist were not
continuous (if there were “gaps”, e.g. 1, 2, 4, 5) then adding a N.A.T. would
fail.  This is now fixed.

N.A.T. albums are automatically deleted when their last track is removed.

The “show track” page no longer shows the (meaningless) track sequence number
for non-album tracks.

The Tagger

The %-relevance values shown in the lookup page now use the same more detailed
algorithm (weighted similarity calculation) that the Tagger itself
uses.  This should make the overall matching process more accurate.

When showing a list of matching tracks, the track length is highlighted
according to how well it matches the length of the track you’re trying to
tag.  Green indicates a good match, red represents a very bad match, and
blue is somewhere in the middle.  If insufficient information is
available, it’s black.

Also when showing match tracks, a “tag” link is included on that page, so you
don’t need to click through to the next page in order to tag.

The main lookup page (/taglookup.html) now moves the input focus into the form
when the page loads.

The sidebar search panel now works when used within the Tagger.


You can now vote more than once on each moderation.  Only your most recent
vote counts.  In other words, you can change your mind.  Because of this, you
must now wait until the moderation closes before you can see a list of all
votes for a moderation (on /showmod.html).  If it’s your moderation you can
always see the votes, of course.

Also on the “show moderation” page (/showmod.html) you can now see the date
and time at which each vote was cast.  If someone votes more than once (and
changes their mind), then the old, ignored votes are shown in grey.

It’s now also possible to have a “No Vote” button” – go to your preferences
page to enable it.  This makes it much easier to vote on a whole page of
moderations, but not vote on some of them (in which case, those moderations
will keep on showing up in your list of things to vote on).  This is
controlled by two new preferences: “Abstain by default” and “Show the ‘No
Vote’ option”.  Try out the four possible combinations to see how they work.


A “Search Google” link has been added to the “show album” and “show track”
pages.  These Google links now search for exact phrases, hopefully making it
easier to find what you want more quickly.  So for example if you click the
“search” link from this track, the search query used is “Alice in Chains” “Love, Hate, Love”.

Clicking on the album attributes link (which normally pops up the attributes
guide) now works without Javascript too.

“Remove Track” mods now show both the track name (with link) and the album
name (with link) – as long as the track still exists, anyway.

In the “batch operation” page (where you select what you want to do to the
albums you just tagged), if fewer than 2 albums are tagged, then we now show a
disabled “Select” button, instead of the message “Merge album not
available”.  This is more consistent with how such user interfaces
usually work.

“Guess Case” now knows to keep these abbreviations in upper case: DJ, MC, TV,

The “top moderators” page now shows the top 25 moderators, not just the top

There was a problem with anonymously adding albums; this is now believed to be

Some moderators have proven that they can’t be trusted with the ability to
“automod” case-changes, because they make many case changes which go against
the style guide for no valid reason.  To handle this, a new “privilege” has
been created, dubbed the “Untrusted” bit.  Moderators given this bit cannot
automod anything, except for “Add TRMs”.

Incomplete home page URLs entered in moderators’ profiles are now “guessed”,
so for example becomes

On the “create new login” page, a few paragraphs of help text have been added
about what we will and won’t do with your e-mail address.

You must be logged in to send a message to another moderator.

Changes mainly of interest to MusicBrainz Programmers

Some TRMs were associated with some tracks more than once.  This caused some
RDF queries to return duplicate results.  These duplicates have now been
removed, and the “insert” code has been modified to prevent them from

The “FindDistinctTRMID” RDF query was failing because returning TRMs as
results wasn’t properly handled.  This has now been fixed.

Changes mainly of interest to MusicBrainz Server Programmers

Mail is now generated using MIME::Lite instead of “hand-crafting” the headers
etc.  As well as making it much more likely that this is done correctly, it
also means that it will be much easier to use more advanced MIME capabilities
(e.g. HTML e-mail, attachments) in the future.

Unique database indices have been added to trmjoin (trm, track) and albumjoin
(album, track).  A primary key “id” column has been added to both
moderator_preference and moderator_subscribe_artist.

Tagger sessions are now automatically recognised by the web server, and an
“mbt=1” is written into the session data (even before the user has logged
in).  This is done by detecting the request to “/tagger/intro.html?mbt=1”,
which is the first page loaded by the Tagger, and which nothing else would
normally use.  This makes it possible to more reliably detect when the web
session is within the Tagger, and adjust accordingly (e.g. the sidebar search

Bugs and RFEs Closed

Dave Evans