Roland S-10 Digital Sampling Keyboard

 

General

The length of the sample depends of the chosen structure:

 Structure

Bank length (words)

A, B, C, D

32.768

AB, CD

65.536

ABCD

131.072


A sample word is 12 bits wide and is exchanged in the following format:

BYTE_0: 0aaa aaaa
BYTE_1: 0bbb bb00

This corresponds with the sample word: aaaa aaab bbbb

The conversion can be done like this: WORD = BYTE_0 * 2^5 + BYTE_1 / 2^2

 

Sysex messages

 

Manufacturer ID 41H (Roland)
Device ID ch (midi-channel)
Model ID 10H (S-10 Sampling Keyboard)

One way transfer

Handshake transfer

RQ1

DT1

WSD

RQD

DAT

ACK

EOD

ERR

RJC

F0

F0

F0

F0

F0

F0

F0

F0

F0

41

41

41

41

41

41

41

41

41

ch

ch

ch

ch

ch

ch

ch

ch

ch

10

10

10

10

10

10

10

10

10

11

12

40

41

42

43

45

4E

4F

Address MSB

Address MSB

Address MSB

Address MSB

Address MSB

F7

F7

F7

F7

:

:

:

:

:

 

 

 

 

Address LSB

Address LSB

Address LSB

Address LSB

Addres LSB

 

 

 

 

Size MSB

Data

Size MSB

Size MSB

Data

 

 

 

 

:

:

:

:

:

 

 

 

 

Size LSB

Sum

Size LSB

Size LSB

Sum

 

 

 

 

Sum

F7

Sum

Sum

F7

 

 

 

 

F7

 

F7

F7

 

 

 

 

 

 

 

Start-, End- and Loop values

The Start-, End- and Loop points are exchanged in the following format:

 MSB

BYTE_D

BYTE_C

BYTE_B

LSB

0000 eeee

0000 dddd

0000 cccc

0000 bbbb

0000 aaaa

This corresponds with the value: eeee dddd cccc bbbb aaaa

The conversion can be done like this:

 VALUE = LSB + BYTE_B * 2^4 + BYTE_C * 2^8 + BYTE_D * 2^12 + MSB * 2^16

And vice versa:

LSB = VALUE AND 15
BYTE_B = (VALUE / 2^4) AND 15
BYTE_C = (VALUE / 2^8) AND 15
BYTE_D = (VALUE / 2^12) AND 15
MSB = (VALUE / 2^16) AND 15

 

Parameter address map

 

Address (hex)

Size (hex)

Parameter

Description

00 edbuf 00

00 00 38

Wave Parameters

edbuf = edit buffer 0 to 3

more editbuffers are used with split structures

00 08 00

00 00 19

Performance Parameters

 

00 09 00

00 00 04

Sample Structure

Request with RQ1:
address: 00 09 00
size: 00 00 00
This address contains four values that correspond with edbuf= 0 to 3; edbuf is valid if value<>F
examples:
0 F F F = Structure A
1 F F F = Structure B
2 F F F = Structure C
3 F F F = Structure D
4 F F F = Structure AB
5 F F F = Structure CD
6 F F F = Structure ABCD
0 0 F F = Structure A/B
2 2 F F = Structure C/D
4 4 F F = Structure AB/CD
0 0 0 0 = Structure A/B/C/D

00 10 00

 

Write Command Switch

Writing 0 to this address has the same effect as pressing the ENTER button

00 10 01

 

Arpeggio

Writing 0 to this address switches the Arpeggio function to OFF;
Writing 1 to this address switches the Arpeggio function to ON

00 10 02

 

Sample Dump Mode

Writing 0 (127?)to this address switches the S-10 to Sample Dump Mode.

01 00 00

 

Wave Parameter Data

The size depends of the Sampling Structure:
size:
00 00 49 : A, B, C, D, AB, CD, ABCD
00 01 12 : A/B, C/D, AB/CD
00 02 24 : A/B/C/D
In the latter case the data are sent in two packets: the second packet adddresses 01 00 52

01 08 00

00 00 28

Performance Parameters Data

 

02 00 00

04 00 00
08 00 00
10 00 00

Sample Data A

Structure: A
Structure: AB, A/B
Structure: ABCD, AB/CD, A/B/C/D

06 00 00

04 00 00

Sample Data B

Structure: B

0A 00 00

04 00 00
08 00 00

