Provided by: wav2cdr_2.3.4-5_amd64 bug

NAME

       wav2cdr  - converts input in (or similar to) wav format to cdr format suitable for writing
       onto audio CDs.

SYNOPSIS

       wav2cdr [options ...] [infile [outfile]] [--cut cutnumber ...]

VERSION

       This man page describes wav2cdr version 2.3.4.

DESCRIPTION

       wav2cdr is a conversion program for audio data  which  adopts  automatically  to  big  and
       little endian machines. Its primary use was to convert wav to cdr, but it is a little more
       flexible now and can handle some file formats and perform some  operations  on  the  data.
       These formats are possible (reading and writing):

           wav   MS Windows sound
           cdr   audio CD
           raw   fixed sampling rate, channels, and bytes per sample
                 (= that of cdr); byte order must be specified

       These  operations  can be performed on the data (combinations are possible as long as they
       are meaningful):

           Scaling (volume change), integer arithmetic
           Scaling (volume change), floating point arithmetic
           Cutting of the input into pieces / tracks
           Conversion to mono and back to stereo
           Swapping of the 2 channels
           Adding silence to (or removing from, see cutting) the
             start and/or end
           Generation of cut numbers along silent intervals, e.g.
             to break up a record into tracks
           Information about non-silent intervals
           Fading in and out

OPTIONS

       --cut NUM NUM [NUM...]
              Cut the input into pieces, cutting at positions NUM.  See sections  about  argument
              scanning and splitting below.

       --endsilence, --es DUR
              Adds the given amount of silence to the end of each output file.

       --fadein LEN
              Fade in at the start over a duration of LEN.  The syntax for LEN is the same as for
              a cut number, see section about argument scanning below.   If  cutting  is  active,
              fade-in is applied to the beginning of each cut.

              Fading  in  is  performed  by  increasing the amplitude for CD sectors by an amount
              derived from LEN over a duration of LEN. --fadein 3 would result in  the  amplitude
              of  the  first  sector  lowered  to 1/4, of the second sector to 2/4, and the third
              sector to 3/4. The fourth sector is unchanged and has then reached full amplitude.

       --fadeout LEN
              Fade out at the end over a duration of LEN.  The syntax for LEN is the same as  for
              a  cut  number,  see  section about argument scanning below.  If cutting is active,
              fad-out is applied to the end of each cut.

              The computation is similar to --fadein. --fadein 3 would result in the  last  3  CD
              sectors  having  their  amplitudes lowered to 3/4, 2/4, and 1/4. The (non-existant)
              following sector is assumed to be silent.

              To add silent sector(s) to the end of the audio file, use --endsilence.

              Fading out can only be performed if the input size  can  be  determined  (i.e.  the
              input  must be seekable and cannot be a pipe). If cutting is active, the end of the
              cut is always known and the fade-out can be applied.

              If the fade-out starts before the fade-in is finished, both will overlap, producing
              sensible results.

       --fscale FLOAT
              Scale data by FLOAT, i.e. multiply by FLOAT (1.0 does nothing).

       -h, -u, --usage
              Display usage.

       --help Display  extensive  help.  (The  information is derived from and equivalent to this
              manual page.)

       --inbig, -I
              Input data is big endian (MSB, LSB) (Motorola).

       --incdr
              Read cdr format (default is wav). Sets the correct byte order.

       --infile, -r NAME
              Input filename. Defaults to stdin. '-' = stdin.

       --inlittle, -i
              Input data is little endian (LSB, MSB) (Intel).

       --inraw
              Read raw format. Byte order should be specified with -i/-I (default big).

       --inwav
              Read wav format (default). Sets the correct byte order.

       --iscale NUM
              Scale data to NUM percent (100 does nothing).

       --monostereo
              Convert input to mono and immediately back to stereo. The result is 2 channels with
              the same data. This can be useful in some cases.

       --noswapchannels
              Don't swap channels. (default)

       --outfile, -w NAME
              Write  output to file NAME.  The track number is appended as a 2-digit number.  The
              default is to write output to stdout.  A NAME of '-' means stdout.  When cutting is
              active  and  more than one cut is made, output can not be written to stdout and the
              use of this option is mandatory.

       --outbig, -O
              Output data in big endian (MSB, LSB) (Motorola) byte order.

       --outlittle, -o
              Output data in little endian (LSB, MSB) (Intel) byte order.

       --quiet
              Suppress progress output.  The name of this option might be misleading: it does not
              prevent copious output in other places which might be turned on by --verbose.

       --silencecuts
              Generate  cut  numbers  for  cutting  out  silent  intervals.  This  is useful when
              digitising a whole record and then cutting it into  tracks.  The  cut  numbers  are
              output on stdout and can be fed back into --cut.  After cutting, every second track
              (those with even numbers) contains a silent interval and can be deleted.

              Together with --verbose, the silence value of each sector is printed as well (can't
              be fed back into --cut then). This most likely produces some VERY long lines.

              Silence  is  detected by applying a threshold (--silencethresh) to a value computed
              for each CD sector; the value must be below the threshold for a minimum  number  of
              sectors  (delay  --silencedelay). Currently, the average is computed first (this is
              the DC component); then the average of the absolute of the difference between  each
              sample  and  the  DC component. The difference between these 2 averages is compared
              with the threshold. Check whether the cuts really fall into the  silent  intervals,
              and adjust threshold and duration if not (or edit the cut numbers manually).

              The  silence delay period is part of the signal interval, not the silence interval.
              This means that each non-silent period has --silencedelay silence at the start  and
              at  the  end. If the silent interval between two signal intervals is less than (2 *
              silence delay), the silent part at the start of the second signal  period  will  be
              shortened.

       --silencedelay DELAY
              The  duration  for  which  the  "input"  must be below the threshold in order to be
              detected as a silent interval. In other words, the number of sectors which must  be
              silent  before  a  silent  interval is detected. Ignored without --silencecuts. The
              delay can be specified with units in the same way as for --cut, and is truncated to
              full CD sectors. Default is 30C (=0.4s).

       --silenceinfo
              Similar  to --silencecuts, but it generates more information. Silent and non-silent
              intervals are listed in  a  tabular  format.   The  output  format  is  useful  for
              documentation,  but  not  for feeding back into --cut.  With --verbose, the silence
              values of each CD sector are shown as well.  This produces lots of output,  but  it
              is useful for finding a suitable --silencethresh.

       --silencethresh THRESHOLD
              Threshold  for  silence  detection.  Ignored without --silencecuts.  Default is 10.
              Always select a threshold as low as possible. When cutting a  record  into  tracks,
              the  threshold  must  be  high  enough to recognise the crackling between pieces as
              silence. When the threshold is too high, a little at the beginning and end of  each
              piece might be chopped off.

              As  a special case, if the threshold is set to 0 the usual numerical computation of
              the silence value is bypassed, and the sector is deemed to be silent if all samples
              are 0.

       --startsilence, --ss DUR
              Adds the given amount of silence to the start of each output file.

       --swapchannels
              Swap the left with the right channel.

       --tocdr
              Write data in cdr format (default). Sets the correct byte order.

       --toraw
              Write data in raw format. Byte order should be specified with -o/-O (default big).

       --towav
              Write data in wav format. Sets the correct byte order.

       --verbose
              Produce more output. Currently only used by --silencecuts and --silenceinfo.

       --version, -V
              Display version information.

       --     Stop  argument  processing.   Remaining  arguments  can  only  be filenames, or cut
              numbers if cutting is used.

