home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / Servis / FFE / MOD.SWG / 0006_FAR.pas < prev    next >
Pascal/Delphi Source File  |  1996-09-04  |  5KB  |  107 lines

  1. --------M-FAR-------------------------------
  2.  
  3. The  Fandarole  composer is a 16  channel  composer created by the group
  4. Digital Infinity / Daniel Potter for digital music in module style.
  5.  
  6. The Fandarole modules have the following format :
  7.  
  8. OFFSET              Count TYPE   Description
  9. 0000h                   4 char   ID='FAR',254
  10. 0004h                  40 char   Song name
  11. 002Ch                   3 char   ID=13,10,26
  12.                                  This ID makes it possible to see the song name
  13.                                  by simply typing the .far file.
  14. 002Fh                   1 word   Remaining header size
  15. 0031h                   1 byte   Version number as BCD,
  16.                                    high nibble = major version
  17.                                    low nibble = minor version
  18. 0032h                  16 byte   Channel on/off map
  19.                                   <> 0 means that channel is used
  20. 0042h                   1 rec    Editing data.
  21.                                  This data is not necessary for playback,
  22.                                  but is stored by the composer for resume of
  23.                                  edit.
  24.                         1 byte   Current octave
  25.                         1 byte   Current voice
  26.                         1 byte   Current row
  27.                         1 byte   Current pattern
  28.                         1 byte   Current order
  29.                         1 byte   Current sample
  30.                         1 byte   Current volume
  31.                         1 byte   Current top of screen display
  32.                         1 byte   Current editing area
  33.                                   0=samples,
  34.                                   1=patterns,
  35.                                   2=orders
  36.                         1 byte   Current tempo (default tempo)
  37. 004Ch                  16 byte   Panning map for each channel, 0=left,15=right
  38. 005Ch                   1 byte   Marked block start
  39. 005Dh                   1 byte   Marked block end
  40. 005Eh                   1 byte   Grid granularity
  41. 005Fh                   1 byte   Edit mode
  42. 0060h                   1 word   Song text length
  43.                                  ="STL"
  44. 0062h               "STL" char   Song text
  45. 0062h+                256 byte   Order bytes for pattern ordering
  46.  "STL"
  47. 0162h+                  1 byte   Number of stored patterns
  48.  "STL"
  49. 0163h+                  1 byte   Song length in patterns
  50.  "STL"
  51. 0164h+                  1 byte   Loop position. This is the restart position
  52.  "STL"                           if the end of the song is reached.
  53. 0165h+                256 word   Length of each pattern. The number of rows in
  54.  "STL"                           each pattern is ( this word-2 )/(16*4)
  55.  
  56. After  this  block,  there might be  additional  data in the future (see
  57. remaining header size, above), after that, the pattern data follows.
  58.  
  59. The pattern data :
  60. OFFSET              Count TYPE   Description
  61. 0000h                   1 byte   Length of pattern in rows
  62.                                  ="LIR"
  63. 0001h                   1 byte   Tempo for this pattern - Unsupported,
  64.                                  use not recommended
  65. 0002h             4*"LIR" rec    Note data for each pattern in 4 channels
  66.                         1 byte   Note value (Octave*12+Note)+1
  67.                                  0 means no note
  68.                         1 byte   Sample number
  69.                         1 byte   Volume byte. The volume is stored reversed,
  70.                                  the lower nibble is the major volume, the lower
  71.                                  nibble is the minor volume adjust.
  72.                         1 byte   Effect byte. Upper nibble is effect, lower
  73.                                  nibble is data. (see table 0004)
  74.  
  75. (Table 0004)
  76. Note Effects in FAR-modules
  77.     01 - Pitch adjust
  78.     02 - Pitch adjust
  79.     03 - Portamento to note
  80.     04 - Retrigger note data times for one bar
  81.     05 - Set vibrato depth
  82.     06 - Vibrato
  83.  07-0C - ?Possibly undefined?
  84.     0D - Fine tune tempo down 128/Tempo
  85.     0E - Fine tune tempo up 128/Tempo
  86.     0F - Tempo, notes per second = 32/Tempo
  87.  
  88. After  the pattern data, the sample map  follows. This is an array of 64
  89. bits  (eight bytes), each set bit  corresponds to a sample record stored
  90. in  the  file, each zero bit means  that the corresponding record is not
  91. stored in the file.
  92.  
  93. OFFSET              Count TYPE   Description
  94. 0000h                   8 byte   Sample flags, see above
  95.  
  96. After  the  sample flags, the samples  themselves  are stored in the FSM
  97. format,    except    for   the    ("FSM",254)    header.   They   follow
  98. header-data-header-data-etc., see the FSM entry for further information.
  99.  
  100. EXTENSION:FAR
  101. OCCURENCES:PC
  102. PROGRAMS:Fandarole Composer
  103. REFERENCE:
  104. SEE ALSO:FSM
  105. VALIDATION:
  106.  
  107.