README for gWave/tWave - Read all before using.  Almost there...

Included first is the list of changes.  At the end are important notes
and tips that should be read and understood before using tWave.

15-May-98
---------

Changes:  gWaveMD 1.02 (980515)

          FA display was not filling its area when using 1024x768 large
          fonts (see note below).
          --
          Window of vulnerability closed with critical section placed around
          a memcpy() which otherwise could GPF when STOP'ing an active
          playback.

          FA display may have been left showing after FA turned off.

Note:     Large font mode in 1024x768 results in 40% less screen real estate
          compared to small font mode (120 dots per inch vs. 96 dpi).  Check
          your video card manual or its setup program for details.  A small-
          font utility should be available on http://hobbes.nmsu.edu for some
          video card drivers.


Changes:  tWaveMD 1.2

          Play end could hang up WPS due to window of vulnerability.


Changes:  tWaveDAE 1.1a

          Capture would hang up WPS on certain track lengths.


Changes:  tWaveR 1.2

          Recording could hang up WPS due to window of vulnerability.
          Already fixed in tWaveP 1.1a.



14-May-98
---------

Changes:  gWaveMD 1.0 (980514)

          Uninitialized array was causing sporadic decoder performance that
          may have hung up the PM thread a lot, but not quite enough to fire
          the watchdog.  Sound would be very distorted.  This was previously
          attributed to an optimizing bug.

          Decoder runs 10% faster.

          File load/decode thread priority was always using Normal for the
          decoder, regardless of -pl: or menu setting.


Changes:  tWaveMD 1.1a

          Decoder runs 10% faster.


Changes:  tWaveMD/R/P 1.1a

          Cosmetic: Cursor moved to line 25 at exit only if -fa* used.


13-May-98
---------

Changes:  gWaveMD 1.0 (980513)

          Set default initial file load/decode thread priority to Normal so
          that play start won't be noticed in the foreground process (i.e.,
          you won't notice when a new file starts).

          -pl: switch added.

          Priority menu enhanced to include class priorities for Run, PM, and
          Load (same as -p:, -pp:, and -pl:, respectively).

          File load error messages reported more timely.


12-May-98
---------

Changes:  gWaveMD 1.0 (980512)

          Moved initial file load and decode of the first 3 seconds
          into a secondary thread.  This allows the main, PM thread
          to accept a time-critical priority without fear of PM stalls.

          -p: and -pp: now allow levels to be specified (see gwave.doc).

          There was a misplaced DosSleep(1000) right after the AmpMix
          open (in 980511) message was shown at the start of each play.

          Once Play is pushed the Play/Stop/Next/Prev buttons are
          locked out (but are not 'disable') until the file is loaded
          and the first 3 seconds (or -bt:) are decoded (OS/2 mutex
          semaphores are useless in the same thread, by design).

          The watchdog timer thread is still used because it's a good
          idea.  Its priority has been set to the max.  While its timeout
          of 11 seconds may seem long, it's there as a last resort.  You
          can use the -to:n switch to change the period from the default
          n=11200 (ms).  Since the initial load/decode has been moved out
          of the PM thread, it should not -hit- at all, no matter what.

Notes:    A faster decoder is wanted but I can really just blame the
          compiler (Watcom 10a -- W11 is the same).  I'll look at it
          more closely (the Watcom profiler is very misleading, I
          discovered) sooner or later.  For 1024-pt FFT (per channel)
          and 128 kpbs a K6/200 shows about 66% CPU used (based on idle
          available).  For basic play (VU, but no FA/FFT), about 50%.
          While the code is based on the "public C" code, I've compiled
          other (C) versions and, while they are quite a lot different,
          they are no faster compiled by W10a than gWaveMD.


11-May-98
---------

