SourceFiles.org - Use the Source, Luke
Home | Register | News | Forums | Guide | MyLinks | Bookmark

Sponsored Links

Latest News
  General News
  Reviews
  Press Releases
  Software
  Hardware
  Security
  Tutorials
  Off Topic


Back to files

This file announces the release of wavplay 1.0.

                       Warren W. Gay VE3WWG
             wwg@ica.net, bx249@freenet.toronto.on.ca

                    GNU GENERAL PUBLIC LICENSE
                       Version 2, June 1991

                        (See file COPYING)

          -_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-

At long last, is a new version of wavplay to correct many of the evils of the old version of the same.

This version represents almost a total rewrite. Some of my original code survived (most notably the locks.c module), but not much else. The original sources by Andre Fuechsel have been completely replaced with code from myself and code kindly provided by Erik de Castro Lopo (erikd@zip.com.au) that reads and writes the WAV header files. This combination resulted in fixing many outstanding problems, including a stereo play bug and the elimination of most WAV header file problems that were being reported.

The current version should play almost all existing WAV files, with the exception of those rare files that may contain SLNT or LIST chunks. This may be addressed at a later version, if samples of these rare beasts can be provided by someone, and they prove to be less than rare.


WHAT'S NOT INCLUDED :

Some of you have asked about compressed formats. Sadly this is still not supported, since I do not have any documentation or example software to code from. If someone can scare up documentation, postscript or otherwise, or even readable sample code, then perhaps this can be added in a future version. Send all documentation to wwg@ica.net, or if that account should cease to exist, then use my standby account at bx249@freenet.toronto.on.ca.


CURRENT FEATURE SET :

The current version comes to you as a result of numerous email requests for fixes and feature enhancements. Given the apparent importance of this program I also decided to provide an X based front end to complement wavplay, in client/server fashion.

Client/Server mode was adopted to allow better WAV play or WAV record operation on a non-real time operating system. At the same time, this simplifies the X based side of things and gives it the freedom to act as a normal MOTIF based program. This works because LINUX can efficiently schedule CPU cycles for the server when they are needed by the server. Also the client gets CPU when it needs it also. My testing was done on a snail like 486DX 33Mhz CPU, and most of the time it works just dandy (sometimes the first play of a wav file gets a gap glitch as the shared libraries get snapped etc.)

Since LessTif is maturing, this seemed to be the interface of choice, and so xltwavplay client program was created using it. If you have a real MOTIF 1.2+ library, then this should also work (better in fact, for the moment).

The xltwavplay program starts up as a X based client, and then forks and execs a copy of a wavplay process to act as a server. The client and server communicate by a very efficient message queue mechanism (this means your kernel must have message queue IPC support configured -- most of you will have this turned on already)

The xltwavplay program now allows the user to point and click his way through the playing of selected wav files, changing of options and performing recordings. One nice feature for entertaining your kids (or guests, or perhaps your dog) is the ability to change the sampling rate, thus raising or lowering the recorded persons voice.

The basic wavplay and wavrec programs have been retained, since not everyone is running X on LINUX and wavplay is particularly useful from shell scripts.

The ideas from the latest 0.22 release were imported, though Per Harald Myrvang's code was not used. The -Q option was reimplemented as the -q option, which implements a quiet mode. The -i mode option to implement an informational display only was also incorporated into the new code. Finally, a more consistantly named -x option was added to implement the debug option (vs the -D option in the 0.22 release).

The locking features have from 0.21w1 have been maintained. In fact, the xltwavplay program also makes use of these automatically so that the client's use won't interfere with other system use of the same resource (from shell scripts, cron jobs etc.) As a safeguard, xltwavplay will timeout with a message box if the resource remains locked too long (default 3 seconds). This prevents hanging up the client GUI due to a locking problem. The xltwavplay program also supports a menu option that will reset the semaphores upon demand.

xltwavplay is also editres compatible, so that those of you that like to poke around in the resource files can try different colours and fonts etc.


SUMMARY OF NEW FEATURES SINCE 0.21W1 :

