SongKong Jaikoz

SongKong and Jaikoz Music Tagger Community Forum

Custom tags

Hi. I’m evaluating Jaikoz and am really impressed with the functionality and user interface. However, I have a couple of (slightly related issues).
By way of background, most of my music is Classical and is stored as FLAC with extensive (but not always correct or complete) tagging. I use Muso for library management (much the best in my view) and Logitech Music Server (Squeezebox) for playing. I’m looking for ways to make my existing scheme (www.music.highmossergate.co.uk) easier and quicker.

  1. To optimize the metadata, I use a number of custom tags. I see Jaikoz has a custom tag capability, but it seems to just map onto “fixed” internally-specified custom tags. Is there any way I can get it to read and edit my custom FLAC tags (which have meaningful names, not just Custom_1 etc).
  2. Without going the full scripting route (e.g. mp3tag) is some slightly more advanced editing possible - e.g. taking a title which is in the format “Work: Movement” (the MusicBrainz standard) and creating the Work, Part and Movement tags by splitting at the colon?
    Is there a way of doing either of these currently, a work-round, or would it need new features?
    Many thanks

Hi

  1. First thankyou for the link to the websiite, this is very interesting and I will try and read it thoroughly this week. You are quite correct that Jaikoz doesnt let you create custom tags, there are just the five ‘custom’ tags yo have seen. However Jaikoz does already provide tags for almost everything required for Classical Music, if you find some missing I would be happy to add them but is there any possibility of you using my tag name where they exist rather than your own. Using existing tags where-ever possible does generally make things easier for everyone and I think it is shame that Flac/oggVorbis did not define a more comprehesive standard set.

The other solution would be to do the automated tagging using SongKong/Jaikoz and then another tool to convert the field names we use to the field names you use after the tagging.

  1. Jaikoz already handles this for you, it does exactly this but in a more sophisticated way that amongst other things also considers MusicBrainz work relationships. If you look at Preferences:Remote Correct:Classical you’ll see the Classical specific options. This video shows creation of work and movements from a MusicBrainz match using SongKong, but the same algorithm is used for Jaikoz as well https://youtu.be/6Es-eaG4xPg

Thanks for the reply Paul. Regarding rationalising my tags - that is definitely on my todo list. Part of the reason for looking at Jaikoz is to see whether I can simplify the process set out in my website. Things have moved on a bit since I first developed it.
The main “missing” tag is Instrument. This is not in the MusicBrainz tag list as it is regarded as an attribute of the Performer relationship. I use it in two ways:

  1. As a sub-genre of Concerto and Instrumental.
  2. To add to the Artist tag so that it is displayed in a player.
    There may be another way of achieving the same effect. I’ll look into it. At the moment I use the performer tag just for supporting artists (with their instruments / voices in brackets). I could duplicate the artist there, but of course most players don’t show this. Muso handles it all very well, but that’s only on the desktop.
    Regarding Work etc. I’ll look into that further. Does Jaikoz split the title even if there is no MusicBrainz match - I would have thought the action would need to be in “Local Correct”? I see there is an option to remove the work from the title in “Remote Correct”, but I don’t like that as most players won’t then show the work (iTunes now being ahead of the game now on this one). The MusicBrainz style guideline is Title=Work: Movement.

Hi, yes I can see there is some sense in having a separate Instruments field separate from the performers field, I think I will add that to SongKong and Jaikoz.

For Classical SongKong/Jaikoz works slightly differently. The PERFORMER field list all individuals performers, i.e singers and instrumentalists including the main performer with their instruments. The PERFORMER_NAME field list the same performers but without their instruments, This doesn’t include the conductor who has he own CONDUCTOR field nor choir, orchestra or ensemble, these have their own ORCHESTRA, ENSEMBLE and CHOIR fields.

The ARTIST field is constructed from the other fields to store the best value for you. You can use from various options but the default is MAIN PERFORMERS; ENSEMBLE/CHOIR/ORCHESTRA; CONDUCTOR

No, it happens as part of the MusicBrainz match. Its not a separate task that you can apply to any title.

[quote=MDE]
I see there is an option to remove the work from the title in “Remote Correct”, but I don’t like that as most players won’t then show the work (iTunes now being ahead of the game now on this one). The MusicBrainz style guideline is Title=Work: Movement. [/quote]
Agreed, that it is why it is disabled by default.

Thanks for the thoughtful reply, Paul. I have come to the conclusion that, to meet my requirements, Jaikoz would need to include a scripting capability. What I have in mind is something pretty identical to the Picard tagger script. This could be included as an option on “Remote Correct” (at least for MusicBrainz), but also (and as an important enhancement over Picard) as an option in “Local Correct”.
I’ll keep an eye open for any such developments.
Mark

