User manual | ALESIS SR-16 MIDI system System Exclusive format

Show HTML Add to My manuals
7 Pages

The Alesis SR-16 is a MIDI drum machine that allows you to create and edit drum patterns, songs, and drumsets. It features a comprehensive system exclusive MIDI format for exchanging patterns, modifying drum setups, and assigning MIDI channels. The SR-16 can also transmit and receive drumset data via MIDI, allowing for advanced customization and integration with other MIDI devices.

advertisement

ALESIS SR-16 MIDI system System Exclusive format | Manualzz

ALESIS SR-16 MIDI SYSTEM

EXCLUSIVE FORMAT

The following information is provided as a guide for programmers wishing to modify the data received via MIDI from the SR-16 for the purpose of interchanging patterns from separate block dumps, modification of drum setups, MIDI channel assignments, etc. Great care must be taken to insure that all modified addresses are valid, since one incorrect value (the length of a pattern, for example) could result in all data being lost in the SR-16. These errors may not show up immediately, since the incorrect values may not be accessed by the SR-16 until a particular pattern or song is selected. Therefore, it is recommended that any data manipulation programs be thoroughly tested after loading into the SR-16 by selecting and recording on many patterns and songs before assuming that the data is valid.

All 11 possible commands will be transmitted in the following format:

HEX

F0H

COMMENTS

SYSTEM EXCLUSIVE STATUS BYTE

00H, 00H, 0EH

05H

00H-0AH

...

F7H

ALESIS I.D. NUMBER

SR-16 I.D. NUMBER

SYSEX COMMAND

DATA

EOX

The following sysex commands are transmitted and received by the SR-16:

00H COMPLETE MEMORY DUMP

A system exclusive MIDI data dump from the SR-16 is initiated by pressing the BACKUP button, and then pressing the PLAY button. This command is followed by a block of data representing the contents of the SR-16's memory. In order to optimize the data transfer, 8 MIDI bytes are used to transmit each block of 7 SR-16 data bytes. If the 7 data bytes are looked at as one 56-bit word, the format for transmission is eight 7-bit words beginning with the most significant bit of the first byte, as follows:

0:

1:

2:

3:

4:

5:

6:

SEVEN SR-16 BYTES:

A7 A6 A5 A4 A3 A2 A1 A0

B7 B6 B5 B4 B3 B2 B1 B0

C7 C6 C5 C4 C3 C2 C1 C0

D7 D6 D5 D4 D3 D2 D1 D0

E7 E6 E5 E4 E3 E2 E1 E0

F7 F6 F5 F4 F3 F2 F1 F0

G7 G6 G5 G4 G3 G2 G1 G0

0:

1:

TRANSMITTED AS:

0 A7 A6 A5 A4 A3 A2 A1

0 A0 B7 B6 B5 B4 B3 B2

Alesis SR-16 MIDI System Exclusive format ________________________ 1

2:

3:

4:

5:

6:

7:

0 B1 B0 C7 C6 C5 C4 C3

0 C2 C1 C0 D7 D6 D5 D4

0 D3 D2 D1 D0 E7 E6 E5

0 E4 E3 E2 E1 E0 F7 F6

0 F5 F4 F3 F2 F1 F0 G7

0 G6 G5 G4 G3 G2 G1 G0

In order to use the data properly, it must be decoded properly into SR-16 byte format. The following list gives the data locations within the "unpacked" (decoded) block of data, starting with the first byte of the block being 000. NOTE: All absolute addresses must have an offset of

8200H added to them (e.g., an absolute pointer to a pattern that starts at 35AH should have the pointer value 855AH).

000H-0C7H DON'T CARE

0C8H

0C9H

0CAH

0CBH

0CCH

MIDI channel

Receive MIDI drum triggers (0=off, 1=on vel 1, 2=on vel 2)

Transmit MIDI drum triggers (0=off, 1=on)

MIDI note assignment of KICK (0-127)

MIDI note assignment of SNARE (0-127)

0CDH

0CEH

0CFH

0D0H

0D1H

0D2H

0D3H

0D4H

MIDI note assignment of CLS HAT (0-127)

MIDI note assignment of OPEN HAT (0-127)

MIDI note assignment of CLAPS (0-127)

MIDI note assignment of PERC 2 (0-127)

MIDI note assignment of TOM 1 (0-127)

