@DATABASE OctaMEDPlayer Guide

@NODE Main "OctaMEDPlayer Guide"

			OctaMEDPlayer V7.0
			~~~~~~~~~~~~~~~~~~

OctaMEDPlayer is a stand-alone, freely distributable player program for
OctaMED songs. It can be used from both @{" Shell " LINK shell_usage} and @{" Workbench "
LINK wb_usage}.

			@{" Supported File Formats " LINK file_formats}
			@{"  System Compatibility  " LINK sys_comp}
			@{"      Shell Usage       " LINK shell_usage}
			@{"    Workbench Usage     " LINK wb_usage}
			@{"  OctaMEDPlayer Window  " LINK window}
			@{"    ARexx Interface     " LINK arexx}
			@{"    About Program...    " LINK about}
			@{"        Changes         " LINK changes}

Document last changed: 5.1.1997.
@ENDNODE

@NODE file_formats "OctaMEDPlayer File Formats"
OctaMEDPlayer supports several MED/OctaMED file formats:

* Old Sng+Samples format (MED V2.1 - OctaMED V2).

* MED/OctaMED modules of type MMD0 (MED V2.1 - OctaMED V6), MMD1
  (OctaMED V3 - V6), MMD2 (OctaMED V5 - V6) and MMD3 (OctaMED
  Soundstudio w/mixing).

OctaMEDPlayer is a MED/OctaMED-only player program. In particular,
support of other music programs will NOT be added. There are more
generic player programs for this purpose (e.g. DeliTracker and
EaglePlayer).

OctaMEDPlayer supports normal four-channel songs, MIDI, split (5-8)
channel modes, mixing mode as well as multi-modules. These compression
methods are supported:
	* PowerPacker (requires powerpacker.library)
	* SFCD/SFHD (requires lh.library)
	* XPK (requires xpkmaster.library and the used compressor).

Note that MIDI is not supported with mixing (although OctaMED itself
does support it). OctaMEDPlayer supports MIDI only in the four channel
mode.

There are some special @{" Notes for MED V2.1 / MED V3 Modules " LINK notes_21_3}.

Note: I've seen "ripped" (Octa)MED modules around, which are severely
malformed, due to ripper deficiency. (Octa)MED modules are not made to
be ripped, so ripped modules are often likely to fail. In fact, you should
never distribute ripped modules as such; at least load them into OctaMED
and save them back to make sure that the file format is correct.
@ENDNODE

@NODE notes_21_3 "Notes for MED V2.1 / MED V3 Modules"
MED V2.1 Modules
~~~~~~~~~~~~~~~~
There may be problems with the playing speed. If the playing speed isn't
correct, load the module into a newer MED/OctaMED, change the TPL (Ticks Per
Line) tempo to 6, and save it back.

MED V3.00 Modules
~~~~~~~~~~~~~~~~~
There's an alignment bug in the module saving routine of MED V3.0. Some
modules may crash when played (on 68000/68010-based Amigas). This problem
can be fixed by loading the module into a newer MED/OctaMED and simply
saving it back. Such modules are very rare today.
@ENDNODE

@NODE sys_comp "System Compatibility"
OctaMEDPlayer is compatible with all versions of the operating system,
even with the obsolete V1.3. Of course, OctaMEDPlayer is fully
multitasking and OS-friendly. Note that the mixing mode requires
Kickstart 2.0 or later!

OctaMEDPlayer uses the system standard ASL file requester, it is
available only under Workbench 2.0 and later.
@ENDNODE

@NODE hqmode "HQ (High Quality) Mode"
The HQ Mode enhances the sound quality of 5-8 channel modes. It will,
however, cause increased processor load. This mode is available in
OctaMEDPlayer, as well as in OctaMED.

Due to the high processor load, the HQ mode in 7/8 channel modes may
not usable on slow (7.14 MHz/68000) Amigas.

The HQ Mode gadget doesn't do anything when it's clicked. The change
will take place next time Play or Cont is clicked. It's turned on by
default, unless the NOHQ options is given.
@ENDNODE

@NODE shell_usage "Shell Usage"
OctaMEDPlayer is started from Shell as follows:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	OctaMEDPlayer <song> <number> <options>

	<song>		Optional, if not specified, @{" OctaMEDPlayer Window " LINK window}
			appears and waits for your interaction. If <song>
			is present, the song is loaded. If it loaded OK,
			the playing will start. Ctrl-C quits.

	<number>	If <song> is a multi-module, this number specifies
			the song you want to play.

	<options>	Additional command line options. Currently
			supported are:

		NOHQ	Deactivate the @{" HQ mode " LINK hqmode} (5-8 channel modes only).
		WINDOW	Open the @{" OctaMEDPlayer Window " LINK window}.
		MBEXIT	Stop playing when both mouse buttons pressed
			(when started from Shell, also exits).
		QUIET	Don't display any messages (in Shell mode only).
		FMP	Turn FastMemPlay on. May be turned on automatically
			for certain modules.
		MIX14BIT
			Use the less noisy 14-bit mode in mixing modes.
		MIXFREQ=?
			Allows you to specify the mixing frequency (in Hz).
			(default: 15000).
		QUIT	Signals already resident instances of OctaMEDPlayer
			to quit.

        Examples:
        ~~~~~~~~~
        octamedplayer multimod 2  ;plays the second song of 'multimod'

	octamedplayer eightchsong  ;play 'eightchsong' (use HQ mode)

	octamedplayer eightchsong window  ;as above, but open the window

	octamedplayer nohq window ;open the window and deactivate the HQ mode

	octamedplayer quit ;if there's OctaMEDPlayer already in memory,
	                   ;ask it to quit and exit as soon as it happens

	octamedplayer song quit ;asks OctaMEDPlayer to quit (if one is
	                        ;currently in memory), then play 'song'

