TEXT   22
AdLib Visual Composer & Roland Synthesizer
Guest on 8th February 2023 02:55:08 AM


  1. Files containing note information (i.e. songs) are suffixed with ".ROL".
  2. ("File version" and "editing scale" are non-musical information used by Visual
  3. Composer (TM).)
  4.  
  5. Structure of .ROL files:
  6. __________________________________________________________________
  7.  
  8. fld #   size   type     description
  9.         (bytes)
  10.  
  11. 1       2       int     file version, major
  12. 2       2       int     file version, minor
  13. 3       40      char    unused
  14. 4       2       int     ticks per beat
  15. 5       2       int     beats per measure
  16. 6       2       int     editing scale (Y axis)
  17. 7       2       int     editing scale (X axis)
  18. 8       1       char    unused
  19. 9       1       char    0 = percussive mode
  20.                         1 = melodic mode
  21. 10      90      char    unused
  22. 11      38      char    filler
  23. 12      15      char    filler
  24. 13      4       float   basic tempo
  25.  
  26. Field 14 indicates the number of times to repeat fields 15 and 16:
  27.  
  28. 14      2       int     number of tempo events
  29. 15      2       int     time of events, in ticks
  30. 16      4       float   tempo multiplier (0.01 - 10.0)
  31.  
  32. The remaining fields (17 to 34) are to be repeated for each of 11 voices:
  33.  
  34. 17      15      char    filler
  35. 18      2       int     time (in ticks) of last note +1
  36.  
  37. Repeat the next two fields (19 and 20) while the summation of field 20 is
  38. less than the value of field 18:
  39.  
  40. 19      2       int     note number: 0 => silence
  41.                         from 12 to 107 => normal note (you must
  42.                         subtract 60 to obtain the correct value
  43.                         for the sound driver)
  44. 20      2       int     note duration, in ticks
  45. 21      15      char    filler
  46.  
  47. Field 22 indicates the number of times to repeat fields 23 to 26:
  48.  
  49. 22      2       int     number of instrument events
  50. 23      2       int     time of events, in ticks
  51. 24      9       char    instrument name
  52. 25      1       char    filler
  53. 26      2       int     unused
  54. 27      15      char    filler
  55.  
  56. Field 28 indicates the number of times to repeat fields 29 and 30:
  57.  
  58. 28      2       int     number of volume events
  59. 29      2       int     time of events, in ticks
  60. 30      4       float   volume multiplier (0.0 - 1.0)
  61. 31      15      char    filler
  62.  
  63. Field 32 indicates the number of times to repeat fields 33 and 34:
  64.  
  65. 32      2       int     number of pitch events
  66. 33      2       int     time of events, in ticks
  67. 34      4       float   pitch variation (0.0 - 2.0, nominal is 1.0)
  68.  
  69. Notes
  70. _____
  71.  
  72. Fields #1 and #2 should be set to 0 and 4 respectively. Field #10 should
  73. be filled with zeros.
  74.  
  75. PS:
  76. a 4 byte 'float' in the 80x86 family look like follows:
  77.  
  78. Sign   biased
  79. -bit  exponent  significant
  80.  31    30..23     22..0
  81.                ^
  82.                 `- here an implicite "1." is assumed
  83.                exponent bias = 127 (0x7F)
  84.  
  85. eg. 0.5 = 1* 2^(-1) ==> sign=0, exp=127-1, signif=(1.)0000000
  86.  
  87. 10987654 32109876 54321098 76543210
  88. 33222222 22221111 11111100 00000000
  89. 0         0000000 00000000 00000000
  90.  0111111 0

Raw Paste

Login or Register to edit or fork this paste. It's free.