Reply 20 of 26, by Kippesoep
- Rank
- Oldbie
Of course it's numerical. What else did you expect? It's generally a good way to represent numbers. The only thing that might be expressed other than a number is the "waveform" number, which could be a selection:
0 = sine wave
1 = sine wave, negative values clamped to zero
2 = sine wave absolute
3 = sine wave absolute with zero on decrease
see attached image
Everything else specifies things like speeds or volumes. It all maps directly to the OPL registers. If you don't know how to interpret an "attack rate" of 5, how do you ever hope to create your own instrument definitions for OPL?
Check out the other image attached below. The attack rate is the speed at which the waveform reaches maximum volume (0=never, 15=almost immediately), decay rate is the speed at which the waveform then decays to sustain level, sustain level is the amplitude of the waveform after decay, but while the note is still "on" (0=silence, 15=full volume), release rate is the speed at which the amplitude drops to zero after the note has been released.
IBK files by definition are for OPL2. The format doesn't allow for 2OPL2 or OPL3. The list in the code you copied is simply a packed version of these numbers, mapping directly to the OPL2's registers, displayed as hexadecimal values.