The ultimate guide to importing a music library to Roon

Roon logo Roon is a music player optimised to make browing your library enjoyable. It shows your music library at its best, linking your library together and furnishing it with additional metadata to deliver a truly immersive experience.

Roon made a big splash on its release in 2015, particularly amongst audiophiles. Since then the team behind Roon have persued a strategy of developing their software while integrating it with hi-fi devices. Roon has become a (pretty-much) default playback option in hi-fi.

One of Roon’s differentiators is the way it presents an abstraction layer over your library; comprehensively augmenting and correcting it. This is great for high-end hi-fi devices, because the last thing a hi-fi manufacturer wants is their beautiful hardware being let down by less-than-beautiful music libraries.

Underlying this is a musical graph that Roon builds. That’s a ‘graph’ in the discrete mathematical sense; a way of modelling relationships between different things. Roon can build a graph of relationships between different albums, artists, genres, labels and more which makes browsing your music library not only enjoyable… but informative!

For a product like Roon that looks really… really… beautiful, I think a few pictures best describe this…

These are pages built as a result of scanning my music library, but the data itself doesn’t come from my library, it comes from Roon’s database.

All this extra data and linking-together is built up as a result of you adding your music library to Roon. Roon allows you to import your locally stored music. (It also allows combining your collection with streaming services and connecting the two, but this isn’t the focus of this article.) Note that all this is done without ever actually editing your collection; Roon scans your library, but its identification and additional data is stored in its own databases.

Roon’s abstraction layer only works, and its musical graph can only be built, if Roon can identify the music you have, so it can link it to the information it holds online about your music. This process of identification involves analysing your music library, which in turn means Roon works best if your music library is organised to its tastes.

Now, Roon is good, but it’s also expensive. To get the best value from Roon you want it to be able to work with as much of your music as possible. The fact is that many libraries are not organised in a manner that helps Roon identify all of the music within. Roon has a bunch of expectations about how music is organised; in most cases it works well, but in more complicated cases it needs help.

If you don’t organise your library for Roon, you won’t get the full benefits of Roon because it will fail to find extra information about your music.

So this means, even given Roon’s music library magic, your music library still needs cleaning, fixing and organising. By fixing your music library you are providing the foundations for enjoyable music listening, no matter which music player you use.

To write this article I analysed multiple FAQs, KBs and community discussions about best practices for importing self stored music libraries to Roon. I’ve written a bit of background about music libraries and how Roon works, given some examples of problems and then extracted some “music library maxims” you can employ to avoid these problems. Finally, I’ve written a walkthough of using bliss to implement these maxims as rules.

Oh, and there’s a final grab-bag miscellany of other import problems and fixes I’ve learnt.

TL;DR

In case you want to skip forward (this is a long article) here are some links to top-level sections below:

How music libraries are organised

It’s worth a short primer on how music libraries, independent of Roon, are structured and how Roon works with this. If you know all about this stuff, skip ahead to the next Roon specific section.

There are two key ways that music libraries are organised, and both have an effect on how Roon imports your music. The first are the internal tags stored in each music file. The second is the file and folder paths.

Internal tags contain key-value pairs. For example: TITLE=Spanish Bombs or ALBUM NAME=Funeral.

Tags may be used for any purpose by the software that reads them. Most music players (but not Roon by default, we’ll discuss this later) use them to actually display, verbatim, your albums, songs, artists and more.

The other organisation approach is using file paths. File systems are hierarchies with the metadata built into the file and folder names. As such they typically have much less data than the tags. However, they still indicate important hints about grouping; for example, all tracks for one album should be stored in the same folder.

Roon: a library abstraction layer

Roon is more subtle than most players. It does have options to prefer your tags and display them, but in default mode it simply uses these tags, plus whatever data it can find (file paths, track lengths and more) to identify your music, so it can be matched with data online. That data is used to augment and furnish your experience.

Here’s an example. Here’s an album from my music library, shown in Roon:

Roon data augmentation

Now that is some nice metadata! Much of this data was not actually stored in my music library. Instead, Roon has matched my library to its metadata online, adding in all kinds of goodies as a result.

So Roon can magically augment your music library, providing more information about the library and, when used via the app, improving its navigability. However, this does mean Roon is dependent on the tagging in your music library. For it to work at its best, you need to ensure your tags are correct, consistent and complete.

In addition, it’s worth noting that different types of music are thought of, and therefore tagged, in different ways. Classical music generally follows a schema different to popular music; there are more data points.

