UnExoticA/UTIL

(Chunks of text currently borrowed from the HVSC STIL.faq)

What is the UnExoticA Tune Information List (UTIL)?
The UnExoticA Tune Information List (UTIL) contains useful facts and enlightening trivia about all the music files in ExoticA's UnExoticA Amiga music collection.

The UTIL is obviously inspired by the HVSC STIL and is structured very similarly to it, but since HVSC .sid files have a file header containing the facts and most Amiga music formats don't, this is where the structure has to be different.

The UTIL contains an MD5 checksum of every file in UnExoticA and is the whole database is sorted by the MD5.

What is the format of UTIL?
To better present the information contained in UTIL and to make it easier for programs and scripts to process and maintain the list of entries in it, UTIL has a strict format that is outlined below.

As you can see, UTIL is a so-called flat text-file, which is readable by humans. But it is formatted in a way that machines (programs) can parse it, too.

In summary, UTIL is more or less like a flat database.

Conventions used in the format description of UTIL
The current standard header for each UTIL entry consists of the following fields: - MD5: XPATH: XTITLE: XCOMP: XYEAR: XFORMAT: XRIP:

It then proceeds to follow the original HVSC UTIL block layout.

Description of the UTIL block
In general, UTIL entries are built up of one or more "blocks", depending on how many subtunes a given music file has and how many of those have information attached to them.

The general format of a UTIL block is: NAME: Name field AUTHOR: Author field TITLE: Title field [from Album] ARTIST: Artist field COMMENT: Comment field. Or for tunes that contain multiple covers: MD5: COMMENT: *Optional* tune-global comment goes here. XPATH: XTITLE: XCOMP: XYEAR: XFORMAT: XRIP: NAME: Name field AUTHOR: Author field TITLE: Title field [from Album] (TIMESTAMP) ARTIST: Artist field COMMENT: Comment field. TITLE: Title field [from Album] (TIMESTAMP) ARTIST: Artist field COMMENT: Comment field. . . . There can be as many covers listed within a UTIL block for tunes that cover more than one piece of music as needed - there is no maximum limit.

Please, see the UTIL field descriptions below for details about the individual fields found in a UTIL block.

All of the fields in the UTIL block are optional, but at least one field must be present. Eg. if only a comment is provided for a tune that has no subtunes, the following entry is perfectly fine:

MD5: 00000000000000000000000000000000 COMMENT: This should be some relevant comment here.

However, if more than one field is present, they must be in the order as outlined above (NAME first, then AUTHOR, TITLE, ARTIST, and COMMENT).

Description of the complete UTIL entries
Each UTIL entry comprises of one or more UTIL blocks:

MD5: 00000000000000000000000000000000 {UTIL block}
 * FOR MUSIC FILES CONTAINING ONLY A SINGLE TUNE

MD5: 00000000000000000000000000000000 COMMENT: *Optional* file-global comment goes here. (#1) {UTIL block} (#2) {UTIL block} (#3) {UTIL block} . . . etc.
 * FOR MUSIC FILES CONTAINING MORE THAN ONE TUNE

Of course, UTIL entries need to be provided only for those tunes that need it, so the following is perfectly fine, too: MD5: 00000000000000000000000000000000 COMMENT: *Optional* file-global comment goes here. (#8) {UTIL block} (#11) {UTIL block} However, the UTIL blocks for the subtunes must be sorted by ascending order of the tune numbers of the subtunes.

Examples of populated entries
MD5: d50746dc0e39f547d31e17cec3b5dc74 XPATH: Game/Brooke_Jason/Out_Run/Unused/jcb.out_run XTITLE: Out Run XCOMP: Jason Brooke XYEAR: 1988 Probe / U.S. Gold XFORMAT: Jason Brooke XRIP: This soundtrack was disk ripped by XtC. (#1) TITLE: Magical Sound Shower [from arcade version] ARTIST: Hiroshi Miyauchi (#2) TITLE: Splash Wave [from arcade version] ARTIST: Hiroshi Miyauchi (#3) TITLE: Passing Breeze [from arcade version] ARTIST: Hiroshi Miyauchi COMMENT: Appears to be unfinished.
 * 1) Game/Brooke_Jason/Out_Run/Unused/jcb.out_run ###################################################

MD5: 002cf6cb2948f398bf69ec712908fa37 COMMENT: "...that was my first ever full on demo. I did the music and believe        it or not, all the SFX in soundtracker(!) Doing the SFX was terrible         guesswork, but it turned out OK in the end..." - Tim Wright XPATH: Demo/Wright_Tim/Puggs_in_Space/mod.main part XTITLE: Puggs in Space XCOMP: Tim Wright XYEAR: 1989 Dionysus / Jester Brothers International XFORMAT: Protracker XRIP: This soundtrack was memory ripped by XtC.
 * 1) Demo/Wright_Tim/Puggs_in_Space/mod.main part ###################################################

MD5: 67860033b10db4435293486d47f455b7 COMMENT: This file was also used in the following… 'mod.lost-in-time' from Final Fight (1991, U.S. Gold) This musicdisk was released at Dexion Xmas Party '90. XPATH: Demo/Myers_Jolyon/Amazing_Tunes_2/mod.lost-in-time XTITLE: Amazing Tunes II XCOMP: Jolyon Myers XYEAR: 1990 Share And Enjoy XFORMAT: StarTrekker XRIP: This soundtrack was disk ripped by XtC.
 * 1) Demo/Myers_Jolyon/Amazing_Tunes_2/mod.lost-in-time #############################################

Version History

 * 2017-04-02 - Version 0.2 - Now providing two versions in the Zip, one with just module information and one with module, instrument, sample or replay data. Also made a start on populating actual song names. See Turrican 2 as an example.
 * 2016-11-18 - Version 0.1a - Revised UTIL with no reference to instrument, sample or replay data. Sorted by UnExoticA path.
 * 2016-11-15 - Version 0.1 - For testing with XMPlay. Sorted by MD5.