home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 569a.lha / MultiPlayer_v1.01 / Player.doc.pp / Player.doc
Text File  |  1991-11-10  |  35KB  |  825 lines

  1.                                 MultiPlayer
  2.                                Version 1.01
  3.                        Copyright (C) 1991 Bryan Ford
  4.                             All Rights Reserved
  5.  
  6.  
  7.  
  8.                                 The Program
  9.                                 ~~~~~~~~~~~
  10.  
  11.     The unregistered version of MultiPlayer is freely redistributable as
  12. long as it and its documentation is not modified in any way, and the
  13. appropriate files are distributed with it.  (Look farther down in this
  14. document to find out about registering MultiPlayer.) You may not charge
  15. more for distributing it than a small fee to cover the disk copying
  16. expenses.  The MultiPlayer version 1.01 distribution must contain the
  17. following files:
  18.  
  19.     Player                     51392
  20.     Player.info                  598
  21.     Player.doc                 35460
  22.     Formats.doc                25952
  23.  
  24.     MultiPlayer is a program to play Amiga music modules, such as
  25. Soundtracker and MED.  (This program has no relation to Multi_Player by
  26. Thomas Landspurg which I just recently found out about.) Before you get
  27. disgusted with Yet Another Module Player, I would encourage you to read
  28. through this document, or at least take MultiPlayer for a spin.  You will
  29. find that MultiPlayer has almost all the important features you've seen
  30. on other players, plus many features you haven't seen before.
  31.  
  32.     One of the goals of MultiPlayer is to be as system-friendly as
  33. possible.  It multitasks well, it doesn't interfere with high-priority
  34. interrupts such as serial port interrupts, and it properly allocates audio
  35. channels so that the music doesn't conflict with other programs.  It was
  36. made with Kickstart 2.0 in mind, and provides some extra features if you
  37. are using 2.0, but it can still play the full set of module formats under
  38. version 1.3.
  39.  
  40.     Another goal of MultiPlayer was to support a very diverse array of
  41. music formats.  MultiPlayer currently supports over fifteen different
  42. module formats, plus some special formats.  See the 'Other Info' section
  43. near the end of this document for a list of the module types MultiPlayer
  44. can play.
  45.  
  46.     If you have the xpkmaster.library (a freeware compression "supervisor"
  47. standard by Dominik Mueller, Christian Schneider, and myself) installed in
  48. your system, MultiPlayer can automatically unpack modules that are packed
  49. using any format it can understand.  (This includes PowerPacker format, if
  50. you have the powerpacker.library installed as well.)
  51.  
  52.     MultiPlayer is very easy to use.  You can just type 'player' from the
  53. CLI or click on the icon from the Workbench and it will present the ASL or
  54. ARP filerequester to select a module from, depending on which version of
  55. the operating system you are using.  (If you are running 1.3, you must have
  56. the arp.library version 39 or higher installed to get the file requester -
  57. if you don't, you won't be able to load modules from the window.) Under
  58. 2.0, you can select multiple modules (as many as you want).  If you run
  59. MultiPlayer from the CLI, it automatically detaches itself, so there is no
  60. need to Run it.  See the section on "Startup" below for more information on
  61. starting MultiPlayer.
  62.  
  63.     While MultiPlayer is running there is normally a small window in the
  64. title bar displaying the name of the module that is currently playing (or
  65. just "MultiPlayer" if nothing is loaded).  You can click the close gadget
  66. to stop the music and terminate MultiPlayer.  To select a different module,
  67. activate the window and click the right mouse button.  The filerequester
  68. will then reappear so you can select another module.
  69.  
  70.     If you are running Kickstart 2.0, the MultiPlayer window will have a
  71. zoom gadget near its right end.  If you click it, you will see a control
  72. panel that allows you to load different modules and gives access to some of
  73. MultiPlayer's more advanced features.  For a complete description of the
  74. control panel user interface, see the "Control Panel" section below.  This
  75. control panel (and the features only available through it) are not
  76. available under 1.3.  Just one more reason to rush out and get an enhancer
  77. kit today!  (I may add full 1.3 compatibility if I get enough demand and
  78. -->support<--.)
  79.  
  80.     You may be skeptical about keeping a 50K program resident in memory.
  81. Never fear - thanks to a custom memory management and overlay system,
  82. MultiPlayer uses only the memory it needs to do its job.  All of the module
  83. players are loaded only when needed, and any players not currently in use
  84. are unloaded on demand if the system runs out of memory.  The parts of the
  85. program used to control MultiPlayer's various windows are also only loaded
  86. on when they are needed and are freed as necessary.
  87.  
  88.     For all you hackers (used in the positive connotation) that like to rip
  89. out every form of music imaginable, when you come across some obscure
  90. module format that nothing understands, don't despair.  There are three
  91. special formats built into MultiPlayer that you can use to easily interface
  92. it to any kind of module.  All you need is the module, some player code for
  93. the module (if the module doesn't already have embedded player code), and a
  94. little assembly language programming.  Details on all three formats are in
  95. the separate file 'Formats.doc'.
  96.  
  97.     MultiPlayer is Shareware.  Although I detest the fact that humans must
  98. prove their worth to society through an insubstantial and meaningless
  99. medium known as money, the fact remains that today's society requires it -
  100. without money you don't eat, and you don't buy Amigas.  I would like to
  101. eat, and I would like to buy Amigas.  Therefore, for $15 or more you will
  102. get the registered version of MultiPlayer which allows loading and saving
  103. of programs (module lists), as well as the full-featured ARexx port
  104. described later in this document (useful for playing modules with
  105. AmigaVision and the like).  Of course, you also gain my favor - suggestions
  106. for improvements will be taken much more seriously from registered users.
  107.  
  108.     The most reliable way of contacting me is at my parents' address.  It
  109. may take a while for me to get something sent there, but it WILL get to me.
  110. I tend to move around a great deal, so mail sent directly to me sometimes
  111. has a hard time catching up.  Send mail to:
  112.  
  113.     Bryan Ford
  114.     8749 Alta Hills Circle
  115.     Sandy, UT 84093
  116.  
  117.     I can be reached more quickly (for the time being anyway) on the phone
  118. or through one of the electronic mail addresses below:
  119.  
  120.     (801) 585-4619
  121.     bryan.ford@m.cc.utah.edu
  122.     baf0863@cc.utah.edu
  123.     baf0863@utahcca.bitnet
  124.  
  125.     If you want to get something to me through the mail reasonably quickly,
  126. FIRST call or E-mail me to make sure I'm still here, then send it to this
  127. address:
  128.  
  129.     Bryan Ford
  130.     27104 Ballif Hall
  131.     University of Utah
  132.     Salt Lake City, UT 84112
  133.  
  134.  
  135.  
  136.                              The Control Panel
  137.                              ~~~~~~~~~~~~~~~~~
  138.  
  139.     This section describes the main control panel that MultiPlayer makes
  140. available under Kickstart 2.0 or later.  (Under 1.3, what you see is what
  141. you get - a little title bar window you can click the right mouse button in
  142. to bring up an ARP filerequester.)
  143.  
  144.     The main MultiPlayer window, in its "zoomed" state, displays a few
  145. pieces of information about the module currently playing, as well as some
  146. buttons.  These are described below:
  147.  
  148. Module box
  149.  
  150.     This box displays the filename of the module currently loaded
  151. (essentially the same as what is displayed in the title bar).  Any 'mod.'
  152. prefixes for Soundtracker/Noisetracker modules will not be displayed.
  153.  
  154. Type box
  155.  
  156.     Displays the type of the module currently loaded.
  157.  
  158. Author box
  159.  
  160.     Displays the name of the person who wrote this module, if known.  Most
  161. current module formats don't have direct facilities for identifying the
  162. author - in this case, the box will just display 'Unknown.'
  163. Soundtracker/Noisetracker modules often have author names embedded in the
  164. instrument list - in this case, MultiPlayer tries to make a good guess by
  165. searching for keywords such as 'by' in the instrument list.  (If it screws
  166. up for some reason, you can always TYPE the module HEX to find out for
  167. sure.) MED modules have somewhat better support, but they still don't have
  168. a convenient 'author' field - just a catch-all 'annotation' field.
  169.  
  170. Song gadget
  171.  
  172.     This gadget serves two purposes.  First, it displays the name of the
  173. currently loaded module or song as recorded in the module itself.  For
  174. example, with Soundtracker/Noisetracker modules this gadget will display
  175. the song name as recorded in the first 20 bytes of the file.  Many
  176. module formats don't have built-in name fields - in this case, the box
  177. will just display 'Unknown.'
  178.  
  179.     For most types of modules, which support only one song per module, this
  180. gadget will serve no purpose other than displaying the song name.  However,
  181. some module formats allow several independent songs to be contained in a
  182. single module (for example, to save memory by using the same instruments on
  183. several songs).  In that case, this gadget will cycle through the available
  184. songs in the module.
  185.  
  186. New button
  187.  
  188.     This button is equivalent to clicking the right mouse button while the
  189. main MultiPlayer window is active.  It displays the file requester and lets
  190. you select any number of modules.  The new list of modules replaces the
  191. current program, if there was one.  The first module in the list (or a
  192. random module, if you have selected random playing) will be started.  The
  193. program will be created with the order in which the modules were displayed
  194. in the file requester.  (At least this is how the current 2.0 file
  195. requester works - it may change.)
  196.  
  197. Play button
  198.  
  199.     Starts or continues playing a module that was previously stopped but
  200. not unloaded.  If the module type supports the continue feature, the module
  201. will continue playing where it left off.  Otherwise it will start again
  202. from the beginning.
  203.  
  204. Stop button
  205.  
  206.     Stops the current module without unloading it.  Audio channels and
  207. interrupts are freed while a module is stopped, so you don't have to exit
  208. MultiPlayer completely if you want to run some other program that needs the
  209. audio hardware.  If the module type supports restart, you can restart it
  210. where it left off by pressing the Play button.
  211.  
  212. Eject button
  213.  
  214.     Stops and unloads the currently loaded module, and frees all memory and
  215. other resources that the module was using.
  216.  
  217. Next button
  218.  
  219.     Loads and plays the next module in the current program list.  If you
  220. have selected random play, this button simply loads another module in the
  221. list, at random.
  222.  
  223. Prev button
  224.  
  225.     Loads and plays the previous module in the program list.  If you have
  226. selected random play, this button does basically the same thing as the Next
  227. button - picks another module at random.
  228.  
  229. Program button
  230.  
  231.     Opens the 'Module Program' window, described below.
  232.  
  233. Prefs button
  234.  
  235.     Opens the 'MultiPlayer Preferences' window, described later.
  236.  
  237.  
  238.  
  239.                            Module Program Window
  240.                            ~~~~~~~~~~~~~~~~~~~~~
  241.  
  242.     This window displays a list of all the modules in the current module
  243. program.  You can also select a module from the list, and it will load and
  244. play immediately.  If sequenced play is selected (the default), when one
  245. module is finished, the next lower one on the list is loaded and played.
  246. (This only applies on modules that can detect repeat - most do, but on
  247. those that don't, the module will just play forever until you explicitly
  248. tell MultiPlayer to go to the next module.) Also, modules in the program
  249. can be located in any number of different directories - MultiPlayer will
  250. remember the location of each.
  251.  
  252.     The program window can be brought up with the 'Program' button from the
  253. main window, or by pressing the 'Help' key while the main window is active.
  254. (This window is only available under 2.0, but see the note for the 'Add'
  255. button if you're using 1.3.)
  256.  
  257.     The program window also contains several buttons that allow you to
  258. manipulate the module list.  These are described below:
  259.  
  260. Top, Up, Down, and Bot buttons
  261.  
  262.     These buttons allow you to rearrange the modules in the program.  They
  263. work on the currently selected (probably currently playing) module, and
  264. their meanings should be obvious.
  265.  
  266. Add button
  267.  
  268.     This button works basically the same way as the 'New' button on the
  269. main window - it brings up the file requester and allows you to select
  270. modules.  However, it doesn't cause the previous program to be cleared when
  271. you finish, and it doesn't start playing a new module.  For 1.3 users
  272. without access to the program window, the 'Help' key is the same as
  273. pressing the 'Add' button, so you can still select multiple modules for a
  274. program, even though you can't see them.  (Remember that you may need to
  275. press the up or down arrow key to actually get the program running, since
  276. the Add feature doesn't automatically start anything.)
  277.  
  278. Del button
  279.  
  280.     This button deletes the currently selected entry in the program list.
  281. If this entry is currently playing, it lets it continue playing - it does
  282. not stop or unload it immediately.
  283.  
  284. Clear button
  285.  
  286.     Clears the entire current program list.  As with the 'Del' button, it
  287. does not stop any currently playing module.
  288.  
  289. Sort button
  290.  
  291.     Sorts the entire current program list alphabetically.  Handy if you
  292. like to use random play (and thus don't really care about the play order)
  293. but you'd like a nice neat module listing.
  294.  
  295. Load button
  296.  
  297.     Brings up the file requester so you can load a previously saved program
  298. from disk.  (This button will only work on the registered version of
  299. MultiPlayer.) The newly loaded program will replace the current program.
  300. Note that you can also load saved programs from the regular module
  301. requester - programs are recognized just like modules, and programs
  302. selected this way will automatically be loaded and run.  (You could even
  303. put the name of another program at the bottom of it, to chain program lists
  304. together.)
  305.  
  306. Save button
  307.  
  308.     Brings up the file requester and lets you save the current program to a
  309. disk file.  (Also only works on the registered version.) You can then load
  310. it again later using any method normally used to select modules - the file
  311. requester, Workbench extended-select when starting MultiPlayer, or CLI
  312. arguments.  (See the 'Startup' for details on starting MultiPlayer.)
  313.  
  314.     If you want to create or modify module program files yourself, just
  315. take a look at one of the files MultiPlayer generates - it's just a simple
  316. text file.  Lines starting with 'DIR' denote changes of directory - all
  317. filenames after that until another 'DIR' keyword will be looked for in that
  318. directory.
  319.  
  320.  
  321.  
  322.                             Preferences Window
  323.                             ~~~~~~~~~~~~~~~~~~
  324.  
  325.     This window can be opened by clicking on the 'Prefs' button in the main
  326. MultiPlayer window.  It contains a few options (there will be more in
  327. future versions) which you can use to tailor MultiPlayer to your own
  328. preferences.  (This window is not available under 1.3, but you can still
  329. set MultiPlayer's preferences - see the end of this section.)
  330.  
  331.     The gadgets are described below:
  332.  
  333. Play gadget
  334.  
  335.     Use this to select between sequenced play, random play, and 'over and
  336. over' mode.  In sequenced play, the modules in the program list are played
  337. one after another, from beginning to end, in the order they appear in the
  338. program list.  In random play, the modules play once and then another
  339. module is randomly selected.  In 'over and over' mode, anything you select
  340. is played forever until you tell MultiPlayer to start a different module.
  341. (You can still use the 'Next' and 'Prev' buttons in the main window to
  342. change modules, but MultiPlayer doesn't do it automatically in this mod.)
  343.  
  344. Show gadget
  345.  
  346.     This cycle gadget allows you to select the type of display you want to
  347. appear in the main window's title bar while a module is playing.  In clock
  348. mode, a clock appears displaying the amount of time this module has been
  349. playing in minutes and seconds.  In sequence mode (this has no relation to
  350. the sequence mode in the 'Play' gadget), on NoiseTracker or similar modules
  351. that play sequences of blocks, the current sequence number and the number
  352. of sequences in the song is displayed.  (On modules that don't support
  353. this, the clock is displayed.) In sequence mode, you can tell MultiPlayer
  354. to display the current number either starting from 0 and ending at
  355. (length-1), as most trackers display sequence numbers, or starting from 1
  356. and ending at (length).
  357.  
  358. Save button
  359.  
  360.     Saves the current preferences to the disk file ENV:MultiPlayerPrefs, as
  361. well as the same file in ENVARC:.  (With preferences as simple as this,
  362. there's no real need for separate 'Save' and 'Save Default' options.)
  363.  
  364. OK button
  365.  
  366.     Does exactly the same thing as the close gadget on the window - closes
  367. the window.  It does NOT cause the new preferences to be activated - they
  368. are activated the moment you select them.  (Isn't multitasking wonderful?)
  369. There is no 'Cancel' gadget because I figure it's not too difficult to
  370. change back any buttons you accidentally hit, since there are so few...
  371.  
  372.     For you poor ol' 1.3 users that can't access this window, you can still
  373. set MultiPlayer's preferences.  Just go into a text editor or something and
  374. create a 'MultiPlayerPrefs' in your ENV:  directory (make sure it gets put
  375. there every time you reboot - i.e.  also put it in your ENVARC:  directory
  376. if you have one).  The file needs only two characters.  First, the play
  377. mode - 'S' for sequenced, 'R' for random, 'O' for over and over.  Second,
  378. the show mode - 'C' for clock, '0' for sequence (starting from 0), and '1'
  379. for sequence (starting from 1).  Unfortunately, you can't change
  380. MultiPlayer's preferences while it is loaded.
  381.  
  382.  
  383.  
  384.                             Keyboard Shortcuts
  385.                             ~~~~~~~~~~~~~~~~~~
  386.  
  387.     Several keyboard shortcuts are available from the main MultiPlayer
  388. window.  (They won't work in the other windows.) These are available under
  389. 1.3 as well as 2.0, and thus can be used to use some of the features
  390. otherwise only available through the control panels.  These keys are listed
  391. below:
  392.  
  393. ESC
  394.  
  395.     Terminates MultiPlayer immediately (a shortcut for the close gadget on
  396. the main window.
  397.  
  398. Help
  399.  
  400.     Under 2.0, brings up the module program window (a shortcut for the
  401. 'Program' button on the main window).
  402.  
  403. Spacebar
  404.  
  405.     If a module is currently playing, stops (or pauses it) without
  406. unloading, like the 'Stop' button.  If a module is loaded but NOT playing,
  407. it restarts it, just like the 'Play' button.
  408.  
  409. Delete
  410.  
  411.     Unloads (ejects) the currently loaded module.
  412.  
  413. Up/down arrows
  414.  
  415.     These switch to the previous or next modules in the program list,
  416. respectively.  In random play, these simply select another module at
  417. random.  (These are shortcuts for the 'Next' and 'Prev' buttons.)
  418.  
  419. Left/right arrows
  420.  
  421.     In modules that contain more than one song, these select the previous
  422. or next song, respectively (shortcuts for the 'Song' cycle gadget).
  423.  
  424.  
  425.  
  426.                                   Startup
  427.                                   ~~~~~~~
  428.  
  429.     When starting MultiPlayer from Workbench 1.3 or 2.0, you can
  430. extended-select the icons of as many modules as you want when you start
  431. MultiPlayer.  It will immediately start playing the first one (or a random
  432. selection, if you have selected random play in your saved preferences).
  433.  
  434.     If you're running Kickstart 1.3, MultiPlayer will accept a single
  435. argument from the CLI (don't use quotes, even if there are spaces).  If
  436. this argument ends in a ':' or '/', MultiPlayer will change to that
  437. directory before displaying the ARP file requester.  If it doesn't end in
  438. one of these characters, MultiPlayer will try to load the specified file as
  439. a module and start it playing rather than displaying the file requester
  440. immediately.
  441.  
  442.     If you're running Kickstart 2.0, MultiPlayer supports some extra
  443. command-line options:
  444.  
  445.     DIR=DIRECTORY,MODULES/M,NOREQUEST/S,NOWINDOW/S,NOREXX/S
  446.  
  447.     (On the unregistered version, the NOREXX option will not appear.)
  448. Following is a description of these arguments:
  449.  
  450. DIRECTORY
  451.  
  452.     The first argument on the command line (or an argument preceded by this
  453. keyword) tells MultiPlayer what directory to go to the first time it
  454. displays the file requester.  This is also where it will look for modules
  455. you specify on the command line (see below) if you don't specify full
  456. pathnames for them.
  457.  
  458. MODULES/M
  459.  
  460.     The second argument (if you don't explicitly use the DIRECTORY or
  461. MODULES keywords) begins a list of modules to put into MultiPlayer's
  462. program list on startup.  MultiPlayer imposes no limitations on the number
  463. of modules you can specify using this keyword, although command lines are
  464. limited to 256 characters.  After MultiPlayer starts up, instead of showing
  465. the file requester immediately, it will load and begin playing the first
  466. module in the program list (or a randomly selected module, if you have
  467. selected random playing).  With the registered version of MultiPlayer, you
  468. can specify a program file to load and start initially instead of a list of
  469. modules.
  470.  
  471. NOREQUEST/S
  472.  
  473.     If you specify the switch, MultiPlayer will not display the file requester
  474. immediately after it loads, even if you don't specify any modules to start
  475. playing.  If you don't specify any modules, MultiPlayer will simply sit
  476. idle until you tell it to do something.
  477.  
  478. NOWINDOW/S
  479.  
  480.     This switch causes MultiPlayer to load and run without a window.  If
  481. you specify modules to start playing, MultiPlayer will play them as usual,
  482. but the user won't see any visual indication that MultiPlayer is running.
  483. You can still control the registered version of MultiPlayer through its
  484. ARexx port, assuming you haven't turned that off as well.  Using this
  485. switch will save about 5K of memory, since the part of MultiPlayer that
  486. handles the window interface is never loaded (and of course the window
  487. itself is not occupying memory).
  488.  
  489. NOREXX/S
  490.  
  491.     If you specify this switch (which only exists on the registered
  492. version), MultiPlayer will not open its ARexx port.  Using this switch will
  493. save a little extra memory (not much though - less than 1K) if you don't
  494. need the ARexx port.
  495.  
  496.     If you specify both NOREXX and NOWINDOW, you will effectively have no
  497. way to control MultiPlayer apart from rebooting - it will go on playing
  498. modules as you instruct it to at first, and will not stop unless it
  499. encounters an error of some kind.  (If that happens, you basically "lose"
  500. it for good.) I don't recommend doing this without a good reason.
  501.  
  502.  
  503.  
  504.                                 ARexx Port
  505.                                 ~~~~~~~~~~
  506.                 (Only available in the registered version)
  507.  
  508.     If you have ARexx, either as an independent program in pre-2.0 or as
  509. part of the operating system in 2.0+, you can use it to control
  510. MultiPlayer.  Whenever MultiPlayer is running, there is an ARexx port
  511. available called "RXTRACKER" which you can send various commands to.
  512. MultiPlayer's ARexx port is compatible with the program RxTracker by
  513. Dominic Giampaolo.  In addition, it supports several features that
  514. RxTracker doesn't, and of course you can use it to play all the different
  515. kinds of modules MultiPlayer understands, not just Soundtracker and MED.
  516.  
  517.     If MultiPlayer runs into an error when trying to load or play a module,
  518. it generally returns an error code of 10.  When any error occurs, a pointer
  519. to a descriptive error string is saved and you can get it with the
  520. LASTERROR command to display for the user.
  521.  
  522.     A listing of the ARexx commands MultiPlayer understands follows:
  523.  
  524. LOAD    <filename>
  525.  
  526.     Loads a module into memory from disk.  It is generally a good idea to
  527. supply a complete pathname, since MultiPlayer looks for the module starting
  528. at whatever directory the file requester last happened to be looking at.
  529. This command does not start the module playing.  If you want to start
  530. playing immediately, you don't have to use this command at all - you can
  531. simply supply a filename on the PLAY command and it will load and start
  532. playing immediately.
  533.  
  534. PLAY    [<filename>] [<songnumber>]
  535.  
  536.     Starts playing a module.  If you supply the filename, MultiPlayer stops
  537. any module currently playing and tries to load the specified module from
  538. disk.  If you don't supply the filename, MultiPlayer plays (or re-plays
  539. from the start) an already-loaded module.  (If no module is loaded and you
  540. don't specify a filename, MultiPlayer returns error code 5.) For modules
  541. with more than one song, you can supply the song number to play.  Songs are
  542. numbered starting at zero.  If you don't supply a song number, song zero is
  543. assumed.
  544.  
  545. STOP
  546.  
  547.     Stops playing any module that is currently playing without unloading
  548. the module.  You can then restart it later with PLAY or CONTINUE.
  549.  
  550. UNLOAD
  551.  
  552.     Stops and unloads any currently loaded module.
  553.  
  554. CONTINUE
  555.  
  556.     Tries to restart a stopped module at the position it was at before the
  557. STOP command was given.  If the module has never been started, it simply
  558. starts from the beginning.  If the module was already playing, it does
  559. nothing.  If the module type doesn't support restarting, MultiPlayer
  560. returns error code 5 and does NOT start the module - you can then use PLAY
  561. to start again from the beginning if you want, or else chew out the user
  562. for using weird module formats.
  563.  
  564. OPENWINDOW
  565.  
  566.     Opens the MultiPlayer user interface window.  It will be opened in the
  567. small title-bar zoom state.  If the window was already open, it does
  568. nothing.  It returns an error if the window can't be opened.  Remember that
  569. while the window is open the user can use it to change modules and such,
  570. possibly messing up your perfectly timed ARexx-controlled playing
  571. sequences.
  572.  
  573. CLOSEWINDOW
  574.  
  575.     Closes the MultiPlayer window, if it was open.  MultiPlayer remains
  576. active, but impervious to user interface (through Intuition anyway).  Now
  577. only ARexx commands can affect MultiPlayer.
  578.  
  579. LASTERROR
  580.  
  581.     Returns an error message describing the last error that occurred that
  582. had to do with the ARexx port.  (Errors that the user causes by
  583. manipulating the window do not affect this.)
  584.  
  585. QUIT
  586.  
  587.     Causes MultiPlayer to terminate immediately.
  588.  
  589.  
  590.  
  591.                                  Messages
  592.                                  ~~~~~~~~
  593.  
  594.     This section lists most of the error or warning messages MultiPlayer
  595. will produce.  Look here if you have trouble deciphering the meaning of
  596. one.
  597.  
  598. "Not enough chip memory"
  599.  
  600.     Tracker-style modules generally must be loaded into one big continuous
  601. chunk of chip memory.  Therefore, even if the Workbench (or some other
  602. program) says you have enough memory, it may not have one big enough chunk.
  603. Close some windows, exit some programs.  If all else fails, reboot and try
  604. fresh.
  605.  
  606. "Not enough memory"
  607.  
  608.     You really are getting low.  MultiPlayer doesn't normally need too much
  609. non-chip memory, since modules are always loaded into chip memory.  If you
  610. get this message, it means you don't have much memory of ANY kind
  611. available.  Better free up something quick.
  612.  
  613. "Required memory occupied"
  614.  
  615.     You will only get this message from non- relocatable AMOD or GMOD
  616. modules.  It means that the module has a specific address it must be loaded
  617. into, but part or all of the required block of memory is already in use.
  618. Free up as much memory as possible and try again.  If most of your memory
  619. is free and you still can't load it, chances are there's some little
  620. allocated fragment that some program has forgotten about that's still
  621. sitting in the required area.  Your best bet is to reboot and try on a
  622. fresh system.  If you have more than 512K of chip memory, try running my
  623. program "ChipMunch" just after you reboot - this should keep programs out
  624. of the commonly used areas.
  625.  
  626. "Nothing selected"
  627.  
  628.     Not an error, this simply means that you pressed Cancel in the file
  629. requester without selecting any modules.  MultiPlayer then happily goes on
  630. doing whatever it was already doing.
  631.  
  632. "Unknown module type"
  633.  
  634.     MultiPlayer doesn't recognize the file you selected as one of the
  635. module types it knows.  Either this isn't a music module, or it's one that
  636. it doesn't know how to handle.  If it is a music module that MultiPlayer
  637. doesn't know about, send me the module and player/interface code, and it
  638. should make it into the next version of MultiPlayer.
  639.  
  640. "Corrupt module"
  641.  
  642.     MultiPlayer recognized the module, but it didn't look right for some
  643. reason.  Maybe it's a module written with an incompatible version of the
  644. music program, or maybe the module itself got munched somehow.
  645.  
  646. "Error playing module"
  647.  
  648.     A general catch-all.  This error usually is displayed as a result of
  649. error reports from initialization routines of individual players.  It
  650. generally means that the module loaded fine, but the player had trouble
  651. playing it.  Sometimes it means the same thing as "Corrupt module", or it
  652. might mean that the player ran out of memory but was too stupid to tell
  653. MultiPlayer about it specifically.
  654.  
  655. "Can't load module"
  656.  
  657.     The file was not found, or there was a disk error while reading it.  If
  658. you get this message after selecting a file from the file requester,
  659. chances are the disk is corrupt (in this case AmigaDOS should have already
  660. given you a requester saying so), or the file may be open for writing from
  661. some other program.
  662.  
  663. "Directory not found"
  664.  
  665.     Somehow you managed to tell MultiPlayer to load something from a
  666. directory that doesn't exist.  Maybe you moved the directory somewhere
  667. else, or forgot an Assign somewhere.  This usually only happens with ARexx
  668. commands or loaded program lists.
  669.  
  670. "Audio hardware in use"
  671.  
  672.     MultiPlayer can't allocate the audio hardware through the audio.device.
  673. This probably means that some other music editor or player is currently
  674. running.  Find the culprit program and close it.  If all else fails, reboot
  675. and try again.
  676.  
  677. "No CIAB timers available"
  678.  
  679.     MultiPlayer generally uses one of the two timers on CIA (Complex
  680. Interface Adapter) B for timing its music.  However, other programs
  681. like to use these also.  In particular, one of the timers may be in use if
  682. the serial port is in operation.  Other than that, music programs are
  683. generally the biggest consumers of CIAB timers.  Make sure no other music
  684. player or composer programs are running, and try closing terminal programs
  685. or other programs that use the serial port.
  686.  
  687. "Please decompress this module"
  688.  
  689.     It is unlikely that you will ever get this message, but if you do, it
  690. means that (a) the module MultiPlayer is trying to load is compressed
  691. somehow, and (b) it is an AMOD or GMOD module that must load at an absolute
  692. address, and (c) MultiPlayer would have to re-load the module rather than
  693. just copying it because the memory the module occupied initally overlapped
  694. the required module address.  If you don't quite follow, don't sweat - just
  695. decompress the module.
  696.  
  697.  
  698.  
  699.                                 Other Info
  700.                                 ~~~~~~~~~~
  701.  
  702. MultiPlayer currently supports the following module types:
  703.  
  704.     15-instrument SoundTracker modules (most anyway)
  705.     31-instrument SoundTracker V2.3-2.5/NoiseTracker V1.0-1.3D modules
  706.  
  707.     NoiseTracker 1.3D packed modules (with or without embedded player)
  708.  
  709.     StarTrekker 1.2 AM/FM modules (Extra '.NT' file required)
  710.  
  711.     MED 3.xx modules (MMD0 modules only - not "Song&Samples" files)
  712.         (no 2.xx modules anymore - use MED 3.xx to convert them!)
  713.  
  714.     SoundFX V1.3 executable modules (Player V2.2)
  715.  
  716.     Old Future Composer 'SMOD' modules
  717.     Future Composer 1.4 modules
  718.  
  719.     JamCrackerPro 1.0a modules
  720.  
  721.     SoundMonitor 2.0 modules
  722.  
  723.     Dave Whittaker modules (Be careful!  These aren't completely friendly...)
  724.  
  725.     Oktalyzer V1.1 4-channel modules (untested)
  726.  
  727.     Delta Music V2.2 modules (untested)
  728.  
  729.     SidMon modules (untested)
  730.  
  731.     Mark II modules (untested)
  732.  
  733.     Generic embedded-player modules of the form
  734.             jmp init(pc)
  735.             jmp music(pc)
  736.             jmp end(pc)
  737.         (Such as NoiseTracker packed w/player modules)
  738.  
  739.     AudioMaster III sequenced 8SVX sounds (mono only)
  740.  
  741.     'XMOD', 'AMOD', and 'GMOD' formats described in 'Formats.doc'
  742.  
  743. Some of the module types are marked as 'untested'.  This means exactly what
  744. it says - I found out the appropriate methods to play these and easily
  745. added support into MultiPlayer, but I didn't have any modules to test it
  746. on.  So if I made a stupid mistake, one or more of these may not work at
  747. all.  If you try one of these formats and it doesn't work, send me a few
  748. modules in the appropriate format to test on, and if you're the first to do
  749. so, you'll be automatically registered and will receive a new version of
  750. MultiPlayer as soon as I get the bug fixed.
  751.  
  752. Although sequenced 8SVX sounds are technically only sampled sound files,
  753. they have some music capability and look promising.  Besides, the player
  754. also plays non-sequenced 8SVX sounds, so you can also play your movie clips
  755. and such with MultiPlayer.  (I'm not sure if AudioMaster III is the only
  756. program that currently supports sequenced 8SVX files, but it's the only one
  757. I've seen so far.) Stereo is currently not supported - sorry, I'll get to
  758. that eventually.
  759.  
  760.  
  761.  
  762.                                   History
  763.                                   ~~~~~~~
  764.  
  765. 1.01    (8-Nov-91)
  766.     Added 'Sort' button in program window.
  767.     Fixed a serious bug in GMOD player.
  768.     Enhanced author name recognition for ST/NT modules.
  769.  
  770. 1.00    (5-Nov-91)
  771.     This is basically a rewrite of most of the program.
  772.         (I'm not listing all the additions - there are way too many.)
  773.     Major changes and additions to Formats.doc.
  774.     Music no longer cuts off when file requester is displayed.
  775.     Removed built-in code compression.  (Maybe I'll put it back in later.)
  776.     Audio device now allocated while playing music.
  777.     Fixed SoundFX player bug which caused crashing on advanced processors.
  778.     Players now use longer DMA delays (normally 300) only on fast processors.
  779.         (Wouldn't want to bog down you poor ol' 68000 users would we?)
  780.     Major rewrite of player selection code.
  781.     CIAB interrupts now defer to software interrupts to avoid hogging
  782.         CPU time in a high-priority interrupt.
  783.  
  784. 0.95A    (6-Sep-91)
  785.     Fixed bug where song position appeared when no module was playing.
  786.     Fixed ST/NT player bug for modules with negative song repeat positions.
  787.  
  788. 0.95    (27-Jul-91)
  789.     Added song position indicator for ST/NT and MED modules.
  790.     Added code to turn low-pass filter off by default (will soon be selectable).
  791.     Added Messages section to the documentation.
  792.     Fixed window position so it snuggles right up next to the screen gadgets.
  793.  
  794. 0.94A    (26-Jul-91)
  795.     Fixed player window height on pre-2.0 operating systems.
  796.     Increased delay loop (ugh!) in NoiseTracker player for faster processors.
  797.     Fixed song repeat bug in NoiseTracker player.
  798.     Hacked NoiseTracker player to play old 15-instrument modules.
  799.     Fixed memory trashing bug in NoiseTracker player.
  800.         (I hate cleaning up someone else's code!)
  801.  
  802. 0.94    (23-Jul-91)
  803.     Uses one of the CIAB timers for timing rather than the VBlank interrupt.
  804.     Finally uses Workbench 2.0 ASL file requester if available.
  805.     Added MED 3.xx modules, removed MED 2.xx songs.
  806.  
  807. 0.93    (3-Jul-91)
  808.     Workbench 2.0 compatible (although some modules may not be).
  809.  
  810. 0.92    (7-Jun-91)
  811.     Added 'AMOD' absolute loading module format described in 'Formats.doc'.
  812.     Added 'GMOD' general module format described in 'Formats.doc'.
  813.     Added NoiseTracker 1.3D packed (with player) modules.
  814.     Added StarTrekker 1.2 AM synthesized modules.
  815.     Updated the SoundTracker/NoiseTracker player.
  816.         (New player comes from NoiseTracker 1.3D)
  817.  
  818. 0.91    (29-Apr-91)
  819.     Added 'XMOD' format described in 'Formats.doc'.
  820.     Removed "unknown" module formats (turned those modules into XMOD's)
  821.  
  822. 0.90    (27-Apr-91)
  823.     First preliminary release.  Nothing fantastic.
  824.  
  825.