@ENDNODE

@NODE wb_usage "Workbench Usage"
Workbench usage:
~~~~~~~~~~~~~~~~
        You can run OctaMEDPlayer by double-clicking its icon. To
        automatically play a song when its icon is clicked, set the
        icon default tool (the default setting is "OctaMEDPlayer").
        You can click the song icon and then shift-double click the
        OctaMEDPlayer icon to play that song. OctaMEDPlayer always
        opens its @{" window " LINK window} when started from the WB.

	You can also load modules by dragging their icons into
	OctaMEDPlayer's window.
@ENDNODE

@NODE window "OctaMEDPlayer Window"
The OctaMEDPlayer Window:
~~~~~~~~~~~~~~~~~~~~~~~~~
When you start OctaMEDPlayer from @{" WB " LINK wb_usage} or @{" Shell " LINK shell_usage} without
arguments, the window appears. There are gadgets for controlling
the playing:

The string gadget	Holds the name of the current song. You can load a
			new song by typing its path and filename into this
			gadget, and pressing Enter.

Play			Starts playing the song from the beginning. If
			shift-clicked and there's a multi-module in memory,
			all songs of the multi-module will be played.

Cont			Plays the current song starting from the point
			where you stopped it.

Stop			Stops the playing.

MIDI: Y/N		This gadget allows you to turn MIDI on/off. It has
			no effect when in 5 - 8 channel mode!

Load...			Allows you to load a song by using the ASL file-
			requester. This feature requires OS Release 2 or
			later.

< >			With these gadgets you can select the song, if
			there's a multi-module in memory.

HQ			This switch toggles the @{" HQ mode " LINK hqmode}. Affects only 5-8
			channel songs. It has no effect when clicked during
			playing.

F			Turns Fast Mem playing on/off. You should turn it on
			before loading a module, in order to get the module
			loaded into Fast RAM.

Mix...			Opens a window for setting the mixing frequency and
			the 14-bit mode. (Requires Kickstart 2.0 or later.)

There's some information about the playing position displayed:

        Sg:01/01 Sc#:001/010 Sec:002/005
        Seq:002/009 B:000/140 L:0012

Sg:	The number of the current song, and the total number of songs in
	the current module.

Sc#:	Current section list position. (MMD2 only)

Sec:	Current playing sequence/section. (MMD2 only)

Seq:	Current playing sequence position.

B:	Current block.

L:	Current line number.

The window is an AppWindow, so you can drag icons into it.
@ENDNODE

@NODE arexx "OctaMEDPlayer ARexx Interface"
ARexx interface
~~~~~~~~~~~~~~~
OctaMEDPlayer has a small ARexx interface, which is useful for multimedia
use, for example. The port name is OCTAMEDPLAYER. The following commands
are recognized (not case sensitive):

PLAY		Plays the current module (equivalent to clicking the
		"Play" button).

PLAYALL		Plays all songs of the multi-module (= shift-click
		Play button).

CONT		Continue playing the current module.

STOP		Stop playing.

LOADMOD		Loads a module (e.g. loadmod 'module').

SONGNUM		Sets the multi-module song number (e.g. songnum 2).

GETSONGS	Returns the number of the songs in the current
		module (1) or multi-module (> 1).

WAITFOREND	Waits until the current song has reached its end (or
		the user has manually stopped it) and stops playing.
		An error is returned if nothing is being played.

QUIT		Quits OctaMEDPlayer
@ENDNODE

@NODE about "About OctaMEDPlayer..."
OctaMEDPlayer copyright ©1991-1996 Teijo Kinnunen. All Rights Reserved.
This program is Freely Distributable. You are encouraged to distribute
OctaMEDPlayer and this document file.

OctaMEDPlayer supports all versions of OctaMED, copyright ©1991-1996
Teijo Kinnunen & Ray Burt-Frost (RBF Software). OctaMED is available
from several retailers around the world. Also, MED V2.10 and later are
supported as well.

A freely distributable demo version of OctaMED is also available.

The author's address is:
~~~~~~~~~~~~~~~~~~~~~~~~
	Teijo Kinnunen
	Oksantie 19
	FIN-86300  OULAINEN
	FINLAND
	email: Teijo.Kinnunen@oulu.fi

OctaMED's WWW home page (for more information):
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
	http://www.octamed.co.uk/

@ENDNODE

@NODE changes "OctaMEDPlayer V7 History"

	V7.0ß (11.02.1996) (internal 7.0)
	~~~~~~~~~~~~~~~~~~
	Initial release for V7.

	V7.01 (25.04.1996) (internal 7.1)
	~~~~~~~~~~~~~~~~~~
	Fixed some bugs affecting MMD0 multi-modules.

	V7.02 (13.06.1996) (internal 7.2)
	~~~~~~~~~~~~~~~~~~
	Fixed a bug which appeared in combination of:
	mixing, command 4/14 and octave 6

	V7.03 (24.11.1996) (internal 7.3)
	~~~~~~~~~~~~~~~~~~
	Fixed player commands 20-22.

	V7.04 (5.1.1997) (internal 7.4)
	~~~~~~~~~~~~~~~~
	Fixed 4-ch routine loop and MIDI preset handling.
	"OctaMEDPlayer QUIT" now kills all other instances of
	OctaMEDPlayer rather than just one.
@ENDNODE
