MZ-2000 MIDI Implementation

4.1.5 Parameter Set Bulk Dump

This section describes the bulk format for parameter set transfers.

How parameter sets are actually allocated depends on the MZ-2000 sound source specifications. See sections 4.2 thorugh 4.11 for more information.

Unlike the data format for individual parameter changes, a memory image is sent in order to increase the speed of the parameter set bulk dump. Pre- and post-processing required for each parameter is performed after bulk dump of all the data is complete.

You can transfer multiple parameter sets during a session. When a single parameter set is very large, it can be divided and transferred as multiple packets. In such a case, and address offset is included as part of the data.

Transferring multiple small-size parameter sets using a single packet is not allowed. Each parameter set must always be transferred as a separate packet.

One-Way Communication Flow

A session starts with a BDR request by the data receiver or a BDS data send by the data sender. The session ends after the data sender transfers the required amount of data for the number of parameter sets.

When the MZ-2000 receives a BDR, it uses a BDS to return the corresponding parameter set. When the MZ-2000 receives a BDS, it modifies the setting of the applicable parameter set.

Data is divided into packets of 256 bytes or less and transferred at fixed intervals (20 msec).

Data Receiver

Data Sender

 

BDR ->

Send Request (Optional)

 

<- BDS

Data Transfer

Interval: 20 msec minimum

 

 

<- BDS

Data Transfer

Interval: 20 msec minimum

 

 

<- BDS

Data Transfer

Interval: 20 msec minimum

 

 

:

 

 

:

 

Hand Shake Protocol

A session starts with the data receiving sending an HDR request or an HDS data send from the data sender.

The data sender does not send the next packet until it receives an acknowledgement (ACK) from the data receiver. Be sure to reserve at least 100msec as the maximum wait time. If no response is received within the prescribed time, a time out error occurs and communication is terminated.

If the data receiver returns an HDE (error) due to a checksum error, illegal data format, or any other reason, the data sender resends the data. Resend the data at least one time.

The session ends after the data sender transfers the correct amount of data for the number of parameter sets, and is terminated when an ACK is returned.

Data Receiver

Data Sender

 

HDR ->

 

Send Request(Optional)

<-

HDS

Data Send

HDA ->

 

Acknowledge

<-

HDS

Data Send

HDA ->

 

Acknowledge

:

 

 

:

 

 

Resend is performed after an error due to checksum error or data format error.

Data Receiver Data Sender

 

HDR ->

Send Request (Optional)

<- HDS

Data Send

HDA ->

Acknowledge

<- HDS

Data Send

HDE ->

Acknowledge

<- HDS

Data Resend

:

 

:

 

Send is terminated if there is no acknowledgement (ACK).

Data Receiver Data Sender

 

HDR ->

Send Request (Optional)

<- HDS

Data Send

HDA ->

Acknowledge

<- HDS

Data Send

(Send Terminated)

 

HDJ is sent whenever the session is terminated for any reason. HDJ can be sent from either the sender or receiver. Receipt of HDJ immediately terminates a bulk dump.

Data Receiver

Data Sender

 

HDR ->

Send Request (Optional)

 

<- HDS

Data Send

HDA ->

Acknowledge

 

<- HDS

Data Send

 

:

 

HDJ ->

Data Receive Rejection

(Send Terminated)

 

Data Receiver

Data Sender

 

HDR

->

Send Request (Optional)

HDA ->

Acknowledge

 

<- HDS

Data Send

HDA ->

Acknowledge

 

<- HDS

Data Send

 

:

 

 

<- HDJ

Data Send Rejection

Parameter Set HDJ/HDA/HDE

tt 0100aaaa aaaa = HDJ/HDA/HDE

No data in the case of Rejection, Acknowledge, or Error

Parameter Set BDS/HDS

tt

0100aaaa

aaaa = BDS/HDS

d0[0]

0ooocccc

cccc = Parameter Set Category

 

 

ooo = option (Definition for each category)

d0[1]

0ttttttt

0TTTTTTT0ttttttt = Type ID

d0[2]

0TTTTTTT

 

d0[3]

0mmmmmmm

0MMMMMMM0mmmmmmm = Mdev ID

d0[4]

0MMMMMMM

 

d0[5]

0sssssss

00SSSSSSSsssssss = Section Number

d0[6]

0SSSSSSS

 

d0[7]

0nnnnnnn

00NNNNNNNnnnnnnn = PS Number

d0[8]

0NNNNNNN

 

15