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

Song Tagging and Metadata Blog

Sunday, 17 September 2017

SongKong 4.11: Bug Blasting Release

Bug Blasting


Today we release a new version of SongKong. Not many new features in this release but we have blasted away thirty  bugs. Many of these were obscure ones that had only  been reported once, but there were some larger ones in there as well.

We hope with the next release we should be able to virtually eliminate all the remaining bugs. This should help reduce time spent on ongoing support and let us concentrate on some really cool new features.

OSX iTunes Bug


We have found that the later versions of OSX Sierra no longer have the Java Applescript  library installed. SongKong requires this to update iTunes, and it wasn't accurately reporting the issue either. This new release comes with the missing library as part of the SongKong installation.

 

Saving Unchanged Songs

Too often SongKong was re-saving songs that had not actually had any changes since the previous Fix Songs task. This could make the report a little confusing, and increased the total processing time, especially if SongKong was configured to  update iTunes. We have now fixed this, note in the report the Songs Saved bar chart only shows files that have actually been changed. It is the Songs Completed bar chart that shows the successful completions, to highlight this it is now the last bar in the bar graph.

New Feature:Windows Path Length option

We have one new feature in this release (for Windows users only). On Windows the file path is limited to 259 characters, but this is only a limit of Windows not the underlying file system and it can be rather limiting sometimes, for example Classical releases.

Whilst is usually wise to adhere to this limit for files that are intended to be usually be used on Windows it is not so necessary for external or networked drives that are only temporarily being accessed via Windows.

For example you may be using SongKong on Windows to access a Linux NAS drive. Whilst SongKong can run on Linux a NAS will not not let you use the GUI, you'll be limited to using command line. And in some cases it will not be possible to install SongKong in the first place, so this is quite a common scenario.

You can use the new Limit File path to Windows Explorer 259 Character Limit option to not set the limit, or set the limit only for local NTFS/FAT32 drives, this is the default.




The Full Issue List

You can see a full list of fixes in this release here

Thursday, 31 August 2017

Jaikoz Apple Mac Customers, fix for iTunes Updating issue

After releasing Jaikoz 9.2.0 a few Apple customers reported they were no longer able to update iTunes, getting the following error reported
 


But despite testing against exactly the same version of iTunes I was unable to reproduce the error. But then after upgrading my secondary Mac (Mac mini connected to my TV) to OSX 10.12 Sierra I did start getting the error. The previous version (Jaikoz 9.1.0) was continuing to work indicating there was indeed an error with Jaikoz 9.2.0

This stumped me for a while since I had already double checked that I had made no code changes to the iTunes part of the code base. I delved further and realized that the error message was misleading the problem was not particular to creating a playlist folder, it was larger than that: Jaikoz could not find the Applescript Engine.

I then remembered I had modified the build script, and in doing so had inadvertently dropped the required AppleScriptEngine.jar from being part of the final release. Its always the 'minor' changes that cause the problems.

This file is installed as standard as part of the legacy Apple Java 6 version so my development machine continued to work but the file was not on my second machine, it came with Jaikoz 9.1.0 but not not with Jaikoz 9.2.0.

So I hope some of you found that explanation diverting, and we have now fixed the problem.
 
If you simply download from Jaikoz for OSX and install then this issue will be resolved. I have not done a full release for this as this introduces further complexities. Jaikoz is still version 9.2.0 but if you go to Jaikoz:About and look at the Build Date it should now say 31 August 2017 rather than 31 July 2017

 


Wednesday, 30 August 2017

Twonky UPnP with SongKong

SongKong for Melco is not restricted for use by only Melco customers. But it has been designed in conjunction with Melco to solve the some of the issues that Melco customers have had with their metadata.

We have concentrated on getting it working seamlessly with the MinimServer UPnP server, since this is the most flexible UPnP server I have found, best able to utilize SongKongs' superior metadata coverage.

Melco already have a way to install MinimServer on the Melco and is expected to be the preferred option for Melco customers. But currently the default UPnP server shipped with Melco is Twonky

