[comp.sys.atari.st] MIDI problem

gdr@pbhya.PacBell.COM (Guy Ridley) (05/27/88)

A program I wrote creates a string of 256 notes and sends them out the MIDI  
port one at a time.  The problem is, it never gets through the whole string.
I don't think it's a software error because: 1) It never stops at the same
place, sometimes it gets through 150 notes, sometimes only 5, and 2) there is
no random function in the program that could explain this.
 
What happens when the notes stop is that the monitor blinks and the disk
drive starts up (usually).  Sometimes I get 4 bombs, if the monitor doesn't
go nuts.
 
Any experienced music hackers out there?  What do you suspect?  The cables?
The optoisolator?  My DX-7?  A bad chip?  Or if it's software why doesn't it
bomb at the same place every time?
 
(Possible hint: I am using timer C when sending the notes.)
 
 
-- Guy Ridley

leo@philmds.UUCP (Leo de Wit) (06/04/88)

In article <14252@pbhya.PacBell.COM> gdr@pbhya.PacBell.COM (Guy Ridley) writes:
>A program I wrote creates a string of 256 notes and sends them out the MIDI  
>port one at a time.  The problem is, it never gets through the whole string.
>I don't think it's a software error because: 1) It never stops at the same
>place, sometimes it gets through 150 notes, sometimes only 5, and 2) there is
>no random function in the program that could explain this.
> [rest of message deleted]

Which method do you use writing the notes to the MIDI port? It seems you're
not using the standard way, because you explicitly say: one at a time.
The xbios call, Midiws (xbios 12), lets you write a complete string to the
MIDI port. Note that's not a C-style string: you must supply a count (number
of bytes to send minus one; a 2-byte integer) and the start address. The   
random function you spoke of could be the value of the start pointer on the
stack if you thought this function had only one parameter X-). Hope this
helps?

	Leo (the high C).