The files on this disc are 16bit, 44.1k, stereo, Mpeg encoded audio files with a JonesTM (TMC) file header/footer. The Mpeg parameters used to create these files are as follows: stereo, layer2, mode2, 128k bps (per channel) ************************************************************************** TMC FILE HEADER/FOOTER DESCRIPTION Filename is ????????.TMC. The first four bytes of the file are a signed long integer (MPEGSize) which holds the length of the MPEG sound file to follow - it can be treated as an unsigned long in C, since we won't have any song files over 2 gigabytes long. The next (MPEGSize) bytes are the actual MPEG audio. At the end of the audio data is a freeform text footer that can be of any practical length. Each entry consists of one or more lines: an identifier line followed by any practical number of value lines. For instance: #TITLE Just The Way You Are The identifier is preceded by a pound sign (#) and is case-insensitive (although JonesTM, by convention, creates identifiers all in uppercase). The first character on the identifier line must be a pound sign. The identifier must be composed of non-whitespace characters immediately following the pound sign - in other words, you can't use a tab or space within an identifier. Anything following a whitespace character on an identifier line may be discarded. Each value line following an identifier line may start with any number of tabs (ASCII 9) or spaces (although this is not mandatory) and is in text form, whether it's text or a number or whatever. Any tabs or spaces at the front of a value line are considered to be for appearance only; any program reading the footer should trim off any opening spaces or tabs before using the value for any purpose other than display. The only character a value line may not begin with is the pound sign (#). Each line ends with the DOS convention of carriage return plus linefeed (ASCII 13 + ASCII 10). To read the footer, just read the first four bytes of the file as a long integer, seek to that number + 3 (we're assuming that the file starts at offset 0), and read the rest of the file into a string or text array of some kind. An identifier line may be immediately followed by another identifier line; in this case, the first identifier is considered to have no value. For instance, #COMPOSER #PUBLISHER Earthworm Publishing, Inc. In the preceding case, #COMPOSER has no value. All lines in a footer preceding the first legal identifier line will be ignored. Here are a few sample footers. (1) #TITLE I Feel Good #ARTIST James Brown & His Famous Flames #INTRO #TIME 3:35 (2) #Artist Hootie & The Blowfish with the Cleveland Symphony Orchestra #Composer #Publisher #TMCIRef 1025-12 (3) #title Bang, Boom, Pow, Etc. #artist DJ Dijerry Doo #publisher # The Pavement Publishing NOTE that the line following #publisher, above, is a legal value, not an identifier, because it doesn't begin with a pound sign (#) - it begins with a tab, followed by a pound sign. An identifier may be used more than once; however, only the last instance of that identifier will be considered valid. So, if you have #TITLE I Want To #TITLE Hold Your Hand ...the TITLE will be considered to be Hold Your Hand. Any identifier that isn't recognized must be ignored, along with its value(s). On an identifier line you may follow the identifier with one or more whitespace characters and any other text - this could be used as a short remark. For instance, the following is legal: #TITLE - don't use more than 25 characters That's just an example of possible use - the actual value of #TITLE may be any reasonable length. In this case, #TITLE is followed by a tab and extra text - everything following #TITLE, including the tab, should be discarded. Any identifier may be used in the footer. However, JonesTM has pre- defined some identifiers - using these identifiers for any other purpose may cause errors. Here are the footer identifiers that JonesTM has pre-defined: #FILEID : filename of the file being read #FORMAT : currently defined as "MPEG 6:1 44.1 k" #TITLE : title of song #ARTIST : artist(s) of song #COMPOSER : composer(s) of song #PUBLISHER : publisher(s) of song #LICENSE : licensing entity(s), such as ASCAP, BMI, SESAC #LABEL : record label of song #INTRO : intro length of song in the form 00:00 #TIME : length of song to crossfade point in the form 00:00 #END : how the song ends, such as C or F #YEAR : year the song was a hit #AUX : TMCI-specific id for crossfade point in the form 00:00.00 (to nearest 100th of a second) #TMCIREF : TMCI-specific id that identifies the Globally Unique SongID #BPM : beats per minute #ISRC : ISRC code of recording #PLINE : P-Line info regarding recording #REMARK : Any lines following this identifier are just remarks. Please contact Rob Kowald if you have any questions. Rob Kowald voice (972) 406-6898 fax (972) 888-6198 e-mail rkowald@jonestm.com