Sample Data C

Structure: C
Structure: CD, C/D

0E 00 00

04 00 00

Sample Data D

Structure: D

 

 

Program Change vs. Samplingstructure

 

0

--

A

0 F F F

1

--

B

1 F F F

2

--

C

2 F F F

3

--

D

3 F F F

4

--

AB

4 F F F

5

--

CD

5 F F F

6

--

ABCD

6 F F F

7

--

A/B

0 0 F F

8

--

C/D

2 2 F F

9

--

AB/CD

4 4 F F

10

--

A/B/C/D

0 0 0 0

11

DT

A

0 F F F

12

DT

B

1 F F F

13

DT

C

2 F F F

14

DT

D

3 F F F

15

DT

AB

4 F F F

16

DT

CD

5 F F F

17

DT

ABCD

6 F F F

18

DT

A/B

0 0 F F

19

DT

C/D

2 2 F F

20

DT

AB/CD

4 4 F F

21

DT

A/B/C/D

0 0 0 0

22

DL

A

0 F F F

23

DL

B

1 F F F

24

DL

C

2 F F F

25

DL

D

3 F F F

26

DL

AB

4 F F F

27

DL

CD

5 F F F

28

DL

ABCD

6 F F F

29

DL

A/B

0 0 F F

30

DL

C/D

2 2 F F

31

DL

AB/CD

4 4 F F

32

DL

A/B/C/D

0 0 0 0

33

DU

A-B

0 F 0 F

B-A

1 F 1 F

34

DU

A-C

0 F 0 F

C-A

2 F 2 F

35

DU

A-D

0 F 0 F

D-A

3 F 3 F

36

DU

A-CD

0 F 0 F

CD-A

5 F 5 F

37

DU

A-C/D

0 F 0 0

C/D-A

2 2 2 F

38

DU

B-C

1 F 1 F

C-B

2 F 2 F

39

DU

B-D

1 F 1 F

D-B

3 F 3 F

40

DU

B-CD

1 F 1 F

CD-B

5 F 5 F

41

DU

B-C/D

1 F 1 1

C/D-B

2 2 2 F

42

DU

C-D

2 F 2 F

D-C

3 F 3 F

43

DU

C-AB

2 F 2 F

AB-C

4 F 4 F

44

DU

C-A/B

2 F 2 2

A/B-C

0 0 0 F

45

DU

D-AB

3 F 3 F

AB-D

4 F 4 F

46

DU

D-A/B

3 F 3 3

A/B-D

0 0 0 F

47

DU

AB-CD

4 F 4 F

CD-AB

5 F 5 F

48

DU

AB-C/D

4 F 4 4

C/D-AB

2 2 2 F

49

DU

CD-A/B

5 F 5 5

A/B-CD

0 0 0 F

50

DU

A/B-C/D

0 0 0 0

C/D-A/B

2 2 2 2

51

VM

A-B

0 F 0 F

52

VM

A-C

0 F 0 F

53

VM

A-D

0 F 0 F

54

VM

A-CD

0 F 0 F

55

VM

A-C/D

0 F 0 0

56

VM

B-A

1 F 1 F

57

VM

B-C

1 F 1 F

58

VM

B-D

1 F 1 F

59

VM

B-CD

1 F 1 F

60

VM

B-C/D

1 F 1 1

61

VM

C-A

2 F 2 F

62

VM

C-B

2 F 2 F

63

VM

C-D

2 F 2 F

64

VM

C-AB

2 F 2 F

65

VM

C-A/B

2 F 2 2

66

VM

D-A

3 F 3 F

67

VM

D-B

3 F 3 F

68

VM

D-C

3 F 3 F

69

VM

D-AB

3 F 3 F

70

VM

D-A/B

3 F 3 3

71

VM

AB-C

4 F 4 F

72

VM

AB-D

4 F 4 F

73

VM

AB-CD

4 F 4 F

74

VM

AB-C/D

4 F 4 4

75

VM

CD-A

5 F 5 F

76

VM

CD-B

5 F 5 F

77

VM

CD-AB

5 F 5 F

78

VM

CD-A/B

5 F 5 5

79

VM

A/B-C

0 0 0 F

80

VM

A/B-D

0 0 0 F

81

VM

A/B-CD

0 0 0 F

82

VM

A/B-C/D

0 0 0 0

83

VM

C/D-A

2 2 2 F

84

VM

