SongKong Jaikoz

SongKong and Jaikoz Music Tagger Community Forum

Automation presets with a huge library

Hello to all,

I’m a big fan of music in general and have a huge musiclibrary. Over the years I have developped my sorting, naming and tagging routines.
I want to save some time in the tagging process, but to be honest, I think this is just too much for SongKong. Just too complicated.
So here is my idea and lets see if Paul can help with a solution.

New album additions workflow
All new albums are downloaded or are ripped to the download folder.
Destination is to automatically correct tags and to automatically create an artist folder with the album folder incl. publishing year as subfolder in a surveilled folder, just to save time.
My file- and tagging-system has infos about the kind of album, the publishing year and the format (not when 16/44) in the album tags and the album folder names. So I have always information by hand.
When SongKong takes the album, it recognizes it. Then, in combination with the special presets mentioned later, SongKong should make use of the information in the existing albums folder and create new album tags and album folder names out of that. Coverart shall be downloaded and saved in the album folder and individually in the songs.
Automation of the workflow should be better possible when I presort special types of albums. Here we come to 4 different folders (16/44, ODD, Vinyl, „the rest“) where we‘d need 4 SongKong presets to run over the corresponding folder.
Important for every preset:
Infos from the existing album folder shall be taken (year of remaster/year of reedition, Remastered, EU, German, US, Japanese, French, ect. and MFSL and if it is a SACD, XRCD, SHM-CD, DVD-A or a Bluray). All Songkong presets shall combine these informations and additions with the bitrate and kHz of the album and create out of that the album name tag, the tag of the publication year of this album edition and in the end the album foldername.
One folder to work with would just be for standard lossless and mp3 albums called 16/44. Here we don‘t need the mentioned additions of the bitrate and kHz of the album.
For digital downloads (ODD) I would create a corresponding folder, where in the SongKong preset there’s always added „(ODD)“ in combination with the appropriate values from bitdepth and kHz to the album-tag and the album-folder to for example „(ODD 24/96)“.
For Vinyls there’s a preset where there’s always added „(Vinyl)“in combination with the appropriate values from bitdepth and kHz to the album-tag and the album-folder to for example „(Vinyl 24/96)“.
And last but not least a folder and a preset for the rest of the formats (SACD, XRCD, SHM-CD, DVD-A, Bluray).
Additional information in the old folder name like label and labelnumber or publishing country shall not be overwritten and added last in the folder album name.
Let‘s take an example and see what we will get:
An album in the different categories would look like that:
Folder Album-Tag/Possible variations Foldername with not deleted additional information
16/44 Sun 1977 - Sun
Sun (Remastered) 1977 - Sun (Remastered)
Sun (2017 Remastered) 1977/2017 - Sun (2017 Remastered)
Sun (2017 German) 1977/2017 - Sun (2017 German)
ODD Sun (ODD) 1977 - Sun (ODD)
Sun (ODD 24/44) 1977 - Sun (ODD 24/44)
Sun (Remastered) (ODD 24/44) 1977 - Sun (Remastered) (ODD 24/44)
Sun (2017 Remastered) (ODD 24/44) 1977/2017 - Sun (2017 Remastered) (ODD 24/44)
Vinyl Sun (Vinyl) 1977 - Sun (Vinyl)
Sun (Vinyl 24/96) 1977 - Sun (Vinyl 24/96)
Sun (EU Vinyl 24/96) 1977 - Sun (EU Vinyl 24/96)
Sun (Remastered EU Vinyl 24/96) 1977 - Sun (Remastered EU Vinyl 24/96)
Sun (2017 Remastered EU Vinyl 24/96)1977/2017 - Sun (2017 Remastered EU Vinyl 24/96)
Sun (XRCD) 1977 - Sun (XRCD)
Sun (SACD DSD64) 1977 - Sun (SACD DSD64)
Sun (2003 DVD-A 24/96) 1977/2003 - Sun (2003 DVD-A 24/96)
Sun (Remastered Bluray 24/96) 1977 - Sun (Remastered Bluray 24/96)
Sun (2017 SHM-CD) 1977/2017 - Sun (2017 SHM-CD)
Bitdepth/kHz-variations: 16/48, 16/96, 24/48, 24/88, 24/176, 24/352, 24/96, 24/192, 24/384
32/96, 32/192, 32/384, 32/768, DSD64, DSD128, DSD256, DSD512, DSD1024
Additions from existing foldername: year of remaster/year of reedition, Remastered, EU, German, US, Japanese, French, ect.

