3 patch midi overview, 4 patch tone generator, Mz-2000 midi implementation – Casio MZ-2000 User Manual
Page 18
17
MZ-2000 MIDI Implementation
4.2.3.1 Setting Examples
Example 1: Sending the Save MIDI Setup message using Universal DevID
Header Block(Hexadecimal)
00
F0
[System Exclusive Status]
01
44
[Manufacturer's ID] 44H = CASIO ID
02
7E
[Model ID MSB] MZ-2000 Sound System Model-ID MSB
03
02
[Model ID LSB] MZ-2000 Sound System Model-ID LSB
04
00
[Message Version]
05
7F
SysEx Device Id (Universal)
Data Block
06
00
tt
:Message Type
07
00
d0[0] :Message Id
08
20
d1[0] :System Parameter ID
09
00
d2[0] :Data (Save = 0)
EOX
10
F7
[EOX]
Example 2: DSP Initialize
Header Block(Hexadecimal)
00
F0
[System Exclusive Status]
01
44
[Manufacturer's ID] 44H = CASIO ID
02
7E
[Model ID MSB] MZ-2000 Sound System Model-ID MSB
03
02
[Model ID LSB] MZ-2000 Sound System Model-ID LSB
04
00
[Message Version]
05
10
SysEx Device Id
Data Block
06
00
tt
:Message Type
07
00
d0[0] :Message Id
08
22
d1[0] :System Parameter ID
09
7F
d2[0] :Data
EOX
10
F7
[EOX]
4.3 Patch MIDI Overview
4.3.1 MIDI Messages Received by Patch
4.3.1.1 Patch Parameter Configuration
The patch parameters can be broadly divided into the following blocks.
1. Tone Generator: Sound source setting block
2. Effect Module Select: Effect select block
3. Actual Effect: Actual effect image
4. Actual Mixer: Actual mixer image
5. Effect Macro Select: Effect macro select block
In the case of the Actual Effect and Actual Mixer, effect and mixer settings can be saved and
restored by a bulk dump, which means these settings are integral parts of the patch parameter and
they cannot be edited as patch parameter data. Because of this, these two blocks are not covered
here.
For details on the remaining blocks, see each patch parameter block MIDI implementation as
indicated below.
1. Patch Tone Generator (4.4)
2. Patch Effect Module Select (4.5)
3. Patch Effect Macro Select (4.6)
4.3.1.2 Patch Parameter Set Bulk Dump
The patch Parameter Set can be sent and received using bulk dump. There are two protocols, One-
Way and Handshake, which are the same as those described under "4.1 MZ-2000 Sound Source
Common System Exclusive Format."
The following shows the section that applies to effects only.
tt
0100aaaa
aaaa = BDS..."SYSEX_ACT_BDS" = 02H
BDR..."SYSEX_ACT_BDR" = 03H
HDS..."SYSEX_ACT_HDS" = 04H
HDR..."SYSEX_ACT_HDR" = 05H
HDA..."SYSEX_ACT_HDA" = 06H
HDJ..."SYSEX_ACT_HDJ" = 07H
HDE..."SYSEX_ACT_HDE" = 08H
d0[0] 0ooocccc
cccc = Parameter Set Category = Patch = 01H
ooo = 00H
d0[1] 0ttttttt
0TTTTTTT0ttttttt = Type ID = 0000 Fixd
d0[2] 0TTTTTTT
d0[3] 0mmmmmmm
0MMMMMMM0mmmmmmm = Mdev ID = Internal RAM = 2F00 Fixd
d0[4] 0MMMMMMM
d0[5] 0sssssss
00SSSSSSSsssssss = Section Number = 0000 Fixd
d0[6] 0SSSSSSS
d0[7] 0nnnnnnn
00NNNNNNNnnnnnnn = PS Number = 0000 Fixd
d0[8] 0NNNNNNN
The volume of data that follows the above is very large, so it is not included here. This data can be
looked up by sending HDR and BDR.
4.4 Patch Tone Generator
4.4.1 General
This sound source control parameter is the tone generator block within the patch parameter.
4.4.2 Patch Tone Generator Parameter Control Message Format
tt
0100aaaa
aaaa = IPC..."SYSEX_ACT_IPC" = 00H
IPR..."SYSEX_ACT_IPR" = 01H
d0[0]
00100000
Parameter Modify Message-ID = 20H
d0[1]
0000cccc
cccc = Category = CAT_PATCH = 01H
d0[2]
0ttttttt
0TTTTTTT0ttttttt = Type ID
= Tg Type ID for operation = 00H
d0[3]
0TTTTTTT
d0[4]
0mmmmmmm
0MMMMMMM0mmmmmmm = MDEV ID = 2F00H
d0[5]
0MMMMMMM
d0[6]
0sssssss
0SSSSSSS0sssssss = Section Number = 0000Hе
≈
нЛ
d0[7]
0SSSSSSS
d0[8]
0nnnnnnn
00NNNNNNNnnnnnnn = PS Number = 00H
d0[9]
0NNNNNNN
d0[10] 0ppppppp
qqPPPPPPPppppppp = Parameter ID
d0[11] 0PPPPPPP (See the following section for details.)
d0[12] 0rbbbbqq bbbb
= number of parameter block - 1 = 02H
Target operation Tg Type ID => Operation Tg Type ID
(See next section.) => (See next section.)
For Scale Tune only, r = 1 => For Scale Tune only: r = 1
Other parameters are not arrays, and so r = 0.
d1[0]
0iiiiiii 0iiiiiii = I:Main Block = 00H
d1[1]
0jjjjjjj 0jjjjjjj = J:TgPatch
= 00H
d1[2]
0kkkkkkk 0kkkkkkk = K:TgCommon
= 00H
d1[2]
0kkkkkkk 0kkkkkkk = K:Part
= 00H - 1FH(0--31) Part Index
These values are used when Part Index is specified.
When r = 1 only (d2[0] to d2[2])
d2[0] 0ooooooo
d2[1] 0ppppppp oooooooppppppp = top index number of array to send
(transfer start array number)
d2[2] 0qqqqqqq qqqqqqq = number of array member to send
(Members sent inside this packet)