Yahoo Groups archive

Casio CZ/ VZ/ FZ - Pro Series

Index last updated: 2026-04-28 22:42 UTC

Message

Re: Sysex and USB MIDI

2013-08-31 by steve_the_composer

OK. I did the comparison. I used these posts:

GORDON = http://launch.groups.yahoo.com/group/CZsynth/message/5928
STEVE = http://launch.groups.yahoo.com/group/CZsynth/message/5876

I have written some observations about the comparison.

Executive Summary:
1. I did exactly what you said needs to be done.
2. I successfully achieved what you said couldn't be done.

--- In CZsynth@yahoogroups.com, Gordon JC Pearce <gordon@...> wrote:
>
> On Sat, Aug 31, 2013 at 07:44:23PM -0000, steve_the_composer wrote:
> > Can you be specific--what 7 bytes?
> > Did I use those 7 bytes in the tests I previously reported?
> > If not, why do you want to send the CZ random 7 bytes?


GORDON: It's in the protocol.  You start a transfer with:
> F0 44 00 00 7x yy pp
where x is the MIDI channel, yy is the command byte and pp is the patch number.
> The CZ will respond with:
> F0 44 00 00 7x 30
> and you respond with:
> 7x 31


STEVE:
F0 44 00 00 70 10 60 70 31 F7

The 6th byte [10] is the code to request the CZ send a patch. The 7th byte [60] tells the CZ to send the data from the Sound Area. The 8th and 9th bytes [70 31] are an acknowledgement from the PC to the CZ to continue after after the CZ sends a dump header:

F0 44 00 00 70 30

Once the CZ receives the 70 31 from the PC the patch (aka tone data) is sent with a final F7 byte.

Notice the 6th byte is now 30.

In order to send that data back to the CZ, you need to change that 30 to a 20 and then >>INSERT<< a byte to tell the CZ the destination.


GORDON:
 
> Now, if you send f0 44 00 00 7x yy pp 7x 31 all in one go, USB can handle that because it is (purely by coincidence) a multiple of three bytes - but it crashes the CZ.  Sometimes you get valid patch data, sometimes you get garbage, sometimes you get to do a full reset and clear the RAM.
> 
> This doesn't happen if you wait for the request from the CZ.


STEVE'S OBSERVATIONS:
In my previous posts (including the one cited above) I used the required sysex header to request data. I did in fact use the sysex string "all in one go," the usb-midi interfaces I used handled it, and the CZ did not crash.

Perhaps the only thing I did not test is sending patch data back to the CZ. 

So, to test this I will play the midi files with patch data that goes to the sound area ( http://launch.groups.yahoo.com/group/CZsynth/files/CZ%20-%20Sounds.../Dr.%20Steve%27s%20%20Patch%20Test%20Files/ ).

If the sysex data gets corrupted on the way out from the computer through the usb-midi interface to the CZ, I will admit that you are right. If I have no issues, are you willing to test all of your usb-midi interfaces? 

Then perhaps we can start compiling a table of interfaces that work with the CZ and those that don't work with the CZ? Maybe others will test theirs and share their results.

Steve

--- In CZsynth@yahoogroups.com, "steve_the_composer" <smw-mail@...> wrote:
>
> I will have to compare what you wrote with what I did. I am inclined to say, that's what I did and it worked and it has worked every time with every interface I used. 
> 
> But maybe there is some difference in what you are saying and what I did.  I will get back after a comparison.
> 
> Steve
> 
> --- In CZsynth@yahoogroups.com, Gordon JC Pearce <gordon@> wrote:
> >
> > On Sat, Aug 31, 2013 at 07:44:23PM -0000, steve_the_composer wrote:
> > > Can you be specific--what 7 bytes?
> > > Did I use those 7 bytes in the tests I previously reported?
> > > If not, why do you want to send the CZ random 7 bytes?
> > 
> > It's in the protocol.  You start a transfer with:
> > 
> > F0 44 00 00 7x yy pp
> > 
> > where x is the MIDI channel, yy is the command byte and pp is the patch number.
> > 
> > The CZ will respond with:
> > 
> > F0 44 00 00 7x 30
> > 
> > and you respond with:
> > 
> > 7x 31
> > 
> > Now, if you send f0 44 00 00 7x yy pp 7x 31 all in one go, USB can handle that because it is (purely by coincidence) a multiple of three bytes - but it crashes the CZ.  Sometimes you get valid patch data, sometimes you get garbage, sometimes you get to do a full reset and clear the RAM.
> > 
> > This doesn't happen if you wait for the request from the CZ.
> > 
> > -- 
> > Gordonjcp MM0YEQ
> >
>

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.