So, is there a solution to get things done?

Hi, okay so bit hard to follow all the detail here but lets try to break it down into parts

  • Identify Album
  • Add Metadata for the Albums
  • Move/Rename the Album

So assuming the album can be identified SongKong adds indepth metadata for the album if available. Now SongKong will only identify an album if all tracks can be matched to the album and it combines metadata and fingerprint matching to get a good match. So it cannot incorrectly match to a version of an album with different track listing/order/versions but of course if there are two sonically (nearly) identical version of an album and one version was released on DVD-A and one on Bluray, or one was released in Spain and one in France then maybe it will not get the right version. I say this because your post focuses somewhat on the media format. If any albums are incorrectly matched you can revert the changes or replace with a particular match using the Match To One Album task

Now, if you are using Roon I would consider this is the most important stage so that increase the number of albums that Roon has identified

For Moving/Renaming files the Rename masks can make use of any Javascript Expressions so there is no limit on the complexity of logic required. The other thing to consider is do the songs have the appropriate metadata available, I think they mostly do.

Rename masks have access to all the metadata added by SongKong. They also have access to information from the audio header such as *bit rate i.e information derived from the audio itself rather than the album matched to

When matching songs there are some options for adding addtitonal metadata to the album field

but there is also a separate media format that store the media format, and if you use this for storing the media format of albums that have not been identified as well this can then be used to construct your filenames.

One area that looks like a problem is this line

When applying a filename mask to a song you can reference the existing filename using the filename field but this seems difficult to do, better to ensure the information is stored in the metadata fields and then can be used to construct a new filename.

Hello Paul,
I know you‘re in it, it‘s just me who lacks experience with this. I am careful not to destroy metadata for my collection I garnered together all the years.
Let‘s start with just one:
Name of the preset: 16/44
What should it do?

  • Identify Album
  • Download albumart in best quality and save as? Which name would Roon like most?
  • Add Metadata for the albums, what means especially:
  • add artist to the albumartist field
  • add release year tag and original release year (if field is empty)
  • add a „(year of remastering from release year-field + Remastered)“ in the album-tag-field
  • add a „(year of reissue from release year-field + Reissue)“ in the album-tag-field
  • add multiple genre tags
  • add bpm and mood
  • add recordlabel in the label field + the label-no. in the neighbourfield
  • add sorting name in the sorting fields of artist and albumartist
  • Save album folder name in the comment-field.
    Then on the renaming level:
  • Rename folder from albumartist sortingfield
  • Create new subfolder in this artist folder for album the album and rename it with the tags: „year of original release“/„year of this release“ - „album name“
    Do I have to create a preset for this, too or is it included in the 16/44 preset?
    But to start with that: I couldn‘t find the filename mask? Am I silly?

I think the automated additions of „SACD“, „XRCD“, „SHM-CD“, „DVD-A“, (ODD) or „Bluray“ are a general problem and should be made by hand from the old folder name, which was transferred to the comment-field.

If we get this started, the next level would be to get the hires and vinyl done.

I will consider this further tommorriw but I would suggest as starting point simply running Fix Songs on one such album with Preview Only enabled. Then assuming the album is identified in the report created look at hhe metdata added and consider if it works for you.

Paul, thanks for your short quick answer.
Actually, I did the Fix song for Roon, but the preset lacks some features I‘d need to establish an eager workflow:

  • release year and original release year are both written in the original release year tag.
  • I cannot add a „(year of remastering from release year-field + Remastered)“ in the album-tag-field or add a „(year of reissue from release year-field + Reissue)“ in the album-tag-field.
  • Save previous album folder name in the comment-field.
  • Create new folder from albumartist field
  • Create new subfolder in this albumartist folder for the album itself and rename it with the corresponding tags: „year of original release“/„year of this release“ - „album name“

But after all it was a start.

So with tagging (not file renaming) is there actually any difference between tagging of 16/44 and tagging other formats ?

It seems not to me, and also I think you would find it difficult to filter out albums to ensure you only apply 16/44 to the right albums in the first place. So I would think you would have one profile for tagging, and then one profile for file renaming that would use if logic to apply different file-naming based on the metadata.

So I assume we are talking about the Roon Album Tag field.
So you can manually add this information, but you cannot automatically add this metadata as part of the automated matching. In fact we don’t currently capture this information when matching an album from MusicBrainz, I am not sure the data is there to do it very reliably, but if it was the best approach might be to add two new fields IS_REMASTER and IS_REISSUE then we have a clear place to access the data for whatever purposes