Twonky Support

As a Melco user it is likely that your music files are either in Flac or Wav format. Please be aware there are some issues with Wav format if using Twonky. 

Twonky has Limited Wav Metadata Support

Twonky only supports the limited Wav Info metadata instead of the richer Wav ID3 metadata. So it will only utilize basic fields such as artist, album and title


Twonky only Reads Wav Artwork from a File

By default SongKong embeds the artwork into the file itself, just like all other metadata, this is the most flexible approach. But for Twonky to see this artwork you need to also save this to the album folder as a folder.jpg file

This is easily done by setting Save artwork to Filesystem to a Yes option. Either the  and overwrite existing artwork files in folder or but do not overwrite existing artwork files in folder option depending on whether or not you want to overwrite any existing artwork. Then ensuring that Saved artwork filename is set to folder



Twonky on Melco Over-Zealous on Monitoring

If SongKong is used to update your songs directly on the Melco via a network share then Twonky can be over zealous and start rescanning as soon as it notices any changes instead of waiting until SongKong has completed. 

This extra processing will slow down SongKong so it is best to temporarily disable Twonky from running on Melco whilst updating from SongKong.
 

Friday, 18 August 2017

German SongKong review by HiFi Statement magazine


I do not speak German myself, but prospective German customers may be interested in this in depth review of Songkong by Hifi Statement magazine

Wednesday, 16 August 2017

Please read:Jaikoz and SongKong currently incompatible with Apple High Sierra Beta

This affects all Mac users of Jaikoz and SongKong, Apple have recently released the beta of their latest mac operating system High Sierra. Unfortunately this update currently has a bug that means that the main toolbar will not display for any Java based application.

Here is one such example

Hopefully this will be resolved soon. But not currently clear whether has to be resolved by Apple or Oracle, we had similar issue with Windows recently that required a change to be made by Oracle


So please be advised that if you depend on Jaikoz or SongKong please do not install High Sierra at this time.

Wednesday, 2 August 2017

SongKong 4.10.1 released solving issue with new licenses

In the last release we moved the license information from songkong.properties to license.properties as a first step towards allowing customers to have multiple configurations. 

This worked fine for existing customers but there was a problem for new customers. When a new customer entered their license details the changes were not actually saved to the license.properties file, so they had to be re-entered on each restart.

Sorry about that, this release fixes this issue.

It also fixes a couple of minor metadata issues

Full details on the News page
 

Tuesday, 1 August 2017

Jaikoz 9.2.0 released on July 31st 2017

Today we release a new version of Jaikoz.

This has some important improvements and fixes. 

 

AcousticBrainz Direct Lookup

Before this release Jaikoz always used a cached copy of all the AcousticBrainz metadata on Albunack. So if a MusicBrainz song had been analysed with AcousticBrainz to determine its acoustic properties (such as its BPM or the key it is played in) that information could be added to that song with Jaikoz. But AcousticBrainz have not been making the new data available so now we have switched Jaikoz to lookup AcousticBrainz directly.

This should mean that you can now update many more of your songs with AcousticBrainz metadata.

Classical Lists 

In this release we have have improved the algorithm that identifies if a release is Classical or not. But we realize that some releases are difficult to categorize so we we have added modifiable Classical lists

One way that Jaikoz identifies classical releases is looking for releases that have credits to particular people known to work only on Classical music. This list is available within classical_people.txt, here is a small section, each line has the MusicBrainz Artist Id and then Artist Name

               1f9df192-a621-4f54-8850-2c5373b7eac9 = Ludwig van Beethoven
               d01c08ad-f09f-4396-b8a7-e27ae146ea27 = Ludwig von Széchényi
               5a4ae8d0-7ee4-4e83-bb89-1cfc9cf63d8b = Ludwik Osiński
               676bf1b0-b834-4117-86d2-ceba42fac051 = Luigi Badia
               688986c3-da7b-4465-92cb-f4736c94f2cd = Luigi Balestra
               cc272df6-a476-4d30-9ede-a47db04d8813 = Luigi Bassi
               5c1a3f8f-d5e5-4dcd-9e44-9443f06bb77d = Luigi Boccherini
               d6077dc7-7bdb-4cc8-9425-fb80bf2dff41 = Luigi Caracciolo
               375d52ad-5b7a-4f96-80e2-6d9ad13f5160 = Luigi Cherubini
               63b22cde-9b11-4465-83bf-ecf374eb490e = Luigi Gordigiani
           
