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]

057F SysEx Device Id (Universal) Data Block

06

00

tt

:Message Type

07

00

d0[0]

:Message Id

08

20

d1[0]

:System Parameter ID

0900 d2[0] :Data (Save = 0)

EOX

10F7 [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]

0510 SysEx Device Id Data Block

06

00

tt

:Message Type

07

00

d0[0]

:Message Id

0822 d1[0] :System Parameter ID

097F 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)

17