"QQFOEJY
.*%*JNQMFNFOUBUJPOBOE$IBSUT
*OTUBMMBUJPO*OUSPEVDUJPO.*%*
EJHJUBM9UFOTJPONJDSP8"7&1$
3.3 IDATA - Instrument Data
*****************************************************************************
Index Range Value Parameter
-----------------------------------------------------------------------------
0 0-1 A/B Sound Bank
1 0-127 1..128 Sound Number
2 0-17 global,omni,1-16 MIDI Channel
3 0-127 0..127 Volume
4 16-112 -48..+48 Transpose
5 0-127 -64..+63 Detune
6 0-1 Main Out/Sub Out Output
7 0-1 off/on Status
8 0-127 left64..center..right63 Panning
9 0-2 off/on/inverse Pan Mod
10 reserved
11 reserved
12 1-127 1..127 Lowest Velocity
13 1-127 1..127 Highest Velocity
14 0-127 0..127 Lowest Key
15 0-127 0..127 Highest Key
16 0-2 off,on,hold,Sound Arp Arpeggiator Active
17 0-15 1/1..1/32 Arpeggiator Clock
18 1-10 1..10 Arpeggiator Range
19 0..16 off,user,1..15 Arpeggiator Pattern
20 0-3 up,down,alt,random Arpeggiator Direction
21 0-3 note,n.rev,played,p.rev Arpeggiator Note Order
22 0-1 root note/last note Arpeggiator Velocity
23 0-1 off/on Arpeggiator Reset on Pattern Start
24 0-18 off/Ch1-16/Inst/global Arpeggiator Notes out !!
25 reserved
26 reserved
27 reserved
*****************************************************************************
3.4 WDATA - Wave Data
*****************************************************************************
A Wave consists of 128 eight Bit samples, but only the first 64 of them are
stored/transmitted, the second half is same as first except the values are
negated and the order is reversed:
Wave[64+n] = -Wave[63-n] for n=0..63
Not that samples are not two’s complement format, to get a signed byte,
the most significant bit must be flipped:
signed char s = Wave[n]^0x80;
Index Range Value Parameter
-----------------------------------------------------------------------------
0 0-15 00h..F0h Sample 1, most significant nibble
1 0-15 00h..0Fh Sample 1, least significant nibble
2 0-15 00h..F0h Sample 2, most significant nibble
3 0-15 00h..0Fh Sample 2, least significant nibble
4 0-15 00h..F0h Sample 3, most significant nibble
5 0-15 00h..0Fh Sample 3, least significant nibble
[...]
126 0-15 00h..F0h Sample 64, most significant nibble
127 0-15 00h..0Fh Sample 64, least significant nibble
*****************************************************************************
3.5 WCTDATA - Wave Control table Data
*****************************************************************************
A Wave control table consists of 64 entries that indicate a wave
for the specific position. If the index is not valid, the position
will be filled with a spectral interpolation of the neighbour waves.
The last three Waves will always be triangle, square and sawtooth,
and the first index must be valid. Valid indices are currently:
0-200 for ROM Waves 0 to 299,
1000-1249 for User Waves 1000 to 1249
Index Range Value Parameter
-----------------------------------------------------------------------------
0 0-15 0000h..F000h Index 1, most significant nibble, upper half
1 0-15 0000h..0F00h Index 1, least significant nibble, upper half
2 0-15 0000h..00F0h Index 1, most significant nibble, lower half
3 0-15 0000h..000Fh Index 1, least significant nibble, lower half
4 0-15 0000h..F000h Index 2, most significant nibble, upper half
5 0-15 0000h..0F00h Index 2, least significant nibble, upper half
6 0-15 0000h..00F0h Index 2, most significant nibble, lower half
7 0-15 0000h..000Fh Index 2, least significant nibble, lower half
[...]
252 0-15 0000h..F000h Index 64, most significant nibble, upper half
253 0-15 0000h..0F00h Index 64, least significant nibble, upper half
254 0-15 0000h..00F0h Index 64, most significant nibble, lower half
255 0-15 0000h..000Fh Index 64, least significant nibble, lower half
*****************************************************************************