User Guide for tWave
Copyright (C)1998 Cornel Huth
Last update 8-May-1998


  Technical support for this package is available only for this package;
  everything known about this package is detailed in the pages following.
  If you need support in using your sound card, contact the one that
  sold you the card, or the card maker.  Technical support is reserved
  only for those that have registered.


This User Guide steps you through installation and basic use, covering
the following:

  I. Basic Setup
     A. Install
     B. Tech Support
     C. What Else Can I Get

 II. Basic Use
     A. tWave Player
     B. tWave Recorder
     C. tWave DAE
     D. tWave MPEG Audio Decoder
     E. tWave CD

III. License Agreement


To make use of this guide load it into any standard text editor and
search on words, error codes, etc., as needed.  It's best to read it
all the way through at least once before using this software and before
requesting support.


             The README file has additional info,
                   such a demo limitations
                   and all recent changes.


---------------------------------------------------------------------
Basic Setup
---------------------------------------------------------------------

Installation is simple and easy; just follow the directions.  To
uninstall just delete all files in this package.  If you did not
just get this package from http://40th.com you should first do so;
current versions will always be there long before anywhere else.

A. Install
   -------

   1. Unzip the package to any empty directory

   2. Move the twave*.exe files to a directory in PATH

   3. Create program objects for the twave*.exe files (optional)

   4. At this point the twave*.exe files are ready to use once you
      read the following documentation


B. Tech Support
   ------------

   If you have registered and have a support question or comment on
   the tWave send e-mail containing as much info as possible to

        twave@40th.com

   If you are evaluating tWave, no support is available.


C. What Else Can I Get
   -------------------

   Take the Express elevator to

        http://40th.com/

   and have a look around.  Download anything and everything.


---------------------------------------------------------------------
Basic Use
---------------------------------------------------------------------

A. tWave Player
   ------------
   tWave Player (twavep.exe) plays standard .WAV files using DART.  Press
   the Esc key at any time to exit tWave Player, or use Ctrl-C.  Play also
   ends when the wave file completes.

   Use the following switches to control playback:

     [C:\]twavep [-switch] file.wav

   Use just "twavep" to get the following help screen:

 -id:n     show stats (0=none,!0=basic,|2=switches,|4=more)
 -wd:n     n=wave device index (def=default device)
 -bs:n     n=buffer size, 1 to 60 K (def=60)
 -bc:n     n=number of buffers, 3 to 512 (def=4)
 -bl:n     n=number of buffers preloaded, 2 to 511 (def=3)
 -du:n     n=display update interval in ms, 0,31-1000 (def=124)
 -bp:x     x=buffer read priority in hex, 200 to 41F (def=300)
 -dp:x     x=display priority in hex, 101 to 41F (def=200)
 -xp:x     x=end play priority in hex, 200 to 41F (def=300)
 -repeat   repeat play continually (-rep:n to repeat n times)
 -fa       freq analysis w/bs=12 du=62 bc=20 (-fa:n n=graph char -255 to 255)
 -pause    start in paused state     -fft:n    n=7 to 11 (def=7)
 -vu       show peak levels          -cls      clear screen at start

           Esc:exit   SPACE:pause/resume   v:reset peak hold


   -wd:n    n defaults to 0, or the default wave device.  If you have
            more than one wave device you can specify it here.  For
            example, if you have an OPL3-SA3 as the default device
            and an SB16 as the second device:

            -wd:0  uses the opl3-sa3
            -wd:1  uses the opl3-sa3
            -wd:2  uses the SB16

   -bs:n    n defaults to 60.  Individual sound buffer size, in KB.

   -bc:n    You get this many buffers, each of -bs: size.

            The -bc: switch is related to the -bl: switch, following.

   -bl:n    n defaults to -bc: minus 1.  This is the number of
            -bc: buffers pre-loaded.  Normally this switch is not used.

            To see the buffers being used, use the -id:7 switch.

   -du:n    This is the display update period.  The display line shows
            the running time, full buffers unplayed (should always be
            -bc: minus 1, or the -bl: count, until the end of play),
            and if -vu, the current and peak levels.

   -bp:x    This specifies the priority of the buffer read thread.
            Priorities in the 300 to 31F range are the highest priorities.

   -dp:x    This specifies the priority of the display thread.

   -xp:x    This specifies the priority of the end play event detector.

   -repeat  Using this repeats play continually (or -rep).

   -fa      Engage real-time frequency analysis.  Or, use -fa:n where n
            is a value from -255 to 255 for the main graphic element.
            The default is -fa:221.  A negative character uses color.

            Using -fa changes the defaults -bs:12 and -du:62.  Either
            of these can still be changed by explicitly using the switch.
            Also, -bc: is set to 20 buffers, each of -bs: size.

            Use -faa (or -faa:n) for average stereo FA.

            Only 16-bit data is analyzed.

   -fd      Sets the FA display to use a fast decay.

   -pause   Using this starts playback in a paused state.  Press P or
            the spacebar to resume (these toggle the pause state).

   -fft:n   n is the size of the FFT performed, from 7 to 11 (default
            is 7).  When 8 to 11 a high-precision display is used for
            the lower bins.

   -mc      Use MCI status for clock display.

   -vu      Show peak levels for each buffer played, and peak levels
            reached so far.  Use V to reset.

   -cls     Clear the screen at start.

   -key:    Reserved for registered users.


   Error codes are MCI or MMIO Guru codes.  If you don't see the obvious
   error of the play, send the rc= code, and any other info, to the
   support e-mail address, if registered.  The error code itself is
   usually just in the lower word, so subtract 65536 if above this.

   The running time as returned by MMOS2 may not be accurate.  It also
   tends to reset to 0:00 after a pause, though not always.  This seems
   to be related to the soundcard driver used.  This is no longer a
   factor unless -mc is used.