Mark, it would helpful if you could describe exactly what you need to do then I can consider if a> it is already possible within Jaikoz (in a way you had’t thought of) or b> What I would need to do to make it possible.

Thanks Paul. I am documenting this fully in the Muso forum and will post a link when it is done.

See http://musoware.com/forums/viewtopic.php?f=2&t=379 to see what I am trying to achieve. Picard does this (mostly) adequately for metadata imported from MusicBrainz (see https://picard.musicbrainz.org/docs/scripting/ for the documentation) but does not have the ability to amend the tags in stored files via scripts (only direct editing of each tag is possible).
What I am suggesting is a similar facility in Jaikoz, so that a script could be written for optional execution when importing from MusicBrainz (say a checkbox and a text box as an advanced Remote Correct option). See Options->Options->Scripting in Picard for an example of how this would look. A similar facility could also be provided in Local Correct as a separate action and this would be a significant advantage over Picard. The scripts would not necessarily be identical.

HI MDE,

I do think tagger script would be useful, we can already allow users access to the full range of Javascript expressions to construct filenames from metadata, but we don’t yet have the ability to write scripts to set metadata from another field. Something I have long wanted to do was support plugins which would give access to all fields, but sadly not yet done.

However may I humbly suggest you have overlooked two aspects of Jaikoz

  1. Jaikoz allows you to export metadata as a spreadsheet or csv file, edit the metadata in a spreadshseet tool such as Excel and then import the data back in and save it. So if could apply scripting to the file outside of Jaikoz and then simply import it back in and save changes, I think this goes some way to what you want.

  2. Many of the issues you describe on the musoware forum have already been solved by Jaikoz. So for example you say:

[quote]Artist. The MusicBrainz classical style guideline says to use Composer in the Artist field. I suspect this dates from a time when was not widely supported. It is completely unnecessary (and unhelpful) to do this in Muso and in quite a few other apps also
[/quote]
I’m in complete agreement with you here and this bad choice made by MusicBrainz so Jaikoz uses various methods to identify a Classical release and on identification handles the metadata provided by MusicBrainz differently. So it doesn’t just use the track artist as the artist it works out who is the composer and stores that only in the composer field, likewise for conductors, performers, orchestras, choirs and ensembles. Then the Artist field is constructed according to the people/groups identified and your chosen artist mask.

This is explained further in this blog post about SongKong 4.5 http://blog.jthink.net/2017/01/songkong-45-released-with-classical-and.html. SongKong our totally automated tagger is slightly advanced of Jaikoz in terms of classical support and also contains an editable composer and conductor list of thousands of people known to only composer or conduct but the next release of Jaikoz will contain the same features.

I think you would find it interesting to try SongKong trial on your collection since you can run it over your whole collection and it will create a report showing exactly what has been identified and what metadata has been changed. No changes are made to your actual files in preview but it would more clearly demonstrate what I mean then me trying to explain it here.

Thanks again Paul. Re exporting and editing. That is a fall-back, yes, but frankly I have mp3tag if I want to do stuff like that.
Re SongKong - I am seriously impressed with how it handles classical music tagging - very much along the lines that I have been doing with mp3tag for years. But much simpler. However, there a few missing bits - e.g. Arrangers - and also it doesn’t create group sub-headers for multi-level works. That, and the fact that there are inevitable tagging gaps and errors in the source metadata, mean that “local correction” is sometimes needed to supplement the external sources. It is for that reason that I turned to Jaikoz rather than SongKong as I hoped it might combine the best of both worlds. However, as you point out, the classical music tagging is slightly less advanced. I’ll continue to look at both of them as there are a number of ways of tackling the problem. At the moment, however, it looks like I would need to supplement either of them with mp3tag, which adds complexity.
Mark

I meant exporting and then applying a script/macro to the data rather than manual editing. I suppose I’m trying to work out what actual scripting you’ll have to do - although Im sure there is some.

A few other things you might not know about

SongKong/Jaikoz does store the Arranger(s) in an Arranger field

Where MusicBrainz has a recording linked to a work that is a part of another work and so on then SongKong/Jaikoz does store this. The work directly linked to the recording is in a field called MusicBrainzWorkComposition, the very top most Work is stored in MusicBrainzWork and the levels in between are stored as MusicBrainzWorkLevelN where N can be from one to six.

Me too!

Thanks - I’m still learning!

