[rec.music.synth] MIDI Management Tools...first impressions

viking@silver.bacs.indiana.edu (Jon W. Backstrom) (08/29/89)

After playing with the MIDI Management Tools (version 1.1), I would
like to offer some initial impressions and pose a few questions about
the behavior of the "MIDI Manager", the "Apple MIDI Driver", and a few
of the demonstration programs.

Two files make up the core of the MIDI Management Tools: an INIT named
"MIDI Manager", containing the MIDI Manager code and the "Apple MIDI
Driver" file, containing interface code for the hardware itself.  When
an application signs in, the MIDI Manager loads MIDI Drivers that are
present in the System Folder and disposes of them when the application
signs out.

The Patchbay
------------

An application called "Patchbay" is at the heart of using the MIDI
Manager.  Everything runs under MultiFinder (ideally) and Patchbay is
used to configure the connections between software modules and the
MIDI input and output ports.  (If you can't use MultiFinder, there is
a Patchbay DA that you can install.)

To actually *do* something, run "Patchbay" and then double-click on
the MIDI Driver icon.  A dialog then appears that lets you set which
port(s) you want to use, the MIDI interface type (0.5 MHz, 1 MHz, and
2 MHz), the time code (none, beats, 24-25-30 fps, or 30 drop), and
whether you want to use time code output, filter the time code, or use
application sync.  Finally, there is an "All Notes Off" button to
silence runaway MIDI sound modules.

(There seems to be a problem with "All Notes Off" button in the Apple
MIDI driver dialog, however...see below.)

There are four sample applications that are supplied with the MIDI
Management Tools: MIDIArp (an arpeggiator), HourGlass (a time code
stopwatch, of sorts), SquidCakes (a simple MIDI event recorder), and
SimpleKey (a monophonic software keyboard).

By launching one of these applications (with Patchbay active) an icon
will appear in the Patchbay, allowing the user to drag "patch cords"
connecting the software modules to the actual MIDI hardware I/O.  To
use MIDIArp, for example, one would connect the MIDI IN to the input
of the software module and the MIDI OUT to the module's output.  Then
simply hold some keys down on your keyboard and listen to things start
happening!

For added fun, you can then launch SimpleKey and patch the output to
the MIDIArp input, thereby *merging* the two inputs (one input from
the software tool -- a single note -- and the other being whatever
notes you are playing on your keyboard).  You can also sync one module
to another using the clock icons.  This is nifty stuff!

Patch settings can be saved, so if you do something fun like merge the
inputs from the MIDI IN and SimpleKey to the input of Squidcakes (a
simple MIDI event recorder), and then patch the output of Squidcakes
to MIDIArp, and *then* patch the output of MIDIArp to the MIDI OUT...
you can save the whole patch for future recall.  (Who named these
applications, anyway?)   :-)

One complaint I have about Patchbay is that when two modules are
connected straight across the bay, but at an angle, the connections
are visually crossed.  For example:   

              (Please forgive the text approximations)

Straight across...no problems...

 MIDI   > ----------------------------------------- > MIDIArp
Driver  < ----------------------------------------- < 


Angled across...visual crossing of 'patchcords'...

 MIDI   > ------------------+                   +-- < SimpleKey
Driver  < ------------------|-+      (Merged   /
                            | |       Input)  |
                            | |                \
                            +-|-----------------+-- > MIDIArp
                              +-------------------- <

When you get a lot of merged inputs and cross-connections, it gets
harder to figure out what's going on.  I would suggest that Apple
should use a non-crossing visualization scheme for showing patchcord
connections across the patchbay.

Angled across...*no* visual crossing of 'patchcords'...why not?

 MIDI   > --------------------+                 +-- < SimpleKey
Driver  < ------------------+ |      (Merged   /
                            | |       Input)  |
                            | |                \
                            | +-----------------+-- > MIDIArp
                            +---------------------- <

Sample Applications
-------------------

There are lots of apologies for the quality of the sample applications
in the "About" information, and it's easy to see why.  SimpleKey, for
example, has a few places on the keyboard where two keys will play the
same note.  There's nothing really much you can say, however, since
these samples are meant to show possibilities...not to showcase the
best possible MIDI applications.

*Warnings!*  
-----------

I was able to hang the system when I did MIDI input while accessing
the disk from another non-MIDI program.  I was using a really complex
input/output configuration with several applications in the Patchbay.
(I was just testing the limits.)

Also, when made some abrupt exits from MIDI applications, I was
*unable* to use my modem port from a terminal program.  By running
everything again and closing all applications nicely, I was able to
restore the operation of the modem port.  (Strange stuff, but it seems
really important to close the MIDI Manager software properly.)

Finally, the "All Notes Off" button, from the MIDI Driver Settings
dialog (you get there by double-clicking the Driver icon in Patchbay),
seems to send an all notes off message (B0 7B 00), followed by 128
individual note off messages (80 nn 40 ... nn being 0-127), for *every
MIDI channel*!  (1-16)  

My Roland D-50 kept getting a "MIDI Communication Error" when I used
the All Notes Off button, until I turned it's OMNI mode off.  You
might want to check the output from this command, but I think it's
bogus.  I tried looping the MIDI OUT to MIDI in and using SquidCakes
to record the MIDI message being send, but I got strange results
(which I'm sure are due to the slowness of the application).

Does "All Notes Off" work?  When I captured the MIDI events, I found that
sometimes the initial Notes Off message was missed and I got spurious
events at the end of each "burst".  I wonder if this is what caused
the error for the D-50?  Are 128 Note Off messages for *each* MIDI
channel *really* necessary, or is Apple trying to cover synths that
don't respond to an All Notes Off message (Bn 7B 00)?

My initial impression of the MIDI Management Tools is very favorable,
however, and I'm excited about the future!

-------------------------------------------------------------------------------
 Jon W. Backstrom                 "Yah sure...we gonna have fun, you bet!"
 Institute for Digital Arts
 P.O. Box 176                     Internet: viking@silver.bacs.indiana.edu
 Bloomington, IN  47402-0176      UUCP: {ames,rutgers,att}!iuvax!silver!viking
-------------------------------------------------------------------------------