SongKong Jaikoz

SongKong and Jaikoz Music Tagger Community Forum

Contemplating re-tagging my music database (165k Files) with Songkong

Okay so Karel Ancel is playing a work by Brahms, and if you look at the list of works created by Brahms they are in German, unsurprisingly because he is German

image

So the name is not going to match up with the English translation of the work on the album in your existing title metadata

So actually isn’t it better if we could just derive the work and parts from the title. We already do this in conjunction with the mb work when an album is matched but you need a way to do it manually, or maybe we could have a task Derive Work and Part from Title

Not currently.
But what you can do in Jaikoz and SongKong is just force a match to a particular album in MusicBrainz so if the album is in Musicbrainz thats all you need so need to manually edit.

So for works wopuld only possibly be useful if work is in Musicbrainz but album is not.
For artists ectera you could generate an artist list base don musicbrainz, or base it on what you currenlty have in yor music database which might be better because if you use MusicBrainz list you could have alot of similar but wrong names that are not what you have.

Actually I would much prefer to have the work and movements titles in the mother tongue of the composer, German for Brahms.
But I can see that that is only good for me (being a German native speaker). If all my Tchaikovsky works and movements were in Russian and Cyrillian, that would be difficult for me. Luckily Musicbrainz’ entry for Tchaikovsky’s 6th is in english:

Musicbrainz even offers a link to the allmusic entry.

The english name for the composer comes up with a mouse over. So that seem available in english as well.

This is what jRiver does. As soon as you start writing an artist name, it presents a drop down list of all names in the library which becomes smaller as more characters are entered.
The charm of doing this in a semi automated way would be that the sort fields could be populated at the same time.

That would be a help, but does not resolve the issue that in order to do this you need to refer back to a master database and the master database in MusicBrainz is in several languages.
I think the works and parts in allmusic are translated to english, but afaik that database is not accessible to outsiders, only Roon can use it.

No I just mean derive from title, if first song is Brahms: Symphony No.1 1st Movement and the 2nd song is Brahms: Symphony No.1 2nd Movement as i example i could derive

WORK: Symphony No.1
PART1:1st Movement
PART2:2nd Movement

which is what Roon needs

Yes it is https://musicbrainz.org/work/15e0a721-5332-3452-8a56-e00af7b9e4ca but I think that how it was known at time, they are not always in English.

So artist is an entity in its own right and notably has an alias tab

This can used to store variations of the name in different languages

So by default when an artist credit (this can be artists, composer, conductor) on the release is in a non latin script such as Cyrillic we look for a latin script (usually English) alternative instead, but only if the Romanize non-Latin script artist names whereever possible is enabled

If we disable the option then it will use the Cyrillic name (if Cyrillic on the album)

I have given the pros and cons of a MusicBrainz based wizard support for manual tagging some more thought over dinner and coffee and I can see no negative aspects.
If the data quality and data selection algorithm are sufficient for auto tagging by SongKong, then they should also be sufficient for a wizard that gets suggestions from MusicBrainz. An identified album that contains Brahm’s 1st Symphony will populate the same metadata as a wizard based selection of Brahms’ 1st Symphony tagged to an unidentified album. Both will be in German (I think) and both should be identical.
Same is for artist, composer etc, names as long as the names in MusicBrainz are unique.
I can potentially do something similar using jRiver. jRiver lets you save a selection of tags to memory and then paste them to another set of tracks. Only condition is that the number of tracks is identical. So I could take an album containing Brahms’ 1st Symphony that was autotagged by SongKong and paste its tags to the unidentified 4 tracks. That way I should get exactly the same tags as in the autotagged album.
I think a wizard would be significantly more user friendly, as I could work on the different parts of an unidentified album and not have to refer back and forth to an identified album and do copy / paste.
Just a suggestion for maybe future functionality of Jaikoz.

This looks interesting:
picard-plugins/plugins/classical_extras at master · MetaTunes/picard-plugins · GitHub
Might be close to what I am looking for, but it is from 2017 unfortunately.

