home *** CD-ROM | disk | FTP | other *** search
/ Large Pack of OldSkool DOS MOD Trackers / composer.zip / 669.DOC next >
Text File  |  1992-08-09  |  2KB  |  52 lines

  1. .669 file format:
  2.  
  3. offset         │length&type    │description
  4. ───────────────┼───────────────┼──────────────────────────────────────────────
  5. 0              │1 word         │marker, value=0x6669
  6. 2              │108 bytes      │song message
  7. 0x6e           │1 byte         │NOS = number of samples saved (0-64)
  8. 0x6f           │1 byte         │NOP = number of patterns saved (0-128)
  9. 0x70           │1 byte         │loop order number
  10. 0x71           │0x80 bytes     │order list
  11. 0xf1           │0x80 bytes     │tempo list for patterns
  12. 0x171          │0x80 bytes     │break location list for patterns
  13. 0x1f1          │NOS*size struct│sample data
  14.                │ samp          │
  15. ┌──────────────┴───────────────┘
  16. │struct samp {
  17. │  13 bytes ASCIIZ filename of instrument
  18. │  1 dword length of instrument
  19. │  1 dword offset of beginning of loop
  20. │  1 dword offset of end of loop
  21. │} smp[NOS]
  22. └──────────────┬───────────────┬──────────────────────────────────────────────
  23. 0x1f1+         │NOP*0x600      │patterns
  24. (NOS*0x19)     │               │
  25. ┌──────────────┴───────────────┘
  26. │this is repeated 8 times for every row and the array of 8 of these is
  27. │ repeated 64 times for each pattern.
  28. │ bits:
  29. │   BYTE[0]:             BYTE[1]:            BYTE[2]:
  30. │  aaaaaaaa             bbbbbbbb            cccccccc
  31. │  ├────┘├─────────────────┘├──┘            ├──┘├──┘
  32. │  │     │                  │               │   │
  33. │  │     │                  4 bit volume    │   command value
  34. │  │     │                                  │
  35. │  │     aabbbb = 6 bit instrument number   command:
  36. │  │                                         0 = a
  37. │  note value = (12*oct)+note                1 = b
  38. │                                            2 = c
  39. │  special values for byte 0:                3 = d
  40. │    0xfe = no note, only volume change      4 = e
  41. │    0xff = no note or volume change         5 = f
  42. │                                           special value for byte 2:
  43. │                                             0xff = no command
  44. └──────────────┬───────────────┬──────────────────────────────────────────────
  45. 0x1f1+         │rest of file   │samples
  46. (NOS*0x19)+    │               │
  47. (NOP*0x600)    │               │
  48.  
  49.