B. tWave Recorder
   --------------
   tWave Recorder (twaver.exe) records to standard .WAV files using DART.
   Press the Esc key at any time to exit tWave Recorder, or use Ctrl-C.
   Recording also ends when the time or bytes is reached (-rt: or -rb:).

   Use the following switches to control recording:

     [C:\]twaver [-switch] file.wav

   Use just "twaver" to get the following help screen:

 -id:n     show stats: 0=none, !0=basic, |2=switches, |4=more (def=1)
 -wd:n     n=wave device to use (def=0, default wave device)
 -bs:n     n=buffer size, 1 to 60 K (def=60)
 -bc:n     n=number of buffers, 3 to 512 (def=4)
 -du:n     n=display update interval in ms, 0,31-1000 (def=124)
 -bp:x     x=buffer write priority in hex, 200 to 41F (def=300)
 -dp:x     x=display priority in hex, 101 to 41F (def=200)
 -xp:x     x=end record priority in hex, 200 to 41F (def=300)
 -rt:n     n=record time, max seconds: 1 to forever (def=forever)
 -rb:n     n=record bytes, max bytes: -bs: to forever (def=forever)
 -ri:n     n=record input source: 0,1=line,2=mic (def=0, current source)
 -rl:n     n=record level gain: 0 to 100 (def=0, +0dB gain)
 -sr:n     n=sample rate, in Hz (def=44100 Hz)
 -ss:n     n=sample size, 8 or 16 bits (def=16 bits)
 -sm:n     n=sample mode, 1=mono or 2=stereo (def=stereo)
 -fa       freq analysis w/bs=12 du=62 bc=20 (-fa:n n=graph char -255 to 255)
 -pause    start in paused state     -fft:n    n=7 to 11 (def=7)
 -vu       show peak levels          -mon      monitor on

           Esc:exit   SPACE:pause/resume   v:reset peak hold


   -wd:n    n defaults to 0, or the default wave device.  If you have
            more than one wave device you can specify it here.  For
            example, if you have an OPL3-SA3 as the default device
            and an SB16 as the second device:

            -wd:0  uses the opl3-sa3
            -wd:1  uses the opl3-sa3
            -wd:2  uses the SB16

   -bs:n    n defaults to 60.  Individual sound buffer size, in KB.

   -bc:n    You get this many buffers, each of -bs: size.

            To see the buffers being used, use the -id:7 switch.

   -du:n    This is the display update period.  The display line shows
            the running time, full buffers unplayed (should always be
            -bc: minus 1, or the -bl: count, until the end of play),
            and if -vu, the current and peak levels.

   -bp:x    This specifies the priority of the buffer write thread.
            Priorities in the 300 to 31F range are the highest priorities.

   -dp:x    This specifies the priority of the display thread.

   -xp:x    This specifies the priority of the end play event detector.

   -rt:n    This specifies how long, in seconds, that you want to record.
            You can press Esc to end sooner.

   -rb:n    This specifies how long, in bytes, that you want to record.
            You can press Esc to end sooner.

   -ri:n    This selects the source for the recording:  1=line in, 2=mic.
            For more selective sourcing you should get the aMixer package
            for SoundBlasters or the mx* mixers for the OPL3-SAx, AT3D-XG,
            or Crystal-based (mode-2 and -3) soundcards, and use -ri:0.

   -rl:n    ADC gain.  The max is 100.  For maximum versatility you
            should get one of the mixers described under -ri:, above.

   -sr:n    This is the sample rate.  Valid rates vary depending on the
            driver you use.  For example, the Crystal 1.71 driver supports
            several rates, from 5000 (5kHz) up to 48000 (48kHz).  An error
            is returned if your driver/hardware does not support the -sr:
            used.  Max accepted by tWaveR is 64000.  The common sample rates
            are: 8000, 11025, 22050, 44100, and 48000.  Other rates should
            be avoided.

   -ss:n    The sample size.  Select 4, 8, or 16-bit.  Valid sizes vary
            depending on the hardware/driver you use.

   -sm:n    Select 1 for mono, 2 for stereo, or 4 for quad.  Valid modes
            vary depending on the hardware/driver you use.

   -fa      Engage real-time frequency analysis.  Or, use -fa:n where n
            is a value from -255 to 255 for the main graphic element.
            The default is -fa:221.  A negative character uses color.

            Using -fa changes the defaults -bs:12288 and -du:62.  Either
            of these can still be changed by explicitly using the switch.
            Also, -bc: is set to 20 buffers, each of -bs: size.

            Use -faa (or -faa:n) for average stereo FA.

            Only 16-bit data is analyzed.

   -mon     This turns on the monitoring of the selected source.  In
            other words, you can hear what is being recorded.

   -fd      Sets the FA display to use a fast decay.

   -pause   Using this starts recording in a paused state.  Press P or
            the spacebar to resume (these toggle the pause state).

   -fft:n   n is the size of the FFT performed, from 7 to 11 (default
            is 7).  When 8 to 11 a high-precision display is used for
            the lower bins.


   -mc      Use MCI status for clock display.

   -vu      Show peak levels for each buffer recorded, and peak levels
            reached so far.  Use V to reset.

   -cls     Clear the screen at start.

   -key:    Reserved for registered users.


   Error codes are MCI or MMIO Guru codes.  If you don't see the obvious
   error of the record, send the rc= code, and any other info, to the
   support e-mail address, if registered.  The error code itself is
   usually just in the lower word, so subtract 65536 if above this.


   Odd behavior during playback, record, or full-duplex operation is likely
   a problem with your hardware/driver.

   While recording, do not attempt to open a new window or start a new app
   since OS/2 likely won't.  You can switch to an already open window, or
   to an already running app.

   The recording time as returned by MMOS2 may not be accurate.  It also
   tends to reset to 0:00 after a pause, though not always.  This seems
   to be related to the soundcard driver used.  This is no longer a
   factor unless -mc is used.


