MIDI sample-dump

removable at mediaone.net removable at mediaone.net
Thu Oct 29 14:38:32 CET 1998


Sorry about sending this to the list- I tried to send it privately, 
but Raoul's email is bouncing back.  My ISP may not be able to deal 
with the periods in his address.

My friend has the same problem; his drive is almost totally dead.
Please let me know if you find a source for replacements, or if 
you figure out how to do dumps with MIDI.  I'll try your idea 
for using Cakewalk the next time I'm over at his house.

The X-7000 doesn't really use the MIDI Sample Dump Standard.
Instead, it was compatible with Prophet 2000 dumps, so there 
wasn't very much software support.  The X7000's MIDI spec was 
identical to the S700's.  I'll paste in the S700 spec at the 
bottom of this message.  I found it on the net awhile back,
but I don't remember where.

Turtle Beach used to have a program called SampleVision that works
with the X7000, but I think it's been unavailable for a long time.
We've been looking for a copy, but haven't found anything yet.
I'll write you if we get it.

Good luck-
Don



MIDI SYSTEM EXCLUSIVE DATA FORMAT FOR S700

30 Jun 86. Copyright Akai Ltd.  Gallus faciebat.
12 Aug 86. CHOMAX added to overall settings.
20 Sep 86. AFSENS added to overall settings.
28 Dec 86. Byte numbering of sample parameters corrected.

RECOGNISED BY S700:

EXCLUSIVE AKAI:
                                                        MNEMONIC
Request for overall settings.                           ROVS
Overall settings.                                       OVS
Request for sample parameters.                          RSPRM
Sample parameters.                                      SPRM
System exclusive common reception enable                SECRE
System exclusive common reception disable.              SECRD

SYSTEM EXCLUSIVE COMMON:
                                                        MNEMOMIC
Request sample dump                                     RSD
Abort sample dump.                                      ASD
Not acknowledge sample block. (Request retransmission)  NAKS
Acknowledge sample block. (or sample header)            ACKS
Sample dump.                                            SD

TRANSMITTED BY S900:

        Akai exclusive.
                                                        MNEMONIC
Overall settings.                                       DOVS
Sample parameters                                       DSP

        Exclusive common:

Sample dump.                                            SD
Abort sample dump.                                      ASD
Not ack sample block.                                   NAKS
Ack sample block.                                       ACKS


GENERAL NOTES

The purpose of the interface is to allow a computer to control
all S700 functions, to process and synthesize samples, and to
allow the S700 to replay samples developed for other machines,
e.g. Prophet 2000.

S700 is always a slave.  It will never send unless. it is told
to. This means all data transfers out of S700 must use two way
communication. S700 can however receive with an incoming
connection only.  Reception of sample dump is speeded up with a
two way connection.

Samples are requested by NUMBER. This number is 0 to 5 and
corresponds to the displayed number -1.

Sample transfer is according to the standard described in the
Prophet 2000 manual.  This uses 'System exclusive common' which
does not include a manufacturers prefix code.  As it does not
include a MIDI channel code, any samples sent or requests for
samples would be responded to by all samplers on the same MIDI
line.  The 'System exclusive common reception enable' and ' ...
disable' messages, which do include a MIDI channel number. can
be used to select one of several S700s on the same line.

A further enhancement of the standard sample dump protocol is
that when closed loop transmission is used, gaps between blocks
may be long as 10 seconds rather than the 20ms specified.  This
allows the computer to use its disk in the middle of a long
file.  This variation maintains full compatibility with the
standard.

There are several parameters associated with a S700 sample that
are not included in the Prophet 2000 sample dump.  These may be
sent with the Akai exclusive 'Sample parameters' messages.

The use of the above enhancements will not prevent the S700 from
being completely compatible with the Prophet 2000 sample dump
format.


START POINT

When S700 sends a sample it sends only that part of the waveform
between the start and end points.  When it sends the AKAI
exclusive sample parameters it sends the start and end points as
shown on the S700 display.