MIDI note assignment of TOM 2 (0-127)

MIDI note assignment of TOM 3 (0-127)

MIDI note assignment of RIDE (0-127)

0D5H

0D6H

MIDI note assignment of CRASH (0-127)

MIDI note assignment of PERC 1 (0-127)

0D7H-0DBH DON'T CARE

0DCH

0DDH

MIDI THRU (0=off, 1=on)

MIDI program select (0=off, 1=on)

0DEH

0DFH

0E0H

0E1H

0E2H

Clock mode (0=MIDI & internal, 1=internal only, 2=tape)

MIDI clock out (0=off, 1=on)

0

Click value

0

0E3H

0E4H

0E5H

Drumset mode (0=Pattern, 1=Manual)

Pad dynamics (0-0AH)

Version flag (0=1.00 thru 1.02, 1=1.03 and up)

0E6H

0E7H

1

Note map (0=Normal, 1=00-09, 2=10-19, 3=20-29, 4=30-39, 5=40-49)

0E8H-F3H DON'T CARE

0F4H 0

0F5H-FDH DON'T CARE

0FEH

0FFH

27H

0B5H

Alesis SR-16 MIDI System Exclusive format ________________________ 2

100H-1FFH DON'T CARE

200H

201H

202H

203H

204H

MSB of absolute pointer to pattern 00A

LSB of absolute pointer to pattern 00A

MSB of absolute pointer to pattern 00B

LSB of absolute pointer to pattern 00B

MSB of absolute pointer to pattern 01A

205H

"

2C6H

LSB of absolute pointer to pattern 01A

" " " "

MSB of absolute pointer to pattern 49B

2C7H LSB of absolute pointer to pattern 49B

2C8H-2CCH DON'T ALTER

2CDH LSB of absolute pointer to first byte past SONG 99 data

2CEH MSB of absolute pointer to first byte past SONG 99 data

2CFH-2D0H DON'T ALTER

2D1H

2D2H

LSB of FFFFH minus data in 0CDH & 0CEH

MSB of FFFFH minus data in 0CDH & 0CEH

2D3H-2D4H DON'T ALTER

2D5H Shuffle amount (0-3, 0=OFF)

2D6H-2D7H DON'T ALTER

2D8H

2D9H

12, 8, 1)

Tempo (20-255)

Quant clock count (must correspond to Quant value 0-8: 96, 64, 48, 32, 24, 16,

2DAH Quant value (0-8)

2DBH-2FFH DON'T ALTER

300H-301H DON'T ALTER

302H MSB of absolute pointer to song 00

303H

304H

305H

306H

307H

LSB of absolute pointer to song 00

MSB of absolute pointer to song 01

LSB of absolute pointer to song 01

MSB of absolute pointer to song 02

LSB of absolute pointer to song 02

"

3C8H

3C9H

" " " "

MSB of absolute pointer to song 99

LSB of absolute pointer to song 99

3CAH-3CCH DON'T ALTER

3CDH-3D2H DON'T CARE

3D3H-3D6H DON'T ALTER

3D7H-3FFH DON'T CARE

400H-4F6H DON'T CARE

4F7H Current drumset number (0-49 user, 64-113 preset)

4F8H-51BH User drumset 00

51CH-53FH User drumset 01

Alesis SR-16 MIDI System Exclusive format ________________________ 3

540H-563H User drumset 02

" " " " "

BDCH-BFFH User drumset 49

C00H-? PATTERN 00 DATA

The pattern and song data must be dealt with in a specific manner:

1) All pattern and song data must be in consecutive order, i.e., pattern 05A data cannot be before pattern 02B's data. The order for the data should be pattern 00A through 49B, followed by song 00 through 99.

2) If a pattern or song does not exist, its MSB pointer will = 0, which is an illegal pointer address. Since there will be no data for this pattern, it is skipped, i.e., if pattern 04A is empty, pattern 04B's data follows after pattern 03B's data.

3) There can be no gaps in the data. Pattern 01A's data must follow directly after pattern

00B's data, etc.

4) Locations 2CDH-2CEH (start of free memory) and 2D1H-2D2H (length of free memory) must be kept valid.

5) Song 99 MUST exist. This means that at least an empty song (03H 00H FFH) must be at the end of memory, and song 99 must point to it.