Jaikoz does have an export/import to spreadsheet feature that can be used to copy metdata from files to different files.

We already have a Musicbrainz based manual tagger in Jaikoz that allows you to search for tracks rather than albums and pick from a list of potential matches so this would be worth trying Action:Remote Correct:Manual Correct Metadata from Musicbrainz

Because if the work is in the database it is almost certainly going to have each movement linked to a track on another release, so by matching song to song on that release you will get the work data.

1 Like

I think this just extracts additional classical metadata when picard matches an album. This will not help because you want to make use of MusicBrainz work data when no matching release is available.

I have looked at Jaikoz, and at the moment I am a bit overwhelmed by the sheer amount of information in the UI. So a basic question for starters.
If I enter a MB ID in one of the fields in the MusicBrainz tab, does Jaikoz actively go an retrieve the information from MB and populate the ‘normal’ fields such as artis and artistsort or composer and composersort? I have not been able to achieve this by entering MB ID codes into the MB fields.
I have given Action:Remote Correct:Manual Correct Metadata from Musicbrainz a try. That works if the tracks have an acoustic fingerprint that allows a link to other recordings, but in my case of the Ancerl the Brahms Symphonies do not have a fingerprint. The easiest alternative I have found is to copy / paste the works information from MB or allmusic into a text file and then import this into the track title and the works and parts tags e.g. via mp3Tag. Roon identifies the works immediately when the album is rescanned.

Sinfonie Nr. 1 c-Moll, op. 68 - I. Un poco sostenuto – Allegro
Sinfonie Nr. 1 c-Moll, op. 68 - II. Andante sostenuto
Sinfonie Nr. 1 c-Moll, op. 68 - III. Un poco allegretto e grazioso
Sinfonie Nr. 1 c-Moll, op. 68 - IV. Adagio – Allegro non troppo, ma con brio
Tragische Ouvertüre, op. 81
Overture “Leonore” no. 3 in C major, op. 72b
Sinfonie Nr. 2 D-Dur, op. 73 - I. Allegro non troppo
Sinfonie Nr. 2 D-Dur, op. 73 - II. Adagio non troppo
Sinfonie Nr. 2 D-Dur, op. 73 - III. Allegretto grazioso (quasi andantino)
Sinfonie Nr. 2 D-Dur, op. 73 - IV. Allegro con spirito
Concerto for Violin, Cello, and Orchestra in A minor, op. 102 “Double Concerto” - I. Allegro
Concerto for Violin, Cello, and Orchestra in A minor, op. 102 “Double Concerto” - II. Andante
Concerto for Violin, Cello, and Orchestra in A minor, op. 102 “Double Concerto” - III. Vivace non troppo

This works ok and is actually quite quick once it has been done a few times.
Interesting sidenote. MB does not stick to the composer’s native language in the names of works. Brahms’ symphonies are called ‘Sinfonie’ in German, his double concerto is ‘Double Concerto’ in English. It is really a pity that structuring music info was never standardised like books have.

Your jThink suite goes a long way to overcome many of the shortcomings of MB (the artist / composer issue being one of them). You deserve much more appreciation for this than you get. THANK YOU.

Which MB ID ?
If you enter MB Recording ID, MB Track ID and MB Release ID and use Action:Remote Correct:Update Metadatafrom Musicbrainz then it will. But more usual workflow would be to select songs that make up album then select Action:Match to Album:Match Songs to Specified Musicbrainz Album and then enter the MusicBrainz Release Id.

It can return metadata only matches as well, however if your album metadata doesnt match any album then less likely to find a match.

I couldnt find your example, can you give me link.

But in my experience, the works are usually stored in the composer native language, however the tracks on an album that are recordings of the work are correctly going to match the titles on the album so maybe this is what yo are seeing.