DETAILED SPECIFICATION OF MESSAGES.

;SAMPLE DUMP FORMAT (as recognised and transmitted by S700)
BYTE#   RANGE   TYPE*   DESCRIPTION
0       OFOH    B       System exclusive code.
1       07EH    B       Common non-realtime identifier.
2       1       B       SD Sample dump code.
3       N       B       Sample number, LS. The incoming sample will
replace
                        replace the S700's sample numbered N+1 where N
Is 0 to
                        5 (or 15). If N is greater than 5 (or 15), then
the
                        sample being edited will be replaced.
4       0       B       Reserved. Must be 0.
5       8-16    B       Bits per word. S700 transmits 12. but can
                        accept 8 to 14.
6,7,8   0-127   TB      SAMPLING PERIOD IN ns. S700 accepts 15259 to
                        500000.
                        S700 assumes that the nominal pitch of samples
is
                        C3 (MIDI 60) unless a subsequent set of AKAI
exclusive
                        parameters specifies it otherwise.
9,10,11 0-127   TB      TOTAL WORDS IN SAMPLE. S700 accepts 200 to
                        32752. If more than 32752 points are sent only
the first
                        32752 will be stored.
12,13,14        0-127   TB      LOOP START POINT. If >= total -5. assume
non Looping.
15,16,17        0-127   TB      LOOP END. S700 takes this as end point.
It takes
                                the start point as 0 unless AKAI
exclusive sample
                                Parameters subsequently raise it.
18      0-1     B       O=Looping 1=alternating. (One shot if loop
length<5).

Next follows a variable number of sample blocks.  Each has the
same format:

0       0-127   B       Block number LSbyte. (Block number MSbyte is not
sent.)
1,2     0-4095  SW
3-120   as 1,2  above
121     0-127   B       Checksum, being the exclusive OR of the previous
120 bytes.

A final byte follows the last block:
??                   OF7H        B      End of exclusive code.


SYSTEM COMMON HANDSHAKES (recognised and transmitted by S700).

BYTE#   RANGE   TYPE    DESCRIPTION
0       OFOH    B       System exclusive code.
1       7EH     B       Common non-realtime code.
2       ff      B       Function code:
                        ACKS=7FH Acknowledge sample block or header.
                        ASD =7DH Abort sample dump.
                        NAKS=7EH Not acknowledge. (Request
retransmission
                                        of block).
3               OF7H    B       End of exclusive.


SYSTEM COMMON REQUEST SAMPLE DUMP (recognised by S700)

BYTE#   RANGE   TYPE    DESCRIPTION
0       OFOH    B       System exclusive code
1       7EH     B       Common non-realtime code.
2       0       B       RSD Request sample dump code.
3       0-5(15) B       Sample #, =S700 displayed number -1
4       0       B
5       OF7H    8       EOX


AKAI EXCLUSIVE MESSAGES. (Recognised by S700)

BYTE    RANGE   TYPE    DESCRIPTION
0       OFOH    B       System exclusive code
1       47H     B       Akai identifier
2       0-15    B       MIDI channel #
3       1,4,5,6 B       Function code:
                        ROVS = 1 Request for overall settings.
                        RSPRM= 4 request for sample parameters.
                        SECRE= 5 System exclusive common reception
enable.
                        SECRD= 6 Ditto disable.
4       65      B       S700 identifier.
5       0-5(15)         B       Sample number where applicable.
Otherwise 0
6       0       B       Reserved. (must be 0).
7       OF7H    B       EOX


AKAI EXCLUSIVE  Overall settings. (Recognised and transmitted by S700)
BYTE    RANGE   TYPE    DESCRIPTION
0       OFOH    B       System exclusive code
1       47H     B       Akai identifier
2       0-15    B       MIDI channel #
3       8       B       OVS Function code for overall settings
4       65      B       S700 identifier
5       0       B       Reserved. (must be 0)
6       0       B       Reserved. (must  be 0)

                Overall settings data:
7,8     0,15    DB      MDCHO S700 basic MIDI reception channel, coded
0-15.
9,10    3,8     DB      MDMPM S700 MIDI mode. 3=Poly. 8=Mono, 16=Special
mono
11,12   0,15    DB      MDXTCH MIDI channel to be used by S700 when S700
                                is sending AKAI exclusive messages.
13,14   0,64,128        DB      OMNION S700 Omni on=128, Omni off=O,
                                                        Multi-program=64
15,16   0-12    DB      PWRNGE. Pitch wheel range (+- semitones). eg 12
                        means range of octave down to octave up.
17,18   0,255   DS     PRCHOF.  MIDI Program change     reception. 0 to
allow,
                                 255 to inhibit.
19,29   0-5     DB      CHOMAX. Maximum number-1 of channels to be used
                                in MIDI omni off mono mode. ie value of 
5 to use 6
                                channels.
21,22   0-127   DB      AFSENS. Sensitivity to channel pressure.
23,26   0       DW      Reserved
27,30   0       DW      Reserved
31      0-127   B       CHECKSUM. exclusive OR of bytes 7-30
32      OFOH    B       EOX


AKAI EXCLUSIVE Sample parameters. (Recognised and transmitted by S700)

BYTE    RANGE   TYPE    DESCRIPTION
0       OFOH    B       System exclusive code
1       47H     B       Akai Identifier
2       0-15    6       MIDI channel #
3       10      B       SPRM Function code for sample parameters.
4       65      B       S700 identifier
5       0-5(15) B       Sample number
6       0       B       Reserved. (must be 0)


First are 32 sets of sample parameters, one for each program. 
Each consists of 4 data elements:

7,8     0-99    DB      KEYL    Lowest key In keyrange for this sample
in
                        first program.
9,10    0-99    DB      KEYH    Highest key In keyrange.
11,12   0-255   DB      TRABSP  7 LSBs are signed key transpose, +-60,
                                        MSB is set for constant Pitch.
13,14   0-255   DS      ATPTCH  Audio trigger. MSB set to disable. 7
                                        LSBs give MIDI note.
15-262  31 further blocks of four elements for 2nd to 32nd
programs.  Each block is coded as bytes 7-14 above.

263,264 X       DB              Undefined.
265,266 1-4     DB      RPMODE  1=one shot. 2=Looping. 4=alternating.
                                9=Drum triggered one shot.
267-270 0-32552 DW      SSTRT   Start point.
271-274 X       DW              Undefined.
275-278 200-32752       DW      SEND    End point+1. Must be >=SSTRT+200
279-282 0-32752         DW      SLOOP   Loop point. Must be < SEND
283-286 X       DW              Undefined.
287,288 0-99    DB      LFSP    LFO speed.      0=2 Hz. 99=8 Hz.
289,290 0-99    DB      LFDP    LFO depth.      99=+- semitone.
291,292 0-99    DB      LFDL    LFO delay.      99 means slow buildup.
293,294 0-99    DB      FLTFRO  Filter frequency.  99 means maximum.
295,296 0-99    DB      RLEASE  Release time.  99 means slowest.
297,298 0-99    DB      LDNSS   Loudness. 99=max. LSB is -0.375 dB.
299,300 +-16    DB      SFNTUN  Fine tuning. Signed. LSB is 1/16
semitone.
301,302 24-96   DB      RECNP   Nominal recording pitch. Coding as for
                                        MIDI key in semitones. (69 =
A440).
303,304 36-77   DB      RECBW   Recording bandwidth. Defines original
                                sample rate. 69 means bandwidth of 10.56
kHz which
                        corresponds to sample rate of 26400 Hz.
                        Other rates are computed according to:
                        Rate= 26400*2^((RECBW-69)/12).
                        If RECNP=RECBW and SFNTUN=0 and TRNSP=0
                        then samples made with 60 points per cycle will
come out
                        at concert pitch.

