SongKong Jaikoz

SongKong and Jaikoz Music Tagger Community Forum

multiple genre support question

I noticed some of my genres have multiple genres in them but are showing up as one long genre in jaikoz separated by semi colons.

For example, Amphetamine-Fueled Streetgrass; Outlaw Country; Streetgrass; Bluegrass; Alt-Country

I am guessing this probably is from a tagging program writing the multiple genres incorrectly, Media Monkey’s genre finder extension and picard with the last.fm plugin write these incorrectly. The question I have is there any way to have jaikoz detect the semi colon as a genre delimiter and then allow me to save the genre information the correct way? Basically fix my genre tags from other evil programs so they follow the standards. If it can, that will be yet another field that jaikoz will save me many an hour on fixing :slight_smile:

I did a bunch of research and found that I can fix the tags by installing foobar2000 then right clicking on songs and choosing “Properties”, then right clicking on genre and choosing “Split Values…” So I can now fix my tags by loading them in jaikoz to find out which files have this bug, then loading them into foobar to fix them, then loading them back into jaikoz to re-save them (cus i like how jaikoz follows standards and saves the files).

Is there a way I can do all this in jaikoz without having to use a 3rd party app? If not can you consider this as a feature as it would be a great additional tool to already go with all the great tools jaikoz has?

Its quite a specific request, I could certainly do this, but it reminds me that implementing a way to plugin code/scripts into Jaikoz would be really useful then users could implement their own ideas themselves.

I think the original program may have taken the idea form Foobar but misunderstood what it does.

In Foobar 2000 you can add multiple values to any field by separating the values with a semi colon, then behind the scenes it writes the values not with a semi colon but a null char.

Jaikoz understands the null seperator idea for genres so will display the genres correctly as multiple genres, i.e the first one is visible in the datasheet, and just to the left of it is a little number indicating the total number of genres for that field, these additional ones can be viewed or added to by double clicking on the box.

However for other fields such as album, title ecetera it would just take and display the first value - certainly in the past there wasn’t much call for multiple values for most fields but that is changing.

I could implement the GUI in two ways, either as I have done for the genre field,(but would be more like the ID3 Edit/Comment field for free text value) or as Foobar does it by. My way looks neater but the Foobar way is quicker and more flexible to use because you can see all the values in a field at once without having to open up a popup, the main disadvantage is if you actually wanted to enter a ; as part of the value you wanted to add you have a problem

What do people think?

One reason why I haven’t added support for multiple values to all fields in the past is that the null seperator idea is not part of the ID3v22 and ID3v23 specs, it only came in with ID3v24 but seeing as Foobar is no ubitiquous I dont see its a big problem to implement this non-official behaviour. I also need to consider how to implement for other formats.

Going back to the original question, if we implemented re the Foobar way and just did a Force Save on the file then the ‘;’ would be reevaluated as field separators and it would be correctly converted to a multiple value field. If the value contained some other separator such as ‘/’ or ‘,’ you could also use the Find and Replace function to change it.

I think sticking to the standards is a good idea. When ever one deviates from the standards it creates more compatibility problems with other applications. I like how you currently have the fields layered on multiple fields, and can still easily view any genre by just looking at the Column Browser. My issues with the multiple genres not being split correctly are from other applications not following the standards.

I like the idea of having the ability to do a force save in jaikoz to fix semi comma delimiter fields or maybe even as a tool, since a lot of programs like to deviate and use semi-commas instead of null values. It would be best if jaikoz didn’t by default try to display them as properly separated genres when they are using a different non standard method. Otherwise it would be hard to quickly view which fields are formatted correctly and which are not. Maybe leave it as an option to enable non standard delimiter view.

One of the main reasons I use jaikoz is to get my library into shape and to fall within the standards specs. The easy spread sheet like view and the tools make this app a really powerful tool to do this. I then use other apps to manage my library and play my music, some of which can be real picky when the tags are not correct.

Actually I just noticed that when I load an album that has songs with multiple genres, only the top one shows up under the Genre column in the Column Browser window. Would be really helpful if all the genres showed up in there.

Yes, I’ll get this fixed.

[quote=greengeek]I think sticking to the standards is a good idea. When ever one deviates from the standards it creates more compatibility problems with other applications.
[/quote]
Yes Im glad you appreciate that, I also try hard to get maximum interoperability with other programs even when they don’t follow standards. Where programs just break the standards needlessly its frustrating. But I have sympathy with Foobar using null separators for ID3v23 because the ID3 standards are not being reviewed /updated and the common consensus is that for max compatibility you should use ID3v23 , yet ID3v23 doesn’t offer a way to do multiple fields, except for the badly designed bracketed notation for the genre field that we currently use internally in Jaikoz.