6) It is suggested that all DON'T CARE data be left in the state that it is received in, although these locations can be replaced with zeroes.

PATTERN DATA FORMAT

08H

09H

0AH

0BH

0CH

0DH

0EH-??

??

??-??

??

The following is the format of each pattern, starting with the address pointed to by the absolute pointer to the pattern (offset by 8200H):

00H LSB of number of bytes in pattern, including header and fill

01H

02H

MSB of number of bytes in pattern, including header and fill

LSB of offset to start of fill (from location 03H)

03H

04H

05H

06H

07H

MSB of offset to start of fill (from location 03H)

Length of pattern in beats (0-128)

Drumset number assigned to pattern (0-49 user, 64-113 preset)

Pattern name digit 1

Pattern name digit 2

Pattern name digit 3

Pattern name digit 4

Pattern name digit 5

Pattern name digit 6

Pattern name digit 7

Pattern name digit 8

PATTERN DATA

0FFH (End of pattern)

FILL DATA

0FFH (End of fill)

Alesis SR-16 MIDI System Exclusive format ________________________ 4

Pattern data must follow these rules:

1) Each byte of the pattern data (from 0EH on) is either a drum event, or a count of clocks to wait, or 0FFH, which indicates the end of the pattern. If the event is a drum event, bit 7 will be 0, bits 4-6 will contain the dynamics of the note (0-7), and bits 0-3 will contain the drum to be played (0-11). If the event is a count of clocks, bit 7 will be high, and bits 0-6 will indicate the number of clocks to wait (0-126). A wait of 0 clocks is legal, and will cause the pointer to immediately advance to the next event. An empty 8 beat pattern would consist of the following pattern data: 0FEH, 0FEH, 0FEH, 0FEH, 0FEH, 0FEH,

08CH, 0FFH. This data will count clocks for 126*6+12 clocks (768 clocks, divided by

96 clocks per beat = 8 beats), afterwhich it will loop around since it has reached the end of the pattern.

2) The number of clocks in a fill pattern must equal the number of clocks in the main pattern. For an empty 8 beat pattern, the above data would be repeated twice.

3) Adding the number of bytes in a pattern to the absolute pointer of a pattern should point to 1 byte past the last byte of the pattern.

DRUMSET DATA FORMAT

Each drumset contains 36 bytes; 3 bytes for each of 12 drums. The 3 bytes are as follows:

03H

04H

05H

06H

07H

08H

09H

0AH

02H

03H

Byte 0, bits 0-7

Byte 1, bit 7

Byte 1, bits 0-6

Byte 2, bits 5-7

Byte 2, bits 3-4

Byte 2, bits 0-2

Sound number 0-232

Output select 0-1, 0=main outs

Volume 0-99

Panning 0-6, 0=left, 3=center, 6=right

Assignment mode 0-3, multi, single, group1, group2

Tuning 0-7, 0=-4, 4=0, 7=+3

SONG DATA FORMAT

The following is the format of each song, starting with the address pointed to by the absolute pointer to the pattern (offset by 8200H):

00H LSB of number of bytes in song, including header

01H

02H

MSB of number of bytes in song, including header

Song name digit 1

Song name digit 2

Song name digit 3

Song name digit 4

Song name digit 5

Song name digit 6

Song name digit 7

Song name digit 8

Song tempo (00=no tempo saved)

Step 1 pattern number

Step 1 fill start count lsb

Alesis SR-16 MIDI System Exclusive format ________________________ 5

04H

05H

06H

Step 1 fill start count msb

Step 2 pattern number etc.... xxH Pattern number 0FFH (end of song)

Song data must follow these rules:

1) There cannot be more than 254 steps in a song.

2) If a step's fill start count is FFFFH, the fill will not play.

3) The fill count represents the number of clocks that should occur before the fill begins playing -1.

05H

4) Adding the number of bytes in a song to the absolute pointer of a song should point to 1 byte past the last byte of the song.

COPY PATTERN, DRUM, OR SONG

07H

This command is used to copy a pattern to another pattern, a drum to a pattern, or a song to a song. If the command is to copy a pattern, the data received will be appended to the end of the currently selected pattern. If the command is to copy a song, the data received will be appended to the end of the currently selected song. If the command is to copy a drum, the drum number sent in the mode byte (-1) will be copied to the drum button hit within 3 seconds of receiving this command, otherwise it will be ignored.