Not all music software can handle all classical music fields. Roon can, and because of the difficulty of matching such releases it pays to put time into this. Roon actually works differently for classical releases compared to popular.

Roon’s classical support is superb, but it takes extra work to really sing. Again, by accurately organising your music library, you stand the best chance of making Roon work for you.

Roon’s library abstraction layer affords a rich user experience… when it works. And it mostly does work. But, every so often, there are edge cases. (There are always edge cases…).

Roon in action: the good, the bad, the untagged

Let’s try importing some music. To start, we’ll just import an album at a time. Normally you’d add an entire music folder, but I’m trying to make this easy to follow.

Let’s start with as simple as we can go: a single disc mainstream album release. This is an album already groomed by bliss to have complete tags and accurate file paths.

Roon import Trailer Park folder

Once we Select this folder, Roon imports and we can click the album. It shows extra data from Roon’s online databases:

Roon imported Trailer Park

This shows, if the tags and file paths are accurate, Roon’s import works well. In fact, for my library Roon works well for a good 85-90% of albums. However, for a large library, that still leaves a lot of albums to fix.

Let’s dive into the kind of problems you might encounter after importing a music library into Roon. In the coming sections I’ll list each common type of problem, then link to best practices to fix the problem.

Duplicate albums

Let’s look for an example where the organisation is more compromised.

Here’s a multi disc version of 3 Feet High and Rising:

Roon import 3 Feet High and Rising folder

First, this multi-disc re-issue is less well known than the original release.

Secondly, you can see the layout of the files is a little strange - the second CD is separated from the first, and the disc number itself is incorrect.

Once we Select this folder, here’s what Roon imports:

Roon imported 3 Feet High and Rising with duplicates

So Roon added the two folders separately, duplicating the albums, although both were correctly identified.

I also tried importing some “Various Artists” compilations and… holy duplication batman!

Roon imported 101 Party Hits with duplicates

So Roon will sometimes duplicate albums, creating multiple copies in your Albums list and making navigation more difficult.

No match

What if the album is not matched online? Sometimes, no matter how mainstream your release Roon fails to find a match for it, even though it does have it in its database.

Roon imported Classic FM Weddings with no matches

The titles of the album(s) here have been contributed by crowd sourced online CD databases which are…. errr… crowd sourced. Thus we end up with wierdly formatted titles for the albums. This can stop Roon being able to correctly identify releases.

In addition, like the previous album, the folders were separated with no consistent parent folder to group all the tracks for both discs.

Incorrectly identified

Sometimes albums are matched, but incorrectly. This appears more common for popular artists that have a diverse range of alternate versions of releases. Here’s an example with The Beatles popular 1967-1970 compilation:

Roon imported 1967-1970 with incorrect match

The album simply titled 1967-1970 is correctly matched. The other one is a different cassette only release. But I certainly did not rip this from cassette tape.

That said, the album title in Roon is the same as the one that is embedded in the tags. This is a case where the album both needs grouping and needs correcting of the album tags.

This means the fixes for incorrectly identified albums are broadly the same as for where there are no matches.

Correctly identified, but with incorrect grouping data on Roon’s database.

Sometimes Roon appears to misidentify an album, but actually the correct album is found, it’s just combined with data from other incorrect releases and the incorrect metadata ends up being surfaced.

I’m guessing this is some sort of problem in Roon’s ingest of metadata. Anyhow, here’s an example:

Roon imported Celebration 2000 correctly matched but incorrect art and title

The album is actually called Celebration 2000 (without the [Enigma]) suffix and there is not one single track from the matched album on the imported album.

However, look beneath the covers (no pun intended) and the correct metadata can be found for the matched releases - the additional cover art is correct.

Here’s the correct release data on a database that Roon uses and here’s the incorrect data that appears to have been combined with the correct data. This does appear to be a quirk of the way Roon is grouping releases. I’ve particularly noticed this with “Greatest Hits” compilations where there are multiple albums with the same titles and artist names.

This is possibly the worst case - achieving a correct match, and yet displaying incorrect data from that match, is a situation that is most difficult to avoid. In some cases, manual overrides are the only fix.

Not identified

The final case is where there’s no data in Roon’s database. This can always crop up of course; some sort of user generated album, extreme rareties, your child’s Christmas nativity recording… none of these can be expected to be matched.

However, here’s a surprising example - a (fairly) mainstream release that isn’t in Roon’s database:

Roon imported Celebration 2000 correctly matched but incorrect art and title

When Roon can’t find matches online it uses existing data in your library.

