121 lines
4.1 KiB
Plaintext
121 lines
4.1 KiB
Plaintext
From plaiho@vipunen (Pertti V P Laiho) Mon Jan 4 14:41:14 1993
|
|
X-VM-v5-Data: ([nil nil nil nil nil nil nil nil nil]
|
|
["2974" "Sun" "3" "January" "1993" "12:18:18" "GMT" "Pertti V P Laiho" "plaiho@vipunen.hut.fi " nil "90" "Re: ___ ROL format ___" "^From:" nil nil "1"])
|
|
Newsgroups: comp.music
|
|
Message-ID: <1993Jan3.121818.19942@nntp.hut.fi>
|
|
Nntp-Posting-Host: vipunen.hut.fi
|
|
Reply-To: plaiho@vipunen.hut.fi (Pertti V P Laiho)
|
|
Organization: Helsinki University of Technology
|
|
References: <721@vercors.frec.bull.fr>
|
|
Lines: 90
|
|
From: plaiho@vipunen.hut.fi (Pertti V P Laiho)
|
|
Subject: Re: ___ ROL format ___
|
|
Date: Sun, 3 Jan 1993 12:18:18 GMT
|
|
|
|
In article <721@vercors.frec.bull.fr> frank@mapd.frec.bull.fr () writes:
|
|
>Does anyone have the details of .ROL files used by AdLib and compatible
|
|
>cards on PC? I need it for my Turbo C ROL editor...
|
|
>Thanx.
|
|
|
|
OK. Here it is...
|
|
|
|
|
|
From: holmes@mrx.webo.dg.com (Chris Holmes)
|
|
Subject: Adlib .ROL file format
|
|
Date: Wed, 26 Aug 92 12:04:43 GMT
|
|
|
|
I requested this a while back and got a couple of requests for a summary,
|
|
so here goes:
|
|
|
|
Files containing note information (i.e. songs) are suffixed with ".ROL".
|
|
("File version" and "editing scale" are non-musical information used by Visual
|
|
Composer (TM).)
|
|
|
|
Structure of .ROL files:
|
|
__________________________________________________________________
|
|
|
|
fld # size type description
|
|
(bytes)
|
|
|
|
1 2 int file version, major
|
|
2 2 int file version, minor
|
|
3 40 char unused
|
|
4 2 int ticks per beat
|
|
5 2 int beats per measure
|
|
6 2 int editing scale (Y axis)
|
|
7 2 int editing scale (X axis)
|
|
8 1 char unused
|
|
9 1 char 0 = percussive mode
|
|
1 = melodic mode
|
|
10 90 char unused
|
|
11 38 char filler
|
|
12 15 char filler
|
|
13 4 float basic tempo
|
|
|
|
Field 14 indicates the number of times to repeat fields 15 and 16:
|
|
|
|
14 2 int number of tempo events
|
|
15 2 int time of events, in ticks
|
|
16 4 float tempo multiplier (0.01 - 10.0)
|
|
|
|
The remaining fields (17 to 34) are to be repeated for each of 11 voices:
|
|
|
|
17 15 char filler
|
|
18 2 int time (in ticks) of last note +1
|
|
|
|
Repeat the next two fields (19 and 20) while the summation of field 20 is
|
|
less than the value of field 18:
|
|
|
|
19 2 int note number: 0 => silence
|
|
from 12 to 107 => normal note (you must
|
|
subtract 60 to obtain the correct value
|
|
for the sound driver)
|
|
20 2 int note duration, in ticks
|
|
21 15 char filler
|
|
|
|
Field 22 indicates the number of times to repeat fields 23 to 26:
|
|
|
|
22 2 int number of instrument events
|
|
23 2 int time of events, in ticks
|
|
24 9 char instrument name
|
|
25 1 char filler
|
|
26 2 int unused
|
|
27 15 char filler
|
|
|
|
Field 28 indicates the number of times to repeat fields 29 and 30:
|
|
|
|
28 2 int number of volume events
|
|
29 2 int time of events, in ticks
|
|
30 4 float volume multiplier (0.0 - 1.0)
|
|
31 15 char filler
|
|
|
|
Field 32 indicates the number of times to repeat fields 33 and 34:
|
|
|
|
32 2 int number of pitch events
|
|
33 2 int time of events, in ticks
|
|
34 4 float pitch variation (0.0 - 2.0, nominal is 1.0)
|
|
|
|
Notes
|
|
_____
|
|
|
|
Fields #1 and #2 should be set to 0 and 4 respectively. Field #10 should
|
|
be filled with zeros.
|
|
|
|
PS:
|
|
a 4 byte 'float' in the 80x86 family look like follows:
|
|
|
|
Sign biased
|
|
-bit exponent significant
|
|
31 30..23 22..0
|
|
^
|
|
`- here an implicite "1." is assumed
|
|
exponent bias = 127 (0x7F)
|
|
|
|
eg. 0.5 = 1* 2^(-1) ==> sign=0, exp=127-1, signif=(1.)0000000
|
|
|
|
10987654 32109876 54321098 76543210
|
|
33222222 22221111 11111100 00000000
|
|
0 0000000 00000000 00000000
|
|
0111111 0
|
|
-----------------------------------------------------------------
|