The term Classical is used here in the most general sense so that anyone who died before music could be recorded is included plus Classical composers and conductors of the 19th and 20th century, in total there are about 6000 people listed. If you are finding that certain releases credited to a particular person are being classified as Classical when you do not want them to be you can search this file for that person and remove that line, you can also add people to this file using the format MusicBrainz Artist Id = Name

The first time you start Jaikoz the classical_people.txt file is copied from the installation folder into the user preferences folder, and this is the file that Jaikoz will uses so you'll need to edit the file in this location for it to have any effect. For OSX this is Library:Preferences:Jaikoz, for Windows it is C:\Users\username\Jaikoz and for Linux it is $HOME/.jaikoz/prefs

There is also a classical_composers.txt file, like all automated music taggers Jaikoz is always dealing with incomplete databases, a particular problem for classical music is that the database may have the list of credits for a release but not their particular role, e.g. Is Person B a composer, performer or conductor. Jaikoz has created a list of people who principal activity is composing so when we find this person credited on a release we can usually assume that they are the composer even if they do not have a composer credit on that particular release.

The smaller classical_conductors.txt list works the same way for conductors, both these files can be edited in the same way as the classical_people.txt file in order to fine tune your classical metadata requirements. If a person is a composer and conductors (or performer) then they will not be included in the composer/conductor list unless the vast majority of their credits are for one particular role.

The not_classical_release.txt list is an exception list to specify releases that should never be considered a Classical release. Some releases are borderline Classical and Jaikoz algorithm can sometimes get it wrong, adding a MusicBrainz Release Id and a title to this list ensures that Jaikoz does not treat these releases as classical when using its identify classical algorithm.

Note, none of these files can be edited directly with Jaikoz itself, just use your favourite text editor.


Bug: Multiple PERFORMERS not being saved to Flac

This field can often have multiple values, but there was a bug preventing multiple values from being saved for the FLAC format


Bug: Windows 1730 God Mode Bug

A bug in Java was exposed by a new release of Windows, Oracle have now fixed Java and this version of Jaikoz has been updated to use this version.


Bug: Classical Album with two different album artists set for different tracks

It was possible for Jaikoz to tag Classical releases so that the album artist was not set consistently. This can cause issues for players and hence the album artist should always be set consistently over an album.



A complete list of the improvements and fixes can be found here

 

Monday, 24 July 2017

SongKong, another way to install License

The usual procedure to install a SongKong License is to

  • Start SongKong
  • Select File:Update License
  • Copy/paste the three lines from your license email into  the license dialog



This is fine but with SongKong 4.10 we moved license details into a new license.properties file. You can now edit the file  directly instead. This can be useful if you are running SongKong without using a Gui such as on a remote linux server, or if there is a license issue.

Simply open the existing license.properties file in your User Folder with your favourite text editor and replace the three lines with the new values

licenseEmail=a.nonymous@supermail.net
licenseKey1=30224bd4777210c7fb43352665f5dcdeed029fedded0
licenseKey2=ce302142665f5dcdeed029fedd65fe7eedd957e507be


If no such file exists just create a new license.properties file and add the three lines, then start SongKong  and it will use your new license details.

What is the User Folder

The only difficulty can be finding the SongKong User Folder, this is not the same as the Installation Folder. The SongKong User Folder is where we store your user specific settings, and this location varies for different operating systems.


Windows