Command line option scanning:

       From left to right. Later settings may override  previous  ones.  Beware  to  switch  file
       formats  before  byte  ordering,  or  a byte order might be rejected for the (then active)
       format. When not using cutting, remaining arguments are used to fill up input  and  output
       filenames.  When  using  cutting,  remaining arguments are assumed to be cut numbers. When
       using negative cut numbers, use -- to terminate option processing or the negative  numbers
       can be mistaken as options (this is a must with GNU getopt()).

       All options which take an argument denoting a time accept the following number format. The
       number may be in decimal, octal (leading 0), or hexadecimal (leading 0x  or  0X).  A  one-
       letter unit may be following. If there is space between the number and the unit, both must
       be quoted, as in "55 C". These units are recognised: b (bytes), C (audio  CD  sectors),  s
       (seconds).  When  no  unit  is  given,  C is assumed. The progress display might only show
       numbers in some of these units. Fractions for seconds are allowed.

       Negative cut numbers are only allowed if the input size can be determined (which will  not
       be  possible  if  the  input  comes from a pipe), and are shown as the equivalent positive
       ones. If the last cut number is 0 it means the end of the file. If the input file size can
       not be determined the longest possible input (about 405 minutes) is substituted.

       A filename of '-' is taken as stdin/stdout.

       If  wav2cdr  was compiled to use GNU getopt(), argument scanning is more powerful and long
       options can be shortened to significance. Options are also re-ordered; this  is  nice  but
       can  be  a  trap.  Use  --  if in doubt, and don't mix options with filename or cut number
       arguments.

Data formats:

       All data handling currently assumes signed 16-bit integers, interleaved for 2 channels, at
       a  sampling  rate  of  that  of  a  CD.  Only  wav files with these parameters can be read
       correctly. cdr files are in that format, and only raw formats with these parameters can be
       processed.  The only flexibility allowed for raw is the byte order, which can be specified
       for both reading and writing. The byte ordering for wav and cdr is fixed.

Channel swapping:

       Left and right channel are swapped, which is the  same  as  swapping  consecutive  16  bit
       values with each other. Also see 'CDR Format' below.