Changes:  gWaveMD 1.0 (980511)

          Optimization from 980510 was causing occasional decoder hang
          (actually, very slow decoding) -- optimization removed for now.
          It was also decoding some files badly (boink'ing up when it
          shouldn't have).

          Added watchdog timeout thread to ensure app exits cleanly if
          PM thread starves due to problems such as that noted above.
          Timeout is at 11 seconds.


10-May-98
---------

Changes:  gWaveMD 1.0 (980510b)

          Play button protected with mutex to prevent race condition.
          Exits back to OS/2 after 10-second timeout.

          Layer III decoder a bit more efficient (10%).
          --
          FA display would reshow the last play's peak levels at the start
          of next play.

          Really bad errors (from corrupt file streams) no longer cause the
          app to exit (now either stops at bad file or continues play to next).

          -ibe switch added.

          File handles and memory resources may have leaked during play.

          State fully reset after each play (may have previously caused
          problems after playing corrupt streams).

          Noted how to Pause in gwave.doc, and updated -xp:/-yp: note.

          Updated -key: info for tWave users.
          --
          gWaveMD 1.0 (980508a) Clip Correct was internally resetting
          back to on at each play.


 8-May-98
--------

Addition: gWaveMD 1.0

          gWaveMD is a PM MPEG audio decoder app with a fire-and-play
          interface that includes VU and frequency analysis displays.


Addition: Added gwave.doc.


Changes:  tWaveMD 1.1

          FFT:10 was not displaying frequencies in the 1720-2710 Hz range.

          Switch -fft:11 is set to -fft:10 if -bs: switch is < 5 K.

          After a detected bogus header the decoder scans to next SYNC.


Changes:  tWaveR 1.1

          FFT:10 was not displaying frequencies in the 1720-2710 Hz range.

          Switch -fft:11 is set to -fft:10 if -bs: switch is < 5 K.


Changes:  tWaveR 1.1

          FFT:10 was not displaying frequencies in the 1720-2710 Hz range.

          Switch -fft:11 is set to -fft:10 if -bs: switch is < 5 K.


28-Mar-98
---------

Changes:  tWaveR 1.07a

          tWave Record was always writing to the wave header that the file
          was 16-bit even though -ss:8 was used.


24-Mar-98
---------

Changes:  tWaveP 1.07

          When using -fa:n with n=negative, the FA display is in color.

          -bs:n switched accepts either ranges 1 to 60 or 1024 to 61440.
          -bc:n accepts up to 512 buffers.

          -fft:n switch added.
          -fd switch added.


Changes:  tWaveR 1.07

          When using -fa:n with n=negative, the FA display is in color.

          Can specify nul device as outfile.

          -bs:n switched accepts either ranges 1 to 60 or 1024 to 61440.
          -bc:n accepts up to 512 buffers.

          -fft:n switch added.
          -fd switch added.


Changes:  tWaveDAE 1.07

          -nc switched added.


Changes:  tWaveMD 1.07

          When using -fa:n with n=negative, the FA display is in color.

          -bs:n switched accepts either ranges 1 to 60 or 1024 to 61440.
          -bc:n accepts up to 512 buffers.

          -fft:n switch added.
          -fd switch added.

          -tc switch added.


13-Mar-98
---------

Addition: Added the TIPS section (below) to the README.

Changes:  tWaveP 1.06b

          Changed default stereo frequency analysis (FA) to peak mode,
          and dB scale moved up one slot, and improved FA peak tracking.

          -faa[:n] switch added.
          -nodcs switch added.

Changes:  tWaveR 1.06b

          Changed default stereo frequency analysis to peak mode,
          and dB scale moved up one slot, and improved FA peak tracking.

          -faa[:n] switch added.
          -nodcs switch added.


Changes:  tWaveMD 1.06b

          Changed default stereo frequency analysis to peak mode,
          and dB scale moved up one slot, and improved FA peak tracking.

          -faa[:n] switch added.
          -nodcs switch added.


12-Mar-98
---------

Changes:  tWaveP 1.06

          Added real-time frequency analysis.

          -fa[:n] switch added.

Changes:  tWaveR 1.06

          Added real-time frequency analysis.

          -fa[:n] switch added.


Changes:  tWaveMD 1.06

          Added real-time frequency analysis.

          -fa[:n] switch added.


 4-Mar-98
---------

Changes:  tWaveP 1.05

          Added new default clock routine to deal with non-compliant
          soundcard drivers.

          -mc switch added to select old, MCI clock routine.

          No longer attempts to play empty wave files (< 256 bytes).

Changes:  tWaveR 1.05

          Added new default clock routine to deal with non-compliant
          soundcard drivers.

          -mc switch added to select old, MCI clock routine.

Changes:  tWaveDAE 1.05

          Default drive is first CD-ROM (was "R:")

          -sx switch added to write separate outfiles (fileNN.wav where
          NN is track number) if multiple tracks selected.

          -noreset switch added to skip drive reset

Changes:  tWaveMD 1.05

          Added new default clock routine to deal with non-compliant
          soundcard drivers.

          -mc switch added to select old, MCI clock routine.

          Improved the clip correction routine's handling of bad/bogus data,
          along with another improvement.

Changes:  tWaveCD 1.05

          Default drive is first CD-ROM (was "R:")

          Volume level can be set (-vol: and V/V keys)

          -noreset switch added to skip drive reset

Addition: Added os2err.txt listing of OS/2 error codes


20-Feb-98
---------

Changes:  tWaveCD 1.02c

          CDDB parse now handles multiple CDDBIDs per DISCID= line.

          -stop and -norep switches added.

          Track # display was not always updating correctly.

          CDDB scan updated to compare both from and to range of filename.

          -cddb switch includes option to restrict search to a directory,
          such as -cddb:rock to start search in %CDDB_DIR%\rock.

          Play initiated without -pt: switches now is glitch-free across
          tracks that play into one another.

Changes:  tWaveCD 1.01

          CD volume set to max at start up.
          Display update set to once per second.

Addition: tWaveCD 1.00

          tWaveCD is a CD player.  Output is via the analog outputs of
          the CD-ROM device, either through the RCA out jacks or through
          a soundcard if the soundcard is cabled to the CD device.


16-Feb-98
---------

Changes:  tWaveMD 1.03a

          Added -nocc and -scale: switches
          Updated.

Addition: Listing file mmos2err.txt


12-Feb-98
---------

Changes:  tWaveMD 1.01

          -vu output was not updating after decoding stopped

Addition: tWaveMD 1.00

          tWaveMD is an MPEG audio decoder/player.  Output is via DART or
          to a .WAV file or both.  Requires a P5/100 CPU (minimum).

Changes: tWaveR 1.03, tWaveP 1.03

         Fixed -du: display update interval switch to accept values < 100ms.
         Updated.

Changes: tWaveDAE 1.03

         Updated.


31-Jan-98
---------

Changes: tWaveR 1.02, tWaveP 1.02

         tWaveR and tWaveP had their default settings changed.  Start the
         app with no command-line arguments to see the new defaults.

         tWaveR 1.0a was not updating the display (levels and time).


26-Jan-98
---------
Changes: tWaveDAE 1.01

         tWaveDAE outputs wave header only if filename has ".wav" in it,
         otherwise raw PCM (44.1kHz, 16-bit, stereo).  Filename of nul can
         be used to test the absolute read speed of the CD device.  Default
         priority set to 41F.


News
----

DART has been available in general release since Warp 3 fixpack #26.  If
you have installed any Crystal driver since installing fp26 or later your
DART (Direct Audio RouTines) files have been replaced with non-working DLLs.
Reinstall fp26 (only the multimedia directory needs to be serviced).  This
is a known problem with the Crystal install and should be fixed in their
releases dated after Jan98.  Contact Crystal Semiconductor or Cirrus Logic
for information.  Warp 4 is not affected by the DART damage.

Important Note
--------------

If you install a new soundcard driver and DART no longer works, or OS/2
crashes, this is a fault in the soundcard driver.  All tWave programs use
OS/2 ring-3 services so any serious problem you may have is directly
related to the bugfree-ness of your soundcard driver or hardware.  Update
to a new soundcard driver only if you need to, not just because it's there;
newer does not mean better.


6-Jan-98
Overview
--------
tWave is a set of console applications for OS/2 to play and record .WAV
files.  Also included in this first release is a digital audio extraction
application that reads pure digital data off of audio CDs and saves to a
.WAV file.  Additional applications may be added to the package in the
future.  Full-duplex (record and playback at the same time using one
soundcard) is possible if supported by the hardware/driver, and you can
also use multiple soundcards doing full-duplex at the same time.

DART (Direct Audio RouTines) is required so you must be using Warp 4, or
Warp 3 with DART installed (a current version of DART is recommended if
you use Warp 3; -early- versions may fail after repeated use if system
sounds are enabled (why enabled?), though DART will continue to work).

Limitations
-----------
These files are demos, and are to be used for evaluation purposes only.
Continued use requires purchasing a license, with one license required
per computer.  A license is valid for all updates within the major version
number, 1.x (1.00 to 1.99), and carries forward to any applications added
in this version range.

The limitations to the demo versions are:

 1. tWave Player plays for a limited time (varies)

 2. tWave Recorder records for a limited time/size (varies)

 3. tWave DAE extracts tracks 1 and 2 only

 4. tWave MPEG Audio Decoder decodes for a limited time (varies)

 5. tWave CD plays tracks 1 and 2 only (it will not move to tracks
    after 2 but it will play all tracks if -all is used, or X/x pressed).

 6. gWaveMD plays for a varible number of times per run.

Compatible hardware is required.

Tips
----
If you get odd errors when recording, or playing, such as overruns
at certain sample rates, you should switch to another buffer size
(-bs: switch, -bk: switch in gWave).  DART brings out most of the
flaws in your sound card's driver, though most can be configured
around by using tWave switches.

The -nodcs switch disables uninterruptable screen updates, which may
make the FA screen output less desirable, though it may be need in some,
unforeseen case.

If you have a heavy-duty background job running (or foreground job for
that matter) and find tWave* skipping, or updating the screen slowly,
boost the priorities.  For example, use

  twavemd -bp:21f -mp:21f -dp:300 file.mp3 -fa  (or -tc in twavemd)

or perhaps 300 for all.  All time-consuming tWave threads by default
run at normal priority (200), which may hinder its performance when
other, higher-priority jobs are running.

Set MAXWAIT=1 in os/2's config.sys file.

The nul device can be used in tWaveR as the output filename to set
recording levels, look at the FA, and so on, without writing to disk.

gWaveMD's VU display is -6dB in the center, with +0dB far right and
-28dB far left.

gWaveMD's FA display is scaled similarly to tWaveMD's freq display.

gWave version level can be seen in the task list.


Ordering
--------
To get the regular release, order using either of the order forms included
in this package.  Once your order is received an installation package is
sent to you that contains all you need to convert the demo binaries to
full-function binaries.  E-mail is used on all orders received with a valid
e-mail address, usually within 24 hours, otherwise your package is sent by
standard AirMail (3-7 days for US addresses; 3-14 days international).

With release 1.1 gWave is included in the tWave package.  tWave users should
e-mail gwave@40th.com to request a key.


Support
-------
Technical support for the demo version:  none.

Technical support for the registered version:  14 days from your first tech
support question.  Thereafter, $20 for each additional 2-week support period.

Support e-mail address (must be registered): twave@40th.com
--
<eof>