C/D-B

2 2 2 F

85

VM

C/D-AB

2 2 2 F

86

VM

C/D-A/B

2 2 2 2

87

VS

A-B

0 F 0 F

88

VS

A-C

0 F 0 F

89

VS

A-D

0 F 0 F

90

VS

A-CD

0 F 0 F

91

VS

A-C/D

0 F 0 0

92

VS

B-A

1 F 1 F

93

VS

B-C

1 F 1 F

94

VS

B-D

1 F 1 F

95

VS

B-CD

1 F 1 F

96

VS

B-C/D

1 F 1 1

97

VS

C-A

2 F 2 F

98

VS

C-B

2 F 2 F

99

VS

C-D

2 F 2 F

100

VS

C-AB

2 F 2 F

101

VS

C-A/B

2 F 2 2

102

VS

D-A

3 F 3 F

103

VS

D-B

3 F 3 F

104

VS

D-C

3 F 3 F

105

VS

D-AB

3 F 3 F

106

VS

D-A/B

3 F 3 3

107

VS

AB-C

4 F 4 F

108

VS

AB-D

4 F 4 F

109

VS

AB-CD

4 F 4 F

110

VS

AB-C/D

4 F 4 4

111

VS

CD-A

5 F 5 F

112

VS

CD-B

5 F 5 F

113

VS

CD-AB

5 F 5 F

114

VS

CD-A/B

5 F 5 5

115

VS

A/B-C

0 0 0 F

116

VS

A/B-D

0 0 0 F

117

VS

A/B-CD

0 0 0 F

118

VS

A/B-C/D

0 0 0 0

119

VS

C/D-A

2 2 2 F

120

VS

C/D-B

2 2 2 F

121

VS

C/D-AB

2 2 2 F

122

VS

C/D-A/B

2 2 2 2

 

 

Wave Parameters edbuf = 0 (1, 2 or 3 with split structures)

 

Address (hex)

Size (hex)

Parameter

Value (dec)

00 edbuf 00

00 00 09

Voice Name

9 ASCII characters

: #

 

 

 

00 edbuf 08 #

 

 

 

00 edbuf 09

00 00 01

Record Key

24(c1)-103(g7)

00 edbuf 0A

00 00 01

Bank Tune

14(-50)-114(+50)

00 edbuf 0B

00 00 01

Loop Tune

14(-50)-114(+50)

00 edbuf 0C

00 00 01

Scan Mode

0(FWD)-1(ALT)-2(BWD)

00 edbuf 0D

00 00 01

Loop Type

0(1 Shot)-1(Man)-2(Auto)

00 edbuf 0E

00 00 05

Start LSB

0-15

00 edbuf 0F #

 

 

0-15

00 edbuf 10 #

 

 

0-15

00 edbuf 11 #

 

 

0-15

00 edbuf 12 #

 

Start MSB

0-15

00 edbuf 13

00 00 05

End LSB

0-15

00 edbuf 14 #

 

 

0-15

00 edbuf 15 #

 

 

0-15

00 edbuf 16 #

 

 

0-15

00 edbuf 17 #

 

End MSB

0-15

00 edbuf 18

00 00 05

Loop LSB

0-15

00 edbuf 19 #

 

 

0-15

00 edbuf 1A #

 

 

0-15

00 edbuf 1B #

 

 

0-15

00 edbuf 1C #

 

Loop MSB

0-15

00 edbuf 1D

00 00 05

Auto End LSB

0-15

00 edbuf 1E #

 

 

0-15

00 edbuf 1F #

 

 

0-15

00 edbuf 20 #

 

 

0-15

00 edbuf 21 #

 

Auto End MSB

0-15

00 edbuf 22

00 00 05

Auto Loop LSB

0-15

00 edbuf 23 #

 

 

0-15

00 edbuf 24 #

 

 

0-15

00 edbuf 25 #

 

 

0-15

00 edbuf 26 #

 

Auto Loop MSB

0-15

00 edbuf 27

00 00 01

Key Follow

0(Off)-1(On)

00 edbuf 28

00 00 01

Pitch Bend

0(Off)-1(On)

00 edbuf 29

00 00 01

Vibrato

0(Off)-1(On)

00 edbuf 2A

00 00 01

Env V-Sens

0-127

00 edbuf 2B

00 00 01

Env Rate 1

0-127

00 edbuf 2C

00 00 01