Roon isn’t magic; you need to give it some help to identify music, particularly music of more challenging structures, or that is less mainstream. Roon also tries to keep on the safe side to avoid incorrect matches.

But this safety-first approach is also a strength. You can still add plenty of metadata into your library so that if you have a well organised library your library in Roon can still look great.

So give me some solutions!

Where possible, it’s best to fix these problems in our library rather than within Roon. This means such fixes can be used by other software, and we can reliably re-import our music into other Roon instances and our fixes should re-apply.

Roon is software, not magic. It uses algorithms to import our music. We need to work with Roon’s algorithms to increase our chances of a pleasing result.

How Roon imports music libraries

So lets dive in more detail about how Roon imports your music. We know that Roon looks at your internal tags and music folder and file structure. But we need to know how it analyses your music library so we know how best to organise our library.

It’s easiest, and most informing so as to build a good mental model of what is happening, to start with an overview.

Broadly, Roon works in two steps:

  1. Roon groups tracks (files) into clusters (representing albums)
  2. Roon then identifies those clusters (albums), before looking up metadata given the albums it has found.

This makes sense - it’s only possible to match information about two albums - your local one and one online - if the album is as complete and representative as possible as the ‘canonical’ album.

It’s important to realise that these two stages are not shown in Roon, it’s just what happens in the background. All you see in Roon is a beautifully formatted display of the album you have (assuming the two stages above worked).

We’ll take each of these stages in turn, and then we’ll develop the guidance online into some best practice ‘maxims’ for organising music collections for Roon.

Clustering albums

When you add a music folder to Roon, it walks its way over your files, reading them in and storing all the metadata about the music contained therein.

Once it has done this (or, more accurately, as it is doing this) Roon executes its own algorithms to group the tracks it finds into albums.

Recall what we discussed in How music libraries are organised. Music libraries contain metadata in the form of embedded tags and information inferred by the files’ folders and filenames. It’s these metadata that Roon reads to group your tracks.

For example, if there are bunch of files in the same folder, and all have the same ALBUM NAME field, there’s a good chance they are from the same album. Roon applies heuristics to decide what makes up an album and what doesn’t.

This means, by editing these tags and file paths, we can help Roon to make sure albums are grouped together, which improves the chances of your music being recognised.

Identifying albums

So clustering is crucial. Only if Roon has a representative model of our current albums can we expect it to work well in the next stage: identification.

This identification process is where Roon sends the metadata it has found to its online database which replies with what data matches that query.

The aggregated information provided from each ‘cluster’ (each album) is what is used to identify the music. That includes the embedded tags and file paths that were also used to group the cluster.

The clustering defines the data that is sent - for example, an album cluster is likely to have a consistent ALBUM NAME and this is passed as part of the query.

If the metadata for an album isn’t complete then it can make identification less likely. More data means more confidence in the identification candidates.

This means, to increase your chances of Roon successfully identifying your music and match to albums online, your tags need to be both present and accurate too, so the identification algorithm using tags works.

But Roon has another trick up its sleeve which is probably more significant still than the tags and file paths.

Roon generates something called a TOC for each album. A TOC is a description of the tracks on an album, their positions and durations. The advantage of TOCs is that they are a very representative way of the contents of an album and so they are a good indicator of what the underlying album is.

The downside of a TOC is that they are not unique. When you think about it this isn’t that surprising given how many musical releases have been made, but if two albums have the same number of tracks all with the same length then you can get clashes.

This is particularly a problem on releases with small numbers of tracks. For example: singles.

These clashes are where other tags come in. With the extra data in the query, Roon can ‘settle’ arguments about which release is being referred to. In addition they can highlight examples where the data is so divergent that just relying on a TOC might give a false positive; what if the TOC and album simply isn’t recorded in Roon?

Note that a TOC is dependent on the ordering of tracks being known. So this still means your tracks need to have positional metadata recorded, either in the tags or the file paths. It’s also dependent on the amount of tracks being known; complete albums work better.

So while TOCs are probably the most significant single part of an identification query, they don’t work as well without the essential metdata stored in your music library’s tags and file paths.

Roon music library maxims

Now we understand an overview of how music libraries are organised and how Roon reads your music library to identify your music, we can start to tease out a set of maxims to music library management for Roon.

Each maxim is a statement with evidence and examples as to how the maxim should be applied to your music library management. Later on we’ll step through the import problems described above, encode the maxims in bliss and use them to solve these problems.

Using these maxims, we can work out how to use tags to fix Roon music libraries.

