[comp.sys.amiga] MUSIC-X comments long

barrett@jhunix.HCF.JHU.EDU (Dan Barrett) (08/29/89)

	I have been using the new Amiga MIDI sequencer/librarian/etc
program MUSIC-X by MicroIllusions for about a month now.  This is an
extremely powerful program, and I recommend it highly!  ($138 by mail
order from Abel Supply; $299 list price; not copy protected; 500 page
manual!)

	I would love to correspond with other MUSIC-X users on the net.
Write to me at any of the addresses at the end of this posting.

	I have composed the following letter to the author, David Joiner,
full of suggestions, criticisms and compliments.  If anybody has any
feedback on my letter, please let me know!

	NOTE:  This letter is long.  If you are not already familiar
with MUSIC-X, it might not be very readable to you.  This is NOT a
review of the product.  It is a comprehensive list of the bugs and
shortcomings that I have found, plus some compliments and questions.
Remember -- I LIKE THIS PROGRAM A HELL OF A LOT!

				--- begin letter ---

Mr. David Joiner
c/o Microillusions
17408 Chatsworth Street
Granada Hills, CA  91344


Dear Mr. Joiner:

   I have a number of  suggestions,  questions,  and  compliments
about  your  WONDERFUL new program, MUSIC-X.  It is certainly the
most  powerful   Amiga   MIDI   package   I   have   ever   used.
Congratulations on creating a great program!
   Please don't be put off by the length of this  letter.   I  am
making all these suggestions because I care about your product!