Env Level 1

0-127

00 edbuf 2D

00 00 01

Env Rate 2

0-127

00 edbuf 2E

00 00 01

Env Level 2

0-127

00 edbuf 2F

00 00 01

Env Rate 3

0-127

00 edbuf 30

00 00 01

Env Level 3

0-127

00 edbuf 31

00 00 01

Env Rate 4

0-127

00 edbuf 32

00 00 01

Dyn Sens

0-127

00 edbuf 33

00 00 01

Auto Bend Rate

0-127

00 edbuf 34

00 00 01

Auto Bend Depth

0-127

00 edbuf 35

00 00 01

Split 1

24(c1)-103(g7)

00 edbuf 36

00 00 01

Split 2

24(c1)-103(g7)

00 edbuf 37

00 00 01

Split 3

24(c1)-103(g7)

 

 

 

Performance Parameters

 

Address (hex)

Size (hex)

Parameter

Value (dec)

00 08 00

00 00 01

Vib Rate

0-127

00 08 01

00 00 01

M-Vib Dpth

0-127

00 08 02

00 00 01

D-Vib Dpth

0-127

00 08 03

00 00 01

D-Vib Delay

0-127

00 08 04

00 00 01

Bend Mode

0(Cont)-1(Chrm)

00 08 05

00 00 01

Arp Sync

0(Int)-1(Ext)

00 08 06

00 00 01

Arp Rate

0-127

00 08 07

00 00 01

Arp Mode

0(Up)-1(Down)-2(U/D)-3(Rnd)

00 08 08

00 00 01

Arp Range

0(1 oct)-1(2 oct)-2(3 oct)

00 08 09

00 00 01

Arp Repeat

1-16

00 08 0A

00 00 01

Arp Decay

1-10

00 08 0B

00 00 01

V-Mix Thrsh

0-127

00 08 0C

00 00 01

V-Sw Thrsh

0-127

00 08 0D

00 00 01

Dtune Mode

0(Fix)-1(Velo)

00 08 0E

00 00 01

Dtune Range

0-127

00 08 0F

00 00 01

Abend Dest

0(Both)-1(Half)

00 08 10

00 00 01

Bend Dest

0(Both)-1(Half)

00 08 11

00 00 01

Delay Time

0-127

00 08 12

00 00 01

Delay Levl

0-127

00 08 13

00 00 01

Key Offset

52(-12)-76(+12)

00 08 14

00 00 01

Trg G-Time

0-127

00 08 15

00 00 01

Ext Gate Play

23(Off)-24(c1)-103(g7)

00 08 16

00 00 01

Ext Gate Play

23(Off)-24(c1)-103(g7)

00 08 17

00 00 01

Ext Gate Play

23(Off)-24(c1)-103(g7)

00 08 18

00 00 01

Ext Gate Play

23(Off)-24(c1)-103(g7)

 

 

 

Sample Dump (handshake)

Example: dump structure A

total 521 messages

Note: before the EOX byte a checksum byte may be required.

 Message

Sysex Message (hex)

 

Head

Command ID

Address

Size

Data

EOX

Sample Dump Mode

F0 41 ch 10

12

00 10 02

 

0

F7

WSD

F0 41 ch 10

40

02 00 00

04 00 00

 

F7

Dataset 0

:

Dataset 127

F0 41 ch 10

:

F0 41 ch 10

42

:

42

02 00 00

:

02 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

Dataset 128

:

Dataset 255

F0 41 ch 10

:

F0 41 ch 10

42

:

42

03 00 00

:

03 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

Dataset 256

:

Dataset 383

F0 41 ch 10

:

F0 41 ch 10

42

:

42

04 00 00

:

04 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

Dataset 384

:

Dataset 511

F0 41 ch 10

:

F0 41 ch 10

42

:

42

05 00 00

:

05 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

EOD

F0 41 ch 10

45

 

 

 

F7

WSD

F0 41 ch 10

40

01 00 00

00 00 49

 

F7

Wave-Par

F0 41 ch 10

42

01 00 00

 

73 bytes

F7

EOD

F0 41 ch 10

45

 

 

 

F7

WSD

F0 41 ch 10

40

01 08 00

00 00 28

 

F7

Perf-Par

F0 41 ch 10

42

01 08 00

 

40 bytes

F7

EOD

F0 41 ch 10

45

 

 

 

F7

 

 

