OmniPlay
version 1.23

A Multiple-Format Sound Player for the Amiga



Changes since last version
==========================

Version		Notes
-------		-----
1.23		(19 Nov 92)
		Egad.  More ugly stuff.  Fixed two bugs that made
		oplay's style-identifer sometimes freeze the task
		with a division by zero.  (Yeah, I admit it was
		stupid.)  The autotyper could freeze under two
		conditions: first, if the amplitude range was under
		half the resolution, and second, if a raw-audio file
		appeared to be u-law.

		Priority handling bad.  OmniPlay would not return its
		CLI to the original priority.

		Changed the '--' option syntax.  '---file' now tries
		to play '--file', rather  than '-file'.  Also fixed
		a bug that made oplay ignore any arguments after a
		'--' option's argument.

		Changed operation of '-o' (one-shot) option.
		Previously set buffers to half of the sample length
		for memory efficiency, but this caused delays when
		playing small files from slow devices or when
		playback required much math.  Now sets buffers to
		exactly the sample length, but doesn't allocate the
		second buffer at all.

		Added version information to default output.

		Recompiled using pragmas instead of amiga.lib stubs.
		This makes a smaller program.

1.22		(12 Nov 92)
		(This was released as a patch archive containing the
		files 'oplay', 'src/oplay.c', 'CHANGES.doc', and
		'pch121-122.diff', a context-diff to convert the
		v1.21 source to v1.22.)

		Fixed a bug wherein OmniPlay caused Enforcer hits
		(four long reads from address 0) if no OMNIPLAY
		environment variable was present.  The hits did not
		occur when OMNIPLAY existed.  This was painful enough
		to Enforcer users to warrant a small fix.

1.21		(29 Oct 92)
		Well, I thought OmniPlay was Kickstart
		1.3-compatible, but I was wrong.  I forgot about the
		ExamineFH() that gets called for .voc and raw files,
		and about the FGetC I used in a couple of other
		places.  They're gone now.  1.3 users rejoice (but
		not for long).

		Added support for an OMNIPLAY environment variable.

		Added -O option to specify output file.  This is for
		use in the OMNIPLAY environment variable.

		Fixed PowerPacker bug.  Now plays any number of
		Power-Packed files, in any order.  (See BUGS in the
		documentation to any older version.)

		"-a" did not operate in accordance with the
		documentation.  Now it does.

1.20		(20 Oct 92 -- Not released.)
		Added "-W" option.  Amish thinks that run-time sound
		conversion is a waste if you already know what it
		sounds like.  Maybe so for slow CPU's, but I still
		prefer not converting the disk file.

1.15		(18 Oct 92 -- Not released.)
		Added "-i" option because I wanted more info on my
		sounds.

1.10		(26 Sep 92)
		Added "-a" option so quiet sounds can be made louder.

1.01b		(25 Sep 92 -- Not released.)

		Stereo playback ("-cs") was disabled in 1.01 because
		it didn't work correctly -- it seems to always play
		from the left channel.  It's been pointed out,
		however, that removing this option could cause people
		to have to change existing scripts, while leaving it
		in does no harm.  It's back now.  I removed the
		documentation of this option argument in 1.01, and
		haven't reinstated it along with the arg itself
		because, at this point, it's strictly for backward-
		compatibility.

1.01		(23 Sep 92)
		Fixed a bug in the playroutine that made using
		buffers lots bigger than the sound file sort of
		forget the last bufferful, thereby chopping off the
		last bit of sound.  Thanks to Chris Wichura for the
		bug report here.

		Added "-o" option so sounds can be fully loaded
		before playback begins.  This is only useful on slow
		input devices like floppies and slow NFS-mounted
		volumes.

		Modified the help text.

1.00		Not released.  Not really existent, to be honest.  I
		just wanted to name the real next release to be 1.01
		so you'd know it's a bug-fix.

0.98		(3 Sep 92)
		First release.  Nothing new.

0.975		Fixed the false optimization to u-law playback in
		v0.97, and substituted the precomputed log table.
		Added "-g" option to tell oplay whether to use it,
		and "-m" to help you decide.

0.97		(29 Aug 92)
		Optimized the u-law player stuff so that scans of the
		u-law range were faster.  As it turns out, this
		"optimization" was bogus, and caused oplay not to
		decode u-law at all.

0.96		Things get really hazy past this point.  I added the
		powerpacker decompression somewhere in here.

0.??		(Late August 92)
		??


TODO
====
(version 1.22)
- Still working on stereo stuff.  It's not that it's so hard, but
  that it's generally not important, and I want to get this thing
  2.0-ized.

NOTE WELL:
(so I lied last time, and the time before)
This is probably the last version of OmniPlay that will work with
pre-2.0 ROMs.  New improvements will rely on v37+ OS calls:
  - Future use of ReadArgs() to parse options.
  - v37+ w/ ReadArgs() handling of Workbench Tool Types.
  - A special treat I'm not discussing now.
  - Some other things I don't remember right now.
  - ARexx port so oplay can be a daemon.  (Not strictly 2.0, but most
    ARexx users got it with 2.0.)
On the other hand, I might release an oplay that does stereo before a
2.0-only version.  It depends on which gets done first, and how far
behind the other is when the first is done.
