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

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.

Voting

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.

Miscellaneous

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

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

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

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 http://www.example.com becomes http://www.example.com/

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

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

Bugs and RFEs Closed

Dave Evans

MusicBrainz Tagger 0.10.0

The 0.10.0 version of the tagger sports a new cross platform core with many new features, bugfixes and general stability enhancements.

libtunepimp: new MB Tagger core

The tagger has undergone many changes since 0.9.0 — the most
important difference is that the core tagging features now
reside in the libtunepimp library and the MB Tagger is nothing
more than a glorified shell around libtunepimp. libtunepimp
compiles on Win32, Linux and Mac OS X and will be released
seperately in the next few days.

New/Improved Features

New features/changes include:

  • Uses new ID3 library for better stability.
  • FLAC audio format support (http://flac.sourceforge.net)
  • Better stability in Windows XP
  • Improved track recognition rates
  • Improved TRM collision support
  • User controllable TRM collision match threshold
  • User configurable Autosave threshold allows user to automatically
    save files with a similarity above the autosave threshold. This
    feature combined with a watch directory makes it convenient
    to automatically tag and cleanup incoming files.
  • File naming specifications have been improved to be more flexible. New format
    specifiers include: %sortname, $abc, $abc2, %abc3, %0num, %format
  • A separate various artist naming specifcation for naming
  • compilation albums differently from single artist albums

  • A new ‘Saved’ tab where saved files appear
  • User controllable Analyzer thread priority
  • Support for reading/tagging iTunes mp3 files

Bugs and RFEs Closed

Fixed TunePimp Bugs

Robert Kaye

Server Updates

Changes mainly of interest to MusicBrainz Users

  • The Style Guide has been updated.
  • When moderations fail the ModBot user now adds a note
    to the moderation stating the reason for the failure; for
    example, “This album has already been renamed” or “This track has been
    deleted”. 
  • While moderations remain open, the system now checks periodically to see
    if the moderations prerequisites and dependencies are still valid. 
    If they are not, then the moderation is immediately closed, and the ModBot
    adds a note to explain what happened.  So far this has been
    implemented for the most common moderation types; it will of course be
    extended to include all moderations in future releases.  This change
    should help to solve most of the problems relating to dependencies between
    moderations.
  • Moderation notes can now be longer than 255 characters.
  • The page formerly known as “Browse ‘Various Artist’ Albums” is now known
    as “Browse Releases”, and it can also browse single-artist releases
    too.  For example, you can now browse
    all soundtracks, regardless of artist.
  • When modifying your profile, it is now possible to remove your e-mail
    address from the system.
  • Forgot your password?  We can
    e-mail it to you
    (as long as you know your login name, and you’ve
    previously entered and confirmed your e-mail address).
  • When entering track names, the input fields are now limited to 255
    characters, to match the limitation on the underlying database. 
    Previously sometimes people would enter moderations to change the track
    name to something longer than 255 characters, but the moderation would
    then always fail.
  • When viewing a moderation in detail, you
    can now see votes cast on your own moderations.
  • A “Merge this album” link has been added to the main album display page
    (showalbum.html).  If you get to the “Batch Operation” page with
    fewer than two albums tagged (i.e. “merge” is not available yet), then
    now a “Select more albums” link is also shown.  Hopefully these two
    changes together make it more obvious how to merge albums.
  • The statistics page now includes a breakdown
    of open moderations by moderation type.
  • Your profile page has moved. 
    The “view” and “edit” profile pages are now separate. 
    The “view” page now shows some voting statistics. 
    You can now list other moderators’ votes –
    Try it!
    (Having said that though I’m not really happy with this feature yet,
    since it shows the other user’s vote as being “your” vote,
    and then doesn’t let you vote as a result.  Caveat emptor.)

Specific changes to particular moderations:

  • When adding an artist alias, the system checks that the alias name
    does not already exist (for this, or any other, artist). 
    MusicBrainz does not support duplicate aliases (yet).
  • “Add Artist Alias” mods will fail (possibly before voting is over) if
    the alias name is seen to already exist, or the referenced artist is deleted.
  • “Change Track Artist” mods will fail (possibly before voting is over)
    if the track is deleted or merged away,
    or the track’s artist is changed by some other mod.
  • “Edit Album Name” mods will fail (possibly before voting is over)
    if the album is deleted or merged away,
    or the album’s name is changed by some other mod.
  • “Edit Artist Name” mods will fail (possibly before voting is over)
    if the artist is deleted or merged away,
    or the artists’s name is changed by some other mod,
    or an artist with exactly the same “new” name is found to exist.
  • “Edit Track Name” mods will fail (possibly before voting is over)
    if the track is deleted or merged away,
    or the track’s name is changed by some other mod.
  • “Convert Album to Single Artist” mods will fail (possibly before voting is over)
    if the album is deleted or merged away,
    or the album is moved to another artist (i.e. not “Various Artists”).
  • “Merge Artists” mods will fail (possibly before voting is over)
    if the old artist is deleted or merged away,
    or the old artist’s name is changed by some other mod,
    or the old and new artist are somehow the same,
    or the old artist is “Various Artists” or the “Deleted Artist”,
    or no artist with the “new” name is found to exist,
    or the new artist is the “Deleted Artist”.
  • “Convert Album to Multiple Artists” mods will fail (possibly before voting is over)
    if the album is deleted or merged away,
    or the album is already “Various Artists” (changed by some other mod),
    or the album’s artist is changed by some other mod.

Changes mainly of interest to MusicBrainz Programmers

  • The ‘showtrack.html’ page now also accepts a ‘?mbid=GUID‘ argument,
    like the artist and album pages already did. 
    Try it.
  • Certain URLs can now be used to retrieve both the RDF and the HTML
    versions of the data; which is retrieved depends on the “Accept” HTTP
    header.  Alternatively, the “?content-type” parameter can be
    specified to force the selection of a particular variant.  For
    example:

    The URLs that can be used in this way are:

    • /artist/GUID
    • /album/GUID
    • /track/GUID
    • /trm/GUID
    • /discid/GUID
  • New documentation has been added.
  • Documentation has been updated.

Changes mainly of interest to MusicBrainz Server Programmers

  • When
    InitDb.pl
    runs the various SQL scripts, it now timestamps the
    script output.  By also adding the “–echo” argument (e.g.
    ./admin/InitDb.pl --createdb --echo --import *.tar.bz2)
    the SQL commands are echoed too.  These changes are intended to make
    it easier to see how the import is progressing, and to see why it’s
    taking so damn long 😉
    Also it no longer attempts to create the database user if it already
    exists.
  • The “ModBot” code now lives in its own module, namely
    MusicBrainz/Server/ModBot.pm
    It (via the
    ./admin/CheckVotes.pl
    script) now accepts command line arguments such as “–verbose”. 
    Sadly this doesn’t include “–help” (yet), so just take a peek at the code
    to see what’s on offer.
  • The code which merges artists has moved from
    MOD_MERGE_ARTIST.pm
    into
    Artist.pm
  • The
    FreeDB.pm
    code has been tidied up a little.
  • Sql.pm
    now complains if your use of “AutoCommit”, “Begin”, “Commit” and
    “Rollback” isn’t to its liking.
  • When a change is made to one of the style sheets, just run
    ./admin/UpdateStyleSheetLinks
    to force all clients to reload the style sheets next time around.
  • A bug in
    comp/topmodsbox
    has been fixed whereby if there have been no
    moderations recently (e.g. on a development box), then the cache code
    failed, causing the component to (expensively) re-query the data on every
    request.
  • &DBDefs::DB_STAGING_SERVER is no longer just true or false. 
    If it’s true, it should be set to the name of the type of server this is,
    e.g. “development”, “test”, etc.

Dave Evans

Server Updates

It’s now much easier to add notes to your moderations as you go. Some bugs relating to e-mails have been fixed. Server errors now don’t look so scary. Bug #752767 has been fixed.

Change Log for mb_server

Moderation notes: when entering moderations, you now get the chance to enter a
moderation note at the same time as entering or confirming the moderation
itself. Previously it was actually quite hard work to add notes to your own
moderations, to explain why you were entering a particular mod; now it’s easy.
This should hopefully encourage the use of moderation notes to make voting on
“difficult” or odd-looking moderations easier. This change applies to all
moderation types apart from: Add TRM, Change Track Artist, Move Disc ID,
Convert Release to Single Artist. These moderation types will be dealt with
later.

“Edit Album Attributes” moderation: when adding a moderation of this type, any
releases whose attributes already match the “new” attributes are now quietly
removed from the list (because there is nothing to change). If the list
becomes empty as a result, no moderation is entered. Thus there will be no
more moderations which say (for example) “Old: Album, Official; New: Album,
Official”.

Moderator emails: moderators’ names shown in e-mail headers (e.g. when it
shows your name in the “To:” header) are now displayed correctly much more
often. Internally, all of the e-mail code has been rewritten, to make it
easier to maintain and extend the code. Proper UTF-8 support has been added
for e-mail subject lines (the message body was already handled correctly).

Server errors: in the highly unlikely 😉 event that you should experience a
server programming error of some kind, instead of being presented with a big
ugly list of error messages, you now just get a much nicer-looking “500 Server
Error” message. (The error messages are now written to the server error log).

Login / account creation: Bug #752767 “@Q@ in URL” has been fixed. Also, when
you log in you will now never be redirected to the login page again, nor to
the logout page. (When this used to happen it was very confusing!). If you
see the “you must log in” box whilst trying to do something, and you choose to
create a new account, you are now redirected back to the correct page once
your account has been created.

Some obscure and intermittent HTML- and URL-encoding bugs have been fixed.

Dave Evans

Server Updates

Tracks cannot be added or removed when to do so would break a Disc ID. List of releases: “Full” and “Compact” modes. Sorting releases: handling “(disc n)” and “(disc n of m)”.

Adding and removing tracks

Certain checks are now made to see if tracks can be added to, and
removed from, a release. This is primarily to protect releases with
Disc IDs from having the Disc ID “broken” via the addition or removal of
tracks.

Example: let’s say you’ve got a 15-track version of some album, but it’s
not in MusicBrainz; however there is a 14-track version already in the
database. If the 14-track version has a good Disc ID then you won’t be
able to add the 15th track to it – you’ll have to create a new release.

Viewing artist releases

The page where you can view a list of releases for an artist
(/showartist.html, also currently called “Show Albums”) now has two
display modes: “Full” and “Compact”. “Full” is the old behaviour.
“Compact” shows the data in a more compact, tabular, form, with one row
per release. In “compact” mode, all you get is a link to view each
individual release – there are no “Edit”, “Del”, or “edit attributes”
links, and the releases cannot be expanded to show track listings.

You can manually switch between “full” and “compact” views. The default
is “full” mode, unless there are more than /n/ releases (/n/ is set by a
new preference), in which case you get “full” mode.

The aim of this feature is to generate more lightweight pages,
especially for artists with a large number of releases, e.g. Bach,
Mozart, Elvis Presley, David Bowie.

Sorting disc sets

When sorting releases by name on the aforementioned “showartist.html”
page, the system now “understands” the “(disc /n/)” notation, and sorts
those releases numerically instead of lexically – i.e. 10 ends up coming
after 9, not between 1 and 2. It also recognises “(disc /n/ of /m/)”
and sorts those releases by /m/ first, then /n/.

Also, “ties” in the sort order are now broken by track count (least
first), TRM count (most first), and finally database row ID.

Moderation notes

URLs to the show(album|artist|track|mod).html pages are now hyperlinked
when displayed.

Internal architecture

Moderation Notes have been split out into their own class (from
Moderation.pm). So have Votes. This makes it fractionally easier to
write code to add notes to moderations. Maybe in a few releases time I
might get the ModBot to add more notes, e.g. every time any moderation
fails (apart from “failed vote”), maybe the ModBot should explicitly
state the reason for the failure.

Dave Evans

Server Updates

Improved FreeDB import. Edit Artist Alias. “Smart quote” fix script.

Import from FreeDB

The process of importing a release from FreeDB has been rewritten.
The improvements include:

  • Previously it was easy to miss the “CD has multiple artists” tick box, and hence get the import wrong. Now the user is quite obviously asked to make a clear choice (with no default) as to whether a single artist or multiple artists are involved.
  • All artists can be searched for, using the same technique as is used for entering a “change track artist” moderation.
  • All fields have a “Guess Case” button; also, for single artist releases, there is a “Guess All” button. “Smart Quotes” are fixed (replaced by apostrophes) by default.
  • At any stage it’s easy to go back and change your earlier answers, without losing any later answers.

Also, releases imported from FreeDB (both automatically and manually) should
now have their track lengths set.

Other Changes

There is now an “Edit Artist Alias” moderation type, so you don’t have to
delete and re-add an alias to change it. See the “Edit” links on
/showaliases.html.

Previously add links to add a note to a moderation required Javascript to
work. This has now been fixed.

For “Add non-album track” moderations, the (meaningless) track number is
no longer displayed.

A couple of security flaws relating to moderation notes have been fixed.

There is now a script to fix “smart quotes” in bulk (activated by the
server administrators).

The nightly database dump archives (mbdump*.tar.bz2) now each include a
TIMESTAMP file. This will make it easier to identify exactly when each dump
was taken, and to check that a set of dump files belong together.

Dave Evans