On Windows the SongKong User Folder is C:\Users\username\AppData\Roaming\SongKong where username is your username. But the AppData folder is hidden by default, to see it you need enable Show Hidden Files on Windows Explorers View tab

See how AppData appears when you enable 
Show Hidden Files

AppData Missing

AppData Visble

Windows procedure is:
  • Navigate to  C:\Users\username\AppData\Roaming\SongKong
  • Edit license.properties and save
  • Start SongKong 

OSX

On Macs the SongKong User Folder is C:\Users\Paul\AppData\Roaming\SongKong

But the Library folder is hidden by default, to make it visible
from the Finder hold down Option Button and select Go menu, then it will appear in the list







OSX Procedure is:
  • Select Library from the list 
  • Go to Preferences:SongKong folder
  • Edit license.properties and save 
  • Start SongKong


Linux

The SongKong User Folder  is the .songkong folder within the Installation Folder. Folders beginning with a dot are not shown in linux with a regular ls command, instead you need to use ls -a to see them


Linux procedure is:
  • cd .songkong
  • Edit license.properties and save
  • Start SongKong
 

Wednesday, 19 July 2017

SongKong 4.10 Release, 19th July 2017: Support can now be sent directly from within SongKong itself

With this new release we have a mixture of small improvements and fixes.

Create Support Files


Notably we had an ongoing issue with SongKong support files that they could be too large to send by email, so then customers had to use a 3rd party file sharing service such as DropBox and if they did not have such a service setup already this could be difficult. 


Now  Create Support Files uploads the support files directly to the JThink server, and an email notification is sent to me informing me when it is done. This is much simpler, but it is still helpful if this is the first communication you have had with Jthink to send an email to support detailing the issue and why you have sent the support files.


license.properties 

Your license is now stored in license.properties rather than songkong.properties. This change should occur unnoticeably. But it paves the way to allowing multiple different SongKong configuration files in the near future, for example we could have a configuration files for using SongKong with MinimServer and another for use with iTunes.


Fix Song Preferences

We have reduced the number of tabs from twelve tabs to eight tabs. Hopefully this should be a bit less daunting for new users, remember the defaults work well for most customers.



Windows 1730 God mode bug

The latest version of Windows exposed a bug in Java, for some users this caused a serious issue when opening folder dialogs. Oracle fixed this a while ago but we have been waiting for some time for them to actually release the fix, but now they have done so and it is incorporated into this release.

Classical Track Artist Error

For Classical Music the artist field was not always being set with the correct value according to the Classical Track Artist option, this is now fixed.


Add composer to album title

We have improved how this option works so that it acts more sensibly when your songs are matched to just one disc of a multi disc multi composer box-set, and we have also improved adding composers from multi composer single disc releases as well.


MP4's with 64bit data lengths

Usually Mp4s use a 4 byte field to store the length of the audio metadata, but it has become possible to use an 8 byte field instead. This is only required when the data is longer than 4GB and is primarily for use in video but some applications use this field for audio that is less than 4GB. Until now SongKong could not read such files, but now it can.

Tuesday, 18 July 2017

Organize songs by Original Release Year using a new SongKong Rename mask

I received the following request on the forum today:

I am looking to take my entire collection and using SongKong fix, get rid of dups, and then finally end up with all songs characterized like this:

[Songname][Artist][original release year]

and have each song go into a separate subdirectory that is the year

So I would have subdirectories that would look like this:

1960
1961
1962
etc.

and in each subdirectory would be all songs that were released that year.

Is this doable? If so, how?

If not, how close can I get before having to do manual work?

Thanks.

Creating new mask is a common request so it is worth going through the steps

Activate File renaming


By default files are not renamed, so if you want this on the Basic tab you need to set Rename Files based on Metadata to something not leave it as No. I would usually suggest setting it to Yes if matched to a release but since the customer is not interested in releases only songs a better setting would be Yes if matched to a release or a song. You can find more about this option in this article


Create a new mask


