MIDI I/O from Hypercard
Posted: June 16th, 1993, 1:58 pm
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!mnetor!uunet!husc6!uwvax!oddjob!gargoyle!ihnp4!cbosgd!osu-cis!osupyr!artsvax!talley
From: [email protected] (James T. Talley)
Newsgroups: comp.sys.mac.hypercard
Subject: MIDI I/O from Hypercard
Message-ID:
Date: Thu, 26-Nov-87 14:16:54 EST
Article-I.D.: artsvax.209
Posted: Thu Nov 26 14:16:54 1987
Date-Received: Sun, 29-Nov-87 18:15:50 EST
Organization: The Ohio State University, Computer-Based Instruction Group
Lines: 39
Keywords: MIDI XCMD XFCN hardware interrupt
I'm considering writing the XCMD's and XFCN's necessary to do simple
MIDI data I/O from a Hypercard stack. I don't need the power of a
full-fledged MIDI sequencer -- I just want to be able to play back
short segments of music and to accept user response from a MIDI
keyboard. I have the basic MIDI drivers that are necessary to
accomplish this, but the drivers raise a few questions. The drivers
need to fiddle with the SCC chip, the timer chip, and the timer
interrupts. When they're done, they restore things to normal.
Now, I would like to set up the interface so that there is a
"startMidi" XCMD, a "stopMidi" XCMD, and various transmit and receive
commands and functions. This would allow Hypercard to continue
operations while the MIDI is playing back. However . . . my fear
is that, if I return control to Hypercard with the chips and
interrupts in a unexpected state, I will cause Hypercard to die a
horrible death. I would have to lock the interrupt handler down so
that it wouldn't move around, which may also cause problems. On the
other hand, if I set up the MIDI interface in a single XCMD that
always restores things to normal before returning to Hypercard, I
loose a great deal of flexibility.
Does anyone out there have any information on how Hypercard will react
to an XCMD fiddling with the hardware and leaving code locked in the
heap? I know that fiddling with the hardware directly is frowned upon
by official sources, but does anyone know of a better way of
accomplishing MIDI I/O in Hypercard? (I notice that the preliminary
specs for the new ROM Sound Manager include some interesting traps
that might be part of a solution, but these traps don't seem to be
implemented on my Mac Plus.) Wouldn't it be nice if midiKeyDown and
midiKeyUp were standard Hypercard events?
Any comments?
James
--
---------------------------James Talley-----------------------------
UUCP : ...!cbosgd!osupyr!artsvax!talley (will disappear 12/14/87)
Internet: [email protected] (may not be working yet)
Bitnet : ts0183@ohstmvsa
Path: utzoo!mnetor!uunet!husc6!uwvax!oddjob!gargoyle!ihnp4!cbosgd!osu-cis!osupyr!artsvax!talley
From: [email protected] (James T. Talley)
Newsgroups: comp.sys.mac.hypercard
Subject: MIDI I/O from Hypercard
Message-ID:
Date: Thu, 26-Nov-87 14:16:54 EST
Article-I.D.: artsvax.209
Posted: Thu Nov 26 14:16:54 1987
Date-Received: Sun, 29-Nov-87 18:15:50 EST
Organization: The Ohio State University, Computer-Based Instruction Group
Lines: 39
Keywords: MIDI XCMD XFCN hardware interrupt
I'm considering writing the XCMD's and XFCN's necessary to do simple
MIDI data I/O from a Hypercard stack. I don't need the power of a
full-fledged MIDI sequencer -- I just want to be able to play back
short segments of music and to accept user response from a MIDI
keyboard. I have the basic MIDI drivers that are necessary to
accomplish this, but the drivers raise a few questions. The drivers
need to fiddle with the SCC chip, the timer chip, and the timer
interrupts. When they're done, they restore things to normal.
Now, I would like to set up the interface so that there is a
"startMidi" XCMD, a "stopMidi" XCMD, and various transmit and receive
commands and functions. This would allow Hypercard to continue
operations while the MIDI is playing back. However . . . my fear
is that, if I return control to Hypercard with the chips and
interrupts in a unexpected state, I will cause Hypercard to die a
horrible death. I would have to lock the interrupt handler down so
that it wouldn't move around, which may also cause problems. On the
other hand, if I set up the MIDI interface in a single XCMD that
always restores things to normal before returning to Hypercard, I
loose a great deal of flexibility.
Does anyone out there have any information on how Hypercard will react
to an XCMD fiddling with the hardware and leaving code locked in the
heap? I know that fiddling with the hardware directly is frowned upon
by official sources, but does anyone know of a better way of
accomplishing MIDI I/O in Hypercard? (I notice that the preliminary
specs for the new ROM Sound Manager include some interesting traps
that might be part of a solution, but these traps don't seem to be
implemented on my Mac Plus.) Wouldn't it be nice if midiKeyDown and
midiKeyUp were standard Hypercard events?
James
--
---------------------------James Talley-----------------------------
UUCP : ...!cbosgd!osupyr!artsvax!talley (will disappear 12/14/87)
Internet: [email protected] (may not be working yet)
Bitnet : ts0183@ohstmvsa