1: Embedded tag metadata must be consistent within an album

When storing metadata in embedded tags, the values must be consistent.

Tags are used by Roon to group tracks into albums and match albums with its data online.

As an album is typically made up of multiple files, this means there are multiple tags; one in each file. To group an album, each tag should have consistent values for its album-level fields. For example:

1 Up All Night.flac

TRACK NAME    Up All Night
ALBUM NAME    A Deeper Understanding
ALBUM ARTIST  The War On Drugs
ARTIST        The War On Drugs

2 Pain.flac

TRACK NAME    Pain
ALBUM NAME    A Deeper Understanding
ALBUM ARTIST  The War On Drugs
ARTIST        The War On Drugs

Note that ARTIST generally refers to the track artist. In the presence of ALBUM ARTIST fields they are considered track level fields and are exempted from this consistency consideration. However, note that it’s common to have albums with only track level ARTIST fields, in which case these fields should be consistent (or supplemented with an ALBUM ARTIST field).

For multi-disc releases the album level tags must be the same across all discs. It’s quite common for disc number artifacts like “CD 2” to be inserted by CD ripping software. For Roon to correctly structure a release, such artifacts must be removed from the title and the disc number normalised into the DISCNUMBER field.

Having contradictory fields will confuse the grouping process. Roon may split albums into multiple separate albums because there are not enough hints to suggest the files should be clustered.

We use both ALBUMARTIST and ARTIST tags. Ideally for compilations you’d have the overall artist name (or perhaps Various Artists) in former and the specific track artist in the latter; however, this data is typically overridden by richer data from our metadata services, so I wouldn’t go to the effort of grooming these tags, aside from ensuring they are consistent amongst the files of an album.

@jeremiah - https://community.roonlabs.com/t/roons-meta-queried/772/4

2: Organise file paths consistently with tags

When storing metadata in both embedded tags and inside file or folder names, the values must be consistent.

Both file paths and embedded tags are used by Roon to cluster tracks into albums and match albums with its data online.

If either contain contradictory metadata this will confuse these processes and lead to unidentified albums or false positives. However, in cases of contradictions, tags are seen as more authoritative.

Note that case sensitivity and whitespace are broadly ignored; the limitations of file systems mean that sometimes you may prefer to adopt no-spaces or enforcing case sensitivity.

These might occur in the file names (e.g. “05-03 Summer ‘68.flac”) or in the file’s tags. We check both but in general the tags are more authoritative. If things aren’t identifying, you might look for a mistake in the tags or a disagreement between the tags and filenames.

If you separate the discs, make sure the subdirectories include a parseable indication of the disc number […] and that it agrees with the media number in the tags and/or filenames.

@jeremiah - https://community.roonlabs.com/t/what-can-i-do-to-improve-my-metadata-matches/218/6

3: Group tracks for multi disc albums within one authoritative parent album folder

Tracks within multi disc albums should be grouped in one of two ways:

  1. All tracks for all discs within one album folder, named after the album. The disc number should appear in the filename in a consistent place.

     George Harrison/All Things Must Pass/
       1-1 I'd Have You Anytime.flac
       1-2 My Sweet Lord.flac
       ...
       2-1 Beware Of Darkness.flac
       2-2 Apple Scruffs.flac
       ...
    
  2. All tracks for each disc within one disc folder, named after the disc (with optional disc artifact) and contained within the album folder.

     George Harrison/All Things Must Pass/
       CD 1/
         1 I'd Have You Anytime.flac
         2 My Sweet Lord.flac
         ...
       CD 2/
         1 Beware Of Darkness.flac
         2 Apple Scruffs.flac
    

Multi disc albums cause particular problems for clustering. It’s common to have album-level folders in a music library that are named after the disc, rather than the album itself, e.g:

George Harrison/All Things Must Pass (CD 1)/

The reason for this is twofold.

First, when ripping CDs a metadata lookup is typically made, but only for the CD being ripped. Online CD databases only record information on a per-CD basis and so each record is distinguished with a different CD number in the title (furthermore, the disc artifact can vary, “Disc”, “CD”, “Disk” and even “Volume” being used for different discs).

Second, when CDs are ripped, they are done so in isolation of any context of other CDs being ripped. So, the ripping software simply uses the disc number artifact in the title of the folder for the album.

It’s important to reflect the grouping of discs in the file system. If there are multiple disc folders at the same level it’s more difficult for Roon to parse. In this case, the hierarchy of files and folders is a stronger indicator of grouping.

