UnExoticA/Structure
UnExoticA is a large archive of Amiga computer music, ripped from Amiga games and demos.
Archive organisation
The collection is organised as Amiga LhA archives, stored in a hierarchical directory structure:
- formats.txt
- The format description file.
- Demo/
- Music ripped from Amiga demoscene demos and intros
- Game/
- Music ripped from Amiga games and demos of Amiga games
- Demo/Updates/YYYY_MM_DD_name.txt
- Game/Updates/YYYY_MM_DD_name.txt
- Update description files where YYYY_MM_DD is the date of the update and name is the name of the person who did the update
- Demo/Composers/Composer_Name.txt
- Game/Composers/Composer_Name.txt
- Composer description files for composers that don't have their own directory. The filename should use the format Forename_Surname.txt or Onlyname.txt
- Demo/Composer_Name/
- Game/Composer_Name/
- One directory for each notable composer, with the format Surname_Forename/ or Onlyname/
- Demo/Composer_Name/composer.txt
- Game/Composer_Name/composer.txt
- a composer description file for this composer
- Demo/Composer_Name/Demo_Name.lha
- Game/Composer_Name/Game_Name.lha
- This is the archive file for a particular game or demo
- The same Demo_Name.lha or Game_Name.lha is allowed in more than one composer's directory. This allows for splitting up a game with several composers' music into multiple archives
- Demo/Composer_Name/Demo_Name.txt
- Game/Composer_Name/Game_Name.txt
- This is the archive description file for a particular game or demo
- Demo/Composer_Name/Demo_Name_CDDA.lha
- Game/Composer_Name/Demo_Name_CDDA.lha
- archives with the suffix "_CDDA" are considered the same as archives without that suffix, So Game_Name.lha and Game_Name_CDDA.lha are from the same game
Examples:
Filename | Note |
---|---|
Demo/Akesson_Linus/ | demo music by Linus Akesson (surname first, then forename) |
Demo/Akesson_Linus/A_Bit_More.lha | archive called "A_Bit_More"... |
Demo/Akesson_Linus/A_Bit_More.txt | ... and a matching .txt file to describe it |
Demo/Akesson_Linus/composer.txt | Linus Akesson's composer.txt |
Demo/Composers/Flemming_Sondergaard.txt | Flemming Sondergaard's composer.txt (does not have their own directory) |
Demo/Composers/Abstract.txt | Abstract's composer.txt (only their handle is known) |
Demo/Feldkoetter_Jochen/In_the_Kitchen.lha | Jochen Feldkötter's music from In The Kitchen... |
Demo/Feldkoetter_Jochen/In_the_Kitchen.txt | ... and matching .txt file |
Demo/Simmonds_Matthew/In_the_Kitchen.lha | Matthew Simmonds' music from In The Kitchen (same filename seen in Jochen Feldkötter's directory) |
Demo/Simmonds_Matthew/In_the_Kitchen.txt | ...and .txt file. Will be merged with the .txt file from Jochen Feldkötter's directory |
Demo/Updates/2005_09_05_XtC.txt | update made by XtC on 5th September 2005 |
Game/Deenen_Charles/Castles_2_CD32.lha | Native amiga music from Castles 2 CD³²... |
Game/Deenen_Charles/Castles_2_CD32_CDDA.lha | ...and CD audio tracks from Castles 2 CD³² |
Guidelines for archiving
- Music should preferably be disk-ripped, i.e. ripped directly from the disk, without executing the game or demo code to load it into memory. If it can't be disk ripped for whatever reason, it should be ripped direct from memory while it's playing.
- If a game or demo's music has more than one composer, consider creating several archives; one for each significant piece of work. UnExoticA is not exacting, so you don't need to have only one composer per LhA archive, but often people want to collect a single composer's work, and don't want the others. For example, Agony features music principally by Tim Wright and Jeroen Tel, with additional music by Martin Wall, Robert Ling, Matthew Simmonds and Martin Iveson. We created Game/Tel_Jeroen/Agony.lha with Jeroen Tel's music (all ingame music), and Game/Wright_Tim/Agony.lha with Tim Wright's music (the title music), plus the additional music from the other musicians.
- Always attempt to get a composer's real name, where that's possible. You can research this at Amiga Music Preservation, Demozoo and Kestra Bitworld. If their real name is not known, but you know their handle, use that. Use their most up to date known handle, even if the game or demo credits them with their older handle. Don't use their group name. Old handles and group names can be mentioned in the composer file
- Guidelines on archive filenames:
- Keep the filename under 30 characters, including the .lha file extension. Standard Amiga filesystems have a limit of 31 characters per filename
- Games or demos which begin with "the" should have the "the" removed. For example "The Speris Legacy" becomes Speris_Legacy.lha
- Games or demos with Roman numerals should become Arabic/Indian numerals, e.g. Turrican II becomes Turrican_2.lha
- Only use ASCII alphanumeric characters (A-Z a-z 0-9) and the punctuation ! . _ + -. Replace non-ASCII characters with their nearest equivalent, e.g. Chris Hülsbeck becomes Huelsbeck_Chris
Replace à á â ã å ä æ ç ð è é ê ë ì í î ï ñ ò ó ô õ ø ö ß þ ù ú û ü ý ÿ with... a aa ae c d e i n o oe ss th u ue y
Format description file
This file, "formats.txt" in the top level of the UnExoticA archive, contains text descriptions of all known music file formats.
The list does not have to be ordered. For each entry, first there is the filename prefix/extension. In this example, "smus" and "jt". Then there is whitespace, preferably one tab character. Then there is the format's name, in the example "Sonix Music Driver" and "Jeroen Tel". Then there is a newline and a description of the format. As many lines may be used as desired. A blank line indicates the end of the entry, and the next entry begins. The list should end with an extra blank line, or the last entry is missed out.
Example:
smus Sonix Music Driver Also known as IFF-SMUS, its Another Electronic Arts standardised music format, created along with 8SVX, ILBM and FTXT as the EA IFF 1984 specification. Other than the archaic Aegis Sonix and EA's own Deluxe Music Construction Set (DMCS), almost no software uses this format. jt Jeroen Tel Also known as 'Maniacs Of Noise Old', this music format was created by Charles Deenen and Jeroen Tel, used by the Maniacs of Noise.
Archive files
UnExoticA archives are Amiga LhA format archives with the file extension ".lha". Each archive should unpack into a directory with the same name as the archive, so Agony.lha should contain the file Agony/mod.agony_end of game, etc.
Each music file in the archive should have an Amiga file comment in this format for games:
filenote #? "Composer Name(s) | Game Name | Year of release | Team / Publisher"
...and for demos:
filenote #? "Composer Name(s) | Demo Name | Year of release | Group / Party"
Archive description files
These files describe what's in the corresponding archive. They have the same filename as the archive, but with a .txt extension instead of .lha
The files are in YAML format with ISO-8859-1 encoding (the Amiga's native character set). They have these attributes:
- type
- what kind of production the music was ripped from (required). Must be one of Game, Demo, Dentro, Intro, Musicdisk or Slideshow. Note that "Game" marks the archive as game-type and any other choice marks the archive as demo-type
- title
- the full title of the production (required). If the production has a sub-title, then use a hyphen between two spaces to separate it, e.g "Game Title - Sub Title Of Game". Games without sub-titles should avoid using " - ", as this is what triggers the sub-title recognition ("-" is OK)
- alternative titles
- alternative titles for the production (optional) - can be a single value or a list. UnExoticA adds default alternatives: the main title with its subtitle stripped off, and the title with accented characters converted to ASCII, so these alternatives do not have to be explicitly added
- composer
- the author(s) of the music (required) - can be a single value or a list. You can add a comment about each composer in parentheses after their name
- format
- file format of the music (required) - can be a single value or a list
- year
- the year of the production's release (required)
- team
- the team(s) who developed this game (optional, only for game-type archives) - can be a single value or a list
- publisher
- the company or companies who published this game (optional, only for game-type archives) - can be a single value or a list
- box scan
- the name of an ExoticA box scan for this game (optional, only for game-type archives)
- hol id
- Hall Of Light database ID(s) (optional, only for game-type archives) - can be a single value or a list.
- lemon id
- Lemon Amiga database ID(s) (optional, only for game-type archives) - can be a single value or a list
- group
- the demo group(s) who created this production (optional, only for demo-type archives) - can be a single value or a list
- party
- the demo group(s) who created this production (optional, only for demo-type archives) - can be a single value or a list
- rip type
- the ripping method used (required). Must be one of disk, memory or both
- ripped by
- the ripper(s) of the music (required) - can be a single value or a list
- comments
- comments about the title, or specific files in this archive.
Quick guide to YAML
If you don't know YAML, here is a quick primer:
- Write single entries as "key: value" pairs. If values need to include ": " (colon-space), " #" (space-hash) or begin with quote or double-quote symbols, then they need to be "quoted" to avoid being ambiguous. Examples:
title: Turrican II - The Final Fight # no quotes needed
title: "Phalanx II: The Return" # has a colon-space, must be quoted
title: "Hubbard Music #2" # has a space-hash, must be quoted
title: "'Nam 1965-1975" # begins with a single quote, must be quoted
- Write lists over several lines, using hyphens to indent the list:
composer:
- Tim Wright (Title)
- Franck Sauer (Co-Composed Title)
- Martin Wall (Loader and Game End)
- ...
- Use a pipe symbol | for the comments section and indent the comments with spaces:
comments: |
Comments start here!
Multiple lines of text
Game example
type: Game
title: Project-X
alternative titles: Project X
composer:
- Allister Brimble (Title, Loader and Ingame)
- Bjørn Lynne (Game Completion)
format:
- Protracker
- SoundMon 2.0
year: 1992
team: Team17
publisher: Team17
hol id: 1164
lemon id: 2035
rip type: Both
ripped by:
- XtC
- Bjørn Lynne
box scan: p/Project-X
comments: |
mod.thesmophoria originally featured on Newsflash Diskmagazine 19A.
Demo example
type: Demo
title: Full Moon
composer:
- Sami Arola (intro tune)
- Aleksi Eeben (main tune)
- Jogeir Liljedahl (endpart)
format: The Player 5.x
year: 1993
group: Virtual Dreams
party: The Party '93
rip type: Disk
ripped by: Kyzer
comments: |
Jogeir's endpart is a cover of Jochen Hippel's "A Prehistoric Tale" title music.
Update description files
These describe the changes the maintainers have made to the archive. The filename contains the date and the name of the maintainer, e.g. 2006_04_02_XtC.txt was a update on 2nd April 2006 made by XtC.
The file is split into three sections: ADDED, AMENDED and DELETED. These words need to start at the beginning of the line and there should be nothing else on the line. Then follows a list of filenames, ended with a blank line. Updates in Demo/Updates/ can only have archives from the Demo/ directory and updates in Game/Updates/ can only have archives from the Game/ directory. Any further text on a filename line is commentary, e.g. why the file was updated or deleted.
Example:
ADDED Stone_Chris/Dragons_Lair_Demo.lha Stone_Chris/Space_Ace_Demo.lha Williams_Bill/Knights_Crystallion.lha Williams_Bill/Knights_Crystallion_CDDA.lha AMENDED Brimble_Allister/Full_Contact.lha Added missing ingame music. Cuomo_Jim/Defender_of_the_Crown.lha Replaced with a more accurate custom. Ouwehand_Reyn/Last_Ninja_3.lha Added missing game completion music. Williams_Glyn/Warhead.lha Replaced with an updated version. DELETED Foster_David/Space_Ace_Demo.lha Re-added under correct composer name. Linden_Randy/Dragons_Lair_Demo.lha Re-added under correct composer name.
Composer description files
This files are either composer.txt in a composer's own directory, or named after the composer in Demo/Composers/ or Game/Composers/
The files are in YAML format with ISO-8859-1 encoding (the Amiga's native character set). They have these attributes:
- name
- the composer's name (required)
- This must match the name given in archive description files, and must add an underscore to indicate where the composer's surname begins.
- If a surname has a preposition such as Da Silva, van der Valk, de la Cruze or de Agger then the underscore should be placed after the preposition, i.e. Da _Silva, van der _Valk, de la _Cruze and de _Agger respectively. This rule does not currently apply to prepositions such as MacDonald, Fitzpatrick or O'Connor.
- If the composer only has one name, the underscore should be at the start of the line
- handle
- the composer's current handle (optional). Past handles should be listed in the comments
- homepage
- the URL of the composer's homepage (optional)
- comments
- any extra comments about the composer (optional)
Example:
name: Allister _Brimble
handle: The Demon
homepage: http://ourworld.compuserve.com/homepages/allister_brimble/index.html
comments: |
Allister's handle of The Demon is not to be confused with Demon on the C64.