CTK-4200/CTK-5300/LK-211/LK-280 WK-220/WK-225/WK-330/CDP-220R MIDI Implementation CASIO COMPUTER CO., LTD. Contents I MIDI Message Overview 1 5 Product Configuration as a MIDI Device 5 1.1 System Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2 Performance Controller Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Sound Generator Section . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.7 Hold1 (40H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.8 Sostenuto (42H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.9 Soft (43H) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 9.10 Reverb Send (5BH) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 9.11 Chorus Send (5DH) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19.3 Format of Each Field . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 20 Individual Parameter Operations 29 21 Parameter Set Transfer 29 21.1 Communication Modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 21.2 One-way Mode Communication Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 21.3 Handshake Mode Communication Flow . . . . . . . . . . . . . . . . . . . . . . . . . . . .
32 VII 33 Parameter Set Table 38 Setting Values and Send/ Receive Values 40 Setting Value Tables 40 33.1 Off/On Setting Value Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 33.2 –64 - 0 - +63 Setting Value Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 33.3 Pan Setting Value Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 33.4 Fine Tune Setting Value Table . . . . . . . . . . . . . . . . . . . . . . .
Part I MIDI Message Overview 1 Product Configuration as a MIDI Device As a MIDI device, this Instrument consists of the System Section, Performance Controller Section, and Sound Generator Section described below. Each of these sections can send and receive specific MIDI Messages in accordance with its function. 1.1 System Section The System Section manages the Instrument status and user data.
1.3.2 Instrument Part Block The instrument part section consists of a total of 32 instrument parts, divided into two groups, named Group A and Group B of 16 instruments each. Each part can perform operations and setting changes using channel messages and Instrument’s system exclusive messages. Only Group B can be controlled by external channel messages. As shown in the following table, there is a fixed relationship between channel message receive channel numbers and instrument parts.
operation mode. For details, see the explanation for each message. 3 Conditions that Disable Message Send and Receive All MIDI message send and receive is temporarily disabled while any one of the following processes is in progress.
Part II Channel Message 4 Receive Channel The channel number of the channel message received by each part is shown in the table under “1.3.2 Instrument Part Block”. 5 Send Channel Basically, the MIDI channel of the channel message sent when the Instrument is played coincides with the MIDI channel of the part being played. Note, however, that the MIDI channel of the performance information that corresponds to the keyboard main part depends on the Keyboard Channel setting value.
Send This message is not sent by this Instrument. Receive This message is not received by this Instrument. 9 Control Change Message Format: n: cc: vv: BnH ccH vvH MIDI Channel Number Control Number Value Send Sent when the Instrument’s pedal is operated or when Instrument settings are changed. Receive Receipt changes the pedal and other performance conditions, and Instrument settings. 9.
9.3 Data Entry (06H,26H) Message Format: n: mm: ll: BnH 06H mmH (MSB) BnH 26H llH (LSB) MIDI Channel Number MSB Value LSB Value Send Sent when there is a change to the parameter assigned to RPN. This Instrument does not have a parameter that corresponds to NRPN. Receive Receipt changes the parameter assigned to RPN. This Instrument does not have a parameter that corresponds to NRPN. 9.
9.7 Hold1 (40H) Message Format: n: vv: Note1 : BnH 40H vvH MIDI Channel Number Value (Note1) For information about the relationship between setting values and send/receive values, see the “33.1 Off/On Setting Value Table” in “VII Setting Values and Send/Receive Values” of this document. Send Sent when a pedal that has a sustain (damper) function is operated. Receive Receipt performs an operation equivalent to a sustain pedal operation.
9.10 Reverb Send (5BH) Message Format: n: vv: BnH 5BH vvH MIDI Channel Number Value Send Sent when auto accompaniment is used. Receive Receipt changes the reverb send of the corresponding part. 9.11 Chorus Send (5DH) Message Format: n: vv: BnH 5DH vvH MIDI Channel Number Value Send Sent when auto accompaniment is used and when a Chorus on/off operation is performed. Receive Receipt changes the chorus send of the corresponding part. 9.
9.13.1 Pitch Bend Sensitivity Message Format: n: mm: ll: BnH 64H 00H BnH 65H 00H BnH 06H mmH BnH 26H llH MIDI Channel Number MSB Value(00H - 0CH) LSB Value(Send:00H, Receive:Ignored) Send Sent when Bend Range is changed (CTK-5300, WK-330, CDP-220R only). Receive Receipt changes Bend Range. 9.13.2 Fine Tune Message Format: n: mm: ll: BnH 64H 01H BnH 65H 00H BnH 06H mmH BnH 26H llH MIDI Channel Number MSB Value LSB Value Send This message is not sent by this Instrument.
Send Sent when an RPN message send operation is performed. Receive Receipt de-selects RPN. 10 10.1 Mode Message All Sound Off (78H) Message Format: n: BnH 78H 00H MIDI Channel Number Send Sent when the local control is set to OFF on the Instrument. Receive Receipt stops all voices that are sounding. 10.2 Reset All Controllers (79H) Message Format: n: BnH 79H 00H MIDI Channel Number Send Sent when MIDI send related settings are changed. Receive Receipt initializes each performance controller. 10.
Send This message is not sent by this Instrument. Receive Receipt performs the same operation as when All Notes Off is received. 10.6 Mono (7EH) Message Format: n: BnH 7EH 00H MIDI Channel Number Send This message is not sent by this Instrument. Receive Receipt performs the same operation as when All Notes Off is received. 10.7 Poly (7FH) Message Format: n: BnH 7FH 00H MIDI Channel Number Send This message is not sent by this Instrument.
12 Channel After Touch Message Format: n: vv: DnH vvH MIDI Channel Number Value Send This message is not sent by this Instrument. Receive Receipt adds, to the tone being sounded, modulation of a depth specified by the value. In the case of a tone that already has modulation applied, receipt of this message increases the modulation depth. The modulation effect differs according to the tone being used.
Part III System Message 14 Timing Clock Message Format: F8H Send Sent when auto accompaniment is used. Receive This message is not received by this Instrument. 15 Start Message Format: FAH Send Sent when auto accompaniment is used. Receive This message is not received by this Instrument. 16 Stop Message Format: FCH Send Sent when auto accompaniment is used. Receive This message is not received by this Instrument.
.1 Universal Real Time System Exclusive Message Message Format: 18.1.1 F0H 7FH....F7H Master Volume Message Format: ll: mm: F0H 7FH 7FH 04H 01H llH mmH F7H LSB Value(Send:00H, Receive:Ignored) MSB Value Send This message is not sent by this Instrument. Receive Receipt changes the Master Volume. 18.1.
Receive Receipt changes the Reverb duration. 18.1.5 Chorus Type Message Format: vv: Note1 : F0H 7FH 7FH 04H 05H 01H 01H 01H 01H 02H 00H vvH F7H Value(Note1) For information about the relationship between setting values and send/receive values, see “33.6 Chorus Type Setting Value Table” in “VII Setting Values and Send/Receive Values” of this document. Send Sent when the Chorus Type is changed. Receive Receipt changes the Chorus Type. 18.1.
18.1.10 GS Message Message Format: dd: F0H 41H ddH 42H 12H 40H 00H 7FH 00H 41H F7H Device ID(Ignored) Send This message is not sent by this Instrument. Receive Receipt performs the same operation as when the GM System On message is received. 18.2 Instrument-Specific System Exclusive Message Message Format: F0H 44H 16H 02H ...
Part IV Instrument-Specific System Exclusive Messages 19 Format This section explains the format of the Instrument-specific System Exclusive Messages. See “V Parameter List” and “VI Parameter Set List” for information about how parameter sets actually are transferred. 19.1 Message Classifications Basically, the operation that corresponds to Instrument-specific system exclusive messages is parameter data transfer.
19.2 Basic Message Structure Instrument-specific system exclusive message operation can be broadly divided between two methods: Individual Parameter Transfer (single parameter send/receive) and Bulk Parameter Set Transfer (batch parameter send/receive). Each method includes a number of different messages. The field in the SysEx message that specifies the message type is the action (act) field. The format of the body part of the message depends on the act value.
19.3.4 dev : MIDI Device ID 00H - 7FH Format: 0dddddddB The contents of this field in a received message are compared with the Model’s MIDI Device ID, and receipt of the incoming message is allowed only when the two IDs match. When a message containing 7FH is received, receipt of the message is always allowed, regardless of the Instrument’s ID setting. Note, however, that the Instrument does not have a specific Device ID, so use only 7FH for send and receive. 19.3.
HBR:Handshake Bulk Parameter Set Request Indicates a send request message using the parameter set image handshake mode. When the Instrument receives this action, it uses an HBS message to return the specified parameter set. HBS:Handshake Bulk Parameter Set Send Indicates a parameter set image send message using handshake mode. The parameter set to be transferred is divided into multiple packets when it is greater than a prescribed size. The packets are transferred in accordance with handshake mode.
Category ID (c) Parameter Set 00H System 02H Patch 03H Tone 06H Drum 0DH Instrument 0EH Wave Parameter 0FH Wave Data 12H Scale Memory 1FH All 20H Song 21H Sequence 22H Registration 23H Lesson Rec 24H Rhythm Transfer Individual Parameter A A A A A A F A F F F F F F One-way Bulk A A A A A A A A A A A A Handshake Bulk A A A A A A A A A A A A A · · · Available (Also including when only some parameters are available.) F · · · File Information (Not the data itself. Name, size, and other file information only.
Block Bit Field Division When the parameter block has a multi-dimensional array structure, bit 21 of the block number is divided into prescribed bit fields based on the rules explained below. • Case 1 When an array has three or fewer nesting levels and the number of arrays in each dimension is 128 or less, they are assigned below the three 7-bit fields. Unused regions are filled will zeros.
19.3.13 Format: len : Data Length LSB MSB 0lllllllB 0mmmmmmmB As shown below, the meaning of this field differs depending on whether an individual transfer or a bulk parameter set transfer is being performed. Individual Parameter Transfer Data length indicates the length of the array being transferred minus 1 when the parameter contains a character string or other similar array structure. Bulk Parameter Set Transfer Data length indicates the number of bytes of data included within a packet.
19.3.15 Single Parameter Data Size Limit With the Instrument’s system exclusive message format, the size of a single message cannot exceed 256 bytes. The data size and the array size, however, can cause a packet to exceed 256 bytes when transferring a single parameter array. In this case, the IPS and IPR message data length and data index number values can be modified to enable division of a single parameter value into multiple messages so it can be sent that way. 19.3.
19.3.18 EOX : End of System Exclusive Message Format: 11110111B This is the End of System Exclusive Message status byte established by the MIDI standard. 20 Individual Parameter Operations There are two parameter unit operations: Individual Parameter Transfer and Individual Parameter Request.
Session “One session” refers to a series of processes that occur for one user operation. One subsession or multiple subsessions make up a session. The sender sends EOS (End of Session) to end a session. Regardless of whether there is a single parameter set or multiple parameter sets being transferred, a bulk dump always takes the form of a session, never a subsession only. 21.
Data Receiver (External Device) HBR ACK ACK ACK Data Sender (This Instrument) -----> <---------> <---------> : : -----> <----: Other Sub Session : <----- HBS HBS Operation Send Request (Optional) Data Send Acknowledge Data Send Acknowledge EOD Acknowledge End of Data EOS End of Session The packed with the same packet number is resent when a checksum mismatch or incompatible data format error is detected.
Data Receiver (External Device) HBR ACK ERR ERR ERR RJC Data Sender (This Instrument) -----> <---------> <----(Error generated) -----> <----(Error generated) -----> <----(Error generated) -----> <----(Error generated) -----> Operation HBS Send Request (Optional) Data Send Acknowledge Data Send HBS Error Data Send (Retry 1) HBS Error Data Send (Retry 2) HBS Error Data Send (Retry 3) HBS Session stopped RJC is sent to terminate the session in case ACK cannot be recognized.
Data Receiver (External Device) HBR ACK ACK Data Sender (This Instrument) -----> -----> <---------> <----: : (Terminate operation) <----- HBS HBS RJC Operation Send Request (Optional) Acknowledge Data Send Acknowledge Data Send Data Send Canceled BSY is returned to the external device when OBS, OBR, HBS, or HBR is sent while the Instrument mode is not suitable to perform bulk dump, etc.
Part V Parameter List This section explains the parameters that actually can be transferred by the Instrument. 22 Using the Parameter List • Parameter field Shows the parameter name. • ID field Shows the parameter ID as a hexadecimal number. • R/W field Shows “R” to indicate that an IPR (Individual Parameter Request) read operation (Read) is possible or “W” to indicate that an IPS (Individual Parameter Send) write operation is possible. • Block field Shows the bit field allocation of the block number.
Parameter Model Name ID R/W Block Size Array Min-Def-Max Description 0000 R 000000 7 08 00-20-7F Ascii Character CTK-4200........"CTK-4200" CTK-5300........"CTK-5300" LK-211.........."LK-211 " LK-280.........."LK-280 " WK-220/WK-225..."WK-220 " WK-330.........."WK-330 " CDP-220R........"CDP-220R" Program Revision 0001 R ↑ 7 08 00-20-7F Ascii Character Ex. " 12345" General Register 0002 R/W ↑ 8 01 00-00-FF General-purpose register for communication test 23.
24 Patch Parameter The main function of patch parameters is to configure the settings of the sound source of a device. 24.1 Master Tune Parameter These parameters configure the Master Tuning settings. Parameter ID R/W Block Size Array Min-Def-Max Description Master Fine Tune 0000 R/W 000000 10 01 0000-0200-03FF -512*100/512∼0*100/512∼+511*100/512(cent) Master Coarse Tune 0001 R/W ↑ 7 01 00-40-7F -24∼0∼+24(semitone) 24.2 Master Mixer Parameter These parameters configure the Master settings of the mixer.
26 All Data Parameter There is no parameter for storing all data directory information. 27 27.1 Sequence Parameter Sequence Directory Info The sequence parameter stores recorder song directory information. Parameter ID R/W Block Size Array Min-Def-Max Description Size 0001 R 000000 32 01 00000000-00000000-00FFFFFF 0∼0xFFFFFFFF 28 28.1 Registration Parameter Registration Directory Info The registration parameter stores registration data directory information.
Part VI Parameter Set List This section explains actually how parameter sets can be transferred by the Instrument with bulk dump.
• pset field Shows the parameter set number value. Applicable parameter set numbers are those in the user area where the top number is zero, and are not the same numbers as those displayed by the Instrument. (Note1) Note1 : Operation is not guaranteed for values other than those noted here.
Part VII Setting Values and Send/ Receive Values 33 33.1 Setting Value Tables Off/On Setting Value Table Transmit Value 00H 7FH 33.2 Receive Value 00H : 40H : 7FH Parameter -64 : 0 : +63 Pan Setting Value Table Transmit Value 00H : 40H : 7FH 33.4 Parameter Off On –64 - 0 - +63 Setting Value Table Transmit Value 00H : 40H : 7FH 33.
33.5 Reverb Time Setting Value Table Transmit Value 00H 0CH 18H 24H 30H 3CH 48H 54H 60H 6CH 78H 33.
Part VIII MIDI Implementation Notation 34 34.1 Value Notation Hexadecimal Notation MIDI implementation sometimes requires that data be expressed in hexadecimal format. Hexadecimal values are indicated by the letter “H” after the value. The hexadecimal equivalents of decimal values 10 through 15 are expressed as the letters A through F. The table below shows the hexadecimal equivalents for decimal values 0 through 127, which are often used in MIDI messages.
Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 : 125 126 127 Hexadecimal 00H 01H 02H 03H 04H 05H 06H 07H 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 10H : 7DH 7EH 7FH Binary 00000000B 00000001B 00000010B 00000011B 00000100B 00000101B 00000110B 00000111B 00001000B 00001001B 00001010B 00001011B 00001100B 00001101B 00001110B 00001111B 00010000B 01111101B 01111110B 01111111B 43