make sure the files for a given album (or album set) are together in a directory

Whether the files of a multi-disc set are together in one directory or separated into subdirectories is a matter of preference.

@jeremiah - https://community.roonlabs.com/t/what-can-i-do-to-improve-my-metadata-matches/218/6

4: Complete accurate identification and structural data in tags

Ensure that fields used for the identification of albums and tracks are completed. In addition, structural fields must be completed.

As per Organise file paths consistently with tags, the file paths must contain identical information, where the tag data is replicated.

“Structural” data is the metadata that conveys the position of tracks within the media of a release, and the position of the media within the release.

The fields that should be completed for single disc recordings are:

ALBUM NAME
ALBUM ARTIST
TRACK
TITLE

More optionally:

YEAR
UPC

In addition, for multi disc recordings:

DISCNUMBER

Structural, and some identification data, is used for clustering. Roon can more easily group tracks into albums by having consistent and complete album titles alongside correctly positioned tracks.

Identification is aided by the correct structuring of an album, because it’s only with track and media positions that an accurate TOC can be formed.

Finally, it’s still important to have correct and complete tag data for your library, especially when there is no possibility of identifying an album (for rarities or user-created albums) or the user intends to override Roon’s identification.

Roon uses tag information, such as your album and track titles, artist names, unique product codes (UPCs), year of an album release, etc. to match up your music content to Roon’s own metadata database.

Try to tag the files as accurately, specifically, and completely as possible, and work out how far you need to go to get results that communicate the needed information. This may require a different mindset than other software, which treats tags more literally.

With version 1.3, we pull even more information from your file tags, allowing you to finely tune various aspects of how Roon presents your metadata. You can use file tagging to help improve album and track identification, but also to fill in the gaps when Roon falls short

https://help.roonlabs.com/portal/en/kb/articles/file-tag-best-practice#Roon_and_file_tags

In particular, if you don’t have media numbers we’ll assume each disc is a separate entity while if you have correct media numbers we’ll be able to identify the entire box set.

@jeremiah - https://community.roonlabs.com/t/what-can-i-do-to-improve-my-metadata-matches/218/6

The tags we use for clumping and identification are: album, artist, albumartist, track name, track number, and media number.

@jeremiah - https://community.roonlabs.com/t/roons-meta-queried/772/4

The way I handle this scenario is to make sure the AlbumArtist and Artists are populated

@Stampie - https://community.roonlabs.com/t/roon-album-various-artist-grouping-doesn-t-work-properly/49001/12

5: Complete non-structural or identification data judiciously

Make sure that standard classification or categorisation tags are completed, but consider only doing this on a case-by-case basis.

Roon’s matching algorithms, and database breadth, do not work 100% of the time. In some cases it is important to provide more metadata so that Roon’s user interface can be fully utilised, and the music metadata graph built by Roon can be integrated.

It’s also important to understand there’s a cost to this. Metadata management is not a zero cost activity.

First, consider only adding fields that are necessary. Of the non-structural/identification album-level tags, those used in Roon for non-classical recordings are:

ORIGINAL RELEASE DATE
VERSION
GENRE
LABEL
COUNTRY
CATALOG NUMBER
YEAR

For classical, also consider:

ENSEMBLE
CONDUCTOR
COMPOSER

Also, for tracks extra metadata can be provided to separate track listings:

WORK
PART
SECTION

In addition, PERSONNEL can be used repeatedly to add credits to a track.

Second, consider only adding these fields to albums that need fixing. This reduces the amount of metadata to manage.

You can use file tagging to help improve album and track identification, but also to fill in the gaps when Roon falls short

https://help.roonlabs.com/portal/en/kb/articles/file-tag-best-practice#Fully_Loaded_Tagged_Album_Example

6: Avoid missing or extra tracks

Albums should be complete; all tracks within the release should be present, in the same folder, and no more.

Although sometimes it is tempting to remove duplicate tracks across your collection, data storage is cheap. Ensure albums are acquired and stored in a complete state.

To properly identify albums, Roon sends information about the locally stored album including track positions, duration and more. It also builds a TOC. If tracks are missing, the TOC is compromised and the missing track will make any potential match less likely to be picked.

If you know some of your albums aren’t complete, the best fix is to attempt to re-acquire (from ripping or re-downloading) the tracks.

If this is not possible, and you have some “odd tracks”, tagged with ALBUM NAME but with few or no other tracks from the album, it’s best to remove album level tags such as ALBUM NAME and just treat this as an odd-track. This way, the containing release won’t be misidentified. The track can still be accessed via Roon’s Tracks section.