C. tWave DAE
   ---------
   tWave DAE (twavedae.exe) extracts digital data directly from audio CDs
   to .WAV files.  The format is standard PCM 16-bit stereo at 44.1kHz.
   The extraction takes place at whatever speed the CD-ROM drive is
   capable of, or the speed it is currently set to.  No "jitter" correction
   is currently done.  Perfect capture 100% of the time is possible with
   the Plextor 12/20 drive (for one).  If your drive does not support
   DAE the following message is shown:

      Your CD device does not support DAE (use -nc switch)

   However, your device may indeed support DAE, only the driver installed
   does not (os2cdrom.dmd, and any lower-level .add drivers).  If you aren't
   using Warp 4 you may want to upgrade, or at least update to the most
   recent fixpack of Warp 3.  However, there is no guarantee that this is
   all that's needed.  The test system uses a Plextor 12/20 CD-ROM drive
   attached to a BT-948 SCSI H/A and an IBM 2ES HD and K6/210 CPU with 96MB,
   Warp 4.  This setup copies an entire 40 minute audio CD in 140 seconds,
   an average of 3 MB/sec.  Using the -nc switch may be all that's needed.


   Jitter correction may be added in an later release.  If you can only
   get a scratchy sound, or you hear drop-outs or anything other than a
   perfect reproduction of the original CD, you either have a CD-ROM drive
   that has a bad case of jitter, or your CPU/disk subsystem is not fast
   enough.

   When tWaveDAE is started a delay may occur while the CD-ROM drive
   switches to DAE mode.  During this time, 20 seconds on the test system,
   the tWaveDAE window will be non-responsive (any other windows should
   respond normally) and the following is shown:

      Accessing drive R: (wait)...

   Also during this time MMOS2 may stall, and any current playback or
   recording process may loop the same buffer, over and over, until the
   drive switches modes.  Also any application that scans drives (for
   a scan that includes the CD-ROM drive) when it starts up will stall
   during this (wait) period.  However, running apps continue operating
   normally.  The default priority is 41F (foreground server) for the
   read/write thread which should do fine for most.  Any 3xx priority is
   a higher priority since 4xx is the same as 2xx except that it 4xx
   does not lose priority when put not in focus.

   Press the Esc key at any time to exit tWave DAE, or use Ctrl-C.  Recording
   also ends when all selected tracks have been written.

   Use the following switches to control DAE:

     [C:\]twavedae [-switch] outfile[.wav]

   Use just "twavedae" to get the following help screen:

 -id:n     show stats: 0=none, !0=basic, |2=buffer stats |4=verbose (def=4)
 -cd:a     a=CD drive (def=first CD-ROM)
 -bc:n     n=number of buffers, 1 to 27 (def=27)
 -xp:x     x=DAE priority in hex, 200 to 41F (def=41F)
 -xt:n     n=track(s) to extract (TOC if none)
             use "-xt:1 3 2" for multiple extractions
 -sx       extract -xt: tracks to separate outfile##[.ext] (##=track #)

 -toc      always show TOC           -cls      clear screen at start
 -unlock   unlock pod bay door       -lock     lock pod bay door
 -open     open pod bay door         -noreset  skip drive reset
 -xchg     prompt for disc exchange (auto open-prompt-auto close)

           Esc:exit

   -cd:a    a defaults to the first CD-ROM drive.  If you have another CD-ROM
            drive, E: for example, use -cd:E (no colon is needed).

   -bc:n    You get this many buffers of 2352 bytes.

   -xp:x    This specifies the priority of the DAE buffer read/write thread.

   -xt:n    Specifies which track(s) to extract.  For example, to extract
            the first audio track on an audio CD, use -xt:1.  To extract more
            than one, where all extracted tracks are placed into one .WAV
            file, use the following:  For example, to extract the first two
            tracks, use

               "-xt:1 2"  (with double-quotes)

   -sx      Writes outfile as outfile## where ## is replaced with the
            track number for each track.  This results in separate out
            files, one per track specified in -xt:.  The track number
            is appended to the filename proper, right before the last
            dot in the filename, if any.  This adds two characters to
            the total filename length (a concern for FAT file systems).

   -toc     Always show the disc's Table of Contents.  This is usually the
            first thing you do; you take a look to see what's on the disc.
            Here's an example output:

               Tk   Start      Time     Bytes
               --  --------  --------  ---------
                1  00:02.32  04:09.23   43977696
                2  04:11.55  06:52.22   72728544
                3  11:04.02  06:29.25   68678400
                4  17:33.27  04:04.00   43041600
                5  21:37.27  04:51.70   51497040
                6  26:29.22  06:21.63   67356576
                7  32:51.10  10:51.42  114935184
                             --------  ---------
                      Disc:  43:40.20  462215040
                  Selected:  00:00.00          0


            Time is shown in minutes:seconds.blocks, where a block=1/75th
            of a second.

   -cls     Clear the screen at start.

   -unlock  Unlock the CD door.

   -lock    Lock the CD door.

   -open    Eject the CD door.

   -noreset Skip drive reset.

   -nc      Skip device capabilities check.

   -xchg    This can be used to prompt for a disc exchange.  It ejects the
            tray, prompts for you to press a key, then injects the tray.

   -key:    Reserved for registered users.


   Error codes are MCI or MMIO Guru codes.  If you don't see the obvious
   error, send the rc= code, and any other info, to the support e-mail
   address, if registered.