Scaling / Volume change:

       Scaling  can  be  performed  with  either  integer  or floating point arithmetic.  Integer
       arithmetic is faster but possibly not as precise. Values will saturate (i.e. be  clipped),
       rather  than  be  truncated.  The speed of this operation depends on the endianness of the
       input data, output data, and host. It is slowest when bytes  have  to  be  swapped  before
       scaling  and  swapped  back  after.   Negative  scale  factors are allowed but might be of
       dubious value.

Mono / stereo:

       Input data can be converted to mono and then back to stereo. The result is 2 channels with
       the same data. This can be useful in some cases.

Output file naming:

       Unless  output  is  to  stdout, the resulting filename is the name given with --outfile. A
       period and a 2-digit track number are appended.

Input data splitting:

       Input data can be split into pieces resp. tracks. Currently cuts can  only  be  placed  at
       multiples  of audio CD sectors (at the sector boundaries), whether the input format is cdr
       or not.

       The cuts are placed at the given positions, which must be in ascending order  (or  equal).
       Negative  numbers are counted from the end of the input data. This only works if the input
       is seekable (Unix pipes are not). Sectors of the input are numbered from  0.  Bytes  of  a
       header, which the input format might have, are not counted.

       Any  number of cuts can be made, but only 99 tracks can be put on a CD. All sectors before
       the first but not including the first sector number are discarded, as well as all  sectors
       after  and including the last sector number.  At least 2 sector numbers (cut numbers) must
       be given, in which case one piece is cut out.

       If there are only 2 cut numbers (1 track to cut out) data can  be  written  to  stdout  or
       file.  More  than one track can only be written to file, the track number will be added as
       an extension to the filename.  To avoid the track number to be appended  to  the  filename
       when  only  one  cut  is  made,  don't  use  --outfile  but write to stdout and use output
       redirection.

        Example (assuming 50000 sectors in the input):
           wav2cdr < INPUT --outfile NAME --cut 500 20000 40000
                sectors     0-  499: discarded
                          500-19999: saved to NAME.01
                        20000-39999: saved to NAME.02
                        40000-49999: discarded

Cutting out silent intervals:

       Assuming a digitised record is stored in record.wav, and is to be cut into tracks.

         wav2cdr < record.wav > cuts --silencecuts --silencedelay 2s
         wav2cdr < record.wav --of tracks --cut `cat cuts`

       Will store the tracks of the record in track.01, track.02, ..., with the delay for cutting
       at  a  silent part set to 2 seconds. The threshold used is the default. Note the `` syntax
       works under Unix and in this case puts the contents of file "cuts" on the command line.

Information about silences and actual sound parts:

       --silenceinfo can be used in the same way as --silencecuts.  It produces output like

       (stdin):
        silnc         0 b,      0 C,    0 s, 00:00.00 min
         DIFF    811440 b,    345 C,    4 s, 00:04.22 min
          -->    811440 b,    345 C,    4 s, 00:04.22 min

        AUDIO    811440 b,    345 C,    4 s, 00:04.22 min
         DIFF  20603520 b,   8760 C,  116 s, 01:56.05 min
          -->  21414960 b,   9105 C,  121 s, 02:01.02 min

       showing the beginning, length ("DIFF"), and end ("-->") of both silent ("silnc")  and  and
       non-silent  ("AUDIO")  intervals. This is useful for examining existing tracks, but it can
       not be used with --cut.

Messages:

       Progress messages and statistics are written to stderr when  writing  to  stdout,  and  to
       stdout  when writing to file. It is currently not possible to suppress this, other than by
       redirection to the bit bucket.

Writing wav format:

       Only wav files with 2 channels, 16 bits per sample, and audio  CD  sampling  rate  can  be
       written.  If the input data is different, the resulting wav file is incorrect. Scaling can
       be performed when writing wav. Cutting can only be performed in multiples of an  audio  CD
       sector size. When writing wav the output must be seekable (e.g. no pipes).

CDR Format:

       Raw sample data at a sampling rate of 44100 Hz. The channels are interleaved.  The numbers
       are 16 bit signed integers with this byte order: MSByte Left, LSByte Left,  MSByte  Right,
       LSByte  Right.  The track size must be a multiple of the sector size of 2352 bytes.  There
       are 75 sectors per second.

BUGS / LIMITATIONS

       All operations can only be performed on a minimum of 1 CD block or a multiple thereof.

COPYRIGHT

       Copyright (C)
       Nov, Dec 1997, Jan, Mar, Apr, May 1998, Feb, May, Jun, Jul,
       Aug 1999, Oct 2000, Jan 2006 by
       Volker Kuhlmann  <VolkerKuhlmann@gmx.de>
       formerly c/o EEE Dept, University of Canterbury
       Christchurch, New Zealand

       Permission granted to use and distribute  this  software  free  of  charge,  provided  any
       improvements  are  sent  back to the author. Comments and bug reports welcome.  All rights
       reserved. Standard disclaimer applies.

AUTHOR

       Volker Kuhlmann