When something doesn’t identify, the first thing I look for is Are there any files missing? Are there any extra files that don’t belong with this album?

@jeremiah - https://community.roonlabs.com/t/what-can-i-do-to-improve-my-metadata-matches/218/6

7: Remove duplicate tracks

Duplicate tracks within an album should be removed so that there is only one track, correctly numbered, for each position.

Similarly to Avoid missing or extra tracks, the album should be clustered to as-close-to the accepted release structure. If tracks are duplicated with the same track position, Roon does not know which one is authoritative and so can be less sure of correct matches.

In general, it’s best to remove duplicates within an album. That doesn’t mean across a library. It’s common to have the same tracks on multiple releases; although this seems like a waste it remains important for Roon to correctly identify an album.

To choose which duplicate to remove, you can apply heuristics. Some to consider are:

  • Audio quality or bitrate
  • Keeping the file with the most consistency with other files in the album (e.g. same format, metadata etc)
  • Keeping the most recent file

Following these maxims will help us ensure a clean, navigable, attractive Roon experience.

Now it’s time to get practical! In the next section I’ve written a walkthrough of using bliss to implement each of the maxims above. You can use whichever tag editor you like, although note that in most cases you can’t encode maxims in tag editors like you can encode rules in bliss.

Using bliss to organise Roon music libraries

bliss is a music library organiser; it assesses and fixes your tags and file paths to make your library more consistent, correct, complete… all the things that will help Roon import your library successfully. bliss will improve your Roon experience!

If you want to follow along, you’ll need to download and install bliss first. We’ve got versions for all the major OSes, plus NAS drives:

  • Download
  • Download
    (Intel x86)
  • Download
    (Apple Silicon)
  • Download
  • Download

In bliss, we create rules. Rules are like constraints - bliss scans your music library and checks all your music obeys these rules.

Some examples of rules might be:

  • Artwork must be at least 300x300.
  • Genres should be all upper case.
  • Track files should be stored inside an artist folder.

… and so on.

The great thing here is that our Roon maxims can be translated to rules pretty easily. Let’s have a go:

Maxim bliss rule
Embedded tag metadata must be consistent within an album
  • Check tag accuracy
Organise file paths consistently with tags
  • Folder and file structure
Group tracks for multi disc albums within one authoritative parent album folder
  • Folder and file structure
Complete accurate identification and structural data in tags
  • Find missing information
  • Check tag accuracy
  • Find missing cover art
Complete non-structural or identification data judiciously
  • Find missing cover art
  • Find missing information
  • Check tag accuracy
  • Find missing cover art
Avoid missing or extra tracks
  • Check tag accuracy
Remove duplicate tracks
  • Find track duplicates within albums

Let’s now consider each of our challenging import cases above, and how we can configure bliss to fix these..

Roon ruleset

bliss’s rules can be customised. That’s because different music players require music to be organised in different ways.

The rules we listed above for each maxim are our start point, but we have to be a bit more specific. For example, our multi disc file path maxim states that we need to have one album folder parent, then child folders or disc numbers built into the file names. Other music players may be different, so we need to configure the file path rule to work with Roon.

The specific configuration for each rule are:

bliss rule Configuration
Check tag accuracy Choose these fields:
  • ALBUM ARTIST
  • ALBUM NAME
  • TRACK NUMBER
  • TRACK NAME
Folder and file structure File path pattern: <album artist>/<album name>/<discnumber>?|CD <discnumber>/|/<tracknumber>?|<tracknumber:nn>-|<track name>
Find missing information Choose these fields:
  • ALBUM ARTIST
  • DISC NUMBER
  • TRACK NUMBER
  • TRACK NAME
Find missing cover art Store a cover.jpg and embed artwork into files.
Find track duplicates within albums (No further configuration required)

To enable this configuration, start bliss up and, the first time you run it, you’ll see the setup page:

bliss choosing music folder

Choose your music folder where your music is stored - the same one that Roon is looking at. Then click Next.

On the Rules page you can configure the Roon ruleset. Follow the configuration above. My page ends up looking like:

bliss configuring rules

You can now click Scan library and apply rules and bliss will begin looking for albums in your library and assessing them.

Each of the headings below now addresses each of the problems we found earlier in this article. If you’re following along and have configured your rules as above, you may see similar issues being flagged in your library (of course, you’d need exactly the same music as me, tagged in the same way and stored in the same folders to see exactly the same problems and suggested solutions, but your broad problem types should be similar).

