MusicBrainz Picard Large Library Stress Test – A Note of Appreciation

To the MusicBrainz Picard Development Team,

I would like to take a moment to express my sincere appreciation for the work that has gone into the continued development of MusicBrainz Picard. Over the past day, I unintentionally subjected the application to what I can only describe as a large-scale stress test. The results were sufficiently impressive that I felt they were worth sharing with the people responsible for the project.

Test Environment

Hardware

  • Dell OptiPlex 9010 (2012-era business desktop)
  • Intel Core i7-3770 Processor (4 Cores / 8 Threads)
  • 16 GB DDR3 RAM
  • Windows 11 Pro
  • 512 GB Lexar NS100 SATA SSD (Operating System)
  • Toshiba DT01ACA300 3 TB 7200 RPM SATA HDD (Music Library)

Software

  • MusicBrainz Picard Version 2.13.3

Music Library

  • Tracks: 42,652
  • Albums: 6,995
  • Approximately 18,000 FLAC files, with the remainder comprising MP3 and other supported formats.
  • Library accumulated over many years from numerous legitimate sources and managed using several generations of tagging software.

Approximate musical composition:

  • 20% Afrobeats
  • 20% Classical
  • Remaining collection includes Soul, Jazz, R&B, Pop, Rock, Gospel, Soundtracks, Electronic music, Rhumba, Remixes, Collaborations and standalone recordings.

Prior to this exercise, acoustic fingerprints had already been generated for the overwhelming majority of the collection during previous library maintenance.

Objective

My intention was simply to evaluate how well Picard could handle my entire music collection.

Many years ago, older versions of Picard would understandably struggle with libraries containing only a few thousand tracks. Consequently, I expected that attempting to process a library exceeding forty-two thousand tracks in a single session might overwhelm the application.

Instead, I witnessed just how far the software has matured.

What Was Performed

The complete library was loaded into Picard.

The application successfully:

  • Catalogued the entire collection.
  • Clustered recordings into albums.
  • Matched releases against the MusicBrainz database.
  • Downloaded and embedded artwork.
  • Rewrote metadata for more than 33,000 files.
  • Standardised metadata accumulated over many years from legacy software including Windows Media Player/Media Center, Winamp, Helium and Jaikoz.

The complete save operation required:

15 Hours 52 Minutes

Observations

During the save process, Windows repeatedly displayed the familiar “Not Responding” message.

Ordinarily this would tempt many users to terminate the application.

Instead, I monitored the process using Task Manager Deluxe.

Throughout the operation I observed that:

  • Worker threads continued executing.
  • CPU utilisation remained steady.
  • Memory usage evolved continuously.
  • Disk activity progressed as expected while files were being updated.
  • Pending files steadily reduced to zero.
  • After all processing completed, Picard returned to full responsiveness without any intervention.

In other words, while the graphical interface occasionally appeared unresponsive, the processing engine continued functioning correctly throughout the operation.

This distinction may prove useful from a usability perspective, as Windows’ “Not Responding” status can understandably give the impression that the application has failed when, in reality, it is continuing to process a substantial workload.

Results

Final library statistics following completion:

  • Tracks: 42,652
  • Albums: 6,995
  • Remaining Clusters: 282
  • Standalone Recordings: 3,941

Approximately ninety-one percent of the library was successfully associated with recognised MusicBrainz releases.

Many complete albums achieved the expected Gold status, while the majority of Silver entries simply reflected intentionally incomplete albums within my personal collection rather than matching failures.

Artwork quality improved considerably across the collection.

Legacy metadata originating from several generations of music management software was standardised, resulting in a noticeably cleaner and more consistent library.

Personal Impressions

Perhaps the most impressive aspect of this exercise was not simply the matching accuracy, but the overall resilience of the application.

This represented nearly sixteen hours of continuous processing involving:

  • over forty-two thousand music files,
  • more than thirty-three thousand metadata updates,
  • well in excess of one hundred gigabytes of sustained disk activity,