-wavrec actually works now :)

        -many  wav  header  bug  fixes  (thanks to Erik de Castro Lopo's
         erikd@zip.com.au WAV header code)

        -rewritten sound driver code (fixes bad stereo handling)

        -q quiet option (inspired by release 0.22)

        -i information option (inspired by release 0.22)

        -x debug option (inspired by release 0.22)

        -client program xltwavplay now provided

        -xltwavplay is MOTIF/LessTif based

        -xltwavplay allows interactive recording sessions

        -xltwavplay is editres ready

        -wavplay  runs  in  server  mode  for xltwavplay client to allow
        almost realtime of WAV file play and record functions (buffering
        in the /dev/dsp allows this to work most of the time)

        --help option is now supported (wavplay/wavrec)

        --version option is now supported (wavplay/wavrec)

        -make of xltwavplay is optional (some users don't/can't run X)

        -xltwavplay  has similar look and feel to the xltmix program for
        the  Soundblaster-16  (if  you  have the SB16/32, you might want to
        consider getting xltmix as well from sunsite to complement your
        tools)

WAVPLAY/WAVREC REQUIREMENTS :
  • Probably any kernel released as 1.2.13 or later is a safe bet.
  • Requires appropriate and working sound drivers installed
  • GCC 2.7.2 was used for development and testing
  • C libraries (no g++ libraries required)

XLTWAVPLAY ADDITIONAL REQUIREMENTS :
  • Mouse
  • Working X Server
  • X based libraries (X, Xt etc.)
  • libXmu.so (unless you uncomment NO_EDITRES option in Makefile)
  • libXm.so (LessTif/or MOTIF)

HISTORY :

1.0 The current release, which includes:

        wavplay                         Improved
        recplay                         Improved
        xltwavplay                      MOTIF/LessTif client (new)

0.22 A modification release by Per Harald Myrvang (perm@bigfoot.com)

        In  this  release,  patched  a  few fixes to the problematic WAV
        header  code,  as  well as added options -Q, -i and -D for quiet
        mode, information display only mode, and debug modes.

0.21w1 A modification release by myself of Andre Fuechsel's

(af1@irz.inf.tu-dresden.de) work.

        For  the  most part, this release did not change the WAV aspects
        of  the  program,  but merely added semaphore locking facilities
        and made the  program  more shell friendly.  The executable name
        was changed from the original 'play' to 'wavplay'.

        Andre's  Xplay  was  dropped  from  this  release,  since it was
        available in his original work.

0.21 Andre Fuechsel (af1@irz.inf.tu-dresden.de)

        Apparently  a bug fix release for Xplay.  This appears to be the
        first public release.

0.2     Andre Fuechsel (af1@irz.inf.tu-dresden.de)

        According  to  Andre's  README, it was "(not announced)".  Andre
        also notes that:

        "Some  code  comes  from  the  recplay.c written by Liam Corner,
        posted in the 'Audio Utilities for Linux 2.0' - Package."

WAVPLAY USAGE :

Usage: wavplay [options] [files...]

Options

-h This info (or use --help) -q Quiet mode (no messages) -s rate Sampling rate -S Stereo (undoes -M) -M Mono (undoes -S) -b bits Set number of bits (8/16) -k key Set IPC Key for lock -R Remove and recreate semaphore locks. -l Lock for play. -u Unlock for play. -L Lock for record. -U Unlock for record. -i Display info about wav file(s) only

-V Display version and Copyright info (or use --version)

WAV parameters are normally taken from the input file(s), but command line options can override them if required.


WAVREC USAGE :

Usage: wavrec [options] output_file

Options

-h This info (or use --help) -q Quiet mode (no messages) -s rate Sampling rate -S Stereo (undoes -M) -M Mono (undoes -S) -t secs Set time limit -b bits Set number of bits (8/16) -k key Set IPC Key for lock -R Remove and recreate semaphore locks. -l Lock for play. -u Unlock for play. -L Lock for record. -U Unlock for record.

-V Display version and Copyright info (or use --version)


XLTWAVPLAY USAGE :

xltwavplay &


INSTALLATION :

See the included file INSTALL for details about installation.

End of README.


Sponsored Links

Discussion Groups
  Beginners
  Distributions
  Networking / Security
  Software
  PDAs

About | FAQ | Privacy | Awards | Contact
Comments to the webmaster are welcome.
Copyright 2006 Sourcefiles.org All rights reserved.