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

Monday, 15 February 2016

SongKong 3.23 now supports DSF audio fingerprinting and metadata tagging

This new release of SongKong has a a host of new features and improvements


Perhaps most exciting is support for the DSF format

DSF is the DSD format stored as a regular file with metadata support. DSD is a PDM encoding of audio, essentially the audio can be seen as a stream of bits that can be on or off, the more ones in a row the greater the amplitude they represent. This simple encoding can allow a better representation of the original analog sound, hence potentially better representation of the original analog recording.




SongKong supports audio fingerprinting, song identification and adding of metadata to the DSF format. DSF supports the ID3 metadata format, exactly the same as MP3 and AIFF files so this means we can store all the great same metadata including cover art as these other formats

New Options

There are a host of other new features, including the following new options suggested by some of our PS Audio customers

1. Ability to not modify Artist, Album Artist, Sort Artist, Album Artist, Composer and Sort Composer to help with Classical/Jazz collections
2. Option to use JRiver compatible field for Album Artist for Flac/Ogg files.
3. Easy option to set max file path length 


Better Matching

And now we have even better matching

1. Better matching for individual songs.
2. Better identification and matching of Multi Disc releases

3. Use of Acoustids to match individual songs to Discogs when no match in MusicBrainz. 

Monday, 1 February 2016

How to move the SongKong database to a different disk on your Mac

For the most part SongKong does matching on a folder by folder basis and because it is only working on a few folders at any instant in time this means it can usually fix thousands and thousands of songs without using that much of your computers memory.

But it does need to store your file metadata details and details of the progress it is making and this is stored on your disk drive in a database. Compared to memory disk space is cheap and plentiful, a typically computer may have 8GB of memory but 500 GB of disk space.

On OSX the database is always stored in  ~Library:Preferences:SongKong and the Library folder is usually on your local hard drive. If you have a small or full internal hard drive this can present a problem because SongKong does not give you an option to store the database somewhere else.

Empty Database


If the database has just grown too large over time use File:Empty Database to clear it out. Remember that the database is where SongKong stores the modiifed metadata allowing it to Undo Changes, so once you've done emptied it you cannot undo any previous changes.

Move Database

If you simply do not have space on your main drive for the SongKong database using symbolic links as follows:

1. Close SongKong if running
2. Run Application:Utilities:Terminal
3. Enter commands to create new database folder in your chosen location, then remove the old database folder and create a symbolic link file with the same name point to the new location.

If your new location is an external drive then it should be listed under the /Volumes directory, do not use a network directory that will be too slow. In the screenshot below I have given full example for linking to a new Database on a usb stick mounted on OSX as /Volumes/UUI, you just need to change the references to UUI to the correct location for your drive, everything else should be the same.

4. Now start SongKong, it should say its creating a new database.
5. If you like you can check it is done in the right place by running this command from the Terminal, remembering to replace UUI  with the correct path for your system

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.

i.e.
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:

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








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