D. tWave MPEG Audio Decoder
   ------------------------
   tWave MPEG Audio Decoder (twavemd.exe) plays standard MPEG-1 and MPEG-2
   layer I, II, and III mono and 2-channel stereo files using DART.  Press
   the Esc key at any time to exit tWave MD, or use Ctrl-C.  Play also ends
   when the file completes.  Optionally, the output may be sent to a .wav
   file.

   Sample MPEG audio files can be downloaded from hobbes.nmsu.edu in
   /pub/multimedia/wave/mpeg.  MPEG-1 layer III 44.1kHz 128 kbps stereo
   files are (can be) very near-CD quality, at less than 1/10th the size.
   In MPEG-2 files, an 8 MB file could store a medium-quality mono recording
   of nearly an hour.  The trade-off of MPEG is that it requires a powerful
   CPU to decode:  no less than a P5/100 should be used when playing back in
   real-time, and the more power the better if multitasking.

   The default priorities in tWaveMD are set to 0200h, which will result in
   some skipping under heavy multitasking.  Either increase this to 41F (the
   decoder and read priorities: -mp and -bp) or to 300.  This may slow down
   other processes, however.  At the default priorities of 200 you may not
   notice a slowdown at all.  Another option is to use more buffers.  The
   default has about three seconds buffered.  The max is 22 seconds (-bc:64).
   It may be useful to set -bl: to half of -bc: to minimizes playback
   disruption.

   Use the following switches to control playback:

     [C:\]twavemd [-switch] file.mp?

   Use just "twavemd" to get the following help screen:

 -id:n     show stats (0=none,!0=basic,|2=switches,|4=more)
 -wd:n     n=wave device index (def=default device)
 -bs:n     n=buffer size, 1 to 60 K (def=60)
 -bc:n     n=number of buffers, 3 to 512 (def=10)
 -bl:n     n=number of buffers preloaded, 2 to 511 (def=9)
 -bp:x     x=buffer read priority in hex, 200 to 41F (def=200)
 -mp:x     x=decoder priority in hex, 200 to 41F (def=200)
 -xp:x     x=end play priority in hex, 200 to 41F (def=300)
 -dp:x     x=display priority in hex, 101 to 41F (def=200)
 -du:n     n=display update interval in ms, 0,31-1000 (def=124)
 -out:a    a=output wave filename
 -dup      if -out: then plays and writes .wav at the same time
 -repeat   repeat play continually (-rep:n to repeat n times)
 -fa       freq analysis w/bs=12 du=62 bc=50 (-fa:n n=graph char -255 to 255)
 -pause    start in paused state  -fft:n    n=7 to 11 (def=7)
 -vu       show peak levels       -tc       use -bp/mp/dp=300 (time-critical)
 -nocc     no clip correct        -scale:n  n=scale,8192 to 999999 (def=32767)

           Esc:exit   SPACE:pause/resume   v:reset peak hold


   -out:a   a is the pathname of the .wav file to write.  Using this turns
            off audio output unless -dup is used.  A 5 MB MPEG-1 layer III
            128kbps 44.1kHz stereo file creates a 55 MB .wav file.

   -dup     if -out: is specified, -dup turns on audio output while
            also creating a .wav file.

   -wd:n    n defaults to 0, or the default wave device.  If you have
            more than one wave device you can specify it here.  For
            example, if you have an OPL3-SA3 as the default device
            and an SB16 as the second device:

            -wd:0  uses the opl3-sa3
            -wd:1  uses the opl3-sa3
            -wd:2  uses the SB16

   -bs:n    n defaults to 60, unless -fa is used.  Individual sound
            buffer size, in KB.

   -bc:n    You get this many buffers, each of -bs: size.

            The -bc: switch is related to the -bl: switch, following.

   -bl:n    n defaults to -bc: minus 1.  This is the number of
            -bc: buffers pre-loaded.  Normally this switch is not used.

            To see the buffers being used, use the -id:7 switch.

   -du:n    This is the display update period.  The display line shows
            the running time, full buffers unplayed (should always be
            -bc: minus 1, or the -bl: count, until the end of play),
            and if -vu, the current and peak levels.

   -bp:x    This specifies the priority of the buffer read thread.
            Priorities in the 300 to 31F range are the highest priorities.

   -dp:x    This specifies the priority of the display thread.

   -mp:x    This specifies the priority of the decoder thread.

   -xp:x    This specifies the priority of the end play event detector.

   -repeat  Using this repeats play continually (or -rep).  This repeats
            9999 times.  To repeat a set number of times, use -rep:n,
            where n may be 1 to 99.

   -fa      Engage real-time frequency analysis.  Or, use -fa:n where n
            is a value from -255 to 255 for the main graphic element.
            The default is -fa:221.

            Using -fa changes the defaults -bs:12288 and -du:62.  Either
            of these can still be changed by explicitly using the switch.
            Also, -bc: is set to 50 buffers, each of -bs: size.

            Use -faa (or -faa:n) for average stereo FA.

            Only 16-bit data is analyzed.

   -fd      Sets the FA display to use a fast decay.

   -pause   Using this starts playback in a paused state.  Press P or
            the spacebar to resume (these toggle the pause state).

   -fft:n   n is the size of the FFT performed, from 7 to 11 (default
            is 7).  When 8 to 11 a high-precision display is used for
            the lower bins.

   -mc      Use MCI status for clock display.

   -vu      Show peak levels for each buffer played, and peak levels
            reached so far.  Use V to reset.

   -tc      Same as using -bp=300 -mp=300 -dp=300 (time-critical).

   -cls     Clear the screen at start.

   -nocc    Do not auto-rescale after clip (no clip correct).  Generates
            clip total/(max level) at end if used, otherwise generates
            recommended scale if any samples clipped.

   -scale:n  Specify scale multiplier for each sample generated.

   -key:    Reserved for registered users.


   Error codes are MCI or MMIO Guru codes.  If you don't see the obvious
   error of the play, send the rc= code, and any other info, to the
   support e-mail address, if registered.  The error code itself is
   usually just in the lower word, so subtract 65536 if above this.

   The running time as returned by MMOS2 may not be accurate.  It also
   tends to reset to 0:00 after a pause, though not always.  This seems
   to be related to the soundcard driver used.  This is no longer a
   factor unless -mc is used.