1. Possible Bugs?

   Releasing The Serial Port
      I think MUSIC-X does not release the serial  port  properly
   when it exits.  Suppose I invoke MUSIC-X from the CLI and then
   exit.  When I try to run  other  serial-port  programs  (VT100
   emulator, and other MIDI programs) they cannot open the serial
   port.  If I simply try to run MUSIC-X again,  it  CAN  re-open
   the serial port.  Hmmm.  A warm boot clears up the problem.  I
   have the source code for the other serial-port programs, so  I
   know they are trying to open the port legally.

   ERR messages
      I've been getting a lot of ``ERR [xxx]''  messages  to  the
   right of the free memory gauge.  I suppose these should happen
   rarely, right?

   File Requestor
      The File Requestor cannot access  files  in  deeply  nested
   directories!   It  allows  only  30  characters for the entire
   directory path  string,  and  another  30  for  the  filename.
   AmigaDOS  allows  much  more  than  this.   Please  allow  the
   AmigaDOS maximum length.

   Event Editor
      The event editor does not  ``re-dimension''  its  workspace
   when   you  SELECT  another  sequence to work on, if  the  new
   sequence is shorter than the original one.  Example:  Load the
   TOCCATA  example from your Examples disk.  Edit sequence #1 in
   the event editor.  Scroll to the very  end  of  the  sequence.
   Now  SELECT...  sequence #2 from the menu bar.  When it loads,
   it appears to be blank!  I think you should be seeing the  end
   of sequence #2 at that point.

   Bar Editor
      SELECT a STOP event in your sequence to make it the current
   event.   Now  click  on any of the 3 virtual sliders.  A colon
   (`:') appears to the left of the slider.  Minor bug.

   Librarian
      When receiving a patch,  I  often  see  garbage  characters
   appear   after  the  patch  name  in  the  Librarian  display.
   Sometimes I  even  get  garbage  words  like  ``Velocity''  or
   ``ouch''  that do not appear in the received patch.  I suspect
   that you have forgotten to zero out the name  string  at  some
   point.   Protocol  info:   398 (decimal) byte patch dump, name
   has  length  15,  going  from   bytes   382-396;   charmap   =
   \20\20,\01\40,AZ,\5B\5F,   turning  ASCII  zeroes  into  space
   characters.  (Patch name is stored as 8 characters alternating
   with   zeroes,  so  a  charmap  of  this  sort  is  necessary.
   Otherwise, MUSIC-X interprets the first zero in the name as  a
   string  terminator,  and the name won't print on the Librarian
   display.)

   My configuration is:  Amiga 1000 with 512K CHIP  RAM,  plus  2
megabyte  Starboard II memory expansion.  C.Ltd. 50 megabyte hard
drive and SCSI controller.   Golden  Hawk  MIDI  GOLD  interface.
C.Ltd.  Timesaver  on  keyboard.  Kickstart and Workbench 1.3.  I
use ARP 1.3, a small RAD:, ConMan 1.3, Rez 0.3, and  DMouse  1.20
in the background.  Feel free to ask me for more details about my
setup.

2. Suggestions

   The Amiga Interface
      I want to type ``MUSIC-X myFile.perf'' from the CLI to have
   MUSIC-X  load a performance file when it boots.  The Workbench
   tooltype options are very nice, but please don't neglect  your
   CLI friends.

      Please add an option for MUSIC-X not to  create  icons  for
   the files it saves.

      MUSIC-X  searches  for  ``Default.perf''  in  the   current
   directory  only.   How  about  searching  first in the current
   directory, and then (if no such file exists) in  the  MUSIC-X:
   directory?   That  way,  the  user  doesn't  have to type ``cd
   MUSIC-X:'' every time before he runs the program.

   The File Requestor
      Your file  requestor  is  great,  but  it  is  missing  one
   important thing:  a quick way to move to the parent directory.
   Please add a ``parent'' gadget.

   The Sequencer
      Performances  do  not  save   the   ``Use   Zero   Origin''
   preference.   Saving  this would be nice for people who always
   use a zero origin.

      When merging two sequences, I think MUSIC-X should put up a
   little  sign  that says ``Merging, please wait...'' instead of
   no feedback at all.  I suggest putting the word ``MERGING'' in
   red,  exactly  where  the  ``ERR[xxx]'' messages appear, maybe
   blinking to call attention to itself.

   Both Editors
      Please add a ``return to original  tempo''  gadget  to  the
   PARAMS  requestor.   Suppose  you play a sequence containing a
   programmed tempo change, and  then  you  want  to  replay  the
   sequence.   You  first  have  to  return  the  sequence to its
   original tempo using the tempo slider.  This is  inconvenient,
   especially if you don't remember what the original tempo was!

   The Event Editor
      Please give the event editor menu all of the  same  DISPLAY
   options as the bar editor.

      The most important suggestion:  I'd like  a  more  powerful
   way  to  SELECT  groups of similar MIDI notes.  For example, I
   can't find a way to SELECT all occurrences of  MIDI  note  79.
   This is important for people who use drum machines.  Some drum
   machines hard-wire different drum sounds to  be  triggered  by
   different  MIDI  note  numbers.   If  MUSIC-X could select all
   occurrences of, say, MIDI note 79 in a  sequence,  and  change
   them  all to MIDI note 81, this provides an easy way to change
   which drum sounds get triggered in your drum machine.
      Your event and bar editors,  as  they  stand,  implement  a
   subset  of the commands that would be expected in a relational
   database of MIDI events.  It would be great to see  the  event
   editor turned into an even more powerful relational tool.  How
   about a quick way to do this:  ``select all MIDI notes between
   note number 38 and 45, with velocity less than 97, of duration
   less than 3 seconds, on MIDI channels 6 and 8,  that  are  not
   affected   by   any  pitch-bend  commands.''  Powerful  stuff!
   Perhaps you could make a monster requestor in which  the  user
   selects note specifications, clicks ``OK'', and all notes that
   meet those specificiations get marked.  Maybe this could be an
   external module.

   The Bar Editor
      If you accidentally click your mouse several times  on  the
   graphic  display,  the display refreshes itself multiple times
   (once for every click).  I once  clicked  about  15  times  in
   rapid  succession,  and  then  had to sit there waiting for 15
   refreshes.  It would be nice if there were a button to hit  to
   stop  refreshing  immediately.   It  would  be  even better if
   MUSIC-X  were  smart  enough  to  skip  all  the  intermediate
   (queued) ``refresh'' messages and go directly to the last one.

      Please allow an easy way for a PSEQ event to  take  on  its
   ``true'' duration.  That is, set its duration exactly equal to
   the time between the start of its first  event,  and  its  END
   event.   If  I  want  to  chain several sequences to occur one
   after the other, with the start of the next sequence occurring
   immediately  after the END of the previous sequence, right now
   I have to figure out each sequence's duration by hand.  It  is
   natural, I think, to automate this calculation.

   The Sample Page
      How about  a  way  to  play  the  samples  from  the  Amiga
   keyboard?   Maybe  the  numeric  keys  across  the  top of the
   keyboard  could  play  10  notes  in  the  instrument's  range
   (determined intelligently from the instrument data).

   The Protocol Editor
      The patch name embedded in a Yamaha SPX-90 system exclusive
   dump  is  in  ``nybbelized'' form, but in exactly the opposite
   order that MUSIC-X expects.   In  other  words,  the  LEFTMOST
   nybble  comes  in  the first byte, and the RIGHTMOST nybble in
   the second byte.  Could MUSIC-X have a switch, or a new nybble
   variable  type  `Z'  (like `Y'), to allow it to interpret this
   reversed data?

   The Librarian
      Suppose I have a library loaded, and I decide  to  LOAD   a
   different  one,  but  I  press  CANCEL.   My  original library
   disappears from view!  I think  that  a  ``cancel''  operation
   should  not  do  this.   It  should  leave my original library
   alone, restoring the screen to its exact original setup.

      I have been totally unable to capture  an  ``All  patches''
   dump  from  my  Oberheim  Matrix-12.  In fact, I crash MUSIC-X
   when I try.  This is not surprising, since the Matrix sends  a
   large  amount of data very quickly.  I have never been able to
   capture this data with any Amiga program, so I  have  no  idea
   what  the  format is.  Sigh.  I don't know if there's anything
   you can do about this.  Maybe the  new  serial.device  in  1.4
   will help things?

      When capturing  single  (individual)  patch  data  from  my
   Matrix-12,  LookOut reports read errors about every 3rd or 4th
   time I click RECEIVE.  I am quite confident that  my  protocol
   is  correct,  since it receives the data correctly most of the
   time.

      The combination of colors of the  About MUSIC-X  requestor
   looks pretty bad on the Librarian Page.

   The Manual
      The references to other sections of the  manual,  [see...],
   should have page numbers.

      You should have a larger  tutorial  section  on  using  the
   sequencer.   Also,  The  section on the Protocol Editor should
   have some real examples of using character maps.   This  great
   feature  took me quite a while to understand from the manual's
   explanation.  (And I am a computer  scientist  as  well  as  a
   musician.)

   Miscellaneous Suggestions (some weird)
      How about making the audio output produce an FSK sync tone,
   or  a 24 parts-per-quarternote sync tone?  This would be great
   for people with pre-MIDI drum machines.  Only Amiga  Makes  It
   Possible...!

      The event editor, librarian, and protocol editor  use  some
   numeric  gadgets that do not behave like standard Amiga string
   gadgets.  For example, the ``Patch name length'' gadget in the
   protocol  editor is odd because I cannot use the delete key in
   it.  Instead, I must click on the digit I want to change,  and
   then type the new digit.  Why didn't you use a standard string
   gadget?  It doesn't fit with the rest of the program.  I  hope
   that  your  reason  was not so you could use Right-Amiga-X for
   ``exit'' (it's normally ``erase string'' in a standard  string
   gadget).

      How about a little  editor/module  that  supports  standard
   music  staff  notation,  and a few simple commands like adding
   and deleting notes?

      Please  make  a  freely-distributable  program  that  plays
   MUSIC-X  performances.  It will help advertise MUSIC-X, and it
   will allow people to use MUSIC-X performances  as  part  of  a
   larger multi-media program.