This could include running a batch edit task to set value in Roon Album Tag if IS_REMASTER=true. This functionality is not currently available in SongKong but we do plan a Scripter task that would allow you to do this.

SongKong adds the following dates, this can actually stores full date not year despite name, and maps to the underlying usual field for the underlying format:

  • Year
  • Album Year
  • Original Album Year
  • Original Year

Original Album Year always store the date of the earliest version of the album
Original Year always stores the date of the earliest version of the song (maybe on completely different album)
Album Year always stores the date of the matched album
Year stores date of matched album unless on the Album Format tab you have Use Original Release Date checked.

So remember file renaming is part of the Rename Files task not the Fix Songs task. You can select from a number of existing masks on the Rename Files tab

and you can modify a mask or create a new one from Preferences:Filename masks

So I don’t think there is an issue here you just need to familiarize yourself with the Rename Files task

Hello Paul,
took me just some time to respond.
I‘m really new to JavaScript. I now found the renaming menu in preferences. I just was blind.
The posts before were far too complex, so I rethought my my primer needs which are simply to save time when preparing new album additions to my musiclibrary. This could be best achieved with different simple scripts that do the following:

  1. Save the actual foldername of all songs inside to the tag commentsfield.
  2. Rename the album-tag of every album located in a subfolder with the albumname itself and the addition „ (ODD „bitdepth“/„kHz-value“)“. This addition is only needed when bitdepth is higher than 16.
  3. Reorganize every album to the structure: „artist“/„original release year“ - „albumname“. If compilation is tagged, structure to „original release year“ - „albumname“.

There is still some endcontrol and handwork to do when it comes for example to hires coverart, but in general this would be very helpful.
As I‘m new to scripting it lacks me some knowledge to establish the corresponding scripts serving my needs.
Could you please help me some more please?

Hi okay

Cannot currently be done because SongKong has so far focussed on correctly adding metadata rather than custom requests like this. However it will be possible in future when we add the Scripter task or possibly a future enhacement to the AutoEdit task (first version is coming next week).

So you only want this for HD albums, we have an easy option for identifying HD albums, you can enable the Add [HD] to album title for High Definition albums option

but this will not do exactly what you want, again custom modification of the album tag requires the Scripter task mentioned in first point.

Can you give me some examples please , is not totally clear what want.

Example is: Folder: Michael Jackson, as subfolder 1982 - Thriller

When it is a compilation, only for example: 2013 - Bravo Hits 73

Okay but what do you want the filename part to be ?

Ok this mask

+ (originalyear.length>4 ? originalyear.substring(0,4):originalyear) +' - '
+ ifnotempty(album,'/')
+ ifnotempty(pad(discno,2),'-')
+ ifnotempty(pad(trackno,2),'- ')
+ ifnotempty(artist,' - ')
+ title

would do that


Michael Jackson/1982 - Thriller/01-03 - Michael Jackson - The Girl Is Mine.flac

If you used this for a Various Artist Compilation you would have

Various Artists/2013 - Bravo Hits 73/01-03 - Michael Jackson - The Girl Is Mine.flac

I think you are saying you don’t want an album artist folder for compilations, you can do this but I would be concerned you are making an assumption that all compilations are Various Artists, IMO it would better to keep Album Artist, but if you don’t want to just remove first line

(originalyear.length>4 ? originalyear.substring(0,4):originalyear) +' - '
+ ifnotempty(album,'/')
+ ifnotempty(pad(discno,2),'-')
+ ifnotempty(pad(trackno,2),'- ')
+ ifnotempty(artist,' - ')
+ title

Thanks Paul. This is a start. But as I want to save the bitdepth and the kHz-value of the albums in the foldername, the script tasker would be necessery to implenent that.
Then, the script tasker cold also be used to modify the albumname-tag with the values of bitdepth kHz.
I‘m looking forward to that as it could really save time.

Okay in your example it doesn’t show that.

You can do that already because the audio data is available , they don’t need to be stored in the tag first.


+ (originalyear.length>4 ? originalyear.substring(0,4):originalyear) +' - '
+ ifnotempty(album + ' - ' + audiobitspersample + ' - ' + (audiosamplerate/ 1000) +'kHz' ,'/')
+ ifnotempty(pad(discno,2),'-')
+ ifnotempty(pad(trackno,2),'- ')
+ ifnotempty(artist,' - ')
+ title

Would give

Michael Jackson/1982 - Thriller -24 - 44.1kHz /01-03 - Michael Jackson - The Girl Is Mine.flac