305,306 0,255   DB      RVRSE   0=Forward, 255=Reversed. Used only
                                        for display.
307,308 0-99    DB      VELFIL  Velocity/filter interaction.
309,310 0-99    DB      VELLDN  velocity/loudness Interaction.
311,312 0-99    DB      VELRLS  Velocity/release interaction. 99 gives
                                        slowest release for Low
velocity.
313,314 X       DB              Undefined.
315,316 X       DB              Undefined.
317     0-127   B       Checksum. Exclusive OR of bytes 7-317
318     OFOH    B               End of sample Parameters.


CODING OF B TB DB DW    

B represents a byte transmitted as a single MIDI byte.
DB represents an 8 bit parameter in S700's memory.  It is sent as
two MIDI bytes: first byte 0 d6 dS d4 d3 d2 dl dO
                        second byte 0 0 0 0 0 0 0 d7 
                        where dO is the parameter's least significant
bit.

If the second byte is 2 or higher the value will not be copied
into S700's memory and the previous value will remain.  It is
thus possible to change only selected Parameters.


TB represents a 21 bit value transmitted as  three MIDI bytes:
                first byte: 0 d6 d5 d4 d3 d2 d1 dO
                second byte: 0 d13 d12 dll d10d9 d8 d7
                third byte: 0 d20 d19 d18 d17 d16 d15 d14


SW represents a 12 bit value transmitted as two MIDI bytes: 
                first byte: 0 dll d10 d9 d8 d7 d6 d5
                second byte: 0 d4 d3 d2 dl dO 0 0
                 Coding is offset binary. zero is sent as 40h 0

DW represents a 16 bit quantity.  It is sent as four MIDI bytes:
                first byte 0 d6 d5 d4 d3 d2 dl dO
                second byte 0 0 0 0 0 0 0 d7
                third byte 0 d14 d13 d12 dll d10 d9 d8
                fourth byte  0 0 0 0 0 0 0 d15

If both the second and third bytes  are  2 or more, the value
will not be copied into S700's memory and the previous value
will remain.


Signed and unsigned.

Parameters described as signed are represented in twos
complement form. e.g: DB value of -1 = OFFH


UNDEFINED and RESERVED

Reserved values are for possible future enhancements and must
be transmitted as shown.  Undefined values have no operational
effect and might as well be filled with Os.


TIMEOUT.

When receiving Akai exclusive data, after the first six bytes
have been received, the remaining bytes must be separated by no
more than 2 seconds.  This provision protects the S700 from
hanging in the event of incomplete messages.



SAMPLE OF DIALOG WHERE COMPUTER RECEIVES SAMPLE FROM S700

COMPUTER:       RSD
(OFOH, 7EH, 0, 0, 0, OF7H)

Computer requests S700 to send Its first sample.


S700:   SD

        (OFOH, 7EH, 1, 0, 0, OCH,
                77H, 27H, 2,    Sample period = 10^9 / 26400.
                70H, 7FH, 1,    Words in sample = 32752.
                34H, 7FH, 1,    Loop start point = 32692.
                77H, 27H, 2,    Loop end point = last sample point +1.
                0)      Mode=Looping.

COMPUTER:       ACKS
                (OFOH, 7EH, 7FH, OF7H)  Computer acknowledges sample
header.

S700:   (0, 40H,O, 40H.0, 40H,O, 40H,0........ 0) This Is a block
of 60 sample points.

COMPUTER:       ACKS (OFOH, 7EH, 7FH, OF7H) Computer acknowledges
sample block.

The above two lines are repeated while S700 sends a total of 546
blocks


S700:   (26H, 40H,O, 40H,O, 40H,0 40H,0........ 0,0 0,0 0)

This is the 546th block.  Note that the last bytes are padded
with Os to keep the block the same length as the others.


COMPUTER:       ACKS
(OFOH, 7EH, 7FH, OF7H) Computer acknowledges last block.


S700:                   EOX
(OF7H)            Marks end of message.




More information about the Synth-diy mailing list