000000xxB x: MSB of number of unpacked bytes of data after header

0xxxxxxyB y: LSB of number of unpacked bytes of data after header

0yyyyyyyB if y_0, then x=x+1

000nnnnnB n: copy mode: 0=copy patt, 1-12=copy drum, 17=copy song

| The data is packed as 8 MIDI bytes per 7 data bytes as described data above in the MIDI bulk dump explanation. It contains a complete

| pattern or song.

00000000B This extra byte is required for proper operation

F7H EOX

When transmitting any copy function, it is recommended that a pause of one second be inserted between the copy mode byte and the data that follows it to insure that the receiving SR-16 has enough time to move memory around to make room for the new pattern or song. In addition, it is recommended that a delay be added before sending additional MIDI commands, since it may take a few seconds for the copy operation to be complete, during which time MIDI data will be ignored. The amount of time required will be dependent on the length of the patterns or songs being copied, and the amount of free memory available.

REQUEST SYSEX DUMP

Alesis SR-16 MIDI System Exclusive format ________________________ 6

This command is used to request a complete sysex memory dump from the SR-16. After receiving this command (if not in PLAY mode), the SR-16 will send out its complete memory via MIDI.

08H

F7H EOX

RECEIVE DRUMSET DATA

This command is receive only, and is used to change the voice settings of the current drumset. It can function while the pattern is playing, and will update the display if the settings being displayed are changed. The format is two MIDI bytes per data byte, with the most significant data bit transmitted in bit 0 of the first MIDI byte, and data bits 0-6 transmitted in the second MIDI byte. The data edits the currently selected drumset just as if it had been edited from the front panel. This means that the changes will not be permanent unless the drumset is stored. data

F7H

36 data bytes, transmitted as 72 MIDI bytes

EOX

09H MIDI COMMUNICATIONS TEST

This command is used to ensure that bidirectional MIDI communication is functioning. If an SR-16 receives the inquiry command (F0H, 00H, 00H, 0EH, 01H, 09H, 00H, F7H), it will respond with the response command (F0H, 00H, 00H, 0EH, 01H, 09H, 01H, F7H) only if MIDI ECHO is turned off. If MIDI ECHO is on, the transmitting device will see the inquiry message returned to it if bidirectional communication is functioning. This function is useful in determining that the SR-16 is ready to receive additional MIDI information. For example, selecting a pattern, or copying a pattern can cause a delay in which the SR-16 will ignore incoming MIDI information if its input buffer overflows. By sending this command after a copy pattern command (command 5), and then waiting for the response before sending any additional commands, it can be insured that the SR-16 will not miss any information.

0000000xB x=0=MIDI inquiry, x=1=MIDI response

F7H

0AH

EOX

REQUEST DRUMSET DATA

This command is used to request the current drumset data to be sent out MIDI. After receiving this command, the SR-16 will send out the current drumset as described in command 8 above.

F7H EOX

Alesis SR-16 MIDI System Exclusive format ________________________ 7

advertisement

Key Features

  • MIDI drum machine
  • System exclusive MIDI format
  • Pattern and song editing
  • Drumset customization
  • MIDI data transmission and reception
  • Complete memory dump
  • Drumset data receive
  • MIDI communications test
  • Drumset data request
  • Copy pattern, drum, or song

Related manuals

Frequently Answers and Questions

How do I perform a complete memory dump from the SR-16?
Press the BACKUP button, followed by the PLAY button. This will initiate a system exclusive MIDI data dump from the SR-16 containing its entire memory contents.
How do I change the voice settings of the current drumset?
Use command 08H, which allows you to receive drumset data and edit the currently selected drumset via MIDI. The changes will not be permanent unless the drumset is stored.
How do I copy a pattern to another pattern?
Use command 05H, specifying the copy mode as 0 and sending the pattern data packed as 8 MIDI bytes per 7 data bytes. The data will be appended to the end of the currently selected pattern.
How do I ensure bidirectional MIDI communication is functioning?
Send the inquiry command (F0H, 00H, 00H, 0EH, 01H, 09H, 00H, F7H). If MIDI echo is turned off, the SR-16 will respond with the response command (F0H, 00H, 00H, 0EH, 01H, 09H, 01H, F7H). If MIDI echo is on, the transmitting device will see the inquiry message returned to it.
Download PDF

advertisement