[comp.sys.mac.programmer] 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
-------------------------------------------------------------------------------

nick@lfcs.ed.ac.uk (Nick Rothwell) (08/29/89)

In article <25132@iuvax.cs.indiana.edu>, viking@silver (Jon W. Backstrom) writes:
>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.

Ah. This suggests that I won't ever me able to use a MIDI-Manager-version
of Performer without more RAM. Performer is too big for a 1 Meg Mac under
MultiFinder, so I can't run this PatchBay (or the DA) and then sign in
Performer? Or can I?
   Does anybody know if MOTU are going to provide an upgrade, anyway?

> Jon W. Backstrom                 "Yah sure...we gonna have fun, you bet!"

		Nick.
--
Nick Rothwell,	Laboratory for Foundations of Computer Science, Edinburgh.
		nick@lfcs.ed.ac.uk    <Atlantic Ocean>!mcvax!ukc!lfcs!nick
~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~ ~~
               Fais que ton reve soit plus long que la nuit.

miller@CS.ROCHESTER.EDU (Brad Miller) (08/30/89)

    In article <25132@iuvax.cs.indiana.edu>, viking@silver (Jon W. Backstrom) writes:
    >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.

    Ah. This suggests that I won't ever me able to use a MIDI-Manager-version
    of Performer without more RAM. Performer is too big for a 1 Meg Mac under
    MultiFinder, so I can't run this PatchBay (or the DA) and then sign in
    Performer? Or can I?
       Does anybody know if MOTU are going to provide an upgrade, anyway?

I just talked to MOTU; they are not going to commit to supporting the MIDI
manager at all at this time, but will wait for a full (non-beta) release
from Apple before even considering it :-(

mnkonar@manyjars.SRC.Honeywell.COM (Murat N. Konar) (08/30/89)

In article <263@castle.ed.ac.uk> nick@lfcs.ed.ac.uk (Nick Rothwell) writes:
>Ah. This suggests that I won't ever me able to use a MIDI-Manager-version
>of Performer without more RAM. Performer is too big for a 1 Meg Mac under
>MultiFinder, so I can't run this PatchBay (or the DA) and then sign in
>Performer? Or can I?

The way it's *supposed* to work (I think) is that compatible applications
sign themselves in to the MIDIMgr.  You only need to use Patchbay if you
want to do some funky routing.

I'm calling up MOTU today to pester them about making Performer MIDIMgr
compatible and I encourage other users to do the same. 
____________________________________________________________________
Have a day. :^|
Murat N. Konar        Honeywell Systems & Research Center, Camden, MN
mnkonar@SRC.honeywell.com (internet) {umn-cs,ems,bthpyd}!srcsip!mnkonar(UUCP)

jnh@ecemwl.ncsu.edu (Joseph N. Hall) (08/30/89)

In article <1989Aug29.182446.4216@cs.rochester.edu> miller@CS.ROCHESTER.EDU (Brad Miller) writes:
>I just talked to MOTU; they are not going to commit to supporting the MIDI
>manager at all at this time, but will wait for a full (non-beta) release
>from Apple before even considering it :-(

Well, give them a big, fat raspberry for this attitude.  If what
you say is true, they don't have much feel for what the beta release process
is about ...

I was strongly considering buying MOTU Performer (to augment Finale) but
now I guess I have even more reason to consider a couple of the newer
pro-quality sequencers.  (The recent reviews in MacWorld were pretty
interesting, I thought.)

v   v sssss|| joseph hall                      || 4116 Brewster Drive
 v v s   s || jnh@ecemwl.ncsu.edu (Internet)   || Raleigh, NC  27606
  v   sss  || SP Software/CAD Tool Developer, Mac Hacker and Keyboardist
-----------|| Disclaimer: NCSU may not share my views, but is welcome to.

cbm@well.UUCP (Chris Muir) (08/31/89)

In Message <25132@iuvax.cs.indiana.edu> viking@silver.bacs.indiana.edu 
(Jon W. Backstrom) writes:

>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.)

You can write a very simple application to just sign out from the midi
manager:

 begin
  MidiManVers := SndDispVersion(midiToolNum);
  if MidiManVers = 0 then
   begin
	{ oops, no MIDI Manager }
   end
  else
   begin
    MidiSignOut(kMySig);
   end;
 end;

where kMySig is the signature that was signed in. Also in might be
necessary to run the PatchBay and close it before the serial port is
free at first boot.

-- 
_______________________________________________________________________________
Chris Muir                             |   "There is no language in our lungs
{hplabs,pacbell,ucbvax,apple}          |    to tell the world just how we feel" 
!well!cbm                              |                         - A. Partridge

david.dmytryshyn@f428.n250.z1.fidonet.org (david dmytryshyn) (09/01/89)

 >
 > I'm calling up MOTU today to pester them about making Performer MIDIMgr
 > compatible and I encourage other users to do the same.

 > Murat N. Konar        Honeywell Systems & Research Center, Camden, MN


Me too...  This is beginning to develop shades of MOTU and midifiles.
At least they succombed to overwhelming user demand on this one, but
they still have copy protection, and don't even allow you to "install"
a copy on a hard disk.


David..  (should have said screw the Performer upgrades, and bought Vision)


---
 * Origin: Future Vision:  Progressive & Innovative (1:250/428)

topping@dinghy.cis.ohio-state.edu (brian e topping) (09/05/89)

The discussion about the MIDI management tools and the files that go with
them brings up an interesting question.  It seems that Apple is starting to
send out a lot of INIT's to extend functionality (i.e. MIDI & ADSP).  Are these
INIT's going to be integrated into sys 7 so the user does not have to clog his
system folder further?  If not, why?  ADSP and MIDI both load the actual driver
when needed, not at boot, so there is no overhead.  

This is a trivial question I know, but I ended up using ATP instead of ADSP
because of this.



Brian Topping
BETOPPIN@OWUCOMCN (Bitnet)

face@math.arizona.edu (Chris Janton) (09/06/89)

>Ah. This suggests that I won't ever me able to use a MIDI-Manager-version
>of Performer without more RAM. Performer is too big for a 1 Meg Mac under
>MultiFinder, so I can't run this PatchBay (or the DA) and then sign in
>Performer? Or can I?
>   Does anybody know if MOTU are going to provide an upgrade, anyway?
>
>> Jon W. Backstrom                 "Yah sure...we gonna have fun, you bet!"

You do not have to have the Patch Bay open to make connections to the MIDI
Manager.  A program can make a connection directly to the manager (ignoring
the Apple guidelines) with relative ease.  The keywords here are

#define	AMDriver	'amdr'
#define	AMDtime		'ATim'
#define	AMDin		'Ain '		/* is the inbound data */
#define	AMDout		'Aout'		/* is the outbound data */

which are the 'names' of the MIDI driver ports.  Just connect an input port to
'amdr''Ain' etc. using the MIDIConnectData and MIDIConnectTime calls.

------------------------------------------------------------------------
Chris 'Face' Janton | Internet: janton@rvax.ccit.arizona.edu
CCIT                | UUCP: ..{cmcl2,allegra,noao}!arizona!face
Univ. of Arizona    | Bitnet: janton@arizrvax
Tucson, AZ  85721   | Phone: +1 602 621-6848