AUDIO TAPE EDITOR The Audio Tape Editor is a program which, given the contents of some albums/tapes, will produce PostScript code for printing pretty tape labels. Definitions ----------- The following terms are used in the context of the Audio Tape Editor: Album One work by one group; one side of a tape. Double Album One work by one group; both sides of one tape. Two Albums Two works by one group; one side of a tape. For example, one might fit two EPs by one group on one side of a tape. Tape A thing which holds a Double Album, or two Albums (or two ``Two Album''s, or one of each). Within the context of the album database, names of bands are unique. Given the set of albums by one band, the names of the albums are unique. But the same album may be present on multiple tapes. Loading the Audio Tape Editor ----------------------------- To load the Audio Tape Editor, you must load the files AUDIO-TAPE and AUDIO-TAPE-INTERFACE in that order. The first file goes in the TAPE package, and the second goes in the ZWEI package. Audio Tape Zmacs Interface -------------------------- The following Zmacs commands are defined: Load Album Database Command Prompts you for the name of the file from which to load your albums. This is optional. You may also call the function LOAD-ALBUMS with a pathname. Save Album Database Command Prompts you for the name of the file to which to save the currently defined albums. Be careful that you do not do a "save" without having done a "load", or you will overwrite your old albums. If you try to log out without saving changes to the database, you are made an offer to save. You may also call the function SAVE-ALBUMS with a pathname. Create Album Command This will prompt you in the Echo Area for the kind of album you are about to create; "Album", "Double Album", or "Two Albums", as defined above. You will then be placed in an empty Album Edit Buffer, described below. Once you have created an album, it is not possible to change whether it is a single, double, or "two" album. Edit Album Command This will allow you to alter the definition of a previously-created album. You will be prompted first for the name of the group; you have completion across the set of band-names. Next, you will be prompted for the name of an album by that group; you have completion across the set of album-names by the specified band. Then you will be placed in an Album Edit Buffer, which is filled with the specified album. Print Album Command Brings up a multiple-choice menu of all of the albums currently defined, sorted alphabetically by band-name/album-name. This menu has a scroll bar, but be careful when using it - if you go out of the menu, it aborts. Select from this menu the albums for which you want to print labels, and click on the doit box. If you select from this menu two albums which are on the same tape, it prints only one label. You will be prompted for the name of the file to write the PostScript to, and whether to print this file after writing it. The Album Edit Buffer --------------------- This buffer has several fields, which appear in bold. For a normal album, they are: o Band Name and Album Name, specifying this album; o Year, specifying the date of this album; this may be left blank, or may, in fact, be any string. This is so that things like "1982-1986" work. o Songs, which are the titles of the songs on this album. This is described further below. o For a Two Album, the fields Album Name 1 and Album Name 2 replace the Album Name field. There is not support for two albums by different bands on one side of a tape. There is only one Year field, but you may put something like "1982, 1984" in it. o For a Double Album, the fields "Songs, Side A" and "Songs, Side B" replace the "Songs" field in a predictable way. It is possible to specify the lengths of the songs on the album as well; in the Songs field, lines may be of the form: Song One Song Two or of the form Song One 3:45 Song Two 5:02 The ``length'' part of a line is assumed to be the part of the line after the last tab or the last two consecutive spaces; so, type the name of the song, and then some amount of whitespace, and the time. (Actually, the time may be any string.) Be careful not to insert extra whitespace between the words in a song's title. In the PostScript output, the song names will be printed flush left, and the lengths, if given, will be printed flush right. When you have edited an album to your liking, hit the END key. If this is not a double album, you will be prompted for the album which is on the other side of the tape on which this album is recorded. If there is no album on the other side, or if you have not yet defined the album on the other side, then just hit Return. The program will notice various conflicts, and ask you how to resolve them. When entering the album on the other side, the program must decide which is on side A and which is on side B. It will always make the correct decision if you always enter albums which are on side A before albums which are on side B. When in the Album Edit Buffer, an attempt is made to keep the field names in read-only mode, and the field values writable. This is not an entirely successful attempt; it is possible to change the text of the fields, but you shouldn't try. When the point is within the fields for "Band Name" and "Album Name", the Escape key will do name completion, and Control-? will display completion lists. The PostScript Produced ----------------------- If the name of the band on side A is the same as side B, the band-name on the spine is printed only once, and is two lines high. It is not possible for any string (band name, album name, or song name) to be too long to fit; the fonts are scaled to fit the longest string. When printing a "Two-Album", both of the names of the album will be listed on the spine - this means that a spine may display one, two, three, or four album-names. On the song-list on the back of the tape, only the first name of the Two-Album will be printed. This is not a very common thing, so I haven't added a lot of support for it, as you can see... Customization ZWEI:ADD-SPECIAL-NAME Function If you are printing a "Double Album", or a tape which has the same band on both sides, and the name of the band is one of a small predefined set, then the name of the band will print in a magic way. I've defined some PostScript routines that print certain bands names in the way they were usually/sometimes printed on their albums. You can add your own PostScript hacks with the function ZWEI:ADD-SPECIAL-NAME. This function lets you define a PostScript procedure which draws some graphic, and associate it with a band-name; when this program is writing the PostScript file, rather than printing the band-name, it will invoke your procedure. Look at the source code in the file AUDIO-TAPE.LISP for an example. TAPE:*SPECIAL-NAME-FONTS* Variable Also,asimpler customization, is provided with the variable TAPE:*SPECIAL-NAME-FONTS*. This variable is an association list associating band names with the font to print them in. For example, "INXS" is generally printed in Times Roman, so it's on this list. Otherwise, things are printed in Helvetica. Also, the captialization on the tape label will be as specified in this list. TAPE:*SIGNATURE-STRING* Variable The first time you print albums, you will be prompted for a "Signature String" - this is a string to print on the back flap of the tape label; the intent is that this be your name, or something identifying the tape as yours. Around here, a lot of people use this program, so keeping tapes identifyable is a useful thing. You can change this by setting the variable TAPE:*SIGNATURE-STRING* to what you want; if it is an empty string, nothing will be printed. If it is NIL, then you will be prompted for a new value before the file is written. The File Format --------------- The file format is one of the ugliest around. Don't blame me, I hacked up the code to read and write it late one night, and it seemed like a fine idea at the time. Since I also wrote a menu-based interface over it, and never intended the file to be edited by hand, it didn't bother me too much. But if you don't have an Explorer, you have to edit it by hand, so here's a simple description. If you have an Explorer, don't read this section. The file begins with a number of lines, each of which contains one or two integers. Each line represents a "tape". Each number represents an "album". After these lines, there is a line of dashes, followed by the tape data. The first line of an album description contains three things: - an ID number, followed by whitespace; - the band name, followed by two or more spaces, or one or more tabs; - the album name, followed by two or more spaces, or one or more tabs; - the album date; if you want the date to be blank, you must end the line with a single hyphen (-). After the first line comes the songs on the album. Blank lines and leading whitespace are significant. After the name of the song, there may be two or more spaces or one or more tabs followed by the duration of the song. After all of the songs on this tape comes another line of dashes. So, for example, your data file might look like 126 127 [...lots and lots and lots of other lines of numbers go here...] -------------------- 126 Front 242 Official Version - W.Y.H.I.W.Y.G. Rerun Time Television Station Agressiva Due Master Hit Slaughter Quite Unusual Red Team Angst -------------------- 127 Ministry The Land of Rape and Honey 1988 Stigmata 5:45 The Missing 2:55 Deity 3:20 Golden Dawn 5:42 Destruction 3:30 Hizbollah 3:58 The Land of Rape and Honey 5:10 You Know What you Are 4:43 I Prefer 2:15 Flashback 4:50 Abortive 4:23 -------------------- This means that any time you add a tape to the file, you have to pick a new unique number for it, and you have to add the number to the front of the file. This is really stupid, and someone should write some code to make this not be necessary, and if they do, they should send it to me...