I think this make sense, I live in England and most likely to be buying albums issued in England with English tracklisting so I would use Symphony, it not helpful for me to see Sinfonie. If you live in Germany most likely to be buying albums issued in Germany with Germany tracklisting so would use Simfonie

Having said all that:

  • We can buy albums from anywhere these days so not that simple
  • If a work is being added for first time because MusicBrainz user is addign album containing that work then likely they will use the album tracklisting as the work name even if not composers original language
  • MusicBrainz is biased towards English language

So originally you were thinking of rescanning whole library with SongKong, have you done that ?
That seems the logical first step, then refresh Roon and then you can see what albums you actually need to work on further.

The examples are in the text file in my previous post:
Symphony “Sinfonie Nr. 1 c-Moll, op. 68” - MusicBrainz work name is in German

Overture “Tragische Ouvertüre, op. 81” - MusicBrainz work name in German

Concerto “Concerto for Violin, Cello, and Orchestra in A minor, op. 102 “Double Concerto”” - MusicBrainz work name in English, although composer is Brahms

That is absolutely still the plan, but I won’t simply run SongKong over 165k tracks, even if I can reverse what it does. I need to get my workflow clear before starting this endeavour. During the process i need to keep control and i am planning to proceed like this (beginning August when I am back):

  • take one folder (with all files of a given audio file type) at a time. The one with 20k files that I sent the report files for is such an example
  • I will work off a copy of that folder
  • I would then like to run SongKong through that set and move the identified albums into an other holding folder
  • the remaining albums without a match I will copy the album artist, artist, composer etc. tags to albumartistsort, artistsort, composersort etc. and create firstname lastname tags for the ‘normal’ fields.
  • then check with Roon which are identified
  • clean up the albums which are not identified by Roon
  • if feasible add work tags for some as deemed necessary

This way I can go folder by folder without endangering my existing library until I am sure the new stuff is at least as good as what I have now.

I was trying entering the MB ID for Karel Ancerl into the MB Artist field, hoping it would populate the artist and artistsort fields.
Karel Ančerl - Details - MusicBrainz

Ok , no it doesn’t have that functionality,
I can see that might be useful

I am now back at my main computer and would like to run some tests on larger data sets.
I have copied all my 16/44.1kHz files to an external disk into a folder called 44.1_16 (55k files).
First I changed my lastname, firstname tags to firstname lastname. Using jRiver I have created sort fields and populated them with the lastname, firstname content of the people fields
ALBUMARTISTSORT =[Album Artist]
ARTISTSORT =[Artist]
COMPOSERSORT =[Composer]
CONDUCTORSORT =[Conductor|
SOLOISTSSORT =[Soloists]

Next I changed the order of the people fields to firstname lastname using jRiver’s unswap function:
Album Artist =Unswap([ALBUMARTISTSORT])
Artist =Unswap([ARTISTSORT])
Composer =Unswap([COMPOSERSORT])
Conductor =Unswap([CONDUCTORSORT])
Soloists =Unswap([SOLOISTSSORT])
I checked that the procedure went ok using mp3Tag. So it seems I now have a way to flip my whole library to firstname lastname and introduce sort fields.
Now I want to run SongKong to tag all albums for which SongKong can find an album match. I DO NOT want to change albums for which SongKong cannot find an album match.
As part of the SongKong process, I want to move the identified files to a separate folder ‘processed’ on the disk, so I am left with only unidentified files in the 44.1_16 folder.
The moved files should go to a path of the following structure:
Processed\ALBUMARTISTSORTleavethisunchanged\Album (44.1_16)\Disc#-Track# - Track
What settings would I need to use in SongKong to achieve this?

First step would be to simply run Fix Songs, this will not modify album fields if an album can not be found. It will not rename any files this is part of the Rename Files task.

If you want to use with Roon then best to select the Roon profile. If you are worried about the potential changes run in preview mode first, that way you can see the potential results in the report without SongKong actually making any changes.

Fix Songs running now. Takes >24h for 60k tracks. I’ll be back with the results.