E. tWave CD
   --------
   tWave CD (twavecd.exe) plays audio CDs via the analog output jack of
   the CD-ROM drive.  This requires that the CD device be cabled to the
   soundcard, or possibly directly to a line-level input of an amplifier
   if using RCA jacks.

   When tWaveCD is started a delay may occur while the CD-ROM drive
   switches to audio mode.  During this time, 20 seconds on the test system,
   the tWaveCD window will be non-responsive (any other windows should
   respond normally) and the following is shown:

      Accessing drive R: (wait)...

   Also during this time MMOS2 may stall, and any current playback or
   recording process may loop the same buffer, over and over, until the
   drive switches modes.  Also any application that scans drives (for
   a scan that includes the CD-ROM drive) when it starts up will stall
   during this (wait) period.  However, running apps continue operating
   normally.  The default priority is 200 (normal priority) for the track
   controller/display thread which should do fine for most.  If the CD
   is already playing there is no start up delay.  This means you can use
   the -xchg switch and swap in a new CD and have it play in just a few
   seconds.


   Press the Esc key at any time to exit tWave CD, or use Ctrl-C.  Play
   ends only when Esc is used.  You can also exit tWaveCD yet keep the
   CD playing (use 'x' for this).

   Use the following switches to control tWaveCD:

     [C:\]twavecd [-switch]

   Use just "twavecd" to get the following help screen:

 -id:n     show stats: 0=none, !0=basic, |4=verbose |8=offsets (def=4)
 -cd:a     a=CD drive (def=first CD-ROM)
 -vol:n    n=volume level, 0-255 (def=255)
 -pp:x     x=play/display priority in hex, 101 to 41F (def=200)
 -pt:n     n=track(s) to play (keyboard (F/f/R/r) control if just -toc)
             use "-pt:1 3 2" for multiple tracks

 -all      start play of all tracks and exit (w/play)
 -toc      always show TOC           -cls      clear screen at start
 -unlock   unlock pod bay door       -open     open pod bay door
 -norep    do not repeat/loop        -stop     stop play and exit
 -noreset  do not reset drive
 -xchg     prompt for disc exchange (auto open-prompt-auto close)
 -cddb     use local CDDB database (needs SET CDDB_DIR=d:pathdir)
 -cddb:a   a=specific CDDB directory to limit search to (e.g., a=rock)

           f/F:next/fFwd  r/R:prev/fRew  V/v:volume up/down
           Esc:stop+exit  x:exit w/play  SPACE:pause/resume


   -cd:a    a defaults to the first CD-ROM drive.  If you have another CD-ROM
            drive, E: for example, use -cd:E (no colon is needed).

   -vol:n   n=volume level to set the internal level to on the CR-ROM drive
            itself.  Not all drives have this feature; some only have two
            values (volume on and off); some perhaps 10, some may have 256.
            tWaveCD rounds volume levels down to the nearest 5.  For example,
            -vol:128 sets the volume to 125.  The keyboard V and v can be
            used to increase or decrease the volume during play.  The current
            value is displayed if other than the default or startup volume.

   -pp:x    This specifies the priority of the tracker/display thread.

   -pt:n    Specifies which track(s) to play.  For example, to play only
            the first audio track on an audio CD, use -pt:1.  To play more
            than one use the following:  For example, to play the first two
            tracks, use

               "-pt:1 2"  (with double-quotes)

            Also possible is "-pt:3 2 1 2 3"

   -all     Starts play at first track (to end) then exits while playing.

   -toc     Always show the disc's Table of Contents.  This is usually the
            first thing you do; you take a look to see what's on the disc.
            Use this if you don't want to specify the tracks to play, but
            just want to start the playback and then use the keyboard to
            select the tracks to play in real-time.

            Here's an example output (with CDDB lookup):

 CDDB disc ID=55099f08
 Tk   Start      Time    Track Name
 --  --------  --------  --------------------------------------------------
  1  00:02.00  08:20.27  Buzzard
  2  08:22.27  08:21.40  Silver Tightrope
  3  16:43.67  04:32.65  Paths and Planes and Future Gains
  4  21:16.57  08:24.05  Last Stand Before
  5  29:40.62  01:02.43  Warning Comin' On
  6  30:43.30  03:05.70  Basking in the White of the Midnight Sun
  7  33:49.25  05:13.07  Brother Ego
  8  39:02.32  02:02.55  Basking in the White of the Midnight Sun (Reprise)
               --------
        Disc:  41:03.12  Armageddon

            Time is shown in minutes:seconds.blocks, where a block=1/75th
            of a second.

   -cls     Clear the screen at start.

   -unlock  Unlock the CD door.

   -open    Eject the CD door.

   -norep   Do not repeat in non- -pt: mode.  -pt: mode always only
            plays selected tracks and exits.

   -stop    Stop play.  Useful when using -all or after pressing X.

   -noreset Skip drive reset.

   -xchg    This can be used to prompt for a disc exchange.  It ejects the
            tray, prompts for you to press a key, then injects the tray.
            Useful when you press X near the end of play since you can
            start up tWaveCD again with the -xchg switch and get a quick
            turn-around on a CD swap.

   -cddb    Check the local CDDB database for a matching CDDB discID.  The
            CDDB database can be downloaded from

                    http://www.cddb.com/

            The total database is about 130MB.  In .zip format about 32MB.
            This database is divided into several formats: blues, country,
            rock, and so on.  tWaveCD searches the directory path pointed
            to by the CDDB_DIR environment variable:

                SET CDDB_DIR=d:\cddb\rock

            This example has tWaveCD search only in the rock directory
            (and any subdirectories that may be in there).  You can
            create your own subset of the database if you want.  The
            order of searching is first-found, first-scanned, so move
            the most likely database directories up (rename, etc.).
            Without this database you won't get the Track Names list.
            Do not use a trailing \ on the directory.

   -cddb:a  Where a=directory to start relative CDDB_DIR.  For example,
            the CDDBID codes are not unique and so you may find that a
            Blues CD pops up for a Rock CD (e.g., Garbage).  You can
            avoid this by specifying the probable music format.  E.g.,
            -cdda:rock starts searching in %CDDB_DIR%\rock.

   -key:    Reserved for registered users.


   If a CD is not in the CDDB database it may be that it simply has
   not been entered yet, or maybe the version you have is obscure and
   the pressing a little different (a few seconds shorter, for
   example).  Use the -id:15 and -cddb switches to get a listing of
   the track start offsets, total seconds and DISCID and compare that
   to what is in the database.  If the running time is all that
   differs, the third hex digit (xxyyHHzz) will be different, while
   the others three digits will be the same.  Add a new entry into
   your local database using the info from this run and that'll take
   care of that.  Contact CDDB and let them know, too.


   To play with keyboard control (without having to specify tracks to play
   with -pt:), start up with the -toc switch (or any switch).

   The demo version exits after moving past track 2.  See the README file
   for more.

   The f/r keys select next/previous track.  F/R fast fwd/rewind.
   X/x exits tWave while continuing to play.  Esc stops and exits.
   V/v increase/decrease the volume.

   Error codes are standard OS/2 codes.  If you don't see the obvious
   error, send the rc= code, and any other info, to the support e-mail
   address, if registered.