3. Compliments
   Enough complaining... let me tell  you  what  you  did  RIGHT.
Your ``sequence'' model is wonderful!  Finally, a sequencer where
you can have a hierarchy of sequences and  a  ``multi-track  tape
recorder'' simultaneously.  Your model is beautifully general.
   The timing seems to be  rock-solid.   The  program  multitasks
fine,  allowing  you  to  change  settings and save files without
interrupting the sequence  playback.   I  never  thought  I'd  be
saving my sequences to disk while the sequences were playing!
   The PREVIEW button is a great idea.   The  quantizing  options
are wonderfully versatile.  Your handling of the edit buffer, and
the requestor that warns you not to overwrite it (and giving  you
lots  of  choices  what to do instead), are both great.  The STOP
button is an intelligent CUE -- nice!
   Overall, the user interface is just grand  --  very  intuitive
and  pleasant  to  work  with.  Your choices of screen colors are
excellent.  I don't even mind that there is no way to change them
from within MUSIC-X.
   The Protocol Editor is very powerful.  Character maps saved my
butt  a few times.  For example, my Oberheim Matrix-12 stores its
8-character patch name in 16 bytes, with a zero every other byte.
The  first  zero prevents MUSIC-X from printing the patch name on
the librarian screen (it  thinks  it's  a  string  terminator,  I
guess).  So, I made a character map that turned zeroes into space
characters, and everything works great!
   The manual is just short of perfect.   Matt  Nathan's  use  of