[quote=paultaylor]Where MusicBrainz has a recording linked to a work that is a part of another work and so on then SongKong/Jaikoz does store this. The work directly linked to the recording is in a field called MusicBrainzWorkComposition, the very top most Work is stored in MusicBrainzWork and the levels in between are stored as MusicBrainzWorkLevelN where N can be from one to six.
[/quote]
I just ran Bach: Well-tempered Clavier (Angela Hewitt 1997edition) to test this. SongKong report provides all the levels, but since I can’t save in the trial, I can’t see the tags themselves. Jaikoz does not appear to find the various levels (didn’t seem to find the work id).
Then tried Handel’s Water Music (City of London Sinfonia / Hickox 1986). Similar result. Perhaps I have some Jaikoz settings wrong.
BTW the actual tags are
Top level: MUSICBRAINZ_WORK
Intermediate levels: MUSICBRAINZ_WORK_PARTOF_LEVELn where highest n is the highest intermediate level
Bottom level: MUSICBRAINZ_WORK_COMPOSITION
So it would take a script of some sort to construct a “GroupHeader:: SubHeader” format, with some assumptions about where to put the “::”.
Looks promising, though.

There are various small improvements/bug fixes that are in SongKong and not yet Jaikoz so it must be one of them. You can see the list of fields and the metadata added in SongKong trial, but yes you cant actually examine a file with the saved tags, but the end of the Help file does list the exact field names used for the different supported audio formats.

SongKong also has the Work field, this is not currently released but in the new version out next week for a multi-level work the work field should contain all levels of the work, but they would not be separated by a double colon. But could do this with Find and Replace rather than needing a script ?

I am away this weekend so apologies in advance if I don’t answer any follow up questions before Monday.

Hi Paul. Still trying decide which of SongKong or Jaikoz is going to meet my needs best. There are pros and cons (and still the odd query outstanding in other posts). I’ll see how the next SongKong release looks and whether some scripting is still required.
Then I’ll get the full version, test and document a suggested process for Muso users, and check that with you before posting back in the Muso forum.
Mark

Okay great, well the good news is there should be a new release of SongKong out before the end of this week.

Have gone for SongKong as that is most advanced for classical music. However similar comments apply to both apps.
See http://musoware.com/forums/viewtopic.php?f=2&t=387&p=2903#p2903 for my first take on Muso-SongKong-MusicBrainz integration.
At the moment an Mp3tag action is required to join the dots. A scripting capability in SongKong/Jaikoz would eliminate this and allow users to implement different variations (and link to different library managers / players) :wink:

Thankyou for that, I’m not familiar with Muso(ware) but from the screenshots it looks really nice so I will try and spend some time with it.

Now from your post I get the gist of what you are doing but I have a few questions.

  1. You say SongKong has to have the right options setup but I couldn’t see whee you explained which options needed modify
  2. In the Muso Configuration screenshot I can see the first column is the name of the Muso field (unless custom in which case 3rd column), the 2nd column is the SongKong metadata field. But does the ‘;’ literally mean store a ‘;’ between first and 2nd value of and wouldn’t it be better to store in own custom fields, for example arranger in own arranger field rather than adding to composer field.
  3. The mp3tag script is clearly to do with setting movement/works but what exactly is it doing, perhaps you could give some examples of input and output.

Also, I registered on the musoware forum and tried to post on the http://musoware.com/forums/viewtopic.php?f=3&t=382 to help the devloper but I dont seem to have permission to post (nor to see the images that I could see as guest).

Anyway, this google spreadsheet https://docs.google.com/spreadsheets/d/1afugW3R1FRDN-mwt5SQLY4R7aLAu3RqzjN3pR1497Ok/edit?usp=sharing shows both Picard and Jaikoz/SongKong tag mappings for different audio formats, shoud be useful.

Looks like the musoware site went down. Still down now.
Re 1. The main choices are what to put in Artist and to not overwrite AlbumArtist. Re 2. Your understanding is correct, but Arranger will not get displayed unless it is added to the composer field (but it would be available for use in a hierarchical search as a custom field). Semi-colons etc could be avoided by creating new tags in Mp3tag, if desired, but originally I was trying to make it work without scripts. Re 3. It is creating up to three levels of work, as far as possible without repeating the higher levels, combining the top two (if there are three) with a double colon. If the MB_ tags are missing it just uses Work and Movement. If Movement is different from the bottom level (case-independently) it adds it in {}. The fancy regexp is to ignore punctuation and spaces when eliminating the “higher level” work text from the lower levels - MusicBrainz data is frequently inconsistent in this regard.
It’s work in progress - I’ll add a bit more to the Muso post once the site is back up.