Then go to Filenaming tab. Although SongKong comes with a number of predefined mask we do not have this particular one so select Add to add a new mask



Now give the mask a Name that will help you recognize it

Original Year/Title - Artist - Original Year

and then enter the Mask itself

ifnotempty2(substring(originalyear,4),'unknownyear','/')
+ ifnotempty(title, ' - ')
+ ifnotempty(artist, ' - ')
+ substring(originalyear,4)




Then tab out of the mask and you can see an example mask is now displayed showing how files would look using this mask. 

The substring function shortens a value but also allows for when the value is shorter than the length you want to shorten it to.

The ifnotempty function lets you specify a value and a separator value, it only outputs anything if the value is not empty.

Since some songs may not have an original year we provide an alternative of unknownyear and make use of the ifempty2 function, this provides a second value to use if the first value is empty.


Click OK to create the mask

Use the Mask


Now we need to actually use the mask, in this case we want to use the same mask for all our songs so we need to select it for both the Rename Mask and the Compilation Rename Mask



Run Fix Songs

Select Start to fix your songs, and as the report shows the files are now organized by original year with an unknownyear folder for when the year is not known.



SongKong rename masks have full access to your songs metadata, and it makes use of the Javascript Expression language so there is no limit on how complex you require your rename mask to be.

Tuesday, 11 July 2017

MinimServer with SongKong Part 12: Showing Composer in Group name using DisplayFormat option

Part 11:MinimServer Configuration

SongKong has an option to always add the composer name to the album, even if it not listed as part of the album name on the online databases that SongKong uses.

So as long as you have the Add Composers to Start of Album Title enabled 



You should get the composer(s) listed in the album title
such as here.


But composer name is not added to the MinimServer group so if you just elect to play a group the Composer is not displayed

MinimServers tagFormat option (on the second tab of MinimServers configuration) lets you change what is displayed when playing music using the displayFormat option. Essentially its let you configure certain fields so that display different data, and since we already have the composer stored in the composer field we can modify group to display the composer and then the group as follows:

tagFormat:Group.displayFormat={$composer$group}  


 Now we can see the composer name is displayed as part of the group field.


But it would be nice if we could display it using the same ': ' separator as we use on the album name. We can do that using this value instead.

Group.displayFormat={$composer^^: $group}

This replaces the default ', ' separator with ': ' . (The ^^ indicate a prefix and suffix, we do not set them to anything so they are just left as an empty value).



The displayFormat  can be used for the following fields:

  • Album
  • Artist
  • Comment
  • Genre
  • Group
  • Label
  • Title

Monday, 26 June 2017

SongKong 4.9.1 Release, 26th June 2017

A bug was introduced into SongKong 4.9 that affected a few of you. If you have:
  • Rename Files enabled 
  • Include album name as a part of your rename mask 
  • Have albums that contain '.' character in their name
it can cause SongKong to go into an endless loop, so we needed to get that fixed.

We also fixed an issue whereby if a songs could not be loaded from a folder it could prevent any other songs being loaded from the same folder.

We also fixed some issue in the reports.
  • The Matched to MusicBrainz Song Only links were broken
  • The report was missing blue section dividers
  • The summary chart did not correctly label Matched Song only and Matched to Acoustid Song Only part of the MusicBrainz bar when hovering over the bar

Wednesday, 21 June 2017

MinimServer with SongKong Part 11: MinimServer Configuration

Part 12:Showing Composer name in Group format using displayFormat
Part 10: MultiDisc Albums

Today we provide a sample MinimServer configuration that provides the functionality discussed in parts 1 - 10.

You should consider your existing configuration and your own particular circumstances but essentially if you are running MinimServer on a local computer you simply:
  • Open MinimServer properties tab
  • Copy and Paste the values below for the correct fields
  • Run Rescan
To modify the configuration of  MinimServer running  on a remote system such as a Melco N1 you need to:
  • Install MinimWatch
  • Connect to the Melco instance
  • Open MinimServer properties tab
  • Copy and Paste the values below for the correct field
  • Run Rescan
