[rec.music.synth] midi porg help

billr@houxj.UUCP (09/18/87)

I don't have complete detail here but a good
friend has been stuck on a midi bug for days
and i'm hoping someone can help.

Using a roland mpu401 to control a casio CZ1,
he is writing a patch editor etc. in 8086
assembly (yeah i know...) on an AT&T 6300.

Everything works ok so far but this:
bear with me here in case i munge terminology
(or spelling)

When sending a system exclusive message to 
UPLOAD patch information, he sends the
appropriate byte string (i think he said
7 of 'em) the casio should then sends a 
few bytes back to say go ahead...

He sends a bunch of bytes (256?) up to
the casio and the it should send 1 ack
byte back (hex F7). the problem is this..

He send those first 7 bytes and the casio
sends back , right away, those go ahead
bytes followed by the F7. Giving no
chance to upload the patch info bytes.

The odd part is that he wrote a basic 
program to do this section and it works
just fine but his assembly code does not.

It might just be a code bug but i doubt it
he's a competent assem programmer and has
go over the stuff many many time and even
tried a rewrite of that section but it 
behaves incorrectly also. Most likely
some timing problem but casio was of no
help. Any ideas, resources ect. he is stuck
at this point. thanks 

bill romanowski
AT&T Bell Labs
Holmdel, NJ

johnt@mmintl.UUCP (John Tangney) (09/21/87)

In article <242@houxj.UUCP> billr@houxj.UUCP (UNIX Group) writes:
>I don't have complete detail here but a good
>friend has been stuck on a midi bug for days
>and i'm hoping someone can help.
>
   [details deleted]

>The odd part is that he wrote a basic 
>program to do this section and it works
>just fine but his assembly code does not.
>

Hmmm..  I haven't written any midi software, but experience tells me that
this sort of bug is often a timing problem.  Basic runs slower than the
equivalent stuff in assembler, so any delays which are *required* by the
midi device will be built into the basic code.  He might try inserting busy
waits into the code as an experiment, then if the code now works, start
eliminating the waits until the pertinent one is found.  

Otherwise, try reading up in any of the midi device documentation (long
shot, knowing synth manufacturers) or even calling the manufacturer for any
timing-related info which you ought to have been told about.

Just a suggestion....

johnt