Home User Forums SongKong Music Tagger Jaikoz Music Tagger Albunack Music Service

Friday, 15 January 2016

Jaikoz 8.4.2 Released

Today we release Jaikoz 8.4.2, this is a small release with a few bug fixes and minor improvements as listed below, what you'll notice is better matching in certain circumstances.

There is also an improvement that allows saving to an OGG format file which has a ID3v1Tag at the end of the file. ID3v1 is used by the MP3 format and should not be added to OGG files, but certain tools are doing so anyway, Jaikoz can now handle such files.

  • [JAIKOZ-1100] - Album derived from folder is persisting even when single song was not eventually matched
  • [JAIKOZ-1105] - Multiple Songs Not being Matched - One song at a time will match
  • [JAIKOZ-1097] - queryByMetadata function fails if no artist could be derived from metadata
  • [JAIKOZ-1099] - Songs in iTunes UnknownArtist/Album folder can be treated as a single release potentially causing timeout
  • [JAIKOZ-1108] - Unable to save changes to .ogg file which has illegal ID3v1 tag at end

Now work begins on adding automatic mood identification as we have already done in SongKongPro

Thursday, 14 January 2016

An even easier way to shorten audio filenames with Functions

In the previous post I showed you how you can reduce the length of the filename so less than the maximum allowed. This can be a particular problem for classical music and be useful for better compatibility with other applications.

But one problem with this approach is you have to check the length of the field first and then only substring it if its too long, because if it is not long enough substring() would give an error. This can make more complex rename masks a little unwieldy.

This code checks the album field length is greater than 100 and if it then substrings it otherwise it just outputs the value as is.

(album.length>100 ? album.substring(0,100):album)

1. So lets make this simpler by creating a function, open up your rename mask for editing and then select the Add button at the bottom of window,

2. Now create the following function as shown in the window, then select OK.

function substring(value,length){
     return value.length > length ? value.substring(0, length)  : value;

 3. Now we can use this new function in any rename mask, we simply put substring() around any value we want to limit the length of, and no longer need to check the length first.

i.e. here we use substring on albumartist, artist, title and year fields.

ifnotempty(substring(albumartist,50),' - ')
+ ifnotempty(substring(album,50),' ')
+ '(' + substring(year,4) +')/'
+ ifnotempty(pad(trackno,2),' - ')
+ ifnotempty(substring(artist,50),' - ')
+ substring(title, 50)

4. You can also use substring to simply truncate the total replaceable path by wrapping substring() around whatever you want to truncate.

i.e convert this mask:

ifnotempty2(albumartist,artist,' - ')
+ ifnotempty(album,' - ')
+ ifmultidisc(ifnotempty(pad(discno,2),' - '))
+ ifnotempty(pad(trackno,2),' - ')
+ title

to be no longer than 200 characters with:

(ifnotempty2(albumartist,artist,' - ')
+ ifnotempty(album,' - ')
+ ifmultidisc(ifnotempty(pad(discno,2),' - '))
+ ifnotempty(pad(trackno,2),' - ')
+ title),200)

Sunday, 10 January 2016

Limiting long filenames when matching Classical releases

The Problem with Long Filenames

SongKong and Jaikoz both allow you to rename your music files based on their metadata, and this is an important step of keeping your music collection in sync. The total file length is guaranteed by both to be no longer than the maximum allowed on your OS, for example the maximum on Windows is the relatively low 259 characters

However you may want the maximum to be shorter than that, some of my PS Audio customers have alerted me to a couple of reasons why: 

1. Classical music matched to MusicBrainz can sometimes use a rather long value for the album field because editors shoehorn extra information into album title such as additional musicians involved as here:

or to capture additional details such as here:

According to the style guidelines this should not usually happen but sometimes it does

2. Some players such as JRiver Media Centre just do not like filenames this long

My proposed solution

So I added setting a user defined limit for the filepath length option to my list of improvements to make, this would simply truncate the filename if it was too long.

A Better Idea

But then another customer JazzNut came up with an even better idea, would it be possible to add this rule to the rename mask ?

Yes, of course - this is how I did it in SongKong

1. On the File Naming tab, set the Filename Masks dropdown so it is the same as your chosen rename mask, and open it up for editing by selecting the Edit button. 

2. Then use the length function to test the length of the album field, and the substring function to output a truncated version of the album field.

i.e (album.length>100 ? album.substring(0,100):album) to give new mask, then select OK  to save the changes.

3. Repeat the process to modify the compilation rename mask if this is different to the rename mask

You can use this approach to limit the length of any field, artist and title fields can get long as well, you can use the same approach in Jaikoz as well.

Jthink blog Jthink Facebook page google_plus Jthink YouTube channel Email Paul at Jthink Subscribe to Weekly Newsletter