-
Notifications
You must be signed in to change notification settings - Fork 16
SC‐55 Control ROM
Some names and expressions seems to have changed over time with the different generations of the Sound Canvas line. All documentation used in EmuSC uses names and expressions from the SC-88Pro documentation.
This is the memory layout of the SC-55 Control ROM v. 1.20. Total size of ROM is 262144 bytes.
Address | Short name | Description |
---|---|---|
0x00000 - 0x08893 | - | Initialization code, LCD menu definitions ++ |
0x08894 - 0x0F366 | MIDI files | 2 demo songs stored as MIDI files |
0x0F367 - 0x0FFFF | Version | ROM version and date as ASCII, rest is unused |
0x10000 - 0x1BCFF | Instrument 1/2 | Instrument definitions (216 bytes each) |
0x1BD00 - 0x1DEBF | Partials 1/2 | Partial definitions (60 bytes each) |
0x1DEC0 - 0x1FFFF | Samples 1/2 | Sample definitions (16 bytes each) |
0x20000 - 0x2BCFF | Instrument 2/2 | Instrument definitions (216 bytes each) |
0x2BD00 - 0x2DEBF | Partials 2/2 | Partial definitions (60 bytes each) |
0x2DEC0 - 0x2FFFF | Samples 2/2 | Sample definitions (16 bytes each) |
0x30000 - 0x30BFF | Variations | Variation definitions, 128x128 GS instrument table |
0x30C00 - 0x37FFF | - | Unknown, mostly unused |
0x38000 - 0x3C027 | Drums | Drum set definitions (128 bytes LUT + 1164 bytes each) |
0x3CA00 - 0x3D147 | Init | Initial values of system / patch common and blocks |
0x3D148 - 0x3D167 | GS version | GS version string |
0x3D1E8 - 0x3FFFF | LUTs | Lookup tables (LUTs) and other unknown data |
Index | Length | EmuSC | Description |
---|---|---|---|
0 | 12 | ✔️ | Instrument name in ASCII. Padded with space. |
12 | 20 | ❎ | Instrument parameters common between partials. |
32 | 4 + 88 | ❎ | Instrument partial 1 |
124 | 4 + 88 | ❎ | Instrument partial 2 (not used for all instruments) |
Index | Inst. index | Length | EmuSC | Description |
---|---|---|---|---|
0 | 12 | 1 | ✔️ |
Volume Attenuation Range: 1 - 127 Defines volume attenuation on instrument level. The range has the same attenuation level function as all other volume attenuations, see e.g. partial volume attenuation and drum volume attenuation. A good approximation of the function is |
1 | 13 | 1 | ❌ | Unknown |
2 | 14 | 1 | ❎ |
LFO1 Waveform Range: 0 - 8 (but 0x10 is sometimes used??) Specifies the waveform used by LFO1: 0 => Sine 1 => Square 2 => Sawtooth 3 => Triangle 8 => Random There are other values that effects the waveform as well, such as 9 and 16, but waveform is not yet understood. |
3 | 15 | 1 | ✔️ |
LFO1 Rate Range: 0 - 127 The modulation rate of the LFO1. Value is a linear function of frequency defined as 0.1Hz. A value of e.g. 10 = 1Hz. |
4 | 16 | 1 | ✔️ |
LFO1 Delay Range: 0 -127 A non-linear function of time from note on and until the LFO Fade starts. The function is very likely defined by one of the LUTs below. |
5 | 17 | 1 | ✔️ |
LFO1 Fade Range: 0 - 127 A non-linear function of time from LFO1 Delay is finished and until the LFO has reached maximum amplitude. The function is very likely defined by one of the LUTs below. |
6 | 18 | 1 | ✔️ |
Partials In Use Range: 0 - 3 The two first bits indicate which of the partials that are being used: 0 => No partials used (no audio) 1 => Only 1st. partial is used 2 => Only 2nd. partial is used 3 => Both partials are used |
7 | 19 | 1 | ❌ | Unknown Range: 0 - 2 |
8 | 20 | 2 | ❌ | Unknown. Most likely a 2 byte value |
10 | 22 | 4 | N/A | Unused |
14 | 26 | 2 | ❌ | Unknown. Most likely a 2 byte value |
16 | 28 | 4 | N/A | Unused |
Note that values in 8 - 13 and 14 - 19 seems to be linked.
Index | Inst. index | Length | Default | EmuSC | Description |
---|---|---|---|---|---|
- | 32 / 124 | 2 | 0x0040 | ||
- | 34 / 126 | 2 | 0x0000 | ✔️ | Partial # |
0 | 36 / 128 | 1 | 0x00 | ❎ |
LFO2 Waveform Range: 0 - 127 Specifies the waveform used by LFO2. See description of LFO1 Waveform above to see details of values and supported waveforms. |
1 | 37 / 129 | 1 | 0x00 | ✔️ |
LFO2 Rate Range: 0 - 127 The modulation rate of the LFO2. Value is, similarly to LFO1 Rate, a linear function of frequency defined as 0.1Hz. A value of e.g. 10 = 1Hz. |
2 | 38 / 130 | 1 | 0x00 | ✔️ |
LFO2 Delay Range: 0 - 127 See description of values in LFO1 Delay above. |
3 | 39 / 131 | 1 | 0x00 | ✔️ |
LFO2 Fade Range: 0 - 127 See description of values in LFO1 Fade above. |
4 | 40 / 132 | 1 | 0xff | N/A | Unused |
5 | 41 / 133 | 1 | 0x40 | ✔️ |
Panpot Range: -64 - +63 Pan, or stereo, position of the partial: -64 => all left 0 => centered +63 => all right Note that this value is added to the panpot from part settings while the sum is limited to the same range. Exception to this logic is when panpot from part settings is -64 (random / RND), which overrides any partial panpot value and makes new random panpot values for each note. |
6 | 42 / 134 | 1 | 0x40 | ✔️ |
Coarse pitch Range: -64 - +63 Partial pitch correction in semitones. |
7 | 43 / 135 | 1 | 0x40 | ✔️ |
Fine pitch Range: -64 - +63 Partial pitch correction in cents. |
8 | 44 / 136 | 1 | 0x00 | ❎ |
Random Pitch Depth Range: 0 - 100 Random pitch that is calculated at the note on event and constant for the duration of the note. 0 indicates no random pitch adjustment. Exact function is difficult to measure precisely, but is most likely linear ±x cent. A value of 100 seems to create pitch variation between -1 and +1 semitone (100 cents). Values larger than 100 (up to 0xff) seems to calculate larger pitch variations, but are always capped at ±1 semitone. This is quite different than most Roland synths that have a scale from 0 to 1200 cents for this parameter. |
9 | 45 / 137 | 1 | 0x4a | ✔️ |
Pitch Key Follow Range: -10 - 0 A value of 0 gives a natural pitch adjustment with changing note frequencies, while the more negative the pitch key follow the less will the partial pitch scale / follow note frequencies. With a value of -10 there is no change in partial pitch between different keys. |
10 | 46 / 138 | 1 | 0x00 | ❎ |
LFO1 Pitch Depth Range: 0 - 127? Specifies how much the LFO1 will affect pitch. The parameter has an unknown function and emusc is currently using a crude linear approximation: value * 0.0011. Note: There are 8-bit values in the ROM indicating that the MSB is some kind of flag. |
11 | 47 / 139 | 1 | 0x00 | ❎ |
LFO2 Pitch Depth Range: 0 - 127? Specifies how much the LFO2 will affect pitch. The parameter is expected to have the same function as LFO1 Pitch Depth. |
12 | 48 / 140 | 1 | 0x00 | ✔️ |
Pitch Envelope Multiplier Range: 0 - 127 Coefficient to be multiplied to output from pitch envelopes (see e.g. Pitch Envelope Level P0). |
13 | 49 / 141 | 1 | 0x00 | N/A | Unused |
14 | 50 / 142 | 1 | 0x40 | ✔️ |
Pitch Envelope Level P0 Range: -63 - +63 Initial value for pitch envelope. Pitch level transitions to Pitch Envelope Level P1 during the time of Pitch Envelope Duration P1. Pitch envelope values are calculated as: Envelope value \cdot Pitch Envelope Multiplier \cdot 0.3 => pitch change in cents. |
15 | 51 / 143 | 1 | 0x40 | ✔️ |
Pitch Envelope Level P1 Range: -63 - +63 Pitch envelope value at end of P1. See _Pitch Envelope Level P0 for more details. |
16 | 52 / 144 | 1 | 0x40 | ✔️ |
Pitch Envelope Level P2 Range: -63 - +63 Pitch envelope value at end of P2. See _Pitch Envelope Level P0 for more details. |
17 | 53 / 145 | 1 | 0x40 | ✔️ |
Pitch Envelope Level P3 Range: -63 - +63 Pitch envelope value at end of P3. See _Pitch Envelope Level P0 for more details. |
18 | 54 / 146 | 1 | 0x40 | ✔️ |
Pitch Envelope Level P4 Range: -63 - +63 Pitch envelope value at end of P4. See _Pitch Envelope Level P4 for more details. |
19 | 55 / 147 | 1 | 0x00 | ✔️ |
Pitch Envelope Duration P1 Range: 0 - 127 Duration for pitch envelope transition from initial value, P0, to P1 (phase 1). The phase time duration value is a non-linear function similarly to what is used for e.g. TVA and TVF envelopes. This function is defined in a LUT internally, but EmuSC is currently unable to properly use this LUT. Instead using a pretty accurate approximation to convert to seconds: |
20 | 56 / 148 | 1 | 0x00 | ✔️ |
Pitch Envelope Duration P2 Range: 0 - 127 Duration for pitch envelope phase 2. See Pitch Envelope Duration P1 for more information. |
21 | 57 / 149 | 1 | 0x00 | ✔️ |
Pitch Envelope Duration P3 Range: 0 - 127 Duration for pitch envelope phase 3. See Pitch Envelope Duration P1 for more information. |
22 | 58 / 150 | 1 | 0x00 | ✔️ |
Pitch Envelope Duration P4 Range: 0 - 127 Duration for pitch envelope phase 4. See Pitch Envelope Duration P1 for more information. |
23 | 59 / 151 | 1 | 0x00 | ✔️ |
Pitch Envelope Duration P5 Range: 0 - 127 Duration for pitch envelope phase 5. See Pitch Envelope Duration P1 for more information. |
24 | 60 / 152 | 1 | 0x00 | N/A | Unused |
25 | 61 / 153 | 1 | 0x00 | N/A | Unused |
26 | 62 / 154 | 1 | 0x00 | N/A | Unused |
27 | 63 / 155 | 1 | 0x00 | N/A | Unused |
28 | 64 / 156 | 1 | 0x40 | ❌ | Unknown |
29 | 65 / 157 | 1 | 0x40 | ❌ | Unknown |
30 | 66 / 158 | 1 | 0x40 | ❌ | Pitch Envelope Velocity Sensitivity? Range: -64 - +64? Positive values with low velocity => pitch envelope is almost cancelled out. High positive values flattens out pitch envelope even at full velocity. Value of 0 gives the same pitch envelope independent of velocity => no effect. Negative values seems to invert the pitch envelope somehow. A negative value of 11 results in static pitch for the entire time of the partial independent of velocity. WIP |
31 | 67 / 159 | 1 | 0x40 | ❌ | Unknown |
32 | 68 / 160 | 1 | 0x00 | ❌ | Bend pitch |
33 | 69 / 161 | 1 | 0x00 | ❎ |
TVF Cutoff Frequency Range: 0 - 127 The cutoff frequency of the 2nd. order low-pass filter applied to all partials. This is applied independently of the filter envelope(?). The exact function translating values into frequencies is not known and WIP. |
34 | 70 / 162 | 1 | 0x00 | ❎ |
TVF Resonance Range: 0 - 127 The resonance (Q) of the low-pass filter. The exact function translating values into Q-values is not known and WIP. |
35 | 71 / 163 | 1 | 0x03 | ❌ | Low velocity clearer. If 0 then Level Key Follow work as described in 73 / 165. If != 0, then Level Key Follow is disabled. |
36 | 72 / 164 | 1 | 0x00 | ❌ | Flags? |
37 | 73 / 165 | 1 | 0x40 | ❌ | Level Key Follow. Affects keys above C4. Positive number increases volume, negative decreases volume. |
38 | 74 / 166 | 1 | 0x00 | ❎ |
LFO1 TVF Depth Range: 1 - 127 Specifies how much the LFO1 will affect the cutoff filter frequency. Exact function is currently unknown. |
39 | 75 / 167 | 1 | 0x00 | ❎ |
LFO2 TVF Depth Range: 1 - 127 Specifies how much the LFO2 will affect the cutoff filter frequency. See description of LFO1 TVF Depth above. |
40 | 76 / 168 | 1 | 0x00 | ❎ |
TVF Envelope Level Initial Range: 1 - 127 Factor of the effect of envelope values. |
41 | 77 / 169 | 1 | 0x40 | ❎ |
TVF Envelope Level P1 Range: 1 - 127 Relative change to filter cutoff value. |
42 | 78 / 170 | 1 | 0x40 | ❎ |
TVF Envelope Level P2 Range: 1 - 127 Relative change to filter cutoff value. |
43 | 79 / 171 | 1 | 0x40 | ❎ |
TVF Envelope Level P3 Range: 1 - 127 Relative change to filter cutoff value. |
44 | 80 / 172 | 1 | 0x40 | ❎ |
TVF Envelope Level P4 Range: 1 - 127 Relative change to filter cutoff value. |
45 | 81 / 173 | 1 | 0x40 | ❎ |
TVF Envelope Level P5 Range: 1 - 127 Relative change to filter cutoff value. |
46 | 82 / 174 | 1 | 0x00 | ✔️ |
TVF Envelope Duration P1 Range: 1 - 127 Same as for TVA. |
47 | 83 / 175 | 1 | 0x00 | ✔️ |
TVF Envelope Duration P2 Range: 1 - 127 Same as for TVA. |
48 | 84 / 176 | 1 | 0x00 | ✔️ |
TVF Envelope Duration P3 Range: 1 - 127 Same as for TVA. |
49 | 85 / 177 | 1 | 0x00 | ✔️ |
TVF Envelope Duration P4 Range: 1 - 127 Same as for TVA. |
50 | 86 / 178 | 1 | 0x00 | ✔️ |
TVF Envelope Duration P5 Range: 1 - 127 Same as for TVA. |
51 | 87 / 179 | 1 | 0x40 | N/A | Unused |
52 | 88 / 180 | 1 | 0x00 | ❌ | Space voice? |
53 | 89 / 181 | 1 | 0x00 | ❌ | Fr Horn 1? |
54 | 90 / 182 | 1 | 0x00 | N/A | Unused |
55 | 91 / 183 | 1 | 0x40 | ❌ | Unknown |
56 | 92 / 184 | 1 | 0x40 | ❌ | Unknown |
57 | 93 / 185 | 1 | 0x40 | ❌ |
TVF Cutoff Velocity Sensitivity Range: -64 - +63 Changes TVF cutoff frequency based on key velocity. Stronger effect the lower the key velocity is, and no effect when velocity = 127. Function is WIP |
58 | 94 / 186 | 1 | 0x40 | ❌ | Unknown |
59 | 95 / 187 | 1 | 0x40 | ❌ | Unknown |
60 | 96 / 188 | 1 | 0x00 | ❌ | Breath noise? |
61 | 97 / 189 | 1 | 0x00 | N/A | Unused |
62 | 98 / 190 | 1 | 0x00 | ❌ | Pressure sensitivity (A) |
63 | 99 / 191 | 1 | 0x7F | N/A | Unused |
64 | 100 / 192 | 1 | 0x7F | N/A | Unused |
65 | 101 / 193 | 1 | 0x00 | ✔️ |
Volume attenuation Range: 1 - 127 Defines volume attenuation for this partial. The range has the same attenuation level function as all other volume attenuations, see Volume Attenuation in Instrument Parameters for more information. |
66 | 102 / 194 | 1 | 0x00 | ❌ |
Bias Position Range: 0 - 2 0 => bias centered on note #60(C4) 1 => bias centered on note #0(or nearby) 2 => bias centered on note #120(C9)(or nearby) |
67 | 103 / 195 | 1 | 0x40 | ❌ |
Bias Level Range: -20 - +20 A value of 0 makes no effect. Negative values results in gradually lower volume level for notes of higher frequencies than Bias Position, while positive values gives similar effect just on notes of lower frequencies than Bias Position |
68 | 104 / 196 | 1 | 0x00 | ❎ |
LFO1 TVA Depth Range: 1 - 64? Specifies how much the LFO1 will affect level. Exact function is unknown, but a sample multiplication of "value / 100" seems to give a pretty good approximation. |
69 | 105 / 197 | 1 | 0x00 | ❎ |
LFO2 TVA Depth Range: 1 - 64? Specifies how much the LFO2 will affect level. For details, see LFO1 TVA Depth above. |
70 | 106 / 198 | 1 | 0x00 | ✔️ |
TVA Envelope Level P1 Range: 0 - 127 Volume level for 1st attack phase. |
71 | 107 / 199 | 1 | 0x00 | ✔️ |
TVA Envelope Level P2 Range: 0 - 127 Volume level for 2nd attack phase. |
72 | 108 / 200 | 1 | 0x00 | ✔️ |
TVA Envelope Level P3 Range: 0 - 127 Volume level for 1st decay phase. |
73 | 109 / 201 | 1 | 0x00 | ✔️ |
TVA Envelope Level P4 Range: 0 - 127 Volume level for 2nd decay phase. If this is non-zero, there will be a sustained tone at this level after P4 is complete and until key release. |
74 | 110 / 202 | 1 | 0x00 | ✔️ |
TVA Envelope Duration T1 Range: 0 - 255 Time duration for 1st attack phase. The MSB specify the transition curve 0 => Exponential curve 1 => Linear curve Remaining 7 bit describes the time; see Pitch Envelope Duration P1 for function description. |
75 | 111 / 203 | 1 | 0x00 | ✔️ |
TVA Envelope Duration T2 Range: 0 - 255 Time duration for 2nd attack phase. See P1 above. |
76 | 112 / 204 | 1 | 0x00 | ✔️ |
TVA Envelope Duration T3 Range: 0 - 255 Time duration for 1st decay phase. See P1 above. |
77 | 113 / 205 | 1 | 0x00 | ✔️ |
TVA Envelope Duration T4 Range: 0 - 255 Time duration for 2nd decay phase. See P1 above. |
78 | 114 / 206 | 1 | 0x00 | ✔️ |
TVA Envelope Duration T5 Range: 0 - 255 Time duration for release phase. See P1 above. |
79 | 115 / 207 | 1 | 0x00 | ❌ | Note high? |
80 | 116 / 208 | 1 | 0x00 | ❌ | Note low? |
81 | 117 / 209 | 1 | 0x00 | ❎ |
TVA Envelope Time Presets T1-T4 Range: 0 - 2 0 => no effect 1 => TVA envelope times are inverted; key = 127 - key? This gives approx the correct behavior, but there are more nuances to it. Needs more investigation. 2 => TVA envelope times are adjusted as if key = 127 |
82 | 118 / 210 | 1 | 0x00 | ❎ |
TVA Envelope Time Presets T5 Range: 0 - 2 Same as effect as TVA Envelope Time Presets T1-T4 above, but for the release phase. |
83 | 119 / 211 | 1 | 0x40 | ✔️ |
TVA Envelope Time Key Follow T1-T4 Range: -20 - +20 Defines how much the TVA envelope duration for attack and decays phases (T1 - T4) are adjusted based on key / frequency. Positive values makes notes with key < C4 have shorter TVA envelope duration, while keys > C4 have longer duration. Negative values have the inverted effect. The exact function is not found yet, but a pretty good estimation is: y = |
84 | 120 / 212 | 1 | 0x40 | ✔️ |
TVA Envelope Time Key Follow T5 Range: -20 - +20 Same as effect as TVA Envelope Time Key Follow T1-T4 above, but for release phase. |
85 | 121 / 213 | 1 | 0x40 | ❌ |
TVA Envelope Attack Time Velocity Sensitivity Range: -24 - +24 Higher values gives shorter TVA attack phase duration based on key velocity. Function not known yet. |
86 | 122 / 214 | 1 | 0x40 | ❌ |
TVA Envelope Release Time Velocity Sensitivity Range: -24 - +24 Higher values gives shorter TVA release phase duration based on key velocity. Function not known yet. |
87 | 123 / 215 | 1 | 0x00 | N/A | Unused |
Note
Default value of e.g. 0x40 means that the ROM value is a number ranging from -64 - +63 and value 0x40 (decimal 64) = 0.
Important
Not to be confused with Instrument partials. Should probably rename Partial to something else (Tone?) to avoid confusion.
Index | Length | EmuSC | Description |
---|---|---|---|
0 | 12 | ✔️ | Partial name in ASCII. Padded with space. |
12 | 16 | ✔️ | 16 multi-sample split points. Each value is note value |
12 | 32 | ✔️ | 16 sample references (2 byte) |
The split points dictates which sample to use for different notes (pitch levels)
Index | Length | EmuSC | Description |
---|---|---|---|
0 | 1 | ✔️ | Coarse volume |
1 | 3 | ✔️ | Address in PCM ROMs |
4 | 2 | ❌ | Unknown (related to looped samples) |
6 | 2 | ✔️ | Sample length |
8 | 2 | ✔️ | Loop length |
10 | 1 | ✔️ | Loop mode |
11 | 1 | ✔️ | Original key number |
12 | 2 | ✔️ | Fine Pitch |
14 | 2 | ✔️ | Fine Volume |
Index | Length | EmuSC | Description |
---|---|---|---|
0 | 256 | ✔️ | 128 capital instruments (GM instruments). 2 byte instrument reference. |
1 | 256 | ✔️ | 128 instrument GS variations (many are not used). 2 byte instrument reference. |
.. | 256 | ✔️ | 128 instrument GS variations (many are not used). 2 byte instrument reference. |
127 | 256 | ✔️ | 128 instrument MT-32 variations. 2 byte instrument reference. |
This is a lookup table used to map drum set index with drum set definitions (see below).
Index | Length | EmuSC | Description |
---|---|---|---|
0 | 256 | ✔️ | 16 bit instrument reference |
256 | 128 | ✔️ | Volume |
384 | 128 | ✔️ | Key |
512 | 128 | ✔️ | Assign Group |
640 | 128 | ✔️ | Panpot |
768 | 128 | ❎ | Reverb |
896 | 128 | ❎ | Chorus |
1024 | 128 | ✔️ | Flags |
1152 | 12 | ✔️ | Drum kit name in ASCII |
In the Drum set definitions all parameters, except the name, are in packs of 128 values; corresponding to the MIDI key number.
Note
Note that the SC-55 actually have 13 valid drum sets even though only 9 are available. The remaining drum sets are AC.STANDARD, AC.ELEC., AC.BRUSH and AC.TR-808. Why these drum sets have been hidden from users are unknown.
Address | Name | Description |
---|---|---|
0x3CA00 - 0x3CA47 | Initial values (Common) | Initial values of System Common and Patch Common |
0x3CA48 - 0x3D147 | Initial values (Blocks) | Initial values of each block / part (112 bytes each) |
Initial values of the internal state. The SC-55 stores its internal state at 0x8000-0x905F in its RAM. This area is sent and received by bulk dump transmission and reception.
Below is a table showing the content of the initial values stored in ROM together with RAM address and SysEx bulk dump addresses.
ROM Addr. | RAM Addr. | Bulk Dump Addr. | Length | Category | Description |
---|---|---|---|---|---|
0x3CA00 | 0x8000 | 48 00 00 | 2 | System | Master Tune |
0x3CA02 | 0x8002 | 48 00 04 | 1 | System | Master Volume |
0x3CA03 | 0x8003 | 48 00 06 | 1 | System | LGC Controller Number |
0x3CA04 | 0x8004 | 48 00 08 | 1 | System | Unknown |
0x3CA05 | 0x8005 | 48 00 0A | 1 | System | Master Key Shift |
0x3CA06 | 0x8006 | 48 00 0C | 1 | System | Master Pan |
0x3CA07 | 0x8007 | 48 00 0E | 1 | System | Unknown |
0x3CA08 | 0x8008 | 48 00 10 | 16 | Patch Common | Patch Name |
0x3CA18 | 0x8018 | 48 00 30 | 16 | Patch Common | Voice Reserve |
0x3CA28 | 0x8028 | 48 00 50 | 1 | Patch Common | Assigner Separate Wall |
0x3CA29 | 0x8029 | 48 00 52 | 1 | Patch Common | Unknown |
0x3CA2A | 0x802A | 48 00 54 | 1 | Patch Common | Reverb Macro |
0x3CA2B | 0x802B | 48 00 56 | 1 | Patch Common | Reverb Character |
0x3CA2C | 0x802C | 48 00 58 | 1 | Patch Common | Reverb Pre-LPF |
0x3CA2D | 0x802D | 48 00 5A | 1 | Patch Common | Reverb Level |
0x3CA2E | 0x802E | 48 00 5C | 1 | Patch Common | Reverb Time |
0x3CA2F | 0x802F | 48 00 5E | 1 | Patch Common | Reverb Delay Feedback |
0x3CA30 | 0x8030 | 48 00 60 | 1 | Patch Common | Reverb Send Level to Chorus |
0x3CA31 | 0x8031 | 48 00 62 | 1 | Patch Common | Reverb Pre-Delay Time |
0x3CA32 | 0x8032 | 48 00 64 | 1 | Patch Common | Chorus Macro |
0x3CA33 | 0x8033 | 48 00 66 | 1 | Patch Common | Chorus Pre-LPF |
0x3CA34 | 0x8034 | 48 00 68 | 1 | Patch Common | Chorus Level |
0x3CA35 | 0x8035 | 48 00 6A | 1 | Patch Common | Chorus Feedback |
0x3CA36 | 0x8036 | 48 00 6C | 1 | Patch Common | Chorus Delay |
0x3CA37 | 0x8037 | 48 00 6E | 1 | Patch Common | Chorus Rate |
0x3CA38 | 0x8038 | 48 00 70 | 1 | Patch Common | Chorus Depth |
0x3CA39 | 0x8039 | 48 00 72 | 1 | Patch Common | Chorus Send Level to Reverb |
0x3CA3A | 0x803A | 48 00 74 | 1 | Patch Common | Chorus Send Level to Delay |
0x3CA3B | 0x803B | 48 00 76 | 1 | Patch Common | Unknown (SC-88 or later: Delay Macro) |
0x3CA3C | 0x803C | 48 00 78 | 1 | Patch Common | Unknown (SC-88 or later: Delay Pre-LPF) |
0x3CA3D | 0x803D | 48 00 7A | 1 | Patch Common | Unknown (SC-88 or later: Delay Time Center) |
0x3CA3E | 0x803E | 48 00 7C | 1 | Patch Common | Unknown (SC-88 or later: Delay Time Ratio Left) |
0x3CA3F | 0x803F | 48 00 7E | 1 | Patch Common | Unknown (SC-88 or later: Delay Time Ratio Right) |
0x3CA40 | 0x8040 | 48 01 00 | 1 | Patch Common | Unknown (SC-88 or later: Delay Level Center) |
0x3CA41 | 0x8041 | 48 01 02 | 1 | Patch Common | Unknown (SC-88 or later: Delay Level Left) |
0x3CA42 | 0x8042 | 48 01 04 | 1 | Patch Common | Unknown (SC-88 or later: Delay Level Right) |
0x3CA43 | 0x8043 | 48 01 06 | 1 | Patch Common | Unknown (SC-88 or later: Delay Level) |
0x3CA44 | 0x8044 | 48 01 08 | 1 | Patch Common | Unknown (SC-88 or later: Delay Feedback) |
0x3CA45 | 0x8045 | 48 01 0A | 1 | Patch Common | Unknown (SC-88 or later: Delay Send Level to Reverb) |
0x3CA46 | 0x8046 | 48 01 0C | 1 | Patch Common | Unknown |
0x3CA47 | 0x8047 | 48 01 0E | 1 | Patch Common | Unknown |
0x3CA48 | 0x8048 | 48 01 10 | 1 | Patch Part 10 | Bank Select |
0x3CA49 | 0x8049 | 48 01 12 | 1 | Patch Part 10 | Program Change |
0x3CA4A | 0x804A | 48 01 14 | 1 | Patch Part 10 | Rx. NRPN/PB/CAf/PC/PAf/Note/Soft |
0x3CA4B | 0x804B | 48 01 16 | 1 | Patch Part 10 | Rx. Sos/Por/Hold/Exp/Pan/Vol/Mod/RPN |
0x3CA4C | 0x804C | 48 01 18 | 1 | Patch Part 10 | Rx. Channel |
0x3CA4D | 0x804D | 48 01 1A | 1 | Patch Part 10 | Mono/Poly, Assign, Rhythm |
0x3CA4E | 0x804E | 48 01 1C | 1 | Patch Part 10 | Pitch Key Shift |
0x3CA4F | 0x804F | 48 01 1E | 1 | Patch Part 10 | Pitch Offset Fine |
0x3CA50 | 0x8050 | 48 01 20 | 1 | Patch Part 10 | Part Level |
0x3CA51 | 0x8051 | 48 01 22 | 1 | Patch Part 10 | Part Panpot |
0x3CA52 | 0x8052 | 48 01 24 | 1 | Patch Part 10 | Velocity Sense Depth |
0x3CA53 | 0x8053 | 48 01 26 | 1 | Patch Part 10 | Velocity Sense Offset |
0x3CA54 | 0x8054 | 48 01 28 | 1 | Patch Part 10 | Keyboard Range Low |
0x3CA55 | 0x8055 | 48 01 2A | 1 | Patch Part 10 | Keyboard Range High |
0x3CA56 | 0x8056 | 48 01 2C | 1 | Patch Part 10 | Chorus Send Level |
0x3CA57 | 0x8057 | 48 01 2E | 1 | Patch Part 10 | Reverb Send Level |
0x3CA58 | 0x8058 | 48 01 30 | 1 | Patch Part 10 | Tone Modify 1 (Vibrato Rate) |
0x3CA59 | 0x8059 | 48 01 32 | 1 | Patch Part 10 | Tone Modify 2 (Vibrato Depth) |
0x3CA5A | 0x805A | 48 01 34 | 1 | Patch Part 10 | Tone Modify 3 (TVF Cutoff Freq) |
0x3CA5B | 0x805B | 48 01 36 | 1 | Patch Part 10 | Tone Modify 4 (TVF Resonance) |
0x3CA5C | 0x805C | 48 01 38 | 1 | Patch Part 10 | Tone Modify 5 (TVF & TVA Env. Attack) |
0x3CA5D | 0x805D | 48 01 3A | 1 | Patch Part 10 | Tone Modify 6 (TVF & TVA Env. Decay) |
0x3CA5E | 0x805E | 48 01 3C | 1 | Patch Part 10 | Tone Modify 7 (TVF & TVA Env. Release) |
0x3CA5F | 0x805F | 48 01 3E | 1 | Patch Part 10 | Tone Modify 8 (Vibrato Delay) |
0x3CA60 | 0x8060 | 48 01 40 | 1 | Patch Part 10 | Unknown (SC-55mkII or later: Rx. Bank Select MSB/LSB, Tone Remain) |
0x3CA61 | 0x8061 | 48 01 42 | 1 | Patch Part 10 | Unknown (SC-88 or later: Delay Send Level) |
0x3CA62 | 0x8062 | 48 01 44 | 1 | Patch Part 10 | Scale Tuning C |
0x3CA63 | 0x8063 | 48 01 46 | 1 | Patch Part 10 | Scale Tuning C# |
0x3CA64 | 0x8064 | 48 01 48 | 1 | Patch Part 10 | Scale Tuning D |
0x3CA65 | 0x8065 | 48 01 4A | 1 | Patch Part 10 | Scale Tuning D# |
0x3CA66 | 0x8066 | 48 01 4C | 1 | Patch Part 10 | Scale Tuning E |
0x3CA67 | 0x8067 | 48 01 4E | 1 | Patch Part 10 | Scale Tuning F |
0x3CA68 | 0x8068 | 48 01 50 | 1 | Patch Part 10 | Scale Tuning F# |
0x3CA69 | 0x8069 | 48 01 52 | 1 | Patch Part 10 | Scale Tuning G |
0x3CA6A | 0x806A | 48 01 54 | 1 | Patch Part 10 | Scale Tuning G# |
0x3CA6B | 0x806B | 48 01 56 | 1 | Patch Part 10 | Scale Tuning A |
0x3CA6C | 0x806C | 48 01 58 | 1 | Patch Part 10 | Scale Tuning A# |
0x3CA6D | 0x806D | 48 01 5A | 1 | Patch Part 10 | Scale Tuning B |
0x3CA6E | 0x806E | 48 01 5C | 1 | Patch Part 10 | CC1 Controller Number |
0x3CA6F | 0x806F | 48 01 5E | 1 | Patch Part 10 | CC2 Controller Number |
0x3CA70 | 0x8070 | 48 01 60 | 1 | Patch Part 10 | Mod. Pitch Control |
0x3CA71 | 0x8071 | 48 01 62 | 1 | Patch Part 10 | Mod. TVF Cutoff Control |
0x3CA72 | 0x8072 | 48 01 64 | 1 | Patch Part 10 | Mod. Amplitude Control |
0x3CA73 | 0x8073 | 48 01 66 | 1 | Patch Part 10 | Unknown |
0x3CA74 | 0x8074 | 48 01 68 | 1 | Patch Part 10 | Mod. LFO1 Rate Control |
0x3CA75 | 0x8075 | 48 01 6A | 1 | Patch Part 10 | Mod. LFO1 Pitch Depth |
0x3CA76 | 0x8076 | 48 01 6C | 1 | Patch Part 10 | Mod. LFO1 TVF Depth |
0x3CA77 | 0x8077 | 48 01 6E | 1 | Patch Part 10 | Mod. LFO1 TVA Depth |
0x3CA78 | 0x8078 | 48 01 70 | 1 | Patch Part 10 | Mod. LFO2 Rate Control |
0x3CA79 | 0x8079 | 48 01 72 | 1 | Patch Part 10 | Mod. LFO2 Pitch Depth |
0x3CA7A | 0x807A | 48 01 74 | 1 | Patch Part 10 | Mod. LFO2 TVF Depth |
0x3CA7B | 0x807B | 48 01 76 | 1 | Patch Part 10 | Mod. LFO2 TVA Depth |
0x3CA7C | 0x807C | 48 01 78 | 1 | Patch Part 10 | Bend Pitch Control |
0x3CA7D | 0x807D | 48 01 7A | 1 | Patch Part 10 | Bend TVF Cutoff Control |
0x3CA7E | 0x807E | 48 01 7C | 1 | Patch Part 10 | Bend Amplitude Control |
0x3CA7F | 0x807F | 48 01 7E | 1 | Patch Part 10 | Unknown |
0x3CA80 | 0x8080 | 48 02 00 | 1 | Patch Part 10 | Bend LFO1 Rate Control |
0x3CA81 | 0x8081 | 48 02 02 | 1 | Patch Part 10 | Bend LFO1 Pitch Depth |
0x3CA82 | 0x8082 | 48 02 04 | 1 | Patch Part 10 | Bend LFO1 TVF Depth |
0x3CA83 | 0x8083 | 48 02 06 | 1 | Patch Part 10 | Bend LFO1 TVA Depth |
0x3CA84 | 0x8084 | 48 02 08 | 1 | Patch Part 10 | Bend LFO2 Rate Control |
0x3CA85 | 0x8085 | 48 02 0A | 1 | Patch Part 10 | Bend LFO2 Pitch Depth |
0x3CA86 | 0x8086 | 48 02 0C | 1 | Patch Part 10 | Bend LFO2 TVF Depth |
0x3CA87 | 0x8087 | 48 02 0E | 1 | Patch Part 10 | Bend LFO2 TVA Depth |
0x3CA88 | 0x8088 | 48 02 10 | 1 | Patch Part 10 | CAf Pitch Control |
0x3CA89 | 0x8089 | 48 02 12 | 1 | Patch Part 10 | CAf TVF Cutoff Control |
0x3CA8A | 0x808A | 48 02 14 | 1 | Patch Part 10 | CAf Amplitude Control |
0x3CA8B | 0x808B | 48 02 16 | 1 | Patch Part 10 | Unknown |
0x3CA8C | 0x808C | 48 02 18 | 1 | Patch Part 10 | CAf LFO1 Rate Control |
0x3CA8D | 0x808D | 48 02 1A | 1 | Patch Part 10 | CAf LFO1 Pitch Depth |
0x3CA8E | 0x808E | 48 02 1C | 1 | Patch Part 10 | CAf LFO1 TVF Depth |
0x3CA8F | 0x808F | 48 02 1E | 1 | Patch Part 10 | CAf LFO1 TVA Depth |
0x3CA90 | 0x8090 | 48 02 20 | 1 | Patch Part 10 | CAf LFO2 Rate Control |
0x3CA91 | 0x8091 | 48 02 22 | 1 | Patch Part 10 | CAf LFO2 Pitch Depth |
0x3CA92 | 0x8092 | 48 02 24 | 1 | Patch Part 10 | CAf LFO2 TVF Depth |
0x3CA93 | 0x8093 | 48 02 26 | 1 | Patch Part 10 | CAf LFO2 TVA Depth |
0x3CA94 | 0x8094 | 48 02 28 | 1 | Patch Part 10 | PAf Pitch Control |
0x3CA95 | 0x8095 | 48 02 2A | 1 | Patch Part 10 | PAf TVF Cutoff Control |
0x3CA96 | 0x8096 | 48 02 2C | 1 | Patch Part 10 | PAf Amplitude Control |
0x3CA97 | 0x8097 | 48 02 2E | 1 | Patch Part 10 | Unknown |
0x3CA98 | 0x8098 | 48 02 30 | 1 | Patch Part 10 | PAf LFO1 Rate Control |
0x3CA99 | 0x8099 | 48 02 32 | 1 | Patch Part 10 | PAf LFO1 Pitch Depth |
0x3CA9A | 0x809A | 48 02 34 | 1 | Patch Part 10 | PAf LFO1 TVF Depth |
0x3CA9B | 0x809B | 48 02 36 | 1 | Patch Part 10 | PAf LFO1 TVA Depth |
0x3CA9C | 0x809C | 48 02 38 | 1 | Patch Part 10 | PAf LFO2 Rate Control |
0x3CA9D | 0x809D | 48 02 3A | 1 | Patch Part 10 | PAf LFO2 Pitch Depth |
0x3CA9E | 0x809E | 48 02 3C | 1 | Patch Part 10 | PAf LFO2 TVF Depth |
0x3CA9F | 0x809F | 48 02 3E | 1 | Patch Part 10 | PAf LFO2 TVA Depth |
0x3CAA0 | 0x80A0 | 48 02 40 | 1 | Patch Part 10 | CC1 Pitch Control |
0x3CAA1 | 0x80A1 | 48 02 42 | 1 | Patch Part 10 | CC1 TVF Cutoff Control |
0x3CAA2 | 0x80A2 | 48 02 44 | 1 | Patch Part 10 | CC1 Amplitude Control |
0x3CAA3 | 0x80A3 | 48 02 46 | 1 | Patch Part 10 | Unknown |
0x3CAA4 | 0x80A4 | 48 02 48 | 1 | Patch Part 10 | CC1 LFO1 Rate Control |
0x3CAA5 | 0x80A5 | 48 02 4A | 1 | Patch Part 10 | CC1 LFO1 Pitch Depth |
0x3CAA6 | 0x80A6 | 48 02 4C | 1 | Patch Part 10 | CC1 LFO1 TVF Depth |
0x3CAA7 | 0x80A7 | 48 02 4E | 1 | Patch Part 10 | CC1 LFO1 TVA Depth |
0x3CAA8 | 0x80A8 | 48 02 50 | 1 | Patch Part 10 | CC1 LFO2 Rate Control |
0x3CAA9 | 0x80A9 | 48 02 52 | 1 | Patch Part 10 | CC1 LFO2 Pitch Depth |
0x3CAAA | 0x80AA | 48 02 54 | 1 | Patch Part 10 | CC1 LFO2 TVF Depth |
0x3CAAB | 0x80AB | 48 02 56 | 1 | Patch Part 10 | CC1 LFO2 TVA Depth |
0x3CAAC | 0x80AC | 48 02 58 | 1 | Patch Part 10 | CC2 Pitch Control |
0x3CAAD | 0x80AD | 48 02 5A | 1 | Patch Part 10 | CC2 TVF Cutoff Control |
0x3CAAE | 0x80AE | 48 02 5C | 1 | Patch Part 10 | CC2 Amplitude Control |
0x3CAAF | 0x80AF | 48 02 5E | 1 | Patch Part 10 | Unknown |
0x3CAB0 | 0x80B0 | 48 02 60 | 1 | Patch Part 10 | CC2 LFO1 Rate Control |
0x3CAB1 | 0x80B1 | 48 02 62 | 1 | Patch Part 10 | CC2 LFO1 Pitch Depth |
0x3CAB2 | 0x80B2 | 48 02 64 | 1 | Patch Part 10 | CC2 LFO1 TVF Depth |
0x3CAB3 | 0x80B3 | 48 02 66 | 1 | Patch Part 10 | CC2 LFO1 TVA Depth |
0x3CAB4 | 0x80B4 | 48 02 68 | 1 | Patch Part 10 | CC2 LFO2 Rate Control |
0x3CAB5 | 0x80B5 | 48 02 6A | 1 | Patch Part 10 | CC2 LFO2 Pitch Depth |
0x3CAB6 | 0x80B6 | 48 02 6C | 1 | Patch Part 10 | CC2 LFO2 TVF Depth |
0x3CAB7 | 0x80B7 | 48 02 6E | 1 | Patch Part 10 | CC2 LFO2 TVA Depth |
0x3CAB8 | 0x80B8 | 48 02 70 | 112 | Patch Part 1 | (Same as Patch Part 10) |
0x3CB28 | 0x8128 | 48 04 50 | 112 | Patch Part 2 | (Same as Patch Part 10) |
0x3CB98 | 0x8198 | 48 06 30 | 112 | Patch Part 3 | (Same as Patch Part 10) |
0x3CC08 | 0x8208 | 48 08 10 | 112 | Patch Part 4 | (Same as Patch Part 10) |
0x3CC78 | 0x8278 | 48 09 70 | 112 | Patch Part 5 | (Same as Patch Part 10) |
0x3CCE8 | 0x82E8 | 48 0b 50 | 112 | Patch Part 6 | (Same as Patch Part 10) |
0x3CD58 | 0x8358 | 48 0d 30 | 112 | Patch Part 7 | (Same as Patch Part 10) |
0x3CDC8 | 0x83C8 | 48 0f 10 | 112 | Patch Part 8 | (Same as Patch Part 10) |
0x3CE38 | 0x8438 | 48 10 70 | 112 | Patch Part 9 | (Same as Patch Part 10) |
0x3CEA8 | 0x84A8 | 48 12 50 | 112 | Patch Part 11 | (Same as Patch Part 10) |
0x3CF18 | 0x8518 | 48 14 30 | 112 | Patch Part 12 | (Same as Patch Part 10) |
0x3CF88 | 0x8588 | 48 16 10 | 112 | Patch Part 13 | (Same as Patch Part 10) |
0x3CFF8 | 0x85F8 | 48 17 70 | 112 | Patch Part 14 | (Same as Patch Part 10) |
0x3D068 | 0x8668 | 48 19 50 | 112 | Patch Part 15 | (Same as Patch Part 10) |
0x3D0D8 | 0x86D8 | 48 1b 30 | 112 | Patch Part 16 | (Same as Patch Part 10) |
49 00 00 | 128 | Drum Setup 1 | Play Note Number | ||
49 02 00 | 128 | Drum Setup 1 | Level | ||
49 04 00 | 128 | Drum Setup 1 | Assign Group Number | ||
49 06 00 | 128 | Drum Setup 1 | Panpot | ||
49 08 00 | 128 | Drum Setup 1 | Reverb Depth | ||
49 0a 00 | 128 | Drum Setup 1 | Chorus Depth | ||
49 0c 00 | 128 | Drum Setup 1 | Rx. Note On/Off | ||
49 0e 00 | 12 | Drum Setup 1 | Drum Map Name | ||
49 10 00 | 128 | Drum Setup 2 | Play Note Number | ||
49 12 00 | 128 | Drum Setup 2 | Level | ||
49 14 00 | 128 | Drum Setup 2 | Assign Group Number | ||
49 16 00 | 128 | Drum Setup 2 | Panpot | ||
49 18 00 | 128 | Drum Setup 2 | Reverb Depth | ||
49 1a 00 | 128 | Drum Setup 2 | Chorus Depth | ||
49 1c 00 | 128 | Drum Setup 2 | Rx. Note On/Off | ||
49 1e 00 | 12 | Drum Setup 2 | Drum Map Name |
Address | Length | EmuSC | Description |
---|---|---|---|
0x3D1E8 | 128 | ❌ | Unknown |
0x3D268 | 128 | ❌ | Unknown |
0x3D2E8 | 128 | ❌ | Unknown |
0x3D368 | 128 | ❌ | Envelope time values -> seconds |
0x3D3E8 | 128 | ❌ | Unknown |
0x3D468 | 128 | ❌ | Unknown |
0x3D4E8 | 128 | ❌ | Unknown |
0x3D568 | 128 | ❌ | Unknown |
0x3D5E8 | 128 | ❌ | Unknown |
0x3D668 | 128 | ❌ | Unknown |
0x3D6E8 | 128 | ❌ | Unknown |
0x3D768 | 128 | ❌ | Unknown |
0x3D7E8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3D868 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3D8E8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3D968 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3D9E8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DA68 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DAE8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DB68 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DBE8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DC68 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DCE8 | 130 | ❌ | Unknown 10 * 13 byte table |
0x3DE78 | 128 | ❌ | Unknown |
0x3DEF8 | 128 | ❌ | Unknown |
0x3E078 | 128 | ❌ | Unknown |
0x3E0F8 | 128 | ❌ | Unknown |
0x3E278 | 128 | ❌ | Unknown |
0x3E2F8 | 128 | ❌ | Unknown |
0x3E478 | 128 | ❌ | Unknown |
0x3E4F8 | 256 | ❌ | Unknown |
0x3E5F8 | 256 | ❌ | Unknown |
0x3E6F8 | 256 | ❌ | Unknown |
0x3E7F8 | 256 | ❌ | Unknown |
0x3E8F8 | 256 | ❌ | Unknown |
0x3E9F8 | 256 | ❌ | Unknown |
0x3EDF8 | 256 | ❌ | Unknown |
0x3EEF8 | 256 | ❌ | Unknown |
0x3EFF8 | 256 | ❌ | Unknown |
0x3F0F8 | 256 | ❌ | Unknown |
0x3F1F8 | 256 | ❌ | Unknown |
0x3F2F8 | 256 | ❌ | Unknown |
0x3F3F8 | 256 | ❌ | Unknown |
Note
Lookup tables are not used as we have not been able to understand how to use them properly. For calculating the envelope times we can see that the function matches the values in the LUT at address 0x3D368, but the table has only 1 byte values (0-127) giving too imprecise vales to be used for calculating time. There has to be another table to increase the precision somehow.
Plot showing tables from 0x3D1E8 to 0x3D768.
Plot showing tables from 0x3DEF8 to 0x3DE78.
Plot showing tables from 0x3E4F8 to 0x3F3F8.
Most of the memory structure used in the original SC-55 was reverse-engineered and documented by Kitrinx as part of the SC55_Soundfont project. Initial values, SysEx messages and some other parts where found and documented by shingo45endo. The remaining details have been found and documented by skjelten as part of the EmuSC project.