S2800/ S3000/S3200
MIDI System Exclusive Extensions
Philosophy
The philosophy adopted when providing MIDI system exclusive support for the S3000 has been one of providing remote control. Ideally, anything that can be done from the S3000 front panel should be able to be done by means of such MIDI system exclusive operations, although in practice, some functions (e.g. templates, etc.) are rather unnecessary. Of the new functions provided, the majority fall within two classes; access to data structures (program/keygroup/sample headers, effects, cue-lists, disk directories, etc.) and access to miscellaneous variables and functions. In general, the first class concern data that can be stored on disk and the second class refer to operation of the machine. Few (if any) new functions have been provided on the S3000 specifically to provide a greater functionality via MIDI system exclusive, unlike the S1000 which, for example, supports the transfer of sample data via MIDI system exclusive. However, it is intended that the S3000 will support the majority of such S1000/S1100 MIDI system exclusive operations. There are no functions within MIDI system exclusive to provide direct access to and from disk files. Directories and files can be loaded into the S3000 and the data then accessed. However, if external parties wish to get data directly from disk, it is available via SCSI.
Implementation
The S3000 bears much similarity to the S1000/S1100. Most S1000 MIDI exclusive functions are supported. Additional functions have been added. These new functions are not available on the S1000.
Program, Keygroup and Sample headers have been extended to 192 bytes and the system has capacity for 1022 such headers in total. Wherever possible, data in the headers has retained its meaning. However, many S1000 parameters have become obsolete and many have been added to extend the functionality. Some new parameters can be made to reproduce the functionality of S1000 parameters. See "Assignable Program Modulation", below.
Assignable Program Modulation is an extension of performance control. Many users will be familiar with the concept of a pitch-bend control on a keyboard affecting the pitch of a remote sound module, and similarly, the modulation wheel controlling the depth of an LFO which is itself altering the pitch. In the S3000, the link between the controller (pitch-bend wheel, modwheel, aftertouch, etc.) and the controlled characteristic (pitch, pan, level, filter frequency, etc.) has been made flexible. Consequently, in each program header, for each parameter subject to such flexible control, there is an identifier to indicate the source of control (mods#### parameters).
S2800
The S2800 bears much similarity to the S3000. There are only two individual outputs rather than the eight on the S3000.
S3200
The S3200 bears much similarity to the S3000. There is a second LSI which provides a multimode filter, spectral tilt tone control and dedicated reverb. In addition to the 50 effects "setups", there are 50 "reverb" setups. The direct-to-disk recording facility of the S1100 has been provided and consequently there exists a list of TAKEs to support this.
S3000 Family MIDI System Exclusive Extensions
Generally, messages have three portions:
a)Header. This is 12-bytes long.
b)Data. This is sent in a nibbled form, i.e. each data byte is represented by two message bytes; the bottom nibble of the first containing the bottom 4-bits of the data byte and the bottom nibble of the second containing the top 4-bits of the data byte.
c) End-of-Exclusive (EOX). A single byte, value 0xf7.
Any message which is a request for data will not have a data portion, i.e. it will be 13 bytes long (12byte header + EOX)
Structure Of Message Header
With the exception of the first and last bytes, all bytes are in the range 0 to 0x7f. Some parameters in the header require more than 7 bits and in these cases two successive message bytes are combined to form a 14-bit quantity.
Byte 0: 0xF0 MIDI System Exclusive Identifier Byte 1: 47 Akai Manufacturer code
Byte 2: ? MIDI Exclusive channel
Byte 3: ? S3000 Midi System Exclusive function code. Function codes that are specific to the S3000 start at 0x20. Byte 4: 0x48 S3000 Model Identity
The S3000 shares the same Model as the S1000. Bytes 5 & 6: ?,? Item index
The 14 data bits contained two bytes select at a data item. The type of item selected depends upon the function code, e.g. these two bytes may indicate program number, sample number,etc. Additionally, the two uppermost bits (bits 6 and 5 of byte 6) have meaning when write operations are being performed (see below).
Byte 7: ? Selector
This byte holds additional selection data, e.g. keygroup number,type of miscellaneous data. Bytes 8 & 9: ?,? Byte offset into data item
Bytes 10 & 11:?,? Number of bytes of data
Note: Post-change functions.
After certain parameters have been altered, it may be necessary to run certain internal functions. Also the screen of the S3000 may need to be refreshed. In most cases, this will happen automatically. However, these operations can be postponed until a later time by use of the top bits of the Item Index. Setting these bits will have the following effect:
Bit 13 = 1: Postpone screen update
Bit 12 = 1: Postpone recalculation program. Note that the machine may be in an undetermined state until the same parameter is sent with this bit cleared.
Currently, one exception to the automated fixing-up process is after renumbering programs. Since the renumber operation may alter the order of the list of programs, no resorting is done until the command to explicitly run the Miscellaneous function BTSORT is sent.
Operation Codes
0x27 REQUEST FOR PROGRAM HEADER BYTES
0x28 PROGRAM HEADER BYTES
0x29 REQUEST FOR KEYGROUP HEADER BYTES
0x2a KEYGROUP HEADER BYTES
0x2b REQUEST FOR SAMPLE HEADER BYTES
0x2c SAMPLE HEADER BYTES
0x2d REQUEST FOR FX/REVERB BYTES
0x2e FX/REVERB BYTES
0x2f REQUEST FOR CUE -LIST BYTES
0x30 CUE-LIST BYTES
0x31 REQUEST FOR TAKE LIST BYTES
0x32 TAKE LIST BYTES
0x33 REQUEST FOR MISCELLANEOUS BYTES
0x34 MISCELLANEOUS BYTES
0x35 REQUEST VOLUME LIST ITEM
0x36 VOLUME LIST ITEM (only used in response to request) 0x37 REQUEST HARD DISK DIRECTORY ENTRY
0x38 HARD DISK DIRECTORY ENTRY (only used in response to request)
Request for Program Header Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x27, Operation code 0x48, S1000 Model Identity pp,PP, Program number 0x00, Reserved
oo,oo, Byte offset into header nn,nn, Number of bytes of data 0xF7 End Of Exclusive Message
Receive Program Header Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x28, Operation code 0x48, S1000 Model Identity PP,PP Program number
0 Reserved
oo,oo Byte offset into header nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request for Keygroup Header Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x29, Operation code 0x48, S1000 Model Identity PP,PP Program number kk, Keygroup
oo,oo Byte offset into header nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Receive Keygroup Header Bytes
0xF0, MIDI System Exclusive Identifier
0x47, Akai Manufacturer code cc, MIDI Exclusive channel 0x2A, Operation code
0x48, S1000 Model Identity pp,pp Program number
kk, Keygroup (0x7f indicates all keygroups in program) oo,oo Byte offset into header
nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request for Sample Header Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x2B, Operation code 0x48, S1000 Model Identity ss,ss, Sample number 0x00 Reserved
oo,oo Byte offset into header nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Receive Sample Header Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x2C, Operation code 0x48, S1000 Model Identity ss,ss, Sample number 0x00 Reserved
oo,oo Byte offset into header nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request for FX/Reverb Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x2D, Operation code 0x48, S1000 Model Identity
ff,ff Effect number
bb, Selector (0=fx header, 1=fx assign, 2=fx entry, 3=rvb assign, 4=rvb entry)
oo,oo Byte offset into header nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Receive FX/Reverb Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x2E, Operation code 0x48, S1000 Model Identity ff,ff Effect number
bb, Selector (0=fx header, 1=fx assign, 2=fx entry, 3=rvb assign, 4=rvb entry)
oo,oo Byte offset into header nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request for Cue-List Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x2F, Operation code 0x48, S1000 Model Identity ff,ff Event number
bb, Selector (0=header, 1=cue event) oo,oo Byte offset into structure
nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Receive Cue-List Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x30, Operation code 0x48, S1000 Model Identity ff,ff Event number
bb, Selector (0=header, 1=cue event) oo,oo Byte offset into structure
nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Request for Take List Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x31, Operation code
0x48, S1000 Model Identity ff,ff Take number
bb, Selector (0=header, 1=take) oo,oo Byte offset into structure nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Receive Take List Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x32, Operation code 0x48, S1000 Model Identity ff,ff Take number
bb, Selector (0=header, 1=take) oo,oo Byte offset into structure nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Request for Miscellaneous Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x33, Operation code 0x48, S1000 Model Identity dd,dd, Data Index
bb, Data bank number (1=byte, 2=word, 3=dword, 4=smpte, 5=signed smpte, 6=name, 7=16byteflag) 0,0, Reserved
nn,nn Number of bytes of data (1/2/4/5/6/12/16) 0xF7 End Of Exclusive Message
Receive Miscellaneous Bytes
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x34, Operation code 0x48, S1000 Model Identity dd,dd, Data Index
bb Data bank number (0=function, 1=byte, 2=word, 3=dword, 4=smpte, 5=signed smpte, 6=name, 7=16byteflag)
0,0, Reserved
nn,nn Number of bytes of data (1/2/4/5/6/12/16) ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request for Volume List Entry
0xF0, MIDI System Exclusive Identifier
0x47, Akai Manufacturer code cc, MIDI Exclusive channel 0x35, Operation code
0x48, S1000 Model Identity ff,ff Entry number
0, Reserved
oo,oo Byte offset into structure nn,nn Number of bytes of data 0xF7 End Of Exclusive Message
Transmitted Volume List Entry
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x36, Operation code 0x48, S1000 Model Identity ff,ff Entry number
0, Reserved
oo,oo Byte offset into structure nn,nn Number of bytes of data ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Request Hard Disk Directory Entry
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x37, Operation code 0x48, S1000 Model Identity
nn,nn, Directory entry (0-509)/Item number
ss, Selector (0=volume data, 1=program, 2=sample, 3=cue-list 4=take-list, 5=effects file, 6=drum file) 0x00,0x00, Reserved
nn,nn Number of bytes of data (24) 0xF7 End Of Exclusive Message
Transmitted Hard Disk Directory Entry
0xF0, MIDI System Exclusive Identifier 0x47, Akai Manufacturer code
cc, MIDI Exclusive channel 0x38, Operation code 0x48, S1000 Model Identity
nn,nn, Directory entry (0-509)/Item number
ss, Selector (0=volume data, 1=program, 2=sample, 3=cue-list 4=take-list, 5=effects file, 6=drum file)
0x00,0x00, Reserved
nn,nn Number of bytes of data (24) ln,hn First byte (nibbled)
..,.. Further data
0xF7 End Of Exclusive Message
Accessing Program Header Bytes
To associate numbers with program names, it is advised that the S1000 RPLIST (request list of resident program names) command be used. The machine holds sequential numbers, starting at zero for items in this list and these numbers should be used to identify a specific program.
Structure Of S3000 Program Header
Parameter: PRIDENT
Offset: 0 bytes
Field size: 1 byte
Range: 1 (Fixed)
Description: Block identifier (internal use)
Parameter: KGRP1@
Offset: 1 byte
Field size: 2 bytes
Range: Block address
Description: Block address of first keygroup (internal use)
Parameter: PRNAME
Offset: 3 bytes
Field size: 12 bytes
Range: String of characters
Description: Name of program
Parameter: PRGNUM Offset: 15 bytes
Field size: 1 byte Range: 0 to 127
Description: MIDI program number
After sending data to this parameter, Miscellaneous Function BTSORT should be triggered to resort the list of programs into order and to flag active programs.
Parameter: PMCHAN
Offset: 16 bytes
Field size: 1 byte
Range: 255 signifies OMNI, 0 to 15 indicate MIDI channel
Description: MIDI channel
Parameter: POLYPH
Offset: 17 bytes
Field size: 1 byte
Range: 0 to 31 (these represent polyphony values of 1 to 32)
Description: Depth of polyphony
Parameter: PRIORT Offset: 18 bytes Field size: 1 byte
range: 0=low 1=norm 2=high 3=hold
Description: Priority of voices playing this program
Parameter: PLAYLO
Offset: 19 bytes
Field size: 1 byte
Range: 21 to 127 represents A-1 to G8
Description: Lower limit of play-range
Parameter: PLAYHI
Offset: 20 bytes
Field size: 1 byte
Range: 21 to 127 represents= A-1 to G8
Description: Upper limit of play-range
Parameter: OSHIFT
Offset: 21 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: OUTPUT Offset: 22 bytes Field size: 1 byte
Range: 255 indicates OFF
On S3200: 0 to 7 indicates outputs 1 to 8, 8 indicates FX, 9 indicates RVB and 10 indicates R+F. On S3000: 0 to 7 indicates outputs 1 to 8, 8 indicates FX.
On S2800: 0 and 1 indicates outputs 1 and 2, 2 indicates FX.
Description: Individual output routing. This parameter also control send to effects section.
Parameter: STEREO
Offset: 23 bytes
Field size: 1 byte
Range: 0 to 99
Description: Left and right output levels
Parameter: PANPOS
Offset: 24 bytes
Field size: 1 byte
Range: -50 to +50
Description: Balance between left and right outputs
Parameter: PRLOUD
Offset: 25 bytes
Field size: 1 byte
Range: 0 to 99
Description: Basic loudness of this program
Parameter: V_LOUD
Offset: 26 bytes
Field size: 1 byte
Range: -50 to +50
Description: Note-on velocity dependence of loudness
Parameter: K_LOUD
Offset: 27 bytes
Field size: 1 byte
Range: 0
Description: Not Used
Parameter: P_LOUD
Offset: 28 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: PANRAT
Offset: 29 bytes
Field size: 1 byte
Range: 0 to 99
Description: Speed of LFO2
Parameter: PANDEP
Offset: 30 bytes
Field size: 1 byte
Range: 0 to 99
Description: Depth of LFO2
Parameter: PANDEL
Offset: 31 bytes
Field size: 1 byte
Range: 0 to 99
Description: Delay in growth of LFO2
Parameter: K_PANP
Offset: 32 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: LFORAT
Offset: 33 bytes
Field size: 1 byte
Range: 0 to 99
Description: Speed of LFO1
Parameter: LFODEP
Offset: 34 bytes
Field size: 1 byte
Range: 0 to 99
Description: Depth of LFO1
Parameter: LFODEL
Offset: 35 bytes
Field size: 1 byte
Range: 0 to 99
Description: Delay in growth of LFO1
Parameter: MWLDEP Offset: 36 bytes
Field size: 1 byte Range: 0 to 99
Description: Amount of control of LFO1 depth by Modwheel
Parameter: PRSDEP Offset: 37 bytes Field size: 1 byte Range: 0 to 99
Description: Amount of control of LFO1 depth by Aftertouch (Pressure)
Parameter: VELDEP
Offset: 38 bytes
Field size: 1 byte
Range: 0 to 99
Description: Amount of control of LFO1 depth by Note-on velocity
Parameter: B_PTCH
Offset: 39 bytes
Field size: 1 byte
Range: 0 to 24 semitones
Description: Range of increase of Pitch by bendwheel
Parameter: P_PTCH
Offset: 40 bytes
Field size: 1 byte
Range: -12 semitones to +12 semitones
Description: Amount of control of Pitch by Pressure
Parameter: KXFADE
Offset: 41 bytes
Field size: 1 byte
Range: 0 represents OFF, 1 represents ON
Description: Keygroup crossfade enable
Parameter: GROUPS Offset: 42 bytes
Field size: 1 byte
Range: 1 to 99 (Read-only)
Description: Number of keygroups. To change the number of keygroups in a program, the KDATA and DELK commands should be used.
Parameter: TPNUM
Offset: 43 bytes
Field size: 1 byte
Range: 0 to 127
Description: Temporary program number (internal use)
Parameter: TEMPER
Offset: 44 bytes
Field size: 12 bytes
Range: -50 cents to +50 cents
Description: Key temperament C,C#,D,D# etc
Parameter: ECHOUT
Offset: 56 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: MW_PAN
Offset: 57 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: COHERE
Offset: 58 bytes
Field size: 1 byte
Range: 1
Description: Not used
Parameter: DESYNC Offset: 59 bytes Field size: 1 byte
Range: 0 represents OFF, 1 represents ON
Description: Enable de-synchronisation of LFO1 across notes
Parameter: PLAW
Offset: 60 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: VASSOQ Offset: 61 bytes Field size: 1 byte
Range: 0 represents OLDEST, 1 represents QUIETEST Description: Criterion by which voices are stolen
Parameter: SPLOUD Offset: 62 bytes Field size: 1 byte Range: 0 to 99
Description: Reduction in loudness due to soft pedal
Parameter: SPATT Offset: 63 bytes Field size: 1 byte Range: 0 to 99
Description: Stretch of attack due to soft pedal
Parameter: SPFILT Offset: 64 bytes Field size: 1 byte Range: 0 to 99
Description: Reduction of filter frequency due to soft pedal
Parameter: PTUNO
Offset: 65 bytes
Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary)
Description: Tuning offset of program
Parameter: K_LRAT
Offset: 67 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: K_LDEP
Offset: 68 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: K_LDEL
Offset: 69 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: VOSCL Offset: 70 bytes Field size: 1 byte Range: 0 to 99
Description: Level sent to Individual outputs/effects
Parameter: VSSCL
Offset: 71 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: LEGATO
Offset: 72 bytes
Field size: 1 byte
Range: 0 represents OFF, 1 represents ON
Description: Mono legato mode enable
Parameter: B_PTCHD Offset: 73 bytes
Field size: 1 byte
Range: 0 to 12 semitones
Description: Range of decrease of Pitch by bendwheel
Parameter: B_MODE Offset: 74 bytes Field size: 1 byte
Range: 0 represents NORMAL mode, 1 represents HELD mode Description: Bending of held notes only
Parameter: TRANSPOSE
Offset: 75 bytes
Field size: 1 byte
Range: -50 to + 50 semitones
Description: Shift pitch of incoming midi
Values used to represent Modulation Sources
0:No Source
1:Modwheel
2:Bend
3:Pressure
4:External
5:Note-on velocity
6:Key
7:Lfo1
8:Lfo2
9:Env1
10:Env2
11:!Modwheel (Instantaneous value of modwheel at note-on)
12:!Bend (Instantaneous value of bendwheel at note-on)
13:!External (Instantaneous value of MIDI controller at note-on)
14:Env3
Parameter: MODSPAN1 Offset: 76 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: First source of assignable modulation of pan position
Parameter: MODSPAN2 Offset: 77 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Second source of assignable modulation of pan
Parameter: MODSPAN3 Offset: 78 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Third source of assignable modulation of pan
Parameter: MODSAMP1 Offset: 79 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: First source of assignable modulation of loudness
Parameter: MODSAMP2 Offset: 80 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Second source of assignable modulation of loudness
Parameter: MODSLFOR Offset: 81 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Source of assignable modulation of LFO1 speed
Parameter: MODSLFOL Offset: 82 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Source of assignable modulation of LFO1 depth
Parameter: MODSLFOD Offset: 83 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above
Description: Source of assignable modulation of LFO1 delay
Parameter: MODSFILT1 Offset: 84 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: First source of assignable modulation of filter frequency
Parameter: MODSFILT2 Offset: 85 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Second source of assignable modulation of filter frequency
Parameter: MODSFILT3 Offset: 86 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Third source of assignable modulation of filter frequency
Parameter: MODSPITCH Offset: 87 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Source of assignable modulation of pitch
Parameter: MODSAMP3 Offset: 88 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above Description: Third source of assignable modulation of loudness
Parameter: MODVPAN1 Offset: 89 bytes
Field size: 1 byte Range: -50 to +50
Description: Amount of control of pan by assignable source 1
Parameter: MODVPAN2 Offset: 90 bytes
Field size: 1 byte Range: -50 to +50
Description: Amount of control of pan by assignable source 2
Parameter: MODVPAN3 Offset: 91 bytes
Field size: 1 byte Range: -50 to +50
Description: Amount of control of pan by assignable source 3
Parameter: MODVAMP1 Offset: 92 bytes
Field size: 1 byte Range: -50 to +50
Description: Amount of control of loudness by assignable source 1
Parameter: MODVAMP2
Offset: 93 bytes
Field size: 1 byte
Range: -50 to +50
Description: Amount of control of loudness by assignable source 2
Parameter: MODVLFOR
Offset: 94 bytes
Field size: 1 byte
Range: -50 to +50
Description: Amount of control of LFO1 speed
Parameter: MODVLFOL
Offset: 95 bytes
Field size: 1 byte
Range: -50 to +50
Description: Amount of control of LFO1 depth
Parameter: MODVLFOD
Offset: 96 bytes
Field size: 1 byte
Range: -50 to +50
Description: Amount of control of LFO1 delay
Parameter: LFO1WAVE Offset: 97 bytes
Field size: 1 byte
Range: 0 represents Triangle, 1 represents Sawtooth, 2 represents Square Description: LFO1 waveform
Parameter: LFO2WAVE Offset: 98 bytes
Field size: 1 byte
Range: 0 represents Triangle, 1 represents Sawtooth, 2 represents Square Description: LFO2 waveform
Parameter: MODSFLT2_1 Offset: 99 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above
Description: First source of assignable modulation of filter2 frequency (only used on S3200).
Parameter: MODSFLT2_2 Offset: 100 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above
Description: Second source of assignable modulation of filter2 frequency (only used on S3200).
Parameter: MODSFLT2_3 Offset: 101 bytes
Field size: 1 byte
Range: See "Values used to represent Modulation Sources" above
Description: Third source of assignable modulation of filter2 frequency (only used on S3200).
Parameter: lfo2trig
Offset: 102 bytes
Field size: 1 byte Range:
Description: Retrigger mode for lfo2
Parameter: Reserved
Offset: 103 bytes
Field size: 7 bytes
Range:
Description: Not used
Parameter: PORTIME Offset: 110 byte
Field size: 1 bytes Range:
Description: PORTAMENTO TIME
Parameter: PORTYPE Offset: 111 bytes Field size: 1 byte Range:
Description: PORTAMENTO TYPE
Parameter: PORTEN Offset: 112 bytes Field size: 1 byte Range:
Description: PORTAMENTO ON/OFF
S2000/S3000XL/S3200XL Parameters Parameter: PFXCHAN
Offset: 113 bytes Field size: 1 bytes Range: 0 to 4
Description: Effects Bus Select 0 = OFF
1 = FX1
2 = FX2
3 = RV3
4 = RV4
Parameter: PFXSLEV Offset: 114 bytes Field size: 1 byte Range: 0 to 99
Description: Effects Send Level
Parameter: Reserved
Offset: 115 bytes
Field size: 77 bytes
Range:
Description: Not used
Accessing Keygroup Header Bytes
Each program will contain at least one keygroup. The actual number of keygroups contained in a program is given by the GROUPS parameter of the program header. Keygroups do not have names; they are identified by numbers in the range 0 to (GROUPS - 1).
Structure Of S3000 Keygroup Header
Parameter: KGIDENT
Offset: 0 bytes
Field size: 1 byte
Range: 2
Description: Block identifier (internal use)
Parameter: NXTKG@
Offset: 1 bytes
Field size: 2 bytes
Range: Block address
Description: Next keygroup block address (internal use)
Parameter: LONOTE
Offset: 3 bytes
Field size: 1 byte
Range: 21 to 127 represents A-1 to G8
Description: Lower limit if keyrange
Parameter: HINOTE
Offset: 4 bytes
Field size: 1 byte
Range: 21 to 127 represents A-1 to G8
Description: Upper limit of keyrange
Parameter: KGTUNO
Offset: 5 bytes
Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary)
Description: Keygroup tuning offset
Parameter: FILFRQ
Offset: 7 bytes
Field size: 1 byte
Range: 0 to 99
Description: Basic filter frequency
Parameter: K_FREQ
Offset: 8 bytes
Field size: 1 byte
Range: 0 to 12 semitones
Description: Key follow of filter frequency
Parameter: V_FREQ
Offset: 9 bytes
Field size: 1 byte
Range: 0
Description: Not Used
Parameter: P_FREQ
Offset: 10 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: E_FREQ
Offset: 11 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: ATTAK1
Offset: 12 bytes
Field size: 1 byte
Range: 0 to 99
Description: Attack rate of envelope 1
Parameter: DECAY1
Offset: 13 bytes
Field size: 1 byte
Range: 0 to 99
Description: Decay rate of envelope 1
Parameter: SUSTN1
Offset: 14 bytes
Field size: 1 byte
Range: 0 to 99
Description: Sustain level of envelope 1
Parameter: RELSE1
Offset: 15 bytes
Field size: 1 byte
Range: 0 to 99
Description: Release rate of envelope 1
Parameter: V_ATT1 Offset: 16 bytes Field size: 1 byte Range: -50 to +50
Description: Note-on velocity dependence of envelope 1 attack rate
Parameter: V_REL1 Offset: 17 bytes Field size: 1 byte Range: -50 to +50
Description: Note-on velocity dependence of envelope 1 release rate
Parameter: O_REL1 Offset: 18 bytes Field size: 1 byte Range: -50 to +50
Description: Note-off velocity dependence of envelope 1 release rate
Parameter: K_DAR1 Offset: 19 bytes Field size: 1 byte Range: -50 to +50
Description: Dependence of envelope 2 decay and release rates on key
Parameter: ATTAK2 or ENV2R1
Offset: 20 bytes
Field size: 1 byte
Range: 0 to 99
Description: Attack rate of envelope 2
Parameter: DECAY2 or ENV2R3
Offset: 21 bytes
Field size: 1 byte
Range: 0 to 99
Description: Decay rate of envelope 2
Parameter: SUSTN2 or ENV2L3
Offset: 22 bytes
Field size: 1 byte
Range: 0 to 99
Description: Sustain level of envelope 2
Parameter: RELSE2 or ENV2R4
Offset: 23 bytes
Field size: 1 byte
Range: 0 to 99
Description: Release rate of envelope 2
Parameter: V_ATT2 Offset: 24 bytes Field size: 1 byte Range: -50 to +50
Description: Dependence of envelope 2 attack on note-on velocity
Parameter: V_REL2 Offset: 25 bytes Field size: 1 byte Range: -50 to +50
Description: Dependence of envelope 2 release on note-on velocity
Parameter: O_REL2 Offset: 26 bytes Field size: 1 byte Range: -50 to +50
Description: Dependence of envelope 2 release on note-off velocity
Parameter: K_DAR2 Offset: 27 bytes Field size: 1 byte Range: -50 to +50
Description: Dependence of envelope 2 decay and release rates on key
Parameter: V_ENV2 Offset: 28 bytes Field size: 1 byte Range: -50 to +50
Description: Scaling of envelope 2 by note-on velocity
Parameter: E_PTCH
Offset: 29 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: VXFADE
Offset: 30 bytes
Field size: 1 byte
Range: 0 represents OFF, 1 represents ON
Description: Velocity zone crossfade
Parameter: VZONES
Offset: 31 bytes
Field size: 1 byte
Range: 0
Description: Not used
Parameter: LKXF Offset: 32 bytes Field size: 1 byte Range: 0 to 255
Description: Calculated left keygroup crossfade factor (internal)
Parameter: RKXF
Offset: 33 bytes
Field size: 1 byte
Range: 0 to 255
Description: Calculated right keygroup crossfade factor (internal)
Parameter: SNAME1 Offset: 34 bytes Field size: 12 bytes
Range: String of characters
Description: Sample name used in velocity zone 1
Parameter: LOVEL1
Offset: 46 bytes
Field size: 1 byte
Range: 0 to 127
Description: Lower limit of velocity range
Parameter: HIVEL1
Offset: 47 bytes
Field size: 1 byte
Range: 0 to 127
Description: Upper limit of velocity range
Parameter: VTUNO1
Offset: 48 bytes
Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary)
Description: Velocity zone 1 tuning offset
Parameter: VLOUD1
Offset: 50 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 1 loudness offset
Parameter: VFREQ1 Offset: 51 bytes Field size: 1 byte Range: -50 to +50
Description: Velocity zone 1 filter frequency offset
Parameter: VPANO1
Offset: 52 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 1 pan offset
Parameter: ZPLAY1 Offset: 53 bytes Field size: 1 byte
Range: 0 = As sample 1 = Loop in release
2 = Loop til release
3 = No loops
4 = Play to sample end
Description: Type of sample playback in velocity zone 1
Parameter: LVXF1 Offset: 54 bytes Field size: 1 byte Range:
Description: Low velocity crossfade factor (internal use)
Parameter: HVXF1 Offset: 55 bytes Field size: 1 byte Range:
Description: High velocity crossfade factor (internal use)
Parameter: SBADD1 Offset: 56 bytes Field size: 2 bytes
Range: Block address
Description: Calculated sample header block address (internal)
;VELOCITY ZONE 2
Parameter: SNAME2 Offset: 58 bytes Field size: 12 bytes
Range: String of characters
Description: Sample name used in velocity zone 2
Parameter: LOVEL2
Offset: 70 bytes
Field size: 1 byte
Range: 0 to 127
Description: Lower limit of velocity range 2
Parameter: HIVEL2 Offset: 71 bytes Field size: 1 byte Range: 0 to 127
Description: Upper limit of velocity range 2
Parameter: VTUNO2 Offset: 72 bytes Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary) Description: Velocity zone 2 tuning offset
Parameter: VLOUD2 Offset: 74 bytes Field size: 1 byte Range: -50 to +50
Description: Velocity zone 2 loudness offset
Parameter: VFREQ2 Offset: 75 bytes Field size: 1 byte Range: -50 to +50
Description: Velocity zone 2 filter frequency offset
Parameter: VPANO2
Offset: 76 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 2 pan offset
Parameter: ZPLAY2 Offset: 77 bytes Field size: 1 byte
Range: 0 = As sample 1 = Loop in release
2 = Loop til release
3 = No loops
4 = Play to sample end
Description: Type of sample playback in velocity zone 2
Parameter: LVXF2 Offset: 78 bytes Field size: 1 byte Range:
Description: Low velocity crossfade factor (internal use)
Parameter: HVXF2 Offset: 79 bytes Field size: 1 byte Range:
Description: High velocity crossfade factor (internal use)
Parameter: SBADD2
Offset: 80 bytes
Field size: 2 bytes
Range: Block address
Description: Calculated sample header block address (internal)
Parameter: SNAME3 Offset: 82 bytes Field size: 12 bytes
Range: String of characters
Description: Sample name used in velocity zone 3
Parameter: LOVEL3
Offset: 94 bytes
Field size: 1 byte
Range: 0 to 127
Description: Lower limit of velocity range 3
Parameter: HIVEL3
Offset: 95 bytes
Field size: 1 byte
Range: 0 to 127
Description: Upper limit of velocity range 3
Parameter: VTUNO3
Offset: 96 bytes
Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary)
Description: Velocity zone 3 tuning offset
Parameter: VLOUD3
Offset: 98 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 3 loudness offset
Parameter: VFREQ3 Offset: 99 bytes Field size: 1 byte Range: -50 to +50
Description: Velocity zone 3 filter frequency offset
Parameter: VPANO3
Offset: 100 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 3 pan offset
Parameter: ZPLAY3 Offset: 101 bytes Field size: 1 byte Range: 0 = As sample 1 = Loop in release
2 = Loop til release
3 = No loops
4 = Play to sample end
Description: Type of sample playback in velocity zone 3
Parameter: LVXF3 Offset: 102 bytes Field size: 1 byte Range:
Description: Low velocity crossfade factor (internal use)
Parameter: HVXF3 Offset: 103 bytes Field size: 1 byte Range:
Description: High velocity crossfade factor (internal use)
Parameter: SBADD3 Offset: 104 bytes Field size: 2 bytes Range: Block address
Description: Calculated sample header block address (internal)
Parameter: SNAME4 Offset: 106 bytes Field size: 12 bytes
Range: String of characters
Description: Sample name used in velocity zone 4
Parameter: LOVEL4
Offset: 118 bytes
Field size: 1 byte
Range: 0 to 127
Description: Lower limit of velocity range 4
Parameter: HIVEL4
Offset: 119 bytes
Field size: 1 byte
Range: 0 to 127
Description: Upper limit of velocity range 4
Parameter: VTUNO4
Offset: 120 bytes
Field size: 2 bytes
Range: -50.00 to + 50.00 (fraction is binary)
Description: Velocity zone 4 tuning offset
Parameter: VLOUD4
Offset: 122 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 4 loudness offset
Parameter: VFREQ4 Offset: 123 bytes Field size: 1 byte Range: -50 to +50
Description: Velocity zone 4 filter frequency offset
Parameter: VPANO4
Offset: 124 bytes
Field size: 1 byte
Range: -50 to +50
Description: Velocity zone 4 pan offset
Parameter: ZPLAY4 Offset: 125 bytes Field size: 1 byte Range: 0 = As sample 1 = Loop in release
2 = Loop til release
3 = No loops
4 = Play to sample end
Description: Type of sample playback in velocity zone 4
Parameter: LVXF4 Offset: 126 bytes Field size: 1 byte Range:
Description: Low velocity crossfade factor (internal use)
Parameter: HVXF4 Offset: 127 bytes Field size: 1 byte Range:
Description: High velocity crossfade factor (internal use)
Parameter: SBADD4 Offset: 128 bytes Field size: 2 bytes Range: Block address
Description:Calculated sample header block address (internal)
;KEYGROUP COMMON Parameter: KBEAT Offset: 130 bytes
Field size: 1 byte Range: -50 to +50
Description: Fixed rate detune
Parameter: AHOLD Offset: 131 bytes Field size: 1 byte
Range: 0 represents OFF, 1 represents ON
Description: Remain in attack phase until first loop encountered
;MORE ZONE STUFF Parameter: CP1 Offset: 132 bytes Field size: 1 byte
Range: 0 represents TRACK, 1 represents CONST Description: Constant pitch flag for velocity zone 1
Parameter: CP2
Offset: 133 bytes
Field size: 1 byte