Fixing duplicate albums

Ref Duplicate albums

Let’s consider 3 Feet High and Rising which, in our section above, was duplicated into two albums. In bliss, this is also shown as two separate albums, just like in Roon. The reason is that the files are in separate folders and one of the albums has a different title.

The first thing is to get the tags straight. bliss is suggesting changing the DISCNUMBER to 2 for the second disc:

bliss showing incorrect disc number for 3 Feet High and Rising

bliss has also worked out the album name is incorrect, so let’s set that to its canonical value. This merges it with the other album, so now bliss only shows one album with both discs.

Finally, fix the file paths so that the track files are merged into one consistent album folder parent. bliss moved the files as so:

de_la_soul/
└── 3 Feet High and Rising
    ├── CD 1
    │   ├── 01-Intro.flac
    │   ├── 02-The Magic Number.flac
    ┇   ┇
    └── CD 2
        ├── 01-Freedom Of Speak (We Got Three Minutes).flac
        ├── 02-Strickly Dan Stuckie.flac
        ┇

In Roon, we rescan the album and the album is merged:

Fixed duplicate album in Roon

(Note the “2” at the top-right - this denotes two discs).

A good start! 💪

Helping Roon match files

Ref No match

The next problem to fix is where Roon does not manage to identify the album. In our case this was with the Classic FM Weddings album. It’s another multi disc release.

We’ve already encoded the rules, so it’s just a case of reviewing the problems identified and executing the fixes. We’ll follow similar steps to 3 Feet High and Rising, this time not only grouping the tracks correctly, but also correcting the information so it increases the chances of a match or, if there’s still no match, it appears better in Roon.

I’m choosing to do this manually for the benefit of the tutorial, but these can be run automatically too.

First we work on the tags; we change the album title to the canonically accepted Weddings 2008 and the DISCNUMBER to 1 for the first disc. bliss also picked up an incorrect track name, so I’ll fix that too.

Similarly, disc two has its DISCNUMBER set and its album title aligned. The file locations for both discs are then fixed.

Fixed unidentified album in Roon

In Roon we get a better result than expected:

Roon fixed unidentified album

Not only is the title now beautifully formatted, the discs collected together and the album art displayed (I’ve actually overriden it here with the art that bliss found because it’s higher quality), but in addition (and this is the really impressive thing) the track titles have been renamed to be canonically representative of the movements that are on the album.

For example, in my library the track is called:

Arrival of the Queen of Sheba

In Roon, we get:

Solomon, oratorio, HWV 67

… with credits for George Frederick Handel and the Gabrieli Players so we can navigate off to find more works or performances by them.

By fixing our library for Roon we get better value out of Roon.

Fixing incorrectly identified albums

Ref Incorrectly identified

In addition to fixing cases where Roon has failed to identify an album, the other side of helping Roon’s identification process is to avoid false positives.

In our earlier examples we saw The Beatles’ 1967-1970 as an example - specifically the 1967-1970 Vol. 1 alternate release that was selected.

After scanning in bliss, I found that bliss also separated these two albums. However, bliss didn’t suggest changing the title.

That’s because, with the existing title in the tags matching the information online, bliss made the same assumption Roon did - the exact match between local library and online data was deemed by both software to be a clear indication that the release was relevant.

However, with bliss there’s a workaround. What bliss allows us to do is unlink from releases online; specifically say: “this is not my album”. So that’s what I did:

Unlinking album in bliss

Once this was done, bliss suggested changing the title back to the canonical 1967-1970, adding DISC NUMBER fields and moving the files and folders to match our file path pattern. I could just accept the suggested fixes and rescan in Roon. And there we got:

Fixed incorrectly identified album in Roon

Perfect! (Again, notice the 2 at the top-right denoting an album with two discs).

Fixing correctly identified albums but with incorrect grouping data on Roon’s side

Ref Correctly identified, but with incorrect grouping data on Roon’s database

This is the album where Roon grouped data from two unrelated releases: Celebration [Enigma] and Celebration 2000. The latter is the release that I actually have.

Like with the previous two albums above, bliss ‘agrees’ with Roon that there are two separate albums - disc one and disc two.

The second disc shows a lot of issues at the track level - non-canonical titles (the titles include the artist name here) and missing disc numbers:

bliss showing incorrect track titles for Celebration 2000

These are important to fix because even if we can’t fix the incorrect grouping of data, we might still want accurate, canonical track titles.

But it doesn’t stop there; bliss finds that album-level details like the album title are wrong (we need to drop that disc artifact).

On the album overview page (where all the albums are listed) a simple way of fixing an album with one click is to click the Fix button on the album.

bliss showing incorrect album title for Celebration 2000

And that’s everything fixed!:

bliss showing fixed Celebration 2000 album

So now we rescan in Roon doing the Roon rescan dance. On an album page in Roon, click “…” > Edit > Rescan album .

But here, our luck runs out. The bad data remains - the correct cover art is in Roon’s database, but Roon isn’t choosing to show it. Roon is also still showing the incorrect album title too.

The only fix in these cases is to manually edit the entry. You can either override Roon’s data with the file data, or edit it yourself in Roon.

I prefer to override Roon’s data and use metadata from my collection, because then there’s one source of truth - I just need to be concerned with my library.

To do this, click “…” > Edit > Metadata preference and choose Prefer file for Title and Artwork. Now:

Overriden title and album artwork in Roon

Pretty garish artwork, but at least it’s right now. 😃

Unidentified albums

Ref Not identified

Rareties and personally curated albums will require your own tagging because there’s no metadata for those releases in Roon’s database.

To tag these albums we need to use the album detail page for the album we’re trying to improve. Click the album name in the album list in bliss. We get:

Album detail for Hall of Fame in bliss

bliss has additional metadata sources to Roon, some of which do include this album. Happily, this release has found a match in bliss’ database, so suggestions are made as to the correct tags to use.

This is pretty cool - we’re essentially adding metadata sources to your Roon experience! By making sure we import the correct data into our file tags, we can make this release look better in Roon.

First, I accept all track name changes. Before the track names included the composer, but this appears a lot better in Roon if the composer et al are tagged in the correct fields and not combined in the track title.

I then used the Tags panel to fill in the canonical names of the composers:

Correcting composer names to canonical values in bliss

The reason to do this is that Roon’s musical exploration “graph” means that, if credits are correctly, errr, credited, we can link our different works, recordings and releases together.

We can take this a stage further with performers. For this, I use kid3:

Adding PERSONNEL fields in kid3 to add credits in Roon

Using the PERSONNEL tag and a special notation we can enter credits which will allow us to navigate between recordings made by these performers:

Showing credits in Roon, populated from our file tags

And overall, the album is now more fully specified:

A missing, unidentified album in Roon now populated fully with file tags

Other import problems

It’s worth looking at a few other edge cases that are less related to existing file organisation, but sometimes come up as quirks of the Roon import process.

Duplicate tracks in an album

You might find duplicate tracks within an album:

Roon showing duplicate tracks in an album

The first thing to check is whether you do actually have duplicate files. Click the “…” next to the emboldened ‘parent’ track and click View file info. There, check the paths are different. If they are, consider whether you want duplicate tracks in your library and how to resolve that.

However, sometimes the file paths might all be the same, so there are no duplicates as such. For this, try clicking Settings > Library > Library Maintenance > Clean Up Library.

There’s a third, sneaky fix. Depending on your operating system and where your files are kept, you might be seeing the effect of case insensitivity. Let’s say the files are stored on a NAS, in:

Various/Christmas Hits/01 All I Want For Christmas Is You.flac

If that NAS device has another top-level folder called various with different music inside, this can sometimes cause problems. This is a real possibility because most NAS devices are based on Linux, and Linux is typically case-sensitive, allowing folders with the same name but using different case.

What will often happen is that, on the computer running Roon and connecting to the NAS, both folders will be shown (Various and various) but the contents of both will be identical. As a result, Roon sees duplicate files.

To fix this it might be best to consolidate your files into one Various folder.

Finally, the backstop is to simply manually override data, although this can be a lot of work with a large library. This can be done, for each album, from the “…” button, clicking Edit. Try first choosing an alternative match via Identify album but if that doesn’t work use the Edit album tab to choose your local data, or enter your own values.


I hope this has been an informative and, most importantly, actionable guide to importing music libraries into Roon.

One of the main arguments I wanted to get across is that, even with Roon’s magic, you still need a well organised, cleaned and maintained music library. That not only helps Roon to work at its best, but other music players too, and makes other tasks like synchronisation and backup much easier too.

If there are other tips and tricks you’ve learnt related to Roon I’d love to hear of them so I can add them to this article.

tags: roon hifi audiophile

The Music Library Management blog

Dan Gravell

I'm Dan, the founder and programmer of bliss. I write bliss to solve my own problems with my digital music collection.