aliasTags
artists:-artist

indexTags
MusicBrainz Album Type:Album Type, Artist, All Artists, Album_Artists, BPM, +Date, +OriginalDate:Original Date, Choir, Composer, Conductor, Ensemble, Genre, Instrument, is_classical=1:Is Classical, is_classical_copy=0:Is Non Classical,Orchestra, Performer_name:Performer,Overall_work:Work,


itemTags
composersort, conductor_sort, artists_sort, albumartistsort,album_artists_sort, choir_sort, ensemble_sort, orchestra_sort, performer_name_sort

tagOptions
Date.yearOnly.index,OriginalDate.yearOnly.index

tagValue
Composer.value.sort={ComposerSort},Conductor.value.sort={Conductor_Sort},artist.value.sort={artists_sort},albumartist.value.sort={albumartistsort},album_artists.value.sort={album_artists_sort},Choir.value.sort={choir_sort}, Ensemble.value.sort={ensemble_sort},Performer_name.value.sort={performer_name_sort},is_classical_copy.default={is_classical}

Giving something similar to 






 

Monday, 19 June 2017

MinimServer with SongKong Part 10: MultiDisc Albums

Part 11: MinimServer Configuration
Part 9: Is Classical and other boolean fields


All Albums


MinimServer identifies songs to be part of the same album if they have the same value for the AlbumArtist field and Album field. 

By default MinimServer does this check at a folder level but if your albums are organized so they traverse multiple folders you can find matching albums in different folders by setting mergeFolderAlbums to true. But I would certainly advice that unless you have a very good reason you should organize albums so that each is stored in a different album folder that is within an album artist folder.

Multidisc Albums

The same applies for Multidisc albums but MinimServer is also clever enough to identify if you have each disc in a separate folder within a main folder without you having to set mergeFolderAlbums to true. You need to ensure the discno and trackno fields are completed as well, but they always are if identified with SongKong.

But by default MinimServer displays all the tracks on the release as if they are on a single disc.

So here we have actually have a 2 disc release, the first disc has 17 tracks and the second disc has 19 tracks but MinimServer shows it as a single 36 track release.


The reasoning behind this is that for Classical releases the work can sometimes bridge multiple discs and that makes playing a single work awkward. So removing the disc boundaries solves that issue.

But I want to show the discs

But where the bridging work is not an issue, it is often preferable to show the discs. This better represents the physical release that you are already familiar with, and breaks down larger releases into more manageable sections.


Configure the Album name

Earlier we said that the Album Name must be the same for all tracks, actually MinimServer does some special parsing of the album name that means that if extra per disc information is stored at the end of the album name that MinimServer will parse it and use it to display each disc.

SongKong can add this data automatically by setting the Multi Disc Releases option to Always add Disc No to the release title


Note that the album name now has (disc 1) added.



 If you rescan the files in MinimServer you can see the tracks are now grouped by disc with track numbers per disc. Also note that MinimServer parses the extra information added to the release title but does not display it (of course it would not really be able to in a sensible way since it is different for different discs).




Using the Disc Subtitle

There is another way to show a release as multi-disc albums and this is with the Disc Subtitle field. If the disc subtitle field has a value then the release is shown as multi-disc without having to make any differences to the release title field.

Some releases have an actual disc name rather than just Disc 1.. N. For these releases SongKong will automatically fill in the Disc Subtitle field such as this one which displays as multi-disc with MinimServer.



This usually makes sense since when releases have labelled their discs individually they usually can exist as standalone work. For example in this release the album Tolerance / Bop by Blue Aeroplanes is actually a compilation of two albums previously released called Tolerance & Bop.

SongKong doesn't use the Disc Subtitle field for multi-disc releases that don't have a disc title since that would not meet the metadata standards. But if you wanted to use this approach for all your releases you could manually enter data for this field with another tag editor such as Jaikoz.



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