Example: dump structure A/B/C/D

total 2058 messages

Note: before the EOX byte a checksum byte may be required

Message

Sysex Message (hex)

 

Head

Command ID

Address

Size

Data

EOX

Sample Dump Mode

F0 41 ch 10

12

00 10 02

 

0

F7

WSD

F0 41 ch 10

40

02 00 00

10 00 00

 

F7

Dataset 0

:

Dataset 127

F0 41 ch 10

:

F0 41 ch 10

42

:

42

02 00 00

:

02 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

Dataset 128

:

Dataset 255

F0 41 ch 10

:

F0 41 ch 10

42

:

42

03 00 00

:

03 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

Dataset 256

:

Dataset 383

F0 41 ch 10

:

F0 41 ch 10

42

:

42

04 00 00

:

04 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

:

:

:

 

 

 

 

 

 

Dataset 1920

:

Dataset 2047

F0 41 ch 10

:

F0 41 ch 10

42

:

42

11 00 00

:

11 7F 00

 

128 bytes

:

128 bytes

F7

 

F7

EOD

F0 41 ch 10

45

 

 

 

F7

WSD

F0 41 ch 10

40

01 00 00

00 02 24

 

F7

Wave-Par

F0 41 ch 10

42

01 00 00

 

146 bytes

F7

Wave-Par

F0 41 ch 10

42

01 00 52

 

146 bytes

F7

EOD

F0 41 ch 10

45

 

 

 

F7

WSD

F0 41 ch 10

40

01 08 00

00 00 28

 

F7

Perf-Par

F0 41 ch 10

42

01 08 00

 

40 bytes

F7

EOD

F0 41 ch 10

45

 

 

 

F7

 

 

Sample Dump (one-way)

 

Example: dump structure A

total 515 messages

Note: before the EOX byte a checksum byte may be required

Message

Sysex Message (hex)

 

Head

Command ID

Address

Data

EOX

Sample Dump Mode

F0 41 ch 10

12

00 10 02

0

F7

Dataset 0

:

Dataset 127

F0 41 ch 10

:

F0 41 ch 10

12

:

12

02 00 00

:

02 7F 00

128 bytes

:

128 bytes

F7

 

F7

Dataset 128

:

Dataset 255

F0 41 ch 10

:

F0 41 ch 10

12

:

12

03 00 00

:

03 7F 00

128 bytes

:

128 bytes

F7

 

F7

Dataset 256

:

Dataset 383

F0 41 ch 10

:

F0 41 ch 10

12

:

12

04 00 00

:

04 7F 00

128 bytes

:

128 bytes

F7

 

F7

Dataset 384

:

Dataset 511

F0 41 ch 10

:

F0 41 ch 10

12

:

12

05 00 00

:

05 7F 00

128 bytes

:

128 bytes

F7

 

F7

Wave-Par

F0 41 ch 10

12

01 00 00

73 bytes

F7

Perf-Par

F0 41 ch 10

12

01 08 00

40 bytes

F7

 

 

Example: dump structure A/B/C/D

total 2052 messages

Note: before the EOX byte a checksum byte may be required

 Message

Sysex Message (hex)

 

Head

Command ID

Address

Data

EOX

Sample Dump Mode

F0 41 ch 10

12

00 10 02

0

F7

Dataset 0

:

Dataset 127

F0 41 ch 10

:

F0 41 ch 10

12

:

12

02 00 00

:

02 7F 00

128 bytes

:

128 bytes

F7

 

F7

Dataset 128

:

Dataset 255

F0 41 ch 10

:

F0 41 ch 10

12

:

12

03 00 00

:

03 7F 00

128 bytes

:

128 bytes

F7

 

F7

Dataset 256

:

Dataset 383

F0 41 ch 10

:

F0 41 ch 10

12

:

12

04 00 00

:

04 7F 00

128 bytes

:

128 bytes

F7

 

F7

:

:

:

 

 

 

 

 

Dataset 1920

:

Dataset 2047

F0 41 ch 10

:

F0 41 ch 10

12

:

12

11 00 00

:

11 7F 00

128 bytes

:

128 bytes

F7

 

F7

Wave-Par

F0 41 ch 10

12

01 00 00

146 bytes

F7

Wave-Par

F0 41 ch 10

12

01 00 52

146 bytes

F7

Perf-Par

F0 41 ch 10

12

01 08 00

40 bytes

F7