I’m not suggesting that we should show non properly separated values as if they are properly separated, this is a User Interface question only. I’m asking wouldn’t it be easier to add in multiple fields by just adding them into one field separated by a ‘;’ rather than having to open the popup to add additional values in. And in the current UI we can only add in multiple values for certain fields such as Genre, there is no facility to add multiple fields to artist for example.

However you make a good point about how we could differentiate between a null separated list that we display as a “value1 ; value2” and a single literal values that has been entered in another program as “value1 ; value 2”

[quote=greengeek]
One of the main reasons I use jaikoz is to get my library into shape and to fall within the standards specs. The easy spread sheet like view and the tools make this app a really powerful tool to do this. I then use other apps to manage my library and play my music, some of which can be real picky when the tags are not correct.[/quote]
Yes right Jaikoz was always designed as a tagger for sorting out your music ready to be used by your favourite music manager/player, its NOT a music manager in its own right.

Good point. I have noticed the same thing that a lot of programs will write the 3v23 multiple genre tags the same way as 3v24 which isn’t to bad as most apps seem to support it. My main concern is that there is still some way to be able to differentiate between ones that are tagged in this way and ones that don’t use a null value and are just one big run on genre that has semi colons in it. Media Monkey is a good example of how not to do it. It does a great job of separating the multiple genres in the view, but doesn’t actually fix the tags or write the tags correctly. So both proper and non proper tags show up the same. It isn’t until I try to use them in some of my apps, such as some of my web streaming apps or jaikoz, among others, that they then show up as one ugly long run on genre.

I am not sure far as display goes, if showing them all as one line compared to a layered view would be easier to edit or view. Some tags are quite long, and if you have a good 5+ long tags on a single line in the view, that will create for a lot of extra horizontal scrolling. I can see the pros and cons of both the layered and a horizontal view. Layered would be cleaner, but a horizontal view where they all show up one line would be quicker to see what is in where. Using a similar view in media monkey it really isn’t any faster to edit, as one still has to make sure that the proper separators are in place and if you want to remove or edit an entry, you have to make sure you have it highlighted just right. It is however faster to view. So I guess they both have their pros and cons.

I apologize for digging up this old topic. I just love how jaikoz fixes so many issues that so many other taggers or players create. This is one of the few things I wish jaikoz could also fix.

Most of my music is getting the genres all messed up from mediamonkey and picard as well as a handful of other taggers that don’t know how to properly treat multiple genres. They keep throwing in multiple genres as a single genre separated only by semicolons, instead of the correct way jaikoz does it. ie, 1 genre called “country; alt-country; traditional country” instead of divided into 3 separate genres.

Any ideas how I can resolve this issue, short of trying to get all these other products to fix their taggers, which don’t have nearly as good support as yours does? I would love if jaikoz could come to the rescue and let me load 10k+ files at once and auto fix all these. Like a tool, or an optional task I can set in the auto corrector. :slight_smile:

Nothing like having over a few thousand genres created by all these other taggers that have to lump every combination of multiple genres all together into one big single genre line. :?

Sorry for the late reply but I think I have a solution for you.

Assume your genre field shows as

in Jaikoz.
Select Edit/Find and Replace from the menu
Put ; in the Find Box
Put \u0000 in the Replace Box
Change All Columns combo to Genre
Select Replace All

This will replace all occurrences of ‘;’ with the null character.
When you look at the genre field now in Jaikoz it will show

but if you close the files and then reopen them in Jaikoz it will then decode the null separator properly and
show

with the other genres available by clicking on the button

Awesome! Thank you. Just tried it and it worked great! This will save me TONS of time, plus allow me to uninstall one other app that I had to keep installed just for this one feature. paultaylor and Jaikoz to the rescue again :slight_smile:

Sorry for resurrecting this thread, but my question is directly related.

Often I will want to apply multiple genres to every song on a release, and I have only found one way to do that in Jaikoz:
double click on ‘genre count’ icon
type in genres and click ‘add’ one by one
click save
repeat for every track

Copy/Paste grabs only the visible (first) genre, and so that doesn’t help.
Is there currently an easier way to accomplish this?

For what it’s worth, I agree whole heartedly with greengeek concerning the need to differentiate between null separated and semicolon separated genre values - I am as adamant about spec as he is, and it’s why I love your program.

That said, your point about being able to view and manipulate multiple field values is spot on. It seems you’d probably want an actual semicolon inside a given genre name a great deal less often than you’d want to easily and quickly create multiple genre fields. That would seem to make ‘;’ an ideal representative character. It would also be in line with the behavior of less ideal taggers (great for usability), while creating the opportunity for a quick, built in fix (great for utility).

Your thoughts?

Use Paste All Values instead, with hindsight maybe this should be the default behaviour of Paste, and add a Paste First Value Only option.

I’m in agreement with you, but unlikely to make any changes to this anytime soon.