Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: utzoo!utgpu!water!watmath!clyde!rutgers!cmcl2!brl-adm!umd5!uvaarpa!virginia!boole!pmy
From: pmy@boole.UUCP
Newsgroups: comp.sys.amiga
Subject: Re: Amiga and MIDI
Message-ID: <338@boole.acc.virginia.edu>
Date: Wed, 2-Dec-87 12:12:27 EST
Article-I.D.: boole.338
Posted: Wed Dec  2 12:12:27 1987
Date-Received: Sun, 6-Dec-87 15:31:07 EST
References: <447@nuchat.UUCP> <32160@auc.UUCP> <528@otto.COM> <35179@sun.uucp>
Organization: Academic Computing Center, University of Va.
Lines: 41
Keywords: MIDI Amiga

In article <35179@sun.uucp>, cmcmanis%pepper@Sun.COM (Chuck McManis) writes:
> There are conflicts when you 
> multitask two MIDI programs but that is to be expected, one of them can't
> get the serial port because the other one has it. This won't be a problem
> for a while on the Mac or the ST (or even the IBM-PC for that matter.)

There is a PD amiga .library which addresses this very problem. This 
library provides for the creation, deletion and management of MIDI
"nodes" and the "routes" that connect them. There are two types of
nodes: destination (receiving) and source (sending). Any number of
sources may write to a destination, with automatic message merging.
A source may write to any number of destinations, with automatic
message copying (fan-out). Furthermore, the routes drawn between
sources and destinations can be programmed to filter by message and/or
channel, to transpose notes, and a few other things.

Anyway, as to the multi-tasking problem, the library starts up by
creating two resident task-nodes, MidiIn and MidiOut, which do the
actual talking to serial.device. Any process which wants to speak/hear
MIDI goes through these nodes (which, as mentioned above, handle all
fan-in/fan-out), thus eliminating resource conflicts. All message
handling is done in the traditional Amiga manner, with routines
such as GetMidiMsg() and PutMidiMsg().

As a diagnosed MIDIot, I'm pretty excited about the possibilities this
library offers. I'm in the process of writing MIDI filter and soft device
modules which, through a graphic patch bay, can be interconnected in any
conceivable manner. I've already written a polyrhythm generator which
can tickle my synths directly, or be used to sync other MIDI tasks.
I'd really like to see this library become a popular standard and trigger
an explosion of modular PD MIDI stuff.

If anyone's interested, I can send more info.



-- 
Pete Yadlowsky
Academic Computing Center
University of Virginia
e-mail: pmy@vivaldi.acc.virginia.EDU