Yahoo Groups archive

Casio CZ/ VZ/ FZ - Pro Series

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

Thread

Anyone programming patch editor in VB?

Anyone programming patch editor in VB?

2004-02-29 by h2a2p

Hi Everyone!

I have been playing around with my CZ-5000 and some Visual Basic (VB) 
programming.  I have an old patch editor that I have been using that 
works well but I have some ideas for a new program.  Sending basic 
MIDI to the CZ to select patches or play notes is pretty simple, but 
I am kind of new to the Sysex stuff.  The old patch editor I am using 
is written in VB so I know it can be done. 

I have two MIDI programming guides for the CZ that I am learning 
from, but I can't seem to figure out exactly how to communicate the 
Sysex data to the CZ, for example to change patch parameters or load 
a new patch.  At this point, I have a program to send and receive 
Sysex data from within VB.  The MIDI guides I am reading have some 
examples of sending some Sysex data to the CZ and getting responses, 
but it seems like I'm not doing something right.  I am not getting 
the responses I am expecting based on the examples I have, and I 
don't see any response on the CZ itself to let me know anything is 
working.  

Does anyone out here have any VB source code that might help me out 
to see some examples of sysex communications with the CZ?  Even some 
examples of some of the Sysex data in text form that I might be able 
to learn from would be helpful. Obviously I'm ot working on a 
commercial application, and I'd be glad to share my results with the 
CZ community if I can ever get a finished program put together.  

Thanks!
Mike

Re: Anyone programming patch editor in VB?

2004-03-01 by steve_the_composer

If you have a legible copy of Casio's Guidebook for MIDI (Nov. 1985), 
look on page 19.  MIDI was young back in 1985, and Casio was a 
pioneer in synths.  As a result, despite the standards, some oddities 
popped up.

Casio (in the CZ line) uses a handshaking protocol that does NOT have 
an F7 byte after every part of the conversation.  [F7 is hexidecimal 
code that represents the end of a system exclusive message].

If your VB program doesn't handle the handshake properly, you will 
have problems.

Here's the conversation from p. 19.

Computer does Send Request 1 [patch data]:
F0 44 00 00 7n 10 dd   [where n = channel #  - 1 and dd = memory bank]

CZ replies:
F0 44 00 00 7n 30

Computer replies:
7n 31

Then CZ sends "Tone Data" followed by an F7

Computer replies with F7.

I have not done VB programming, so I can't help you there.

[The Guidebook posted in files is illegible.  I have a PDF that is 
clearer and will try to post it.]

--- In CZsynth@yahoogroups.com, "h2a2p" <h2a2p@y...> wrote:
> I have been playing around with my CZ-5000 and some Visual Basic
> (VB) programming.

[snip]

> I have two MIDI programming guides for the CZ that I am learning 
> from, but I can't seem to figure out exactly how to communicate the 
> Sysex data to the CZ, for example to change patch parameters or
> load a new patch.

[snip]

> Does anyone out here have any VB source code that might help me out 
> to see some examples of sysex communications with the CZ?

My CZ sysex I/O was in 6502/6510 asm for the Commodore 64/128.  I may 
have the source code in an MS-DOS text file.  If so, I my algorithm 
may be useful to you.  Hmmmm.  Just checked.  I have a few other C64 
midi source codes, but not the one showing the CZ handshaking.

Other ideas: A while ago Daniel Krüger made available a CZBankManager 
program.  I think he used C or C++, though.  You might want to search 
the archives and see if he can help.

Hope this helps.

--Dr. Steve

Re: Anyone programming patch editor in VB?

2004-03-01 by steve_the_composer

Previously, I wrote:

> [The Guidebook posted in files is illegible.  I have a PDF that is 
> clearer and will try to post it.]

It seems that the problem was with my Adobe Acrobat Reader 3.0.  I 
assume you have a legible copy.

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.