mnemonics is very clever:  `Read this as "Output Bank"' and `Think
"C" for "Control"' are little gems.

Questions

   There are some things I just can't figure out how to do.  Am I
missing  something?   If  you  have  time,  I'd really appreciate
answers to these questions.

1.  How do I change the protocol attached to an existing library?
The protocol is  chosen  when  creating a NEW library, but I have
not been able to find a way to change that protocol later.  If  I
go  to the protocol editor, LOAD a  new protocol  instead  of the
old one, and then exit back to the librarian, its protocol hasn't
been changed.

2.  How do I write my own modules,  such  as  patch  editors  and
quantizers,  so  they  can  share  data  with MUSIC-X while it is
running?  I cannot find any mention of this in the manual.

   I hope you find my suggestions useful.   You  have  created  a
great product, and it was worth the wait.

                            Sincerely,

				--- end letter ---

                                                        Dan

 //////////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
| Dan Barrett, Systems Administrator  --  barrett@cs.jhu.edu (128.220.13.4) |
| Dept. of Computer Science, Johns Hopkins University, Baltimore, MD  21218 |
| E-mail addresses:  INTERNET:    barrett@cs.jhu.edu                        |
|                    BITNET:      ins_adjb@jhuvms.bitnet                    |
|                    UUCP:        barrett@jhunix.UUCP   (NOTE NEW ADDRESS!) |
|                    COMPUSERVE:  >internet:barrett@cs.jhu.edu              |
 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////////

nsw@cbnewsm.ATT.COM (Neil Weinstock) (08/29/89)

In article <2382@jhunix.HCF.JHU.EDU> barrett@jhunix.HCF.JHU.EDU (Dan Barrett) 
writes a ton of stuff regarding Music-X.  I'll comment on a few of his comments
and answer a few of his questions.

Item 1:  There is an update to Music-X available from MicroIllusions right now.
	I think it is version 1.03, or something like that.  It fixes the
	serial port problem, and I think it fixes the limitation on the 
	file requester path length.  In order to get the update, send in your
	master program disk and utilities disk (one of the conversion utilities
	has been fixed.)  Obviously, make sure you have backups before you
	send them in.  (Note:  I have not yet gotten my update, so I can't
	comment first hand on it.)

Item 2:  I agree that overall, Music-X is a wonderful package, but it is not
	without some problems.  I find it sorely lacking in certain flavors
	of recording modes, which I have discussed at length with 
	MicroIllusions.  Some of the problems are scheduled for fixing in
	release 2.0, which will be a while, so don't hold your breath.

