[comp.sys.amiga.audio] "Multitasking with MIDI" in _Electronic Musician_

robinson@star.enet.dec.com (Dave Robinson) (02/20/91)

  The March 1991 issue of _Electronic Musician_ presents an
  article titled "Multitasking with MIDI", by Rudy Trubitt that I
  believe damns the Amiga with faint praise.   But, since the
  article mentions the Amiga instead of ignoring it, and since
  _Electronic Musician_ (EM) is a magazine I respect, I thought
  I'd enter this request for information before I write a letter
  to EM.   It could be they are right and I am wrong.   If not,
  then I could use some validation or expert opinions as to the
  status of MIDI multitasking with the Amiga compared to other
  MIDI fluent computers.

  Here are excerpts used without permission from the two page
  article. Starting at the top:

  "How many things can you do at once? Can you simultaneously
  answer the phone, write a note, and watch for the mailman?  If
  you're human, this is called "self-employment". If you're a
  computer, it's "multitasking". Not all computers can run
  several programs, or "tasks," at once; to do so requires a
  "multitasking operating system" such as Commodore's "AmigaDOS"
  or Microsoft's "Windows 3.0".  Multitasking originally was
  developed to let several users share one big computer, but
  today's multitasking computers are dedicated to a single
  person"

  .
  .
  .
  
  [Info about MAC multifinder & MIDI manager...]
  
  [Info about  Microsoft "Windows" multimedia spec currently
  released to developers]
  
  [Mention of Atari's announced MIDItasking, DR T's MPE, C-Lab's
  "Softlink", Steinberg's "MROS", and Hybrid Arts' "HybriSwitch"
  that provide "varying degrees of functionality...not compatible
  with each other" ]

  . 
  . 
  . 

  Multitasking was built into the "Amiga" hardware and operating
  system from the beginning, not added.   However, Commodore
  established no standard to exchange information between
  programs.  Thus, multiple MIDI programs can run but not share
  data.  Commodore reportedly is working on a "MIDI Manager-like"
  program to address this problem, but at this point, only                  
  proprietary third-party systems such as DR. T's MPE let one
  program send MIDI data to another.

  Things will get interesting as multitasking and real-time
  data-sharing become more common.  For instance, instead of one
  big sequencer program, a number of smaller modules from various
  sources could provide the building blocks for each of us to                  
  construct our unique work environment. Of course, this would
  require unprecedented cooperations between software companies.
  But hey, a guy can dream, can't he?

  End of article.

  So, can people please provide lots of data.  Opinions are OK ,but I 
  know everyone here likes the Amiga.  What I really need is data:

  o An update on the MIDI Manager-like" standard Commodore is
    developing.

  o Examples of multitasking MIDI applications and data
    sharing.

  o Explain whether Bars & Pipes is internally multitasking and 
    what that means compared to other platforms' sequencers etc.

  o Where do Arexx and the clipboard fit into a possible
    rebuttal to the statement about no data sharing standard?

    Notes:

  I personally can run a mini home brew patch save/load program
  along with Bars and Pipes.  I have to disable MIDI in B & P before I
  send & receive SYSEX messages, which means it is task
  switching, but I suspect I could use the Bars and Pipes AREXX
  port to trigger a similar patch librarian.  Can't I do that with
  the Amiga?  Can other computers do this?

  Can't someone with two serial ports and two MIDI interfaces
  load patches on one synth while a sequencer plays another?

  I have heard of people playing Deluxe Music scores and piping
  the output into other sequencers in order to create Standard
  Midi Files. Can someone verify this or provide similar
  examples.

  Thanks,

  Dave Robinson
  robinson@star.enet.dec.com
  
           

rjc@geech.ai.mit.edu (Ray Cromwell) (02/20/91)

  If any of these MIDI programs had an Arexx port, writing a 
IPC manager would be easy. The amiga has better interprocess communication
than I've seen on any computer, Arexx simply makes it easier.

barrett@jhunix.HCF.JHU.EDU (Dan Barrett) (02/21/91)

In article <20357@shlump.nac.dec.com> robinson@star.enet.dec.com (Dave Robinson) writes:
>  The March 1991 issue of _Electronic Musician_ presents an
>  article titled "Multitasking with MIDI", by Rudy Trubitt that I
>  believe damns the Amiga with faint praise.

	The article made me a little sad, but it seemed rather realistic.
The Amiga's multitasking make it a great platform for coexisting MIDI
applications, but there is a lack of MIDI applications that can share MIDI
data other than saving and loading Standard MIDI Files.  But I don't know
if the situation is much better on other computers.

>  So, can people please provide lots of data.  Opinions are OK ,but I
>  know everyone here likes the Amiga.  What I really need is data:
>  o An update on the MIDI Manager-like" standard Commodore is
>    developing.

	All I've heard is that it's called camd.library or something like
that.

>  o Examples of multitasking MIDI applications and data
>    sharing.

	Multitasking MIDI applications is easy -- most modern Amiga MIDI
programs can coexist because they open the serial port in "shared" mode.
I have written several MIDI utilities myself, and they all coexist just
fine.

	On the other hand, there's isn't much data sharing going on that I
have seen.  Bill Barton's free midi.library has this capability, but few
commercial applications (if any) use it.

>  o Where do Arexx and the clipboard fit into a possible
>    rebuttal to the statement about no data sharing standard?

	Not too well.  Both ARexx and the clipboard provide the POSSIBILITY
of data sharing among music applications, but how many programs can you
name that actually LET YOU DO IT?  Right now, available at your dealer,
and not promises or vaporware?

	Also, ARexx isn't that fast.  MIDI must be as real-time as possible.
I can see using ARexx to grab data from a sequencer and put it into a score
program, but I can't see a chain of ARexx modules processing the MIDI data
in real time.

>  Can't someone with two serial ports and two MIDI interfaces
>  load patches on one synth while a sequencer plays another?

	Sure, no problem.

	I just thought of an interesting way that applications can share
Standard MIDI Files (SMF).  Let A and B be two sequencers.  Tell sequencer A
to save a SMF to the file:

		pipe:xx

and tell sequencer B to read a SMF from the same file.  Using this pipe,
your SMF gets transferred from sequencer A to sequencer B.  But this isn't
much different from saving your SMF to a disk file first.

	Another example that I just made up (haven't tried it).  Suppose you
have an ARexx-compatible MIDI sequencer and an ARexx-compatible database.
You could probably tell the sequencer to save its files in the database
transparently instead of ordinary disk files, allowing (for example) more
sophisticated categorizing of sequences.

                                                        Dan

 //////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
| Dan Barrett     -      Systems Administrator, Computer Science Department |
| The Johns Hopkins University, 34th and Charles Sts., Baltimore, MD  21218 |
| INTERNET:   barrett@cs.jhu.edu           |                                |
| COMPUSERVE: >internet:barrett@cs.jhu.edu | UUCP:   barrett@jhunix.UUCP    |
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////

@utrcgw.utc.com:mark@ardnt1 (mark) (02/21/91)

  I am forwarding this for someone here at work.

  Replies or questions can be sent directly to him or 

  to me and I'll forward them to him.


--Mark


------------------------------------------------------------------------------
| Mark Stucky                         | Email:                               |
| United Technologies Research Center |   mark%ardnt1@utrcgw.utc.com         |
| East Hartford, CT.                  |   mast%utrc@utrcgw.utc.com           |
| My opinions do not necessarily represent the opinions of my employer.      |
------------------------------------------------------------------------------



Date: Thu, 21 Feb 91 10:04 EDT
From: "William R(ay) Brohinsky" <RAYBRO%HOLON%UTRC@utrcgw.utc.com>
Subject: Re: [@utrcgw.utc.com:robinson@star.enet.dec.COM:
 "Multitasking with MIDI" in _Electronic Musician_]
To: mark@ardnt1
X-Envelope-To: mark@ardnt1
X-Vms-To: UTRC::UTRCGW::IN%"@utrcgw.utc.com:mark@ardnt1"

>From: Dave Robinson <@utrcgw.utc.com:robinson@star.enet.dec.COM>
>Subject: "Multitasking with MIDI" in _Electronic Musician_

Mark, please forward this to amiga-relay. raybro


>>>>>>>from DR
  The March 1991 issue of _Electronic Musician_ presents an
  article titled "Multitasking with MIDI", by Rudy Trubitt that I
  believe damns the Amiga with faint praise.   But, since the
  article mentions the Amiga instead of ignoring it, and since
  _Electronic Musician_ (EM) is a magazine I respect, I thought
  I'd enter this request for information before I write a letter
  to EM.   It could be they are right and I am wrong.   If not,
  then I could use some validation or expert opinions as to the
  status of MIDI multitasking with the Amiga compared to other
  MIDI fluent computers.
>>>>>>>>break

midi fluent computers? That's a new term for me. I've heard various
things about how fluent other computers are with midi, but the
amiga has done very well by me. My setup includes or has included:
	amiga1000 with Mimetics MIDI interface, 20M disk, 1.5Mram
	external floppy, 1070 monitor, DJ+ and epson fx-85 printers

	2)FB01's
	G10
	WX7
	dx100
	casio cz-101 (I lost this fast---sounds didn't do it for me!)

	Mimetics Soundscape and sampler
	DMCS (Deluxe Music Construction Set)
	four-op deluxe (for programming dx-100 and fb01s)
	MidiLib

my comments will be from within the framework of using these things.

>>>>>>>DR

  Here are excerpts used without permission from the two page
  article. Starting at the top:

  "How many things can you do at once? Can you simultaneously
  answer the phone, write a note, and watch for the mailman?  If
  you're human, this is called "self-employment". If you're a
  computer, it's "multitasking". Not all computers can run
  several programs, or "tasks," at once; to do so requires a
  "multitasking operating system" such as Commodore's "AmigaDOS"
  or Microsoft's "Windows 3.0".  
>>>>>>>break!!!

There are two normally-used types of multitasking: the kind where everyone
gets a slice of time (which may be variable, depending on priority) and
the kind where everyone waits until they have something to do, at which 
point they get a slice of time to do it. There are various ways of mixing
and matching these. The first is notable because each application will
get its slice of time, regardless of whether it is doing anything. This is
how Windows tends to work, especially since most things run in it are old
PC applications who don't have any way of signalling that they are done,
or don't have anything to do.

The amiga mixes these as follows (this is a rough explanation, because
it's been so long since I had to worry about this):
exec (the operating system) maintains linked lists of applications.
In fact, everything in the amiga is a linked list of linked lists
of linked lists, and exec does it's job by maintaining these lists.
Each application can be awake (running), asleep, or ready to run.
They are awake when they have the processor. They are asleep when
they don't have anything to do. They are ready to run when they were awake 
and have lost the processor for a short time.

Because interrupts are also done in linked lists, and handled by exec
(the actual interrupt code is supposed to be only as long as is necessary 
to service the interrupt, placing the necessary info or setting and
resetting the necessary flags. Writing interrupt routines is tricky, but
has been made easier by the very good basics of design in exec: most of the 
work may already have been done for you!) Thus, exec is aware of everything 
that goes on in the computer: it doesn't turn over a block of time to 
anyone who doesn't need it! This makes things faster.

All of the libraries of functions are shareable on the amiga. It's the way 
they are designed. This means that, if two programs are running that both 
access the disk, you only need one copy of the disk-accessing library,
and it is not compiled into each program. With PC's (and a lot of other 
systems) each function ends up as part of the program. That means that 
amiga programs can be smaller and do more (or the same size and do much 
more!) I could go on, but this is a point we'll revisit.

>>>>>>>DR
Multitasking originally was
  developed to let several users share one big computer, but
  today's multitasking computers are dedicated to a single
  person"

  .
  .
  .
  
  [Info about MAC multifinder & MIDI manager...]
  
  [Info about  Microsoft "Windows" multimedia spec currently
  released to developers]

>>>>>>>break
Note that Commodore is already selling multimedia: for years, we've been 
able, through iff files, to share graphics and music between diverse 
programs. more on this later!

>>>>>>DR  
  [Mention of Atari's announced MIDItasking, DR T's MPE, C-Lab's
  "Softlink", Steinberg's "MROS", and Hybrid Arts' "HybriSwitch"
  that provide "varying degrees of functionality...not compatible
  with each other" ]
>>>>>>>break

I believe I am somewhat familiar with MPE. This is a system which allows 
switching (task switching vs. multi-tasking, a vast difference there!), is 
it not? That would mean that you could edit a sequence, decide to change a 
patch, switch to the patch editor, play the sequence and edit the patch,
play the sequence again, then switch back to the sequence editor to make 
changes...

If I'm wrong, some of my next comments will be a bit off base, but I think
that'll be obvious, now that I've laid out my pre-conceptions.

>>>>>>>DR
  . 
  . 
  . 

  Multitasking was built into the "Amiga" hardware and operating
  system from the beginning, not added.   However, Commodore
  established no standard to exchange information between
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  programs.  Thus, multiple MIDI programs can run but not share
  data.  Commodore reportedly is working on a "MIDI Manager-like"
  program to address this problem, but at this point, only                  
  proprietary third-party systems such as DR. T's MPE let one
  program send MIDI data to another.
>>>>>>>>>>>>>break, break, break...

Wow. Is this a mistatement or what? The IFF format was proposed by 
electronic arts in the 1985-era, when some of the amiga's demos were still 
single-tasking! from the beginning of 1986 on, there has been music and
graphics standards for the amiga which are shared at some level between
such diverse programs as turboSilver (3-d graphics), Deluxe Paint III,
Photon Paint, AmigaTeX, and numerous games and desktop pub programs and
graphics editors. The Deluxe series epitomized this in Deluxe Paint (i thru 
iii), deluxe music construction set (DMCS), deluxe video, and that jamming
music package, instant music. All of these programs shared graphics and
music (where applicable) in the iff standard. This is what you'd expect
from files created by programs from the same maker.

However, you could use Sonix to make music for Deluxe Videos. You could
use AudioMaster to take samples (and it would use samplers from Aegis,
Mimetics, PerfectSound...) which you could edit there or in other sample
editors and play using Sonix, DMCS, Deluxe Video, or PD player programs...
All of this is possible because there is a set of standards for file 
interchange!

MIDI is another thing, though, and I will admit that there is still a lack
of portable MIDI files. However, since no one seems to be able to get hold 
of the standard midi file format (see messages in bix music/midi and on
EMUSIC-L on internet for queries about how to obtain the standard and 
replies of how long so-and-so has been waiting...) I am not too suprized to 
see a lack of midi file standards now.

>>>>>>>DR
  Things will get interesting as multitasking and real-time
  data-sharing become more common.  For instance, instead of one
  big sequencer program, a number of smaller modules from various
  sources could provide the building blocks for each of us to                  
  construct our unique work environment. Of course, this would
  require unprecedented cooperations between software companies.
  But hey, a guy can dream, can't he?
>>>>>>>>>break

This is exactly what programs like Synthia do. You can make different 
instruments simulataneously, and play them back through the amiga's 
four-voice built-in synthesizer, driving them from an internal program like 
DMCS, or triggering them from an external MIDI instrument...

Here's a case in point on the matter of MIDI programs and compatibility. I 
did this first in 1987:

First, I loaded Mimetics' SoundScape patch panel. Then I started up DMCS.
Usually, when DMCS starts, it takes the workbench off, ostensibly to save 
memory. (this is confusing to me, since DMCS will not use any more memory 
in a 1.5M system than it does on a 512K system-the allocation is 
hard-coded, and incapable of giving you more room for a larger score or 
using non-score memory for printing. That has nothing to do with MIDI, 
though...)
I went back to the workbench, which had been preserved against DMCS' usual 
ravages. To my amazement, there was a red spot on the patch panel. I called 
up the recorder in SoundScape (a multi-track sequencer disguised as a 
multi-track tape recorder) and started it going with four tracks recording,
each assigned to one midi channel.

Then, I went back to DMCS and started a song that had four voices assigned 
to the same four midi channels. The mimetics recorder recorded the midi 
sequences being played out by DMCS. I think that this proves that, as early 
as 1987, the amiga had real multitasking and was sharing information 
between quite diverse MIDI-based programs.

>>>>>>>>DR
  End of article.

  So, can people please provide lots of data.  Opinions are OK ,but I 
  know everyone here likes the Amiga.  What I really need is data:

  o An update on the MIDI Manager-like" standard Commodore is
    developing.

  o Examples of multitasking MIDI applications and data
    sharing.

  o Explain whether Bars & Pipes is internally multitasking and 
    what that means compared to other platforms' sequencers etc.

  o Where do Arexx and the clipboard fit into a possible
    rebuttal to the statement about no data sharing standard?

    Notes:

  I personally can run a mini home brew patch save/load program
  along with Bars and Pipes.  I have to disable MIDI in B & P before I
  send & receive SYSEX messages, which means it is task
  switching, but I suspect I could use the Bars and Pipes AREXX
  port to trigger a similar patch librarian.  Can't I do that with
  the Amiga?  Can other computers do this?

  Can't someone with two serial ports and two MIDI interfaces
  load patches on one synth while a sequencer plays another?
>>>>>>>break

OK-The latest Amazing Computing has an article on a multi-port adapter
that puts up to four serial and four parallel ports on any amiga (below the 
3000). When I get one and get it working, I'll try this. Already, there is 
software to assign different programs to different serial ports, but the 
maker allows as how all four ports running at 2400 baud may bog down a bit. 
I'll have to try two midi connections. However, if you have a way to assign 
different serial ports to differnt hardware ports, you can do what you 
describe.
>>>>>>>DR
  I have heard of people playing Deluxe Music scores and piping
  the output into other sequencers in order to create Standard
  Midi Files. Can someone verify this or provide similar
  examples.

>>>>>>>break
Done.
I have successfully run any of those MIDI-fluent programs (neat term, huh?) 
simulataneously with any number (up to eight) of other programs, as long as 
the others don't try to mess with the MIDI port.

Pregnant Badger software has produced the MidiLib, a library-based system 
for MIDI organizing. This allows many programs that use MidiLib to run 
simultaneously, and gives all of them access to the one midi port that's 
easy to get on any amiga. He includes a few examples, which run together 
nicely. I don't know if anyone is writing major applications, but If I ever 
get my act together (and grow out of hacking TeX-HA!) I would prefer to use 
the MidiLib system to whatever Commodore is coming out with, after the 
fact.

Of course, if Commodore really is including ARexx and ARP in 2.0, then they 
might also just be considering PB's midilib, no?
>>>>>>>DR

  Thanks,

  Dave Robinson
  robinson@star.enet.dec.com
  
>>>>>>>

no prob.

raybro