Several text chunks may be included in a FORM SMUS to keep ancillary information. The optional property "NAME" names the musical score, for instance "Fugue in C". The optional property "(c) " holds a copyright notice for the score. The chunk ID "(c) " serves the function of the copyright characters "(c) ". E.g., a "(c) " chunk containing "1986 Electronic Arts" means "(c) 1986 Electronic Arts". The optional property "AUTH" holds the name of the score's author. The chunk types "NAME", "(c) ", and "AUTH" are property chunks. Putting more than one NAME (or other) property in a FORM is redundant. Just the last NAME counts. A property should be shorter than 256 characters. Properties can appear in a PROP SMUS to share them over a LIST of FORMs "SMUS". The optional data chunk "ANNO" holds any text annotations typed in by the author. An ANNO chunk is not a property chunk, so you can put more than one in a FORM SMUS. You can make ANNO chunks any length up to 2^31 - 1 characters, but 32767 is a practical limit. Since they're not properties, ANNO chunks don't belong in a PROP SMUS. That means they can't be shared over a LIST of FORMs SMUS. Syntactically, each of these chunks contains an array of 8-bit ASCII characters in the range " " (SP, hex 20) through "~" (tilde, hex 7F), just like a standard "TEXT" chunk. [See "Strings, String Chunks, and String Properties" in "EA IFF 85" Electronic Arts Interchange File Format.] The chunk's ckSize field holds the count of characters. #define ID_NAME MakeID('N', 'A', 'M', 'E') /* NAME chunk contains a CHAR, the musical score's name. */ #define ID_Copyright MakeID('(', 'c', ')', ' ') /* "(c) " chunk contains a CHAR, the FORM's copyright notice. */ #define ID_AUTH MakeID('A', 'U', 'T', 'H') /* AUTH chunk contains a CHAR, the name of the score's author. */ #define ID_ANNO MakeID('A', 'N', 'N', 'O') /* ANNO chunk contains a CHAR, author's text annotations. */ Remember to store a 0 pad byte after any odd-length chunk.
[Back to Amiga Developer Docs]