---------------------------------------------------------------------
License Agreement
---------------------------------------------------------------------

 Before using this software you must agree to the following:

    1. You are required to have one license per computer that has the
       software installed.

    2. Technical support is provided free of charge for 14 days from
       the first support question.  Thereafter, $20 for each additional
       2-week support period.  In-version updates of the software are
       free.

    3. The software is owned by the author, Cornel Huth, and is protected
       by United States copyright laws and international treaty provisions.
       You are not permitted to make copies of this software except for 
       archival purposes. 

    4. You may not rent or lease this software. You may not transfer this
       license without the written permission of the author.  If this 
       software is an update or upgrade, you may not sell or give away 
       previous versions. 

    5. You may not reverse engineer, decompile, or disassemble this
       software if the intent or result is to alter the software. 

    6. There are no expressed or implied warranties with this software.

    7. All liabilities in the use of this software rest with the user.

    8. U.S. Government Restricted Rights.  This software is provided
       with restricted rights.  Use, duplication, or disclosure by the 
       Government is subject to restrictions as set forth in 
       subparagraph (c)(1)(ii) of the Rights in Technical Data and 
       Computer Software clause at 52.227-7013. The software is 
       owned by Cornel Huth/6402 Ingram Rd/San Antonio Texas 
       78238/USA.  This agreement is governed by the laws of the 
       Great State of Texas, the United States of America, and all other 
       countries of Earth. 
  
 Any questions concerning this License Agreement should be directed
 to Product Support.

 Failure to comply with any part of this License Agreement may result
 in license revocation.

--
<eof>
