SONGLENGTH DATABASE Newer implementations of the experimental songlength database use MD5 fingerprints to lookup the playtimes for sidtunes. This separates sidtune files from the fixed structure of the HVSC. As of HVSC 5.0, a modified fingerprint calculation is required. In other words, you can install the songlength database file in a place where your particular player finds it (provided that it supports these kind of database files) and use it together with files previously fetched from the HVSC but now stored at arbitrary locations in your filesystem. If you add sid files to a playlist and have the songlength database enabled, the sidtune and its playtime will be identified by its MD5 fingerprint. If your particular sidtune file doesn't match any fingerprint in the database, you are left with playlist defaults and need to determine the playtime of the song yourself. If you fetch your sids from the HVSC usually, it is recommended that you update your private collection of sidtunes with possibly newer versions from the HVSC. Also check out for possibly newer and improved releases of prebuilt songlength database files. The database contains only the playtimes for PAL emulation clock speed and for PSID v2NG files either PAL or NTSC as defined in the file, but not both. Make sure you configure your SID player for PAL emulation. ----------------------------------------------------------------------- The file format is INI-style. One group/section called [Database] at the top and each line in key=value format. Unless specified otherwise, fields -- inparticular timestamps -- may be separated by one or more whitespace. ini-identifier: "[Database]" entry-list: entry entry-list [entry] entry: md5-fingerprint=timestamp-list md5-fingerprint: 16-character_hexadecimal_ASCII_representation_of_128-bit_fingerprint timestamp-list: timestamp timestamp-list [timestamp] timestamp: min:sec min:sec(attribute) -:-- min: sec: attribute: G B M Z Note, that there are just minutes and seconds but no hours in a timestamp. A -:-- timestamp is put where my tool was unable to detect a song-length. The reason most likely is a bad rip which reads entire memory (or arbitrary parts thereof) while it doesn't stop playing either. Below VARIOUS are only a very few sids where this has happened. The ``attribute'' has diagnostic purposes only. Right now, you can skip it or do an inversion, i.e. add a (L) flag (song loops) to every timestamp that has no attribute, and erase the attribute of all other timestamps. The tool did not check whether a sub-song loops infinitely or whether it does end after it has looped for some time. This may need a second pass or additional code. Timestamps with an attribute 0:00 (G) may need to be rounded up by one second. Sids touched in HVSC Update #22 _no longer_ need such a fix. For instance, sound effects which play less than one second have a timestamp 0:01 (G) from now on. Old entries will be updated some day. Right now it doesn't matter if the playtime of songs that stop is increased by one second. (G) = all three SID voices have had GATE off... (M) = Master Volume turned zero... (Z) = all three SID voices have been silent... ... for X seconds (where X is an internal parameter of siddiag). (B) = sidtune does bad things in memory / timestamp estimated