Now, on to Dan's comments:

>	I have composed the following letter to the author, David Joiner,
>full of suggestions, criticisms and compliments.  If anybody has any
>feedback on my letter, please let me know!

I am posting to the net because I think some of this might be of general
interest.  I assume Dan will see it...

[ ... ]

>   Releasing The Serial Port
>      I think MUSIC-X does not release the serial  port  properly

Known, and fixed in the update.

>   ERR messages
>      I've been getting a lot of ``ERR [xxx]''  messages  to  the
>   right of the free memory gauge.  I suppose these should happen
>   rarely, right?

I get these too.  I ignore them, but would like to know what's going on...

>   File Requestor
>      The File Requestor cannot access  files  in  deeply  nested
>   directories!   It  allows  only  30  characters for the entire

Known, fixed in the update (I think).

[ ... ]

>2. Suggestions
>
>   The Amiga Interface
>      I want to type ``MUSIC-X myFile.perf'' from the CLI to have
>   MUSIC-X  load a performance file when it boots.  The Workbench
>   tooltype options are very nice, but please don't neglect  your
>   CLI friends.

I have also complained about the lack of good CLI support.  I want my default
directories to be used when I invoke from the CLI... then again, I've had
Music-X running continuously for about three weeks now, so it's probably
moot... ;-)

[ ... ]

>   The File Requestor
>      Your file  requestor  is  great,  but  it  is  missing  one
>   important thing:  a quick way to move to the parent directory.
>   Please add a ``parent'' gadget.

They're aware of this.  I was told it'd be fixed in 2.0; maybe if enough
people complain it'll get done sooner...

[ ... ]

>      The most important suggestion:  I'd like  a  more  powerful
>   way  to  SELECT  groups of similar MIDI notes.  For example, I
[ ... ]

Forget something like this before 2.0 (IMHO).  However, it is a very good
idea for a module, assuming a module can do something like this (I believe
it can.)

>   The Bar Editor
>      If you accidentally click your mouse several times  on  the
>   graphic  display,  the display refreshes itself multiple times

There is presently no algorithm for determining when to refresh the display.
It is completely refreshed with almost every mouse click.  I find this
extremely annoying.

>      Please allow an easy way for a PSEQ event to  take  on  its
>   ``true'' duration.  That is, set its duration exactly equal to
>   the time between the start of its first  event,  and  its  END
[ ... ]

That's a nice idea.

[ ... ]

>3. Compliments
>   Enough complaining... let me tell  you  what  you  did  RIGHT.
>Your ``sequence'' model is wonderful!  Finally, a sequencer where
>you can have a hierarchy of sequences and  a  ``multi-track  tape
>recorder'' simultaneously.  Your model is beautifully general.

On the whole, I agree.

>   The manual is just short of perfect.   Matt  Nathan's  use  of
>mnemonics is very clever:  `Read this as "Output Bank"' and `Think
>"C" for "Control"' are little gems.

Here's where I disagree big time.  I think the manual is rather poor.  To
be fair, it's very complete, but as a reference manual it is impossible.
The typesetting doesn't take advantage of any neat DTP things that would make
it easier to spot stuff.  The sections aren't numbered.  The manual is, on
the whole, written at the level of someone who barely knows what the return
key is.  That wouldn't be so bad if there were a section where I could go
for reference and avoid all that, but there isn't.  Use of figures and
diagrams is grossly inadequate.  However, every safety requester is shown in 
its entirety, when those are about the least important thing to see a picture
of.  Each page is first described by listing off every menu item.  I, the
user, at first glance could care less about what's in the menus.  I want to
see a description of everything that's on the screen.  I've got to wade 40
pages into some chapters just to see what a particular screen feature is.

Where you really able to conveniently learn to use the program from this
manual?

On the plus side, the index seems pretty complete.

>Questions
[ ... ]

>2.  How do I write my own modules,  such  as  patch  editors  and
>quantizers,  so  they  can  share  data  with MUSIC-X while it is
>running?  I cannot find any mention of this in the manual.

David is redoing the modules programming interface somewhat, so no programmer
interface specs will be available for a little while yet.  You should
definitely let them know that you're interested in writing modules, though.
I was told they are planning to compile a disk of user-written modules and
distribute that.  If there is a particular module you want to write, let
them know and claim dibs on it.

Patch editors will be done using the patch editor construction set, that will
either be a separate product or an update.  It'll be a while yet, I think.
I can't wait for it; the patch editors included with Music-X, which were
built using preliminary versions of the PECS, look really nice to me.


Hope some of this info is useful.  I have found other bugs, and have other 
comments, but I'll save those for another time.
  ________________    __________________    ____________________________
//                \\//                  \\//                            \\
\\ Neil Weinstock //\\ att!cord!nsw  or //\\ "Oh dear, now I shall have //
// AT&T Bell Labs \\// nsw@cord.att.com \\//  to create more Martians." \\
\\________________//\\__________________//\\____________________________//

hrlaser@sactoh0.UUCP (Harv R. Laser) (08/30/89)

In article <2382@jhunix.HCF.JHU.EDU> barrett@jhunix.HCF.JHU.EDU (Dan Barrett) writes:
>
>Mr. David Joiner
>c/o Microillusions
>17408 Chatsworth Street
>Granada Hills, CA  91344
>
>
>1. Possible Bugs?
>
>   Releasing The Serial Port
>      I think MUSIC-X does not release the serial  port  properly
>   when it exits.  Suppose I invoke MUSIC-X from the CLI and then
>   exit.  When I try to run  other  serial-port  programs  (VT100
>   emulator, and other MIDI programs) they cannot open the serial
>   port.  If I simply try to run MUSIC-X again,  it  CAN  re-open
>   the serial port.  Hmmm.  A warm boot clears up the problem.  I
>   have the source code for the other serial-port programs, so  I
>   know they are trying to open the port legally.
>
Yes.. this is a known bug. The info I got was that Joiner telecomms
with "Online!" which doesn't use the serial.device so he never
noticed the problem. :-/

At any rate, Mike Berro of Microillusions posted to People/Link a
few days ago that there is now an upgrade available to registered
owners of Music-X.  I phoned them and was told to send my original
"Program" and "Utilities" disks and they would be copied over with
the new upgrade/fixed versions of everything and sent back to me no
charge.  So I suggest you (and any other Music-X owners reading
this) do the same.  Make backup copies of those two disks before
mailing them.. they're not copy protected and you'll still have the
programs while your originals are in the hands of the US Postal
Service (eeek!). 

As far as what other known or assumed bugs the upgrade fixes, I
don't have that info handy, but the "reboot to use your modem" bug
was the most important one to me and worth the minor hassle of
mailing the disks just to get THAT one fixed. 

Microillusions' phone number(s) and address are in your Music-X
manual so take it from there.



-- 
| Harv Laser                  |  SAC-UNIX, Sacramento, Ca.  |  
| Plink: CBM*HARV             |  UUCP=...pacbell!sactoh0    |
|   "The human brain is the only computer made of meat"     |

dre@myrias.com (Duane Eitzen) (08/30/89)

I am also very impressed with Music-X. Since I am still putting
together my MIDI system, I haven't actually used it for anything
but playing the Amiga sound channels, but I think I have gotten
a good feel for how it works.

The one thing I would really like is to make the bar editor
easier to use for composition (not just editing). In particular,
I would like to enter events with duration (such as notes) by
pressing the mouse button at the start of the event and releasing
the mouse button at the end. For me, the perfect interface for this
component would resemble a paint program. I realize that composition
was not the intended use of the bar editor, but I think that this
approach would not impare event editing, and would provide a very
usefull new dimension to Music-X.

dre.