Global Information
Record First record in file. | ||
Byte Offset (Hex) |
Size | Description |
---|---|---|
0 | Byte | Number of staves in file. |
1-4 | 4 Bytes | Unused (0) |
5 | Byte | Default spacing (3) |
6 | Byte | Pulse (3) |
7 | Byte | Minimum beaming angle in degrees (10) |
8-9 | Word | File's version number (200) |
0A | Byte | Unused |
0B-0C | Word | Header size in 0.01" (0) |
0D-0E | Word | Footer size in 0.01" (0) |
0F | Byte | Number of header objects (0) |
10 | Byte | Number of footer objects (0) |
11-15 | 5 Bytes | Unused |
One or more records based on Number of staves in file field of the Global Information Record. All X coordinates are in 1/120" from the first printable position on paper. All Y coordinates are in 1/72" from an arbitrary origin. Second and subsequent pages are merely larger coordinates than the first page; repagination dependant on page length is done when the file is read in. | ||
Byte Offset (Hex) |
Size | Description |
---|---|---|
0-1 | Word | Y-coord of center line of staff/stave. |
2-3 | Word | Maximum Y of staff/stave. |
4-5 | Word | Minimum Y of staff/stave. |
6 | Byte | Staff/stave bracketed? (0=no/1=yes) |
7 | Byte | Number of objects on staff/stave. |
8-9 | Word | Minimum X value (20) |
0A-0B | Word | Maximum X value (960) |
0C | Byte | Staff/stave in same system as next? (0/1) |
0D | Byte | Forced page break after staff/stave? (0/1) |
0E-15 | 8 Bytes | Unused (0) |
One or more records based on the total number of objects for all staves. | ||
Byte Offset (Hex) |
Size | Description |
---|---|---|
0 | Byte | Staff/stave number of this object. (0 for header or footer, otherwise 1 and up.) |
1 | Byte | Object number (1 and up.) |
2-3 | Word | X-coord of object. |
4-5 | Word | Y-coord of object. |
6 | Byte | Symbol number. Symbol list not available at this time, but some objects do require specific symbol numbers (such as the Time Signature). |
7 | Byte | Object type (see table
below):
|
8 | 15 Bytes | Object information. See Object Information table below for specifics, and be sure to set all unused bytes to 0 (zero). |
Comes after the Object Type byte in the Object Information Record. | |||
Object Type | Byte Offset (Hex) |
Size | Description |
---|---|---|---|
Clef | 8 | Byte | Clef type:
|
Key Signature | 8 | Signed Byte | Key number. Negative values are flats, positive values are sharps, and 0 represents C major. (C major can be placed in case of later transposition.) |
Time Signature | X | X | The time signature is two different objects - one for the top number and one for the bottom. To define one of the objects, make an object, set its object type to 2, and define its symbol number as follows: For the numbers 0 through 9, add 8 and make this the symbol number. For the number 16, the symbol number is 18. The Y coordinate of the bottom number should be 12 more than the top. |
Common Time | 8 | Byte | Set to 0 (zero) for common time, 1 for cut time (alla breve). |
Bar line | 8 | Byte | Set to these numbers for:
|
Note | 8 | Byte | Duration: Set to 0-7 for breve (double whole note) to hemidemisemiquaver (64th note). |
9 | Signed Byte | Pitch: 0=center line, 1=line above, -1=line below. | |
A | Byte | Number of dots: 0,1,2 | |
B | Byte | Stick direction: 0=up, 1=down, 2=none, 3=auto | |
C | Byte | Object number to which note is beamed back (0=not) | |
D | Byte | Object number to which note is beamed forward (0=not) | |
E | Byte | Rest or note? 0=note, 1=rest | |
F | Byte | Emphasis: 0=none, 1=with mark | |
10 | Byte | Staccato: 0=none, 1=dot, 2=staccatissimo | |
11 | Byte | Object number to which note is tied to left. | |
12 | Byte | Object number to which note is tied to right. | |
13 | Byte | Tie direction: 0=under, 1=over. (Set to 0 if not tied.) | |
14 | Byte | Note style: 0=normal, 1=small, 2-3=specials, 4=cross. | |
Accidental | 8 | Signed Byte | Pitch - set identically to the note pitch above. |
9 | Signed Byte | Type: -2=2 flat, -1=1 flat, 0=natural, 1=1 sharp, 2=x | |
A | Byte | Size: 0=normal, 1=small | |
Text | 8 | Byte | Font:
|
9 | Byte | Number of characters, 0 (zero) through 12. | |
A-15 | 12 Bytes | Characters to print. | |
Straight Line | 8-9 | Signed Word | X-coord relative to start. |
A-B | Signed Word | Y-coord relative to start. | |
Curve | 8 | Byte | Thickness - unused now so set to 1 (one). |
9 | Byte | Next curve point's object number. | |
A | Byte | Last curve point's object number. | |
B-C | Word | Minimum Y of curve. | |
D-E | Word | Maximum Y of curve. | |
Other | X | X | No parameters. Object is shown based only on its symbol number. |
"Twiddly" | 8 | Byte | Number of wiggle characters. |