all performed on hardware that is now over a decade old.

At no point did Picard crash.

At no point did it corrupt the library.

It simply continued working until the task was complete.

That level of robustness deserves recognition.

One reason I felt this experience was worth sharing is precisely because it was performed on relatively modest hardware. It demonstrates that very large collections can be managed successfully without requiring the latest workstation-class systems.

One Small Suggestion

If I may offer one constructive suggestion, it would concern user feedback during exceptionally large save operations.

Although the processing engine remained healthy throughout, Windows repeatedly reported that the application was “Not Responding.”

Perhaps future versions could periodically process user-interface events or display a simple heartbeat or progress notification indicating that background processing is continuing.

Even a modest visual indicator would provide reassurance to users undertaking very large tagging operations and might prevent unnecessary termination of a perfectly healthy process.

Closing Remarks

As someone who has spent many years building, curating and maintaining a large digital music library, I have come to appreciate software that prioritises metadata quality, accuracy and long-term organisation over shortcuts.

This exercise has given me considerably greater confidence in MusicBrainz Picard’s ability to manage collections of substantial size.

As both a long-time user and someone who values well-engineered software, I simply wanted to say thank you.

Open-source projects often receive feedback only when something goes wrong. In this instance, I wanted to share a positive experience.

Picard has matured into an exceptionally capable application, and I hope these observations serve both as encouragement to the development team and as useful data from a real-world large-library workload.

Thank you to everyone who has contributed to making MusicBrainz Picard what it is today.

With sincere appreciation,Afrosocrates

7 Likes

Thank you very much for the nice feedback. It’s great to hear Picard worked so well for you.

There has been quite some work on previous versions to improve the situation, and Picard 2.13 (and also the 3.0 betas) perform significantly better than older versions.

But as you experienced also, things are not perfect in regards to performance. There are several bottlenecks still in place. The “not responding” issue during saves (and some other circumstances) is one of them.

We are currently focusing on getting version 3 ready for release. But one thing I would like to focus on after the first stable release are further improvements for the performance. A big blocker has always been the limitations Python brings in regards to multi-threading (essentially only a single thread can execute Python code at any time). But there has been some important progress on the Python side of things with free-threading partially being supported. We’ll have to see how much we can benefit from it, though.

8 Likes

I love this post. But also tend to a agree that a message should pop up to say “Darn, that is a lot of data to process… and we are getting there.. give us time.. patience… go make a brew”. A little message box in middle of the screen and not just something lost in a status bar.

I grew up with Windows 3.1 and Wait icons. The old Hour Glass. That seems to have disappeared in modern day. Bring back the loud “processing… please wait…” dialog. Estimating time left is impossible (how long is a piece of string). But maybe a “processed x of y” counter would be good. A total processing time would be useful. if I see a timer that said “30mins in and and Picard has processed 200 of 500 items” it would let me know that we are still getting somewhere.

Damn.. 42,000 items thrown at Picard? That is madness. Love it. :joy: Picard being strong enough to get through it. :heart_eyes: @Afrosocrates having the patience to believe… priceless.

5 Likes

Picard does show a number of pending requests / pending files and a rough time estimate during loading and saving.

grafik

On Windows and some Linux environments this is also visualized as a progress indicator on the taskbar / dock icon, like below on the Ubuntu dock.

4 Likes

I am aware of those, but when something long and complex is happening it could be more “in your face”. Especially as Windows has a tendency to lock up the GUI as (Not Responding) meaning the status bar stops updating and the app can literally grey out. (Not Responding) is basically the app getting too busy to update the GUI.

Some of us know to wait. Or know to look at the smaller clues. (Personally I like the progress bar on the taskbar icon) but there was something more “in your face” and clear about a modal message box slapped on top of everything else that say “patience, wait… chill”. The average user does not know to check the small text in the status bar.

1 Like