S1000 MIDI Exclusive Communication
S1000
S900
General Information About the S1000
The S1000 sampler is the successor to the S900 and bears some similarity to it. Program, keygroup and
sample header data is stored in blocks all of the same size (about 150 bytes). There are about 480 blocks
available.
A program consists of one block containing common data and then one block per keygroup, containing data
unique to its key -span. Unlike the S900, each keygroup has four velocity zones which behave rather like four
adjacent keygroups but in the velocity domain, each containing data unique to its velocity range. Each
velocity zone names one sample.
A sample consists of a header which uses one block and the sample data itself which is stored in separate
memory of minimum size 1 MB words and max 4 MB words. (Other samplers in the family may have 16 MB
words max) Unlike the S900 the sample header contains information about several loops and the looping
point (of each loop) is independent of the end of the sample. Samples data is presented in 16-bit straight
binary form. (peak levels are 0 and FFFFh)
The S1000 has two sample inputs and can sample in stereo. At this stage it appears that this has few
consequences for an external editor as the stereo concept ceases to exist once the sampling process has
finished; the stereo pair of samples can be treated as two separate samples. However, there may be some
internal stereo pair editing functions which operate if the sample names have the last two characters of their
names as "-L" and "-R"
The S1000 is capable of running several programs simultaneously and this operates on the basis of allowing
more than one program to share the same (MIDI) program number. MIDI play commands (note on/off, bend
etc.) operate on all resident programs which have the same program number as the S1000's selected
program number. The S1000 has 16 real-time allocated internal voices which are assigned by program data
to one of 8 physical mono outputs and/or stereo outputs with left/right pan control and a mono echo send.
The S1000 uses custom LSI devices to perform sample playback, envelope control, channel routing etc.
Only forward sample playback and looping is possible. Resident samples can be "resampled" at a new
equivalent rate for retuning, the appropriate interpolation or decimation being carried out at high speed by
special hardware.
The user interface consists of a 240x64 graphic screen, two S900 -like rotary encoders and a similar set of
function and numeric keys. In addition, there are 8 "soft" function keys under the screen. Where possible
program and sample parameters are presented in logical groups on the same page and graphic images are
used to aid programming (e.g. sample plots and ADSR graphs). There are about 35 screen "pages" in all
which could perhaps be reduced to about 8 pages on a full CRT. Functions such as sample amplitude
normalize, time reverse, cross-fade looping, visual loop point matching and real-time parameter editing are
provided.
The Following MIDI Exclusive Functions Will Be Provided:
1) Standard MIDI Sample Dump
This conforms to the MIDI 1.0 Addendum Revision 3.3 and includes retransmission of data packets with
checksum errors. Any legal number of sample data bits can be received (but will be truncated or padded to
16 bits). The sample NUMBER is treated as follows: on transmit, the number is simply that of the order in
which the sample is stored in the S1000 at the time. On receive, the sample is stored as the next in memory.
It is given a default name of "MIDI nnnnn " where nnnnn is the received number in decimal form. If the name
formed this way is the name of an existing sample, that sample will be replaced by the new sample. Note
that the S1000 has only two possible sampling rates: 44100 and 22050 KHz. The S1000 sample header
created on receipt of a standard sample dump has a tuning offset parameter which is adjusted to
compensate for sampling rates other than these. Note also that up to 63 (dummy) sample words may be
inserted at the beginning of the sample to conform with S1000 internal requirements.
2) Akai S1000/S1100 Exclusive Messages
The first 5 bytes of all S1000 messages have the form:
F0h Exclusive
47h Akai
cc Exclusive Channel (0 -127)
ff Function Code
48h S1000
Unless stated, groups of bytes in messages represent concatenated 7-bit sections of a data word, LSB first
The functions provided are:
> denotes from S1000, < denotes to S1000
ff mnem. direction
00h RSTAT < request S1000 status
01h STAT > S1000 status report
02h RPLIST < request list of resident program names
03h PLIST > list of resident program names
04h RSLIST < request list of resident sample names
05h SLIST > list of resident sample names
06h RPDATA < request program common data
07h PDATA <> program common data
08h RKDATA < request keygroup data
09h KDATA <> keygroup data
0Ah RSDATA < request sample header data
0Bh SDATA <> sample header data
0Ch RSPACK < request sample data packet(s)
0Dh ASPACK < accept sample data packet(s)
0Eh RDDATA < request drum input settings
0Fh DDATA <> drum input settings
10h RMDATA < request miscellaneous data
11h MDATA <> miscellaneous data
12h DELP < delete program and its keygroups
13h DELK < delete keygroup
14h DELS < delete sample header and data
15h SETEX < set S1000 exclusive channel
16h REPLY > S1000 command reply (error or ok)
1Dh CASPACK < corrected ASPACK
Request S1000 Status
F0, 47, cc, RSTAT, 48, F7
S1000 status report
F0, 47, cc, STAT, 48,
vv,VV S1000 software version VV.vv
bb,bb maximum number of program, keygroup, sample header blocks
fb,fb number of blocks free
ww,ww,ww,ww maximum number of sample words
fw,fw,fw,fw number of words free
ec current exclusive channel setting
F7 eox
Request List of Resident Program Names
F0, 47, cc, RPLIST, 48, F7
List of Resident Program Names
F0, 47, cc, PLIST, 48,
pp,pp number of resident programs
12 bytes program 1 name (in non-ascii form - see below)
12 bytes program 2 name
... etc.
F7 eox
Request List of Resident Sample Names
F0, 47, cc, RSLIST, 48, F7
List of Resident Sample Names
F0, 47, cc, SLIST, 48,
ss,ss number of resident samples
12 bytes sample 1 name
12 bytes sample 2 name
...etc.
F7 eox
Request Program Common Data
F0, 47, cc, RPDATA , 48,
pp,pp program number
F7 eox
If the program number is higher than the highest program in the S1000, an error message will be given
instead of data.
Program Common Data
F0, 47, cc, PDATA , 48,
pp,pp program number
ln,hn first byte of data in low/high nibble form (see below)
ln,hn second byte
...etc.
F7 eox
This a bidirectional message. In the case of transmitting to the S1000, if the program number is above the
highest existing program number, a new program will be created (if sufficient blocks are free -one for the
program common block and one for each keygroup as specified by the parameter GROUPS). The created
program will have dummy keygroups with unspecified data; the appropriate number of keygroup data
messages should be given immediately. If the program name in data is the same as that of any existing
program, that program will be deleted first. If the program number is of an existing program, the existing data
will be replaced but the parameter GROUPS must be correct. This allows complete freedom to change