home *** CD-ROM | disk | FTP | other *** search
/ Otherware / Otherware_1_SB_Development.iso / amiga / misc / amigalib.lha / edplayer.lha / edplayer / EdPlayer1.0.DOC < prev    next >
Text File  |  1991-08-01  |  46KB  |  844 lines

  1.  
  2. ============================================================================
  3.                          EdPlayer version 1.0
  4.                              by Ed Mackey
  5. ============================================================================
  6.  
  7. Hello, and welcome to EdPlayer!!
  8.  
  9. First, distribution:  EdPlayer is shareware.  You can distribute it by any
  10. means, including BBSs, PD disks, and FTP services like AB20, etc.  You can
  11. also distribute EdPlayer with your own programs, as long as you include a
  12. note that EdPlayer is freely distributable, and do not make any copyright
  13. claims on EdPlayer.  If you want to distribute EdPlayer with a commercial
  14. package, please contact me first (address at end of document).  I would
  15. LIKE for you to keep this document with EdPlayer whenever possible, because
  16. many important things are explained here (like EdPlayer's ARexx interface)
  17. that aren't explained anywhere else.  However, if you MUST distribute
  18. EdPlayer without this file, you may.  Also, note that if you distribute the
  19. kd_freq.library, you MUST keep its DOC file with it.  This is explained
  20. later in this file, in the "Buttons" section under "OPEN", the only button
  21. that uses the kd_freq.library.
  22.  
  23.                     EdPlayer is copyright 1991 Ed Mackey.
  24. ----------------------------------------------------------------------------
  25.  
  26. BUT, what IS it??
  27.  
  28. EdPlayer is a music player.  It can play both NoiseTracker modules and
  29. MED version 3.10 (or greater??) modules.  Note that SOME MED 3.00 modules
  30. will work also, however, others will show up as "Unknown or corrupt module"
  31. because MED 3.00 had a serious bug in the module-saving routines (it didn't
  32. word-align the chunks sometimes, and caused other MED players to GURU, but
  33. EdPlayer has a check for this and will only report a "corrupt module"
  34. error).  To fix a MED 3.00 or earlier module, simply load it into MED 3.10
  35. and save it back out as a MODULE.  As far as NoiseTracker modules go, I
  36. have an early version of the NoiseTracker player (the same one I used in my
  37. game MegaBall.  The source code said "Mahoney & Kaktus, Hallonsoft" and is
  38. freely distributable to the best of my knowledge).
  39.  
  40. What EdPlayer can be used for:
  41.  
  42. I had MANY uses in mind as I was designing EdPlayer.  I wanted a music
  43. player that could be used directly for entertainment, or multitask while
  44. the user did word-processing or whatever, and also be able to run from both
  45. ARexx and CLI scripts for use in IFF slide shows, presentations with
  46. background music (AmigaVision, DVideo III, Director 2, etc.), music for
  47. games written in AmigaBasic or other languages for which there are no
  48. music-playing routines available, and basically any situation at all where
  49. someone wants their Amiga to play some tunes.   ;->
  50.  
  51. ----------------------------------------------------------------------------
  52. Starting EdPlayer:  There are four ways to start EdPlayer...
  53.  ---> (1) Workbench Icon.        Brings up some CD-player like controls.
  54.       (2) CLI: "run EdPlayer"    Also brings up the CD controls.
  55.       (3) CLI: "run EdPlayer -i" Brings up a tiny "iconified" WB window.
  56.       (4) CLI: "run EdPlayer -h" NO user interface, ARexx port ONLY!
  57.  
  58. Note that I recommend using the "runback" command rather than "run" if you
  59. have it, so that the CLI window itself can close before EdPlayer does.
  60. NOTE: A simmilar effect can be achieved with "run <NIL: >NIL: EdPlayer".
  61.  
  62. Note that ALL 4 startup methods open the EDPLAYER message port, which can
  63. accept instructions from AREXX (if you have it) as well as the "telled"
  64. command explained below.
  65. ----------------------------------------------------------------------------
  66.  
  67. OK, now that you know how to run it, you can start playing with it even
  68. before you finish reading these DOCs.  This is because there is an ONLINE
  69. HELP FUNCTION that is self-explanatory.  However, this function includes a
  70. lot of scrolling text, and so when you get tired of reading that, you can
  71. come back here because ALL OF THE ONLINE HELP IS ALSO AVAILABLE HERE IN THE
  72. DOCs.  Plus, some features, like the AREXX port, are ONLY described here in
  73. the DOCs!!
  74.  
  75. ============================================================================
  76.  
  77.               A N D   N O W ,   T H E   B U T T O N S :
  78.  
  79. ============================================================================
  80.  
  81. If you're reading this, I hope you have tried playing with EdPlayer a bit. 
  82. You know that there are a lot of buttons on the main panel that appears
  83. when you run the program.  Here they are, left-to-right, slowly working
  84. downward from the top.  (There are no keyboard equivalents for any of
  85. these buttons in this release.  You'll have to use your mouse.  Sorry).
  86.  
  87. POWER:  This exits EdPlayer rather immediately.  No "Are you Sure?" prompts
  88.         or anything, because they sometimes annoy me.  Of course, all the
  89.         proper shutdown routines are run, such as unloading the current
  90.         song, etc.  Note that the close gadget in the "iconified" WB window
  91.         has this same function (see ICONIFY below).
  92.         (ARexx/telled users: see KILL, SELF in ARexx section)
  93.  
  94. "T":  Tempo control.  NoiseTracker modules can have different tempos
  95.       depending on whether you are in PAL or NTSC mode.  This button
  96.       toggles between the two tempos, with the current status appearing in
  97.       the LED display.  Note that this option is memorized "per song" in
  98.       program mode (see PRG below).
  99.       (ARexx/telled users: see PALM, NORM, NTSC in ARexx section)
  100.  
  101. HELP:  This is the "Online Help Function."  I call it "online" because you
  102.        can get help while you are using EdPlayer.  (Of couse, this being an
  103.        Amiga, you can multitask and get help from the DOCs while you are
  104.        using EdPlayer too.  Oh, never mind.)  Anyway, you click here to
  105.        turn help on, then click on the buttons you want help with, and then
  106.        click here again to turn help back off.
  107.  
  108. "|<":  EJECTs current song, moves to previous program selection, and
  109.        displays title of that selection.  You can use this to flip through
  110.        a program, select where you want to start, and press PLAY to start.
  111.        (see PRG below).
  112.        (ARexx/telled users: see PREV in ARexx section)
  113.  
  114. ">|":  Same as "|<" above, but moves to NEXT prg selection rather than the
  115.        previous one.
  116.        (ARexx/telled users: see NEXT in ARexx section)
  117.  
  118. PRG:  OK, now it's time to explain programs.  A "program" is a list of
  119.       module filenames that EdPlayer can memorize, along with two options
  120.       per name (PAL / NTSC and FADE / NO FADE).  When such a list exists,
  121.       EdPlayer will attempt at the end of each song to load and play the
  122.       next song in the program, using the options for that song.  The two
  123.       buttons listed above this one scroll through the program.  Sorry, but
  124.       in this version there is no "Random play" function.  If someone
  125.       really wants it, just let me know!  Now about the PRG button itself:
  126.       Be careful with this button!!  It's main use is for ERASING the
  127.       current program!  This is because CREATING programs is more easily
  128.       done with the OPEN button described below.  If EdPlayer has a program
  129.       in memory, the "PRG" LED will light up on the display.
  130.       (ARexx/telled users: see JUKE, LOAD in ARexx section)
  131.  
  132. EJECT "^":  Unloads current song, freeing lots of CHIP memory.  Does NOT
  133.             erase current program.
  134.             (ARexx/telled users: see EJEC in ARexx section)
  135.  
  136. OPEN:  For this one, you NEED the kd_freq.library version 2.0 or higher in
  137.        your LIBS: directory!  This library might have come with the
  138.        EdPlayer archive, because its copyright notice is as follows:
  139.  
  140. >>If you want to use 'kd_freq.library' in any freely distributable program,
  141. >>you may include the 'kd_freq.library' file as long as you also include the
  142. >>'FR_User.DOC' file and mention 'Copyright 1990  Khalid Aldoseri'.
  143.  
  144.        Oh yes, the author of this library, Khalid Aldoseri, can be reached
  145.        at the following address:
  146.                         Khalid Aldoseri
  147.                         P.O. Box 505
  148.                         Manama, Bahrain.
  149.                         Fax: (973) 694777
  150.                       Compuserve 75166,2531
  151.        And I almost forgot to mention that this library is Copyright 1990
  152.        Khalid Aldoseri.  Now that you have the kd_freq.library, you can use
  153.        the EdPlayer OPEN button to bring up it's file requester.  With this
  154.        requestor, you should select the filename of a module you want to
  155.        hear.  If there is no program, the song will load and begin to play.
  156.        However, if there IS a program (even an empty one created with PRG),
  157.        the song's name will be added to the program.  NOTE THAT A MUCH
  158.        EASIER way to make programs is with the file requester's "Extended
  159.        Select" feature.  To use this, hold down the SHIFT key and click
  160.        several module filenames.  As you click them, they light up, and
  161.        when you press "OK", ALL of the filenames will be added, in
  162.        alphabetical order, to the END of the current program.  If no
  163.        program exists when you use this feature, one will automatically be
  164.        created.  To start any program, press PLAY.
  165.        (ARexx/telled users: see LOAD, PLAY, JUKE in ARexx section)
  166.  
  167. PLAY "|>":  This button has many functions.  If no song is loaded, it will
  168.             try to get a module name from the program and load & play it.
  169.             If a song IS loaded, but not playing, it will ignore the
  170.             program and play the current song.  If a song is ALREADY
  171.             playing, this button will PAUSE it (either immediately or
  172.             fade-to-pause, see FADE).  Finally, if a song is paused, and
  173.             you press this, the song will continue, either immediately or
  174.             fade-back-in (see FADE again).
  175.             (ARexx/telled users: see PLAY, PAUS, CONT in ARexx section)
  176.  
  177. STOP:  This button has a square on it.  It stops the music IMMEDIATELY,
  178.        regardless of the state of the "fade" light.  If you want a
  179.        fade-out, fade to a PAUSE and then press STOP.  I made it this way
  180.        because I found that in practice, when people press STOP, they just
  181.        want the music to STOP right there because they're debugging or
  182.        something, and fading is mostly for song changes in a program.
  183.        NOTE that you can NOT continue after a STOP!  You must start again
  184.        from the beginning of that song.  If you wanted to continue, you
  185.        should have pressed PAUSE (a function of the PLAY button above).
  186.        (ARexx/telled users: see STOP, FADE in ARexx section)
  187.  
  188. LOOP:  This button has a little curved arrow on it, signifying a loop.  It
  189.        will toggle on and off the similar-looking LOOP LED on the display.
  190.        When this LED is lit, the current song will loop to the beginning
  191.        (or wherever the composer decided it would loop to) and keep
  192.        playing.  In program mode, each song will come to an end, but the
  193.        whole program will loop when it runs out of titles.  When this LED
  194.        is NOT lit, the current song will end (either immediately or
  195.        fade-to-stop, see FADE) and in program mode, the program will end
  196.        when it runs out of titles (but it won't be erased).  Note that
  197.        certain MED modules have a special "STOP" command ($FFE) encoded
  198.        into the end of the song, and these modules will NEVER LOOP,
  199.        regardless of this button.
  200.        (ARexx/telled users: see LOOP, AUTO in ARexx section)
  201.  
  202. FADE:  This button has a triangle that is supposed to signify volume fading
  203.        away (sort of).  Whenever you use PAUSE or CONTINUE, or when the
  204.        song reaches an end just before a program change, the song can
  205.        either stop/start immediately, or gradually fade out/in.  This
  206.        button toggles on and off the similar-looking FADE LED on the
  207.        display.  When this LED is lit, EdPlayer will try to fade the song
  208.        as mentioned.  When this LED is dark, EdPlayer will just do instant
  209.        stops and starts.  If a song comes to an end, and LOOP is off (or
  210.        program is on) and FADE is on, the song will LOOP anyway, but begin
  211.        fading to a stop, and the program change will occour after the fade.
  212.        Note that this button has NO effect on (1) the STOP button or (2)
  213.        MED modules that have the special STOP effect ($FFE) encoded into
  214.        them.  However, these MED modules WILL trigger program changes, of
  215.        course.  SETTING the fade rate:  see the "PAUS" command in the
  216.        ARexx section!!
  217.        (ARexx/telled users: see PAUS, LOOP, AUTO, FADE in ARexx section)
  218.  
  219. FILTER:  This button looks like a dot with little waves coming out of it.
  220.          It has a similar-looking FILTER LED on the display panel that
  221.          shows the status of the Amiga's audio filter, which is also
  222.          displayed by your Amiga's so-called "power" LED.  I have no clue
  223.          why the Amiga's power LED does this.  If anyone knows please tell
  224.          me.  Anyway, this button turns it on and off, however, this is THE
  225.          most useless feature in all of EdPlayer, because the filter is
  226.          also automatically handled by the music playing routines.
  227.          (ARexx/telled users: You can't blink the filter!  Ha, ha!!
  228.           You'll just have to live without this oh-so-useful function.)
  229.  
  230. ICONIFY:  This button looks like a WB 1.3 back gadget, but it's NOT the one
  231.           in the title bar.  It gets rid of the CD-player like controls,
  232.           saving a bit of CHIP mem, and produces a tiny "iconified" window
  233.           on the WB screen.  This window has only two options: The close
  234.           gadget will exit EdPlayer (see Power above), and the right mouse
  235.           button, if pressed when the window is selected, will bring back
  236.           the CD-player look.  Of course, all the EdPlayer functions remain
  237.           in effect in this mode, like program changes and ARexx messages. 
  238.           Plus, this mode saves a bunch of CPU time, because EdPlayer can
  239.           sleep rather than updating the display every video cycle.  If you
  240.           REALLY need to conserve memory, you should hide EdPlayer
  241.           altogether and then close the WB screen, using one of the ARexx
  242.           commands and then some utility for closing WB:
  243.           (ARexx/telled users: see MENU, ICON, HIDE in ARexx section)
  244.  
  245. DISPLAY:  This button looks like two calculator 8's.  It toggles between
  246.           four display modes, described in the Display section below.
  247.  
  248. MIDI:  This button is supposed to look like a MIDI plug.  Sort of.  Anyway,
  249.        it toggles MIDI on and off.  The MIDI LED on the display shows the
  250.        current status of MIDI.  When the light is off, your serial port is
  251.        free for things like downloading, etc., and when the light is on,
  252.        the serial port is allocated for MED modules to send MIDI data with.
  253.        Note to midi.library users!!!!  See "MIDL" in ARexx section!
  254.        (ARexx/telled users: see MIDI, MIDL, NOMI in ARexx section)
  255.  
  256. VOLUME SLIDE:  Well, what do YOU think it does?  It controls the volume of
  257.                a piece of music.  Also, it might NOT be such a good idea to
  258.                fuss around with this thing while the music is already
  259.                trying to FADE in/out of its own accord due to the FADE LED.
  260.                (ARexx/telled users: see VOLU in ARexx section)
  261.  
  262. INFO BAR:  You can click in the space between EdPlayer's "feet" to display
  263.            the name and author info of the current song.  Also, this space
  264.            shows other useful stuff like the online help, and the version
  265.            info when you first start EdPlayer or when you come out of an
  266.            Iconify or HIDE.  NOTE TO MODULE AUTHORS:  If you want to create
  267.            some "author info" to appear in this bar whenever your module
  268.            plays, there are 2 ways:  (1) For NT-MODs:  Create some
  269.            instrument names preceded by a "#".  Each instrument name in the
  270.            NT-MOD that starts with a # will be linked together (add your
  271.            own spaces!) and displayed in the bar.  (2) For MED MODs:
  272.            Create an "annotext" as the MED documentation describes.
  273.            SPECIAL EFFECTS:  EdPlayer can handle some neat effects in the
  274.            author info of a module (NT OR MED).  These effects all start
  275.            with a <`> mark, NOT to be confused with the more ordinary <'>
  276.            mark.  PLEASE NOTICE the difference between ` and ' !!!!
  277.            The ` key, on my American keyboard, is in the top-left, just
  278.            under the ESC key.
  279.            Here are the effects:  (lowercase letters only!)
  280.                      `s  =  SLOW.  Text will scroll at 1/4 normal speed.
  281.                      `n  =  NORMAL.  Text resumes normal scroll speed.
  282.                      `f  =  FAST.  Text goes THREE TIMES normal speed!!
  283.  
  284.                      `r  =  RED.  Text from here on will be red.
  285.                      `y  =  YELLOW
  286.                      `g  =  GREEN
  287.                      `t  =  TAN   (EdPlayer's tanish color used on buttons)
  288.                      `p  =  ICKY, ICKY PURPLE!!
  289.                      `w  =  WHITE, the default.
  290.  
  291.                      ``  =  ` (if you really want a ` mark to appear).
  292.  
  293.            To use any of these effects, just insert them in the author text
  294.            of your module.  Note that using a ` mark at all will FORCE the
  295.            text to scroll, even if it was short enough to fit all on the
  296.            lo-res screen at once (NOT LIKELEY!!).
  297.  
  298. ============================================================================
  299.  
  300.                            L E D   D I S P L A Y
  301.  
  302. ============================================================================
  303.  
  304. Ah, such a complicated, confusing display.  Not really!  It's pretty simple
  305. when you break it down.
  306.  
  307. OK, I'm going to start in the BOTTOM-LEFT, and go RIGHT.  You'd better be
  308. looking at the display while you're reading this (I'm looking at it while
  309. I write it)!  First, in the bottom-left, you see the PRG LED.  It's
  310. probably dark, so look very closely.  It only lights up if you have a
  311. "program" active (see PRG in the button section above).  Next, to the right
  312. of PRG, is a little bent arrow.  This is the LOOP LED (see LOOP in the
  313. button section).  To the right of that is the FADE LED which, by default,
  314. is lit up when EdPlayer starts (see FADE in the button section above). 
  315. Then there is the FILTER LED (again, see FILTER above).  Then there are two
  316. LEDs that say "PAL" and "NTSC".  When EdPlayer starts, whichever mode you
  317. are in should be lit up.  You can change this for tempo correction of
  318. NoiseTracker modules, but they BOTH go dark for MED modules which need no
  319. such correction.  To change it, see "T" (Tempo) in... you guessed it... the
  320. button section, above.
  321. ----------------------------------------------------------------------------
  322. AND NOW, THE LEDs which are *NOT* explained in the button section, above.
  323.                       YEAH!!
  324.  
  325. To the right of PAL/NTSC you see something like a four-bar equalizer.  As
  326. the Amiga has four built-in voices, it shouldn't be too hard to figure out
  327. what this does.  Fun to watch when playing a song!  To the right of that,
  328. you see a few LEDs (we're now as far right as we can go)!  The "NT-MOD"
  329. will light up when EdPlayer has a NoiseTracker module loaded, and
  330. "MED 3.10" will light up when there is a MED module loaded.  "PAUSE" will
  331. light up when in pause mode, and will BLINK when EdPlayer is FADEing to a
  332. pause.  The "MIDI" light is special:  The whole MIDI thing lights up when
  333. MIDI (direct or midi.library) is active, BUT, when a song is playing, the
  334. five red dots (representing MIDI prongs on the end of a MIDI cable) will go
  335. dark again, and BLINK as MIDI messages are passed out of EdPlayer!  I think
  336. this is a neat effect during MIDI songs.
  337. ----------------------------------------------------------------------------
  338. And finally, the digits.  These digits are controlled by the "Display"
  339. button (which looks like two calculator 8's) and have FOUR MODES.
  340.  
  341. MODE 1:  Below the digits you see TRACK, POS, and TOTAL.  When a song is
  342.          loaded, it's current position will be displayed above "POS",
  343.          with the total number of positions being displayed above "TOTAL."
  344.          Above "TRACK" you may see a program number, if this song is
  345.          part of a program.  SPECIAL CASE:  If you are in a program, but no
  346.          song is currently loaded, the "POS" will disappear, allowing
  347.          "TRACK" and "TOTAL" to work together, displaying the current and
  348.          total number of songs in the program, respectively.
  349.  
  350. MODE 2:  In this mode, you see LINE, POS, and PATT below the digits.  The
  351.          "Pos" light is exactly the same as in mode 1, displaying the
  352.          song's position.  The "LINE" shows a much more exact position
  353.          inside the POS itself, and "PATT" shows the current pattern
  354.          number being displayed.  This mode is for people who like to
  355.          follow the progress of their songs through the player, and also
  356.          for people like myself who just want to see all the busy, changing
  357.          numbers going on.
  358.  
  359. MODE 3:  This mode just displays your Amiga's system time.  You can
  360.          distinguish this mode by the "AM" or "PM" that lights up.  To set
  361.          the time, just use the AmigaDOS "Date" command, or some other
  362.          utility.  Actually, if you have a battery-backed-up clock in your
  363.          Amiga, the time should already be set from your startup-sequence
  364.          via the "SetClock Load" command.  Why am I explaining this?!
  365.          Go read your Amiga's manual if you're confused!
  366.  
  367. MODE 4:  This mode just displays the system date, in MONTH, DAY, YEAR
  368.          format.  You can distinguish this mode from the others because NO
  369.          funny LEDs like "Track" or "AM" or even ":" or "/" come on.
  370.          To set the date, see MODE 3 above.
  371.  
  372. Well that about wraps it up for the LED display.  Oh yes, if EdPlayer tries
  373. to display a number greater than 99, two dashes "--" should appear instead.
  374. Also, the two dashes appear above "TRACK" when there is a program, but no
  375. selection in the program is "current".  Pressing PLAY at this point will
  376. move the current selection to 01 if necessary before loading & playing.
  377.  
  378. Note that there is NO LIMIT on the number of songs in a program!!  NOT 99,
  379. NOT 65536, OR ANYTHING LIKE THAT!  This is because I used Amiga exec's
  380. wonderful doubly-linked lists to handle the list of names.  SO, you can
  381. keep adding names to a program until your whole Amiga's memory is full of
  382. nothing but filenames, and you may not have enough memory left to actually
  383. load a song, but you will NEVER get a "Too many names in Program" error. 
  384. Well, actually, if the memory allocation for the filename storage fails,
  385. you can get an out-of-memory error from EdPlayer, but if you're THAT close
  386. to being out of memory, you're probably headed for a GURU real soon!
  387. Anyway, just thinking about typing all those millions of filenames makes my
  388. fingers hurt!
  389.  
  390. ============================================================================
  391.  
  392.                   A R E X X / T E L L E D   S E C T I O N
  393.  
  394. ============================================================================
  395.  
  396. EdPlayer has a special message port.  This port is more than an ARexx port,
  397. because it can accept both ARexx messages and special "EdPlayer" messages
  398. in the same port.  The reason for this is that some unfortuneate people
  399. still don't have ARexx!  What are you guys waiting for??
  400.  
  401. Anyway, included in this archive are two programs and their respective
  402. source codes, called "Telled" (Telled.asm) and "cteled" (cteled.c).  The
  403. two are almost identical:  Telled was written in Assembly, being as SMALL
  404. as possible, for easy use in script files.  Cteled was written in Aztec C,
  405. and is somewhat larger because it actually returns error messages on the
  406. screen.  Both of these programs transmit the special "EdPlayer" messages so
  407. that ARexx is not required.  Their source codes are provided in case you
  408. want to write your own programs that transmit these messages.  However, it
  409. is STRONGLY RECOMMENDED that you look up in your ARexx manual the proper
  410. way of sending true ARexx messages, so that you know how to send messages to
  411. other ARexx applications, not just EdPlayer.
  412.  
  413. For those of you making script files:  If you have ARexx, you'll almost
  414. certainly want to make ARexx scripts instead of CLI scripts.  For that,
  415. use an "address 'EDPLAYER'" type command.  Again, see your ARexx manual for
  416. more details (Are they giving out ARexx manuals with new WB 2.0?  I sure
  417. hope so!  Will someone with WB 2.0 please tell me how much ARexx 
  418. documentation came with it?)  ANYWAY, for you people without ARexx, you're
  419. stuck making CLI scripts!  For this, use "telled" or "cteled" as described
  420. here:  NOTE!: the parameters are different.  Telled does NOT use quotes,
  421. while cteled DOES:
  422.  
  423. CORRECT:
  424.      >>>>   telled PLAY mod.cream of the earth
  425. ;Note that telled NEVER needs any quotes no matter how many spaces are
  426. ;in the line.
  427.  
  428.      >>>>   cteled "PLAY mod.cream of the earth"
  429. ;Note that cteled NEEDS quotes, and all parameters go in the SAME
  430. ;set of quotes, because EdPlayer will parse it, NOT cteled.
  431.  
  432. ;In the above two examples, note that the example command "PLAY" is
  433. ;UPPER CASE!  This is VERY IMPORTANT, because EdPlayer will return
  434. ;syntax errors for lower- or mixed-case commands.
  435.  
  436. INCORRECT:
  437.             telled "PLAY mod.test module"   ;telled NEVER needs quotes
  438.                    X                    X
  439.  
  440.             cteled "PLAY" "mod.test module" ;put ALL in one set of quotes
  441.                         X X
  442.  
  443.             telled play mod.test module  ;commands (PLAY) must be in CAPS!
  444.                    XXXX
  445.  
  446. Well, I hope you can get the hang of that.  There should be some example
  447. scripts in the archive, for more examples of sending commands.
  448.  
  449. ----------------------------------------------------------------------------
  450.  
  451. Now it's time for a complete list of commands.  Note that you may give ANY
  452. of these commands to EdPlayer by (1) using the CLI to issue "telled" or
  453. "cteled" as shown above, or (2) send the commands via ARexx to the ARexx
  454. port "EDPLAYER" (all caps).
  455.  
  456. I'll list the commands in the order they were created.  Note that each one
  457. is FOUR LETTERS in ALL CAPS.  Any needed parameters should follow the
  458. command separated from it by ONE SPACE.
  459.  
  460. Parameters in [<brackets>] are optional.
  461.  
  462. Parameters in <these things> are required!
  463.  
  464. LOAD <filename>
  465.        This command is used to load a module into EdPlayer.  EdPlayer
  466.        automatically figures out what module type it is, but does not yet
  467.        start to play it.  This command can NOT be used with programs!  It
  468.        erases the current program.  If you want to use programs, see JUKE
  469.        below.  Anyway, LOAD will wait until the module finishes loading
  470.        before it returns, so it can report if there was an error or not.
  471.        Note:  ALWAYS use a FULL PATH with LOAD, because the current
  472.        directory of EdPlayer may not match the current directory of the
  473.        program sending the command.
  474.  
  475. PLAY [<filename>]
  476.        This command can be used with or without the parameter.  If it is
  477.        given with no parameter, it will attempt to play the current song. 
  478.        If there is a parameter, it will call LOAD first, and then PLAY.  
  479.        This command will wait for the module to load, so it can report
  480.        errors like LOAD does, but it will return once the song begins to
  481.        play.  Note:  This is NOT the same as the PLAY button on the CD,
  482.        because there is no PAUSE feature here, and neither is there
  483.        auto-loading from the current program.  For these features,
  484.        see PAUS, CONT, and NEXT.
  485.  
  486. STOP
  487.        Stops the music immediately, just like the STOP button.
  488.  
  489. EJEC
  490.        EJECts the current song, un-loading it from your CHIP mem.
  491.        (Just like the EJECT button!)
  492.  
  493. VOLU <volume>
  494.        Sets the music's volume, and affects the volume slide on the CD
  495.        player panel.  <volume> can be an integer from 0 to 64.
  496.        see FADE
  497.  
  498. PAUS [<rate>]
  499.        This will pause the music.  If there is no parameter, the music will
  500.        pause immediately.  If there is a <rate>, then the music will fade
  501.        to a pause.  Common <rate>s are:  1 = Very slow, 2 = slow,
  502.        4 = initial default fade rate from CD panel, 8 = medium fast, 16 =
  503.        fast. Integers from 1 to 32 usually work OK.  NOTE: Entering a new
  504.        PAUSE rate may not affect the end-of-song fade-out rate, BUT, it
  505.        WILL set a new default for the panel's rate for everything.  So next
  506.        time someone uses the panel to fade something, it will happen in the
  507.        last-used <rate>.  This side-effect on the panel goes for ALL
  508.        EdPlayer commands that use <rate>, such as CONT, AUTO, FADE, etc.
  509.        It is, in fact, the ONLY way to set the panel's fade rate!  Maybe
  510.        in future versions there could be a slider or something so that the
  511.        rate can be set from the panel itself?....
  512.        see CONT.
  513.  
  514. CONT [<rate>]
  515.        This will make the music continue, if it has been PAUSed.  If no
  516.        <rate> is given, the rate from the last PAUS will be used.  For a
  517.        description of <rate>s, see PAUS.
  518.  
  519. FADE [<rate>]
  520.        This is for fading the song to a STOP.  You cannot continue after
  521.        this!!  The <rate> works like in PAUS, except that if it is not
  522.        specified, it defaults to 4, taking the panel's rate to 4 along
  523.        with it, probably.  (Yet another feature that needs testing!)
  524.  
  525. AUTO [<rate>]
  526.        This command is for automatically getting a song (or program) to
  527.        stop at the end (this is the default when EdPlayer starts).  If no
  528.        <rate> is specified, the song will stop immediately when it reaches
  529.        the end, otherwise, the song will loop and start to fade to a stop
  530.        at the specified <rate>.  During programs, it will set the fade-out
  531.        rate at the end of each song, as well as telling the program not
  532.        to loop.  If you set this rate but still want your program to loop,
  533.        just issue a LOOP command afterwards.  For a descripton of <rate>s,
  534.        see PAUS.
  535.  
  536. LOOP
  537.        The current song or program will loop and keep playing, instead of
  538.        stopping, when it reaches the end.  This is the opposite of AUTO.
  539.  
  540. KILL
  541.        This has the same effect as pressing the "Power" button:  The
  542.        current song STOPs, gets EJECted, the program is erased, and then
  543.        EdPlayer exits the system, all very quickly.  It's a good idea to
  544.        ask the user if he/she wants this before you send a KILL command.
  545.  
  546. JUMP <position>
  547.        This is an interesting command.  It tells EdPlayer that on the next
  548.        position change (a position currently shows up as "POS" on the
  549.        CD panel), the music should jump to the specified position rather
  550.        than just proceeding to the next one.  My brother created a perfect
  551.        example of what this can be used for:  He wrote a module (in MED)
  552.        that had several sections, each section ending in a $B command for
  553.        looping.  Then he turned EdPlayer's LOOP on, and in a DeluxeVideoIII
  554.        presentation, had EdPlayer start playing this song.  Of course, it
  555.        got caught in the first looping section.  But then, as the
  556.        presentation continued (it was more like a game actually), he sent
  557.        JUMP commands to EdPlayer to play the different sections.  As the
  558.        user moved from one part to the next, the music changed to match the
  559.        current place in the game.  It was a really neat effect.  Anyway, if
  560.        this DVideo game ever becomes playable, I'm sure he'll distribute
  561.        it....
  562.  
  563. SELF [<rate>]
  564.        This command works exactly like AUTO, except that at the end of the
  565.        song's fade-out, EdPlayer KILLs itself (exits the system).  I don't
  566.        think I ever updated this command for use with programs, because
  567.        quite frankly I never found a use for it myself.  If you use it, and
  568.        want it updated, tell me!  (SELF stands for SELF-destruct)
  569.        (Updating would mean having it wait for the end of a program, rather
  570.        than the end of a song, before the self-destruct.)
  571.  
  572. NORM
  573.        This command is for controlling the tempo correction on NoiseTracker
  574.        modules.  It sets it back to NORMal, with no correction.
  575.        see NTSC, PALM
  576.  
  577. NTSC
  578.        This command is like NORM, but if EdPlayer thinks your machine is
  579.        running in PAL Mode, it will try to make NT modules sound like they
  580.        are being played at NTSC tempo.  If you execute NTSC on an NTSC
  581.        machine, EdPlayer should automatically call NORM instead.
  582.        see NORM, PALM
  583.  
  584. PALM
  585.        (PALM = PAL Mode)  This command is the opposite of NTSC:  If you
  586.        have an NTSC machine, EdPlayer will try to make the modules sound
  587.        like they are being played at PAL tempo.  If you call PALM on a PAL
  588.        machine, EdPlayer should do a NORM instead.
  589.        see NORM, NTSC
  590.  
  591. MENU
  592.        This command will bring up EdPlayer's CD-like control panel if it's
  593.        not visible, and redraw it if it is.  The EdPlayer version
  594.        information will be re-displayed.
  595.        see ICON, HIDE
  596.  
  597. ICON
  598.        This command will close the CD display and create the iconified WB
  599.        window that also appears when someone presses the "ICONIFY" button
  600.        or starts EdPlayer with the -i option.  Selecting this WB window
  601.        and pressing the right mouse button will bring back the CD panel.
  602.        see MENU, HIDE
  603.  
  604. HIDE
  605.        This command will remove EdPlayer's user interface altogether, as if
  606.        you had started EdPlayer with the -h option.  This allows WB to be
  607.        closed if necessary, but is not really recommended because the user
  608.        has no way to undo this using the mouse alone.  It can only be
  609.        undone with the MENU or ICON commands, above.
  610.        see MENU, ICON
  611.  
  612. MIDI
  613.        This is for direct MIDI on MED modules.  If any midi.library
  614.        resources have been allocated, they are deallocated and the library
  615.        is closed.  Then, EdPlayer tries to allocate the serial port for
  616.        direct MIDI output, using the default MED MIDI routines.  This is
  617.        the mode that the MIDI button on the panel uses.  Safe to call even
  618.        when a module is playing, because a playing MED module will be
  619.        paused VERY briefly during the allocation & init of the MIDI stuff.
  620.        see NOMI, MIDL
  621.  
  622. NOMI
  623.        NO MIdi.  Deallocates any and all MIDI-related resources, such as
  624.        the midi.library or serial port.  Safe to call even when a module
  625.        is playing.
  626.        see MIDI, MIDL
  627.  
  628. MIDL [<midi_destination>]
  629.        MIDi.Library.  If you own the midi.library by Bill Barton, you can
  630.        use this command to take over MED's MIDI output:  Instead of
  631.        allocating and directly controlling the serial port, EdPlayer will
  632.        attempt to open the midi.library and create a "midi source" called
  633.        EDPLAYER.  Then, if there is a parameter, EdPlayer will try to make
  634.        a "Midi Route" from its source to a destination of the name
  635.        specified in the parameter.  This means that if you do NOT give a
  636.        parameter, you must create your own route with a Patch Bay before
  637.        anything can happen.  The "standard" use of this command would be
  638.        "MIDL MidiOut" because MidiOut is the standard midi.library output
  639.        to the serial port.  However, there are more useful options if you
  640.        are multitasking with other applications that use midi.library, and
  641.        want to recieve MIDI data from EdPlayer.  For instance, if you had a
  642.        MIDI monitor called "MidiMon", you could send Edplayer a
  643.        "MIDL MidiMon" to monitor EdPlayer's MIDI output.  Like the other
  644.        MIDI commands, it is safe to call MIDL even when a module is
  645.        playing, and MIDL works differently based on what resources are
  646.        already allocated.  For instance, if the serial port is allocated
  647.        when you call MIDL, it will be dumped so that midi.library can open.
  648.        Also, if midi.library was ALREADY open, MIDL won't close or re-open
  649.        it or the EDPLAYER midi_source.  It will, however, erase the old
  650.        midi route and make a new one, because routes can become useless if
  651.        their destination disappears.
  652.        NOTE that MIDL is CASE-SENSITIVE!  Use MidiOut, not MIDIout etc.
  653.        see MIDI, NOMI
  654.  
  655. PREV
  656.        EJECts current song, moves to previous song in program, and tries to
  657.        load AND PLAY it.  PREV waits for the load to complete before
  658.        returning, so it can result in all the usual load errors (file not
  659.        found, out of mem, etc.) as well as the "no program" error.  Note
  660.        that the PREV "|<" button on the panel does not work exactly like
  661.        this, because it does not automatically try to load and play.
  662.        see NEXT, JUKE
  663.  
  664. NEXT
  665.        Exactly like PREV, but moves to NEXT program selection instead of
  666.        previous one.  This command is typically used to start a program
  667.        once it's programmed in.
  668.        see PREV, JUKE
  669.  
  670. JUKE <filename>
  671.        This is the way to make EdPlayer programs from an ARexx or CLI
  672.        (telled) script.  Each call to JUKE adds the one <filename>
  673.        parameter to the end of the current program.  It's a good idea to
  674.        include the full path in this filename, because EdPlayer's current
  675.        directory may not be the same one that the script file with the
  676.        JUKEs is executing from.  Once a program is created (by a series of
  677.        "JUKE"s), the program can be started by a call to "NEXT".  Note that
  678.        calling PLAY will NOT start a program unless the first module is
  679.        already loaded, because the command PLAY does not work exactly
  680.        like the button PLAY.  So, you should start the program with NEXT.
  681.        see PREV, NEXT
  682.  
  683. ============================================================================
  684.  
  685.                             E R R O R   C O D E S
  686.  
  687. ============================================================================
  688.  
  689. When EdPlayer gets an error, usually from an ARexx or telled command, it
  690. reports that error to the calling program.  If you use "telled", you will
  691. not see an error message in your CLI window, although errors with numbers
  692. 10 or higher may cause your script to abort.  If you use "cteled", a
  693. full error description should appear in your CLI window.  And finally, if
  694. you use an ARexx script, the error number will appear in the script's
  695. window (the script may halt for errors >= 10), but no discription will
  696. appear.  In ALL these cases, however, if the CD panel is open when the
  697. error occurs, an error number and description will appear in it.  This is
  698. useful for debugging things like DVideoIII presentations which do not even
  699. return the error number from a failed ARexx message.
  700.  
  701. If for some reason you CAN get an error number, but you would like a much
  702. fuller description, here are the codes:
  703.  
  704. 0  = No error.
  705.  
  706. 6  = No program!  PREV or NEXT was called, but there is no program there
  707.      to get the next songname from.
  708.  
  709. 7  = Illegal JUMP.  Someone tried to use the JUMP command to jump to a
  710.      pattern that wasn't in the song, and the command had to be ignored.
  711.  
  712. 8  = Can't continue.  CONT was called, but the song was STOPped, and could
  713.      not continue.
  714.  
  715. 9  = Nothing to PLAY!  Someone issued a PLAY with no filename and no song
  716.      currently loaded.  If you were expecting it to pull a filename from
  717.      the program in this case, you're wrong.  Use NEXT!
  718.  
  719. 10 = Syntax error.  The first four letters of the message did not make a
  720.      valid command.  Perhaps they were lower-case, or maybe there were
  721.      quotes in "telled" parameters.  Or maybe it was just garbage...
  722.  
  723. 11 = MIDI not available.  If the MIDI command returns this, then your
  724.      serial port is probably not free.  If the MIDL command returns this,
  725.      then maybe you don't have midi.library in your LIBS: directory or
  726.      something.
  727.  
  728. 12 = File not found.  A very common error.  Check spelling & path!
  729.      You must use a FULL PATH with EdPlayer, because EdPlayer's current
  730.      directory may not match the controlling program's current dir!
  731.      ALSO:  If you have two disks, both named "Empty" or both named
  732.      "ST-00" or something, EdPlayer can't tell them apart!  You will
  733.      end up seeing this error a lot.  RENAME your disks.  Make them UNIQUE!
  734.      And, save yourself a headache:  Write the volume name of a disk
  735.      ON ITS LABEL, so that when EdPlayer asks for it, you know which one
  736.      it's asking for.
  737.  
  738. 14 = Disk error.  Maybe the file is corrupt, or there was a read/write
  739.      error or something.
  740.  
  741. 15 = Out of memory.  There is not enough CHIP RAM to load the module.
  742.      I know that MegaBall 2.0 can load songs into FAST ram, but that is
  743.      ONLY because there are five songs, and the group of them go into
  744.      FAST together and get buffered into CHIP one song at a time.  This
  745.      method will obviously not work with EdPlayer which only loads one
  746.      song at a time anyway.  So we're stuck with CHIP RAM again.  :-(
  747.  
  748. 16 = Unknown module type, or corrupt module.  Perhaps you are trying to
  749.      play a MED 3.00 module with the MED 3.0 bug in it, or perhaps you
  750.      are trying to play an earlier format of MED modules, or even a song or
  751.      something instead of a module.  If the error happened because of a MED
  752.      mutant, just load it into MED *3.10!* and save as a MODULE.  This
  753.      should fix it.  If the tempo goes nuts, know that the MED author
  754.      changed the tempo commands and it's not my fault.  ;-)
  755.  
  756. 21 = If EdPlayer returns this, then it is exiting (shutting down). 
  757.      However, this error is much more often generated by telled itself when
  758.      it cannot find EdPlayer in the system.  For instance, if you have a
  759.      script file that starts EdPlayer, and immediately tries to send
  760.      commands to it, without waiting for it to load and get ready (open
  761.      it's port, etc.), then your script will probably die with this error
  762.      code.  You should wait for EdPlayer to start, and the best way to do
  763.      this is with the "waitport" CLI command that comes (I think) with
  764.      ARexx.  Example:  After starting EdPlayer, and before sending
  765.      commands, have the CLI execute "waitport EDPLAYER".
  766.  
  767. ============================================================================
  768.  
  769.                             W H E W ! ! ! !
  770.  
  771. ============================================================================
  772.  
  773. For those of you that read all the way through that, congratulations are in
  774. order.  I personally really hate programs who's DOC files are as big or
  775. bigger than the program itself, and so I'm not too happy about the fact
  776. that despite all my efforts to make this thing user-friendly, I still wound
  777. up with MonsterDOCs.
  778.  
  779. Oh well.  "The moving cursor writes, and having writ, GURUs."  Oops.  No,
  780. wait, that's not how it goes.  I know.  "The moving fingers type, and
  781. having typed, forget to press 'Save'.  THEN it GURUs."  Hmm, that's not
  782. right either.  Oh darn.
  783.  
  784. Never mind.
  785.  
  786. ----------------------------------------------------------------------------
  787.  
  788. If you use EdPlayer, or ESPECIALLY if you would like to use EdPlayer but
  789. there's some little vital feature missing that's stopping you, then I WANT
  790. to hear from you!!
  791.  
  792. For instance, if you have, say, an ASM source code that plays ST or NT mods
  793. much better than the player built into EdPlayer, send me a copy!  I'll see
  794. if I can include it in the next release or not...  (This is assuming you
  795. can legally send me this copy, and I can legally use it!  If not, DON'T.)
  796.  
  797. At this point I'm also going to suggest maybe possibly sending me a
  798. donation, if you like EdPlayer or want to see improved versions of it.  I'm
  799. not going to expect everyone who sends me mail to give a donation, just the
  800. people who want to see EdPlayer improve, or have found it useful.  Also,
  801. I'm not going to say what kind of donation.  It can be money or software or
  802. whatever, as long as it's *NOT* (a) illegal/pirated software, (b)
  803. XXX graphics, or (c) drugs, alcohol, etc.  :-(
  804.  
  805. Also I'm open to comments & suggestions about almost every aspect of the
  806. program, with the possible exception of people who think that naming the
  807. "EdPlayer" after myself was an egotistical, stuck-up move.  It's FREE
  808. software.  And I'm not a creative naming genius, obviously.  If you think
  809. YOU are, send your much-improved names, money, software, and/or comments to:
  810.  
  811. US mail:                Ed Mackey
  812.                         PO Box 475
  813.                         Wayne, PA 19087
  814. Or:
  815.     Internet:  ELM4@ns.cc.lehigh.edu    BITNET:  ELM4@LEHIGH.BITNET
  816.  
  817. As you might have guessed from the network addresses, I'm a student at
  818. Lehigh University in Bethlehem, PA.  I'm currently about to enter my Junior
  819. year at Lehigh, being a Computer Science major.  This message was written
  820. on July 30, 1991.  I may not be at Lehigh after '93, and I may even move my
  821. home address from Wayne, PA before then, so I didn't provide EITHER of
  822. those US mail addresses here.  The only one I provided is the PO Box in
  823. Wayne (above), which I will keep EVEN if I move, so that address should be
  824. valid for years and years to come.
  825.  
  826. About my brother, Al Mackey:  He's a senior in High School.  He and I work
  827. together on programs, usually splitting the workload as follows:  All code
  828. - me.  All music - Al.  All graphics - first drawn by Al and then modified
  829. and rearranged by myself, making the gfx sort of a 50%/50% project.  This
  830. is the way we did our game Ball, our game MegaBall (Fred Fish #477), and
  831. also this project (EdPlayer).  I'm sorry I can't really distribute a bunch
  832. of Al's great music with this program, but I'm trying to keep the archive
  833. as small as I reasonably can.  Of course, Al uploads a lot of his modules
  834. to local BBSs such as Somerton BBS (215-464-6775) where you can DL them. 
  835. Also I sometimes upload a few to the AB20, for those of you with access to
  836. a Unix machine with commands like "ftp 128.155.23.64".  These places are
  837. also good places to watch for future versions of EdPlayer, provided I get
  838. a good response to it.
  839.  
  840. Let's try once more:
  841.  
  842. "The moving finger presses the POWER button, and having pressed it, this
  843. document comes to an end&$#^#(*
  844.