Artist File tag advice needed: use "Firstname Lastname" or "Lastname, Firstname"?

Over many years, I meticulously formatted my +50k tracks artist name to use “Lastname, Firstname”, so “Buckley, Jeff” and not “Jeff Buckley”. During import, although I explicitly use File Tags, not Roon, both versions of the name are displayed. See screenshot.
Will my name formatting influence matching within Roon?
Do you advise to change my naming scheme?

1 Like

I’m having a similar issue. For classical music, I have stored composer names as “LastName, FirstName (bornDate-diedDate)”, as in Schmoe, Joe (1955-2013). I did this to support one-screen navigating in another product.

I found this advice in the FAQs: (

[quote]"One thing worth noting is that Roon will attempt to match up names that you have put into your file tags with Roon database versions of the same individuals who are associated with identified content in your library. You’ll get much better results if you stick with the likes of the following:
•Wolfgang Amadeus Mozart
•Pyotr Il’yich Tchaikovsky
•Paul McCartney
•Richard Rodgers; Oscar Hammerstein II

than if you use:
•Mozart, Wolfgang Amadeus
•Ludwig van Beethoven (1770-1827)
•Rodgers and Hammerstein"

I am about to change this to use the “normal format” by moving the lastname, first data to a new tag and resetting the composer field to normal. I suspect Roon will do a much better jobs at matching composers in my files to its metadata at that point. I’d hate to have to “merge” hundreds of composers just because of a formatting problem.

On my classical collection of > 3k albums, I kept using “Lastname, Firstname” for ease of navigation with another product. I only very rarely encoutered problems with this in Roon (maybe 10 times). So I do not think it is is worth it to retag an extensive library tofollow that advice.

It’s your choice really, given the amount of work involved and your need for your files to work for you with multiple products. If you do move these existing tags, be aware that the ARTISTSORT and COMPOSERSORT tags exist for this purpose. Some products make use of these (e.g. Logitech Media Server); others, including Roon, do not.

Thanks for the tips, guys.

In the other product, I was able to able create regex expressions to strip the data into separate fields, then use built-in functions to move the parsed data into new fields, save it to file tags (rather than expressions), then recombine them into a “ComposerView” field (also saved as a tag in the file). Now I simply need to update my views to use the new field rather than the original Composer field, and Roon should be much happier with the result as well. I’ll keep you posted.

If anyone is interested in the expressions I used, let me know and I’ll share :slight_smile:

Thanks you all for your feedback! I’ll give it some thought before I change all my files. On the other hand, I’m a software developer, so a smart tool might do the trick for me :wink:

I was able to update about 13K tracks yesterday to move “Schmoe, Joe (1900-1930)” style composer data into new tags. The first tag contains the whole string. The second contains just the dates. The third contains the Composer Name is normal order “Joe Schmoe”. I then copied this bad into the original composer field. This allows me to have my cake and eat it too.

Roon handled it like a champ and my other app has been reconfigured to use the new field.

Highly recommended.

Hi @Dan_Petit,
Sounds good! Which tool did you use? I know JRiver is capable of doing such things…
Would it be possible to share the expressions you used?


It was JRiver. Here are the steps, assuming you know how to use JRiver Library fields and Tagging features.

  1. My Data started in the Composer Field in Last, First (Dates-Dates) format.
  2. Add Expression Field ComposerDates to the library:
    regex([Composer], /#(([^)]*))#/, 0,0),
    [R1], )
    This grabs the dates from the composer (if any).
  3. Add Expression Field ComposerNoDates:
    =Clean(RemoveRight([Composer], Length([ComposerDates]) ))
    This strips the dates away, leaving composer name in LName, FName order
  4. Add Expression Field ComposerNormalOrder:
    This normalizes the order to FName LName.
  5. Add Field Composer Dates, select save to tag, then select files to change and set value to:
    This moves the expression into a saved tag field.
  6. Add Field Composer Name, select save to tag, then select files to change and set value to:
    This moves the normalized name into a saved tag field.
  7. Add Field Composer View, select save to tag, then select files to change and set value to:
    This moves the LName FirstName (Dates-Dates) version into a saved field.
  8. Fix composer field by selecting all files to change and set value to:
    This “corrects” the composer field.

You can then remove any fields you don’t want to keep. I kept 3: Composer, Composer View, and Composer Dates, all of which are stored in tags.

This can certainly be done with fewer expressions, but I like to see my work and the result at each step - it makes debugging nasty Jriver expressions a bit easier. One suggestion would be to make Composer View an expression derived from Composer and Composer Dates field. This way, you only have to maintain the Composer Field and the Dates field and the Composer View field is updated. This works in JRiver, but if you want to see the Composer View order in another tool you’ll have to store it in tags as I did.

Good luck!

1 Like

One other final note: In JRiver I had numerous custom views that were designed to allow me to browse by composer in LastName, FirstName order. To keep these working I had to point them to the Composer View field rather than the Composer Field.

Hi @Dan_Petit,
Thank you very much for your detailed answer, much appeciated. I used JRiver before I became addicted to Roon, and although I never used expressions, your steps are clear, structured and easy to follow. Thanks again for putting so much effort in answering!