Difference between revisions of "UserWiki:SynaMax"
(→HERAD Modulator/Carrier Output Level Scaling Macro (0x1E and 0x1F)) |
|||
Line 146: | Line 146: | ||
|- | |- | ||
| 3F || 3F || || || 08 || 07 || || 1F || 3F | | 3F || 3F || || || 08 || 07 || || 1F || 3F | ||
+ | |- | ||
+ | | 40 || 3F || || || 08 || 07 || || 1F || 3F | ||
|- | |- | ||
| 41 || 3F || || || 08 || 08 || || 20 || 3F | | 41 || 3F || || || 08 || 08 || || 20 || 3F |
Revision as of 22:19, 11 September 2016
HERAD Modulator/Carrier Output Level Scaling Macro (0x1E and 0x1F)
- 04 = every 1 note decreases register value by 1 [doesn't kick in until velocity 3F?]
- 01 = every 8 notes decreases register value by 1 (gets louder)
- FF = every 8 notes increment register value by 1 (gets softer)
- FE = every 4 notes increment register value by 1
- FD = every 2 notes increment register value by 1
- FC = every 1 note increment register value by 1
MIDI Velocity | 04 | 03 | 02 | 01 | FF | FE | FD | FC |
---|---|---|---|---|---|---|---|---|
00 | 3F | 10 | 00 | 00 | 00 | 00 | ||
01 | 3F | 0F | 00 | 00 | 00 | 01 | ||
02 | 3F | 0F | 00 | 00 | 01 | 02 | ||
03 | 3F | 0F | 00 | 00 | 01 | 03 | ||
04 | 3F | 0F | 00 | 01 | 02 | 04 | ||
05 | 3F | 0F | 00 | 02 | 05 | |||
06 | 3F | 0F | 00 | 03 | 06 | |||
07 | 3F | 0F | 00 | 03 | 07 | |||
08 | 3F | 0F | 01 | 04 | 08 | |||
09 | 3F | 0E | 01 | 04 | 09 | |||
0A | 3F | 0E | 01 | 05 | 0A | |||
0B | 3F | 0E | 01 | 05 | 0B | |||
0C | 3F | 0E | 01 | 06 | 0C | |||
0D | 3F | 0E | 01 | 06 | 0D | |||
0E | 3F | 0E | 01 | 07 | 0E | |||
0F | 3F | 0E | 01 | 07 | 0F | |||
10 | 3F | 0E | 02 | 08 | 10 | |||
11 | 3F | 0D | 02 | 08 | 11 | |||
12 | 3F | 0D | 02 | 09 | 12 | |||
13 | 3F | 0D | 02 | 09 | 13 | |||
14 | 3F | 0D | 02 | 0A | 14 | |||
15 | 3F | 0D | 02 | 0A | 15 | |||
16 | 3F | 0D | 02 | 0B | 16 | |||
17 | 3F | 0D | 02 | 0B | 17 | |||
18 | 3F | 0D | 03 | 0C | 18 | |||
19 | 3F | 0C | 03 | 0C | 19 | |||
1A | 3F | 0C | 03 | 0D | 1A | |||
1B | 3F | 0C | 03 | 0D | 1B | |||
1C | 3F | 0C | 03 | 0E | 1C | |||
1D | 3F | 0C | 03 | 0E | 1D | |||
1E | 3F | 0C | 03 | 0F | 1E | |||
1F | 3F | 0C | 03 | 0F | 1F | |||
20 | 3F | 0C | 04 | 10 | 20 | |||
21 | 3F | 0B | 04 | 10 | 21 | |||
22 | 3F | 0B | 04 | 11 | 22 | |||
23 | 3F | 0B | 04 | 11 | 23 | |||
24 | 3F | 0B | 04 | 12 | 24 | |||
25 | 3F | 0B | 04 | 12 | 25 | |||
26 | 3F | 0B | 04 | 13 | 26 | |||
27 | 3F | 0B | 04 | 13 | 27 | |||
28 | 3F | 0B | 05 | 14 | 28 | |||
29 | 3F | 0A | 05 | 14 | 29 | |||
2A | 3F | 0A | 05 | 15 | 2A | |||
2B | 3F | 0A | 05 | 15 | 2B | |||
2C | 3F | 0A | 05 | 16 | 2C | |||
2D | 3F | 0A | 05 | 16 | 2D | |||
2E | 3F | 0A | 05 | 17 | 2E | |||
2F | 3F | 0A | 05 | 17 | 2F | |||
30 | 3F | 0A | 06 | 18 | 30 | |||
31 | 3F | 09 | 06 | 18 | 31 | |||
32 | 3F | 09 | 06 | 19 | 32 | |||
33 | 3F | 09 | 06 | 19 | 33 | |||
34 | 3F | 09 | 06 | 1A | 34 | |||
35 | 3F | 09 | 06 | 1A | 35 | |||
36 | 3F | 09 | 06 | 1B | 36 | |||
37 | 3F | 09 | 06 | 1B | 37 | |||
38 | 3F | 09 | 07 | 1C | 38 | |||
39 | 3F | 08 | 07 | 1C | 39 | |||
3A | 3F | 08 | 07 | 1D | 3A | |||
3B | 3F | 08 | 07 | 1D | 3B | |||
3C | 3F | 08 | 07 | 1E | 3C | |||
3D | 3F | 08 | 07 | 1E | 3D | |||
3E | 3F | 08 | 07 | 1F | 3E | |||
3F | 3F | 08 | 07 | 1F | 3F | |||
40 | 3F | 08 | 07 | 1F | 3F | |||
41 | 3F | 08 | 08 | 20 | 3F | |||
42 | 3E | 07 | 08 | 20 | 3F | |||
43 | 3D | 07 | 08 | 21 | 3F | |||
44 | 3C | 07 | 08 | 21 | 3F | |||
45 | 3B | 07 | 08 | 22 | 3F | |||
46 | 3A | 07 | 08 | 22 | 3F | |||
47 | 39 | 07 | 08 | 23 | 3F | |||
48 | 38 | 07 | 08 | 23 | 3F | |||
49 | 37 | 06 | 09 | 24 | 3F | |||
4A | 36 | 06 | 09 | 24 | 3F | |||
4B | 35 | 06 | 09 | 25 | 3F | |||
4C | 34 | 06 | 09 | 25 | 3F | |||
4D | 33 | 06 | 09 | 26 | 3F | |||
4E | 32 | 06 | 09 | 26 | 3F | |||
4F | 31 | 06 | 09 | 27 | 3F | |||
50 | 30 | 06 | 09 | 27 | 3F | |||
51 | 2F | 05 | 0A | 28 | 3F | |||
52 | 2E | 05 | 0A | 28 | 3F | |||
53 | 2D | 05 | 0A | 29 | 3F | |||
54 | 2C | 05 | 0A | 29 | 3F | |||
55 | 2B | 05 | 0A | 2A | 3F | |||
56 | 2A | 05 | 0A | 2A | 3F | |||
57 | 29 | 05 | 0A | 2B | 3F | |||
58 | 28 | 05 | 0A | 2B | 3F | |||
59 | 27 | 04 | 0B | 2C | 3F | |||
5A | 26 | 04 | 0B | 2C | 3F | |||
5B | 25 | 04 | 0B | 2D | 3F | |||
5C | 24 | 04 | 0B | 2D | 3F | |||
5D | 23 | 04 | 0B | 2E | 3F | |||
5E | 22 | 04 | 0B | 2E | 3F | |||
5F | 21 | 04 | 0B | 2F | 3F | |||
60 | 20 | 04 | 0B | 2F | 3F | |||
61 | 1F | 03 | 0C | 30 | 3F | |||
62 | 1E | 03 | 0C | 30 | 3F | |||
63 | 1D | 03 | 0C | 31 | 3F | |||
64 | 1C | 03 | 0C | 31 | 3F | |||
65 | 1B | 03 | 0C | 32 | 3F | |||
66 | 1A | 03 | 0C | 32 | 3F | |||
67 | 19 | 03 | 0C | 33 | 3F | |||
68 | 18 | 03 | 0C | 33 | 3F | |||
69 | 17 | 02 | 0D | 34 | 3F | |||
6A | 16 | 02 | 0D | 34 | 3F | |||
6B | 15 | 02 | 0D | 35 | 3F | |||
6C | 14 | 02 | 0D | 35 | 3F | |||
6D | 13 | 02 | 0D | 36 | 3F | |||
6E | 12 | 02 | 0D | 36 | 3F | |||
6F | 11 | 02 | 0D | 37 | 3F | |||
70 | 10 | 02 | 0D | 37 | 3F | |||
71 | 0F | 01 | 0E | 38 | 3F | |||
72 | 0E | 01 | 0E | 38 | 3F | |||
73 | 0D | 01 | 0E | 39 | 3F | |||
74 | 0C | 01 | 0E | 39 | 3F | |||
75 | 0B | 01 | 0E | 3A | 3F | |||
76 | 0A | 01 | 0E | 3A | 3F | |||
77 | 09 | 01 | 0E | 3B | 3F | |||
78 | 08 | 01 | 0E | 3B | 3F | |||
79 | 07 | 01 | 0F | 3C | 3F | |||
7A | 06 | 01 | 0F | 3C | 3F | |||
7B | 05 | 01 | 0F | 3D | 3F | |||
7C | 04 | 01 | 0F | 3D | 3F | |||
7D | 03 | 01 | 0F | 3E | 3F | |||
7E | 02 | 01 | 0F | 3E | 3F | |||
7F | 01 | 01 | 0F | 3F | 3F |
HERAD Instrument Chunk (WIP)
Each instrument is 28 bytes long. There seems to be some metadata with these instruments, possibly an instrument id/number. There could also be some flags used as well, but that's yet to be determined.
These offsets are still a work in progress and need more research. Thanks to Malvineous for his documentation on the AdLib Instrument Bank Format which is what this chunk of data is heavily based off of.
Offset | Size | Name | Description | OPL base register | Value range |
---|---|---|---|---|---|
0x0 | 1 | |
|||
0x1 | 1 | |
|||
0x2 | 1 | ksl | |
0x40 (bits 6-7) | |
0x3 | 1 | multiple | |
0x20 (bits 0-3) | |
0x4 | 1 | feedback | |
0xC0 (bits 1-3) | |
0x5 | 1 | attack | |
0x60 (upper four bits) | |
0x6 | 1 | sustain | |
0x80 (upper four bits) | |
0x7 | 1 | eg | |
0x20 (bit 5) | nonzero value is on |
0x8 | 1 | decay | |
0x60 (lower four bits) | |
0x9 | 1 | releaseRate | |
0x80 (lower four bits) | |
0xA | 1 | totalLevel | |
0x40 (bit 0-5) | uses all bits; output level can still be modified by output level byte 0x1E |
0xB | 1 | am | 0x20 (bit 7) | ||
0xC | 1 | vib | 0x20 (bit 6) | ||
0xD | 1 | ksr | |
0x20 (bit 4) | |
0xE | 1 | con | |
0xC0 (bit 0, inverted) | 0: OPL bit set to 1 other: OPL bit set to 0 |
0xF | 1 | ksl | |
0x40 (bits 6-7) | |
0x10 | 1 | multiple | |
0x20 (bits 0-3) | |
0x11 | 1 | feedback | |
0xC0 (bits 1-3) | This byte seems to have garbage data in it and is not used |
0x12 | 1 | attack | |
0x60 (upper four bits) | |
0x13 | 1 | sustain | |
0x80 (upper four bits) | |
0x14 | 1 | eg | |
0x20 (bit 5) | nonzero value is on |
0x15 | 1 | decay | |
0x60 (lower four bits) | |
0x16 | 1 | releaseRate | |
0x80 (lower four bits) | |
0x17 | 1 | totalLevel | |
0x40 (bit 0-5) | uses all bits; output level can still be modified by output level byte 0x1E |
0x18 | 1 | am | 0x20 (bit 7) | ||
0x19 | 1 | vib | 0x20 (bit 6) | ||
0x1A | 1 | ksr | |
0x20 (bit 4) | |
0x1B | 1 | con | |
0xC0 (bit 0, inverted) | So far, this seems to be always set at zero. |
0x1E | 1 | 0 = loudest, F = softest | |||
0x1F | 1 | |
0 = loudest, F = softest | ||
0x20 | 1 | |
Seems to increases Feedback depending on note velocity | ||
0x21 | 1 | |
Increases pitch bend range (seems like it's a flag: Fine tune = 0, Coarse tune = 1) | ||
0x22 | 1 | |
Normally set at 0x0, 0xC = an octave higher | ||
0x23 | 1 | Has to deal with pitch bend | |||
0x24 | 1 | |
Has to deal with pitch bend | ||
0x25 | 1 | | |||
0x26 | 1 | | |||
0x27 | 1 | |
HERAD Instrument Chunk (old)
Each instrument is 28 bytes long. Instruments usually just use the lower 3-0 bits for these OPL commands but full 8-bit values have been seen. There seems to be some metadata with these instruments, possibly an instrument id/number. There could also be some flags used as well, but that's yet to be determined.
These offsets are still a work in progress and need more research.
Offset | Size | Description |
---|---|---|
0x0 | 1 | |
0x1 | 1 | |
0x2 | 1 | |
0x3 | 1 | |
0x4 | 1 | |
0x5 | 1 | |
0x6 | 1 | |
0x7 | 1 | |
0x8 | 1 | |
0x9 | 1 | |
0xA | 1 | |
0xC | 1 | |
0xE | 1 | |
0xF | 1 | |
0x10 | 1 | |
0x11 | 1 | |
0x12 | 1 | |
0x13 | 1 | |
0x14 | 1 | |
0x15 | 1 | |
0x16 | 1 | |
0x1C | 1 | |
0x1D | 1 | |
0x1E | 1 | |
0x1F | 1 | |
0x22 | 1 | |
0x23 | 1 | |
0x24 | 1 | |
0x25 | 1 | |
0x26 | 1 | |