Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SHNTOOL(1)			     local			    SHNTOOL(1)

NAME
       shntool - a multi-purpose WAVE data processing and reporting utility

SYNOPSIS
       shntool mode ...
       shntool [CORE OPTION]

DESCRIPTION
       shntool	is  a command-line utility to view and/or modify WAVE data and
       properties.  It runs in several different operating modes, and supports
       various lossless	audio formats.

       shntool is comprised of three parts - its core, mode modules, and  for-
       mat  modules.   This helps to make the code easier to maintain, as well
       as aid other programmers	in developing new functionality.  The distrib-
       ution archive contains a	file named 'modules.howto' that	describes  how
       to create a new mode or format module, for those	so inclined.

   Mode	modules
       shntool performs	various	functions on WAVE data through the use of mode
       modules.	  The core of shntool is simply	a wrapper around the mode mod-
       ules.  In fact, when shntool is run with	a valid	mode as	its first  ar-
       gument,	it essentially runs the	main procedure for the specified mode,
       and quits.  shntool comes with several built-in modes, described	below:

	      len    Displays length, size and properties of PCM WAVE data

	      fix    Fixes sector-boundary problems with CD-quality  PCM  WAVE
		     data

	      hash   Computes the MD5 or SHA1 fingerprint of PCM WAVE data

	      pad    Pads  CD(hyquality	files not aligned on sector boundaries
		     with silence

	      join   Joins PCM WAVE data from multiple files into one

	      split  Splits PCM	WAVE data from one file	into multiple files

	      cat    Writes PCM	WAVE data from one or more files to the	termi-
		     nal

	      cmp    Compares PCM WAVE data in two files

	      cue    Generates a CUE sheet or split points from	a set of files

	      conv   Converts files from one format to another

	      info   Displays detailed information about PCM WAVE data

	      strip  Strips extra RIFF chunks and/or writes canonical headers

	      gen    Generates CD-quality PCM WAVE data	files  containing  si-
		     lence

	      trim   Trims PCM WAVE silence from the ends of files

       For more	information on the meaning of the various command-line options
       for each	mode, see the MODE-SPECIFIC OPTIONS section below.

       For  convenience, each mode can specify an alternate name or alias that
       will invoke it (this feature is currently  only	available  on  systems
       that  support  symbolic	or hard	linking).  In particular, each mode is
       aliased to 'shn<mode>'.	For instance, running shnlen is	equivalent  to
       running shntool len - thus saving a few keystrokes.

   Format modules
       File formats are	abstracted from	shntool	through	the use	of format mod-
       ules.   They  provide  a	 means for shntool to tranparently read	and/or
       write different file formats.  This abstraction allows shntool to  con-
       centrate	 on  its  job  without worrying	about the details of each file
       format.

       The following formats are currently supported:

	      wav    RIFF WAVE file format

	      aiff   Audio Interchange File Format (AIFF and uncompressed/sowt
		     AIFF-C only) (via 'sox'):
		     <http://sox.sourceforge.net/>

	      shn    Shorten low complexity waveform coder (via	'shorten'):
		     <http://www.softsound.com/Shorten.html>
		     <http://www.etree.org/shnutils/shorten/>

	      flac   Free Lossless Audio Codec (via 'flac'):
		     <http://flac.sourceforge.net/>

	      ape    Monkey's Audio Compressor (via 'mac'):
		     <http://www.monkeysaudio.com/>
		     <http://supermmx.org/linux/mac/>

	      alac   Apple Lossless Audio Codec	(via 'alac'):
		     <http://craz.net/programs/itunes/alac.html>

	      tak    (T)om's lossless (A)udio (K)ompressor (via	'takc'):
		     <http://www.thbeck.de/Tak/Tak.html>

	      ofr    OptimFROG Lossless	WAVE Audio Coder (via 'ofr'):
		     <http://www.losslessaudio.org/>

	      tta    TTA Lossless Audio	Codec (via 'ttaenc'):
		     <http://tta.sourceforge.net/>

	      als    MPEG-4 Audio Lossless Coding (via 'mp4als'):
		     <http://www.nue.tu-berlin.de/forschung/projekte/ -
		     lossless/mp4als.html>

	      wv     WavPack Hybrid Lossless Audio Compression (via  'wavpack'
		     and 'wvunpack'):
		     <http://www.wavpack.com/>

	      lpac   Lossless Predictive Audio Compression (via	'lpac'):
		     <http://www.nue.tu-berlin.de/wer/liebchen/lpac.html>

	      la     Lossless Audio (via 'la'):
		     <http://www.lossless-audio.com/>

	      bonk   Bonk lossy/lossless audio compressor (via 'bonk'):
		     <http://www.logarithmic.net/pfh/bonk>

	      kxs    Kexis lossless WAV	file compressor	(via 'kexis'):
		     <http://www.sourceforge.net/projects/kexis/>

	      mkw    MKW Audio Compression format (via 'mkwcon'):
		     <http://www.etree.org/shnutils/mkwcon/>

	      cust   Custom  output format module (output only,	useful for en-
		     coding to a format	that shntool does not yet support)

	      term   sends output to the terminal

	      null   sends output to /dev/null (output only, useful  for  dry-
		     runs in several modes, such as fix	mode or	strip mode)

       When reading files for input, shntool automatically discovers which, if
       any, format module handles each file.  In modes where files are created
       as  output,  you	 can specify what the output format should be -	other-
       wise, shntool decides for you by	selecting the first format  module  it
       finds that supports output (in a	default	installation, this will	be the
       wav format).

CORE OPTIONS
   Modeless
       When run	without	a mode,	shntool	takes these options:

       -m     Show detailed mode module	information

       -f     Show detailed format module information

       -a     Show default format module arguments

       -v     Show version information

       -h     Show a help screen

GLOBAL OPTIONS
   All modes
       All modes support the following options:

       -D     Print debugging information

       -F file
	      Specify  a file containing a list	of filenames to	process.  This
	      overrides	any files specified on the command line	or on the ter-
	      minal.

	      NOTE: Most modes will  accept  input  filenames  from  a	single
	      source,  according  to  the  following order of precedence: file
	      specified	by the -F option, otherwise filenames on  the  command
	      line, otherwise filenames	read from the terminal.

       -H     Print times in h:mm:ss.{ff,nnn} format, instead of m:ss.{ff,nnn}

       -P type
	      Specify  progress	 indicator  type.   type is one	of: {pct, dot,
	      spin, face, none}.  pct shows the	completion percentage of  each
	      operation.  dot shows the	progress of each operation by display-
	      ing  a  '.' after	each 10% step toward completion.  spin shows a
	      spinning progress	indicator.  face shows the  progress  of  each
	      operation	 by  displaying	six emoticons that become increasingly
	      happy as the operation  nears  completion.   none	 prevents  any
	      progress	completion  information	from being displayed.  The de-
	      fault is pct.

       -h     Show the help screen for this mode

       -i fmt Specify input file format	decoder	and/or arguments.  The	format
	      is:  "fmt	 decoder  [arg1	 ... argN]", and must be surrounded by
	      quotes.  If arguments are	given, then one	of them	 must  contain
	      "%f", which will be replaced with	the input filename.  Examples:

	      -i  'shn	shorten-2.3b'  (use  official  shorten-2.3b instead of
	      later versions; leave default arguments untouched)

	      -i 'shn shorten -x -d 2048 %f -'	(force	shorten	 to  skip  the
	      first 2048 bytes of each file)

       -q     Suppress non-critical output (quiet mode).  Output that normally
	      goes  to	stderr will not	be displayed, other than errors	or de-
	      bugging information (if specified).

       -r val Reorder input files?  val	 is  one  of:  {ask,  ascii,  natural,
	      none}.  The default is natural.

       -v     Show version information

       -w     Suppress warnings

       --     Indicates	that everything	following it is	a filename

   Output modes
       Additionally,  any mode that creates output files supports the the fol-
       lowing options:

       -O val Overwrite	existing files?	 val is	one of:	{ask, always,  never}.
	      The default is ask.

       -a str Prefix str to base part of output	filenames

       -d dir Specify output directory

       -o str Specify  output file format extension, encoder and/or arguments.
	      Format is:  "fmt [ext=abc] [encoder [arg1	... argN (%f  =	 file-
	      name)]]",	 and  must  be surrounded by quotes.  If arguments are
	      given, then one of them must contain "%f",  which	 will  be  re-
	      placed with the output filename.	Examples:

	      -o 'shn shorten -v2 - %f'	(create	shorten	files without seek ta-
	      bles)

	      -o 'flac flake - %f' (use	alternate flac encoder)

	      -o  'aiff	 ext=aif'  (override  default aiff extension of	'aiff'
	      with 'aif')

	      -o 'cust ext=mp3 lame --quiet -  %f'  (create  mp3  files	 using
	      lame)

       -z str Postfix str to base part of output filenames

MODE-SPECIFIC OPTIONS
   len mode options
       -U unit
	      Specifies	the unit in which the totals will be printed.  unit is
	      one of: {b, kb, mb, gb, tb}.  The	default	is b.

       -c     Do not show column names

       -t     Do not show totals line

       -u unit
	      Specifies	 the unit in which each	file will be printed.  unit is
	      one of: {b, kb, mb, gb, tb}.  The	default	is b.

       len mode	output

	      The output of len	mode may seem cryptic at first,	because	it at-
	      tempts to	convey a lot of	information in just a  little  bit  of
	      space.   But  it	is  quite  easy	to read	once you know what the
	      columns represent; and in	certain	columns, what  each  character
	      in the column means.  Each column	is explained below.

	      length Shows the length of the WAVE data,	in m:ss.nnn (millisec-
		     ond)  format.  If the data	is CD-quality, then m:ss.ff is
		     shown instead, where ff is	a number from 00  to  74  that
		     best approximates the number of frames (2352-byte blocks)
		     remaining	after  m:ss.  If all files are CD-quality, the
		     total length will be shown	in m:ss.ff  format;  otherwise
		     it	 will  be  in m:ss.nnn format.	NOTE: CD-quality files
		     are rounded to the	nearest	frame;	all  other  files  are
		     rounded to	the nearest millisecond.

	      expanded size
		     Shows  the	 total size of all WAVE	chunks within the file
		     (header, data and any extra  RIFF	chunks).   Essentially
		     this  is  the size	that the file would be if it were con-
		     verted to .wav format, e.g.  with shntool conv.

		     NOTE: Do not rely on this field for audio size!   If  you
		     simply  want  to  know  how  many bytes of	audio are in a
		     file, run it through info mode, and  look	at  the	 "data
		     size" field in its	output.

	      cdr    Shows  properties	related	to CD-quality files.  A	'c' in
		     the first slot indicates that the WAVE data is not	 [C]D-
		     quality.  A 'b' in	the second slot	indicates that the CD-
		     quality  WAVE data	is not cut on a	sector [b]oundary.  An
		     's' in the	third slot indicates that the CD-quality  WAVE
		     data is too [s]hort to be burned.

		     A '-' in any of these slots indicates that	the particular
		     property  is  OK or normal.  An 'x' in any	of these slots
		     indicates that the	particular property does not apply  to
		     this file,	or cannot be determined.

	      WAVE   Shows  properties	of the WAVE data.  An 'h' in the first
		     slot indicates that the WAVE [h]eader is  not  canonical.
		     An	 'e'  in  the second slot indicates that the WAVE file
		     contains [e]xtra RIFF chunks.

		     A '-' in any of these slots indicates that	the particular
		     property is OK or normal.	An 'x' in any of  these	 slots
		     indicates	that the particular property does not apply to
		     this file,	or cannot be determined.

	      problems
		     Shows problems detected with the WAVE header, WAVE	 data,
		     or	 the  file  itself.  A '3' in the first	slot indicates
		     that the file contains an ID[3]v2 header.	An 'a' in  the
		     second   slot  indicates  that  the  audio	 data  is  not
		     block-[a]ligned.  An 'i' in the third slot	indicates that
		     the WAVE header is	[i]nconsistent about data size	and/or
		     file  size.   A 't' in the	fourth slot indicates that the
		     WAVE file seems to	be [t]runcated.	 A 'j'	in  the	 fifth
		     slot  indicates  that  the	WAVE file seems	to have	[j]unk
		     appended to it.

		     A '-' in any of these slots indicates that	the particular
		     problem was not detected.	An 'x' in any of  these	 slots
		     indicates	that  the particular problem does not apply to
		     this file,	or cannot be determined.

	      fmt    Shows which file format handled this file.

	      ratio  Shows the compression ratio for this file.

	      filename
		     Shows the name of the file	that's being inspected.

   fix mode options
       NOTE: file names	for files created in fix mode will be based on the in-
       put file	name with the string '-fixed' appended to it, and  the	exten-
       sion  will be the default extension of the output file format.  For ex-
       ample, with an output file format of shn	the file 'foo.wav'  would  be-
       come  'foo-fixed.shn'.	This  can  be overridden with the -a and/or -z
       global options described	above.

       -b     Shift track breaks backward to  the  previous  sector  boundary.
	      This is the default.

       -c     Check  whether  fixing  is  needed, without actually fixing any-
	      thing.  shntool will exit	with status 0 if fixing	is needed, and
	      status 1 otherwise.  This	can be useful in shell scripts,	 e.g.:
	      "if shntool fix -c *; then shntool fix *;	else ...; fi"

       -f     Shift track breaks forward to the	next sector boundary.

       -k     Specifies	 that all files	should be processed, even if the first
	      several of them wouldn't be altered, aside from a	possible  file
	      format  change.	The  default is	to skip	the first N files that
	      wouldn't be changed from a WAVE data  perspective	 in  order  to
	      avoid unnecessary	work.

       -n     Specifies	 that  the last	file created should not	be padded with
	      silence to make its WAVE data size a  multiple  of  2352	bytes.
	      The default is to	pad the	last file.

       -u     Round track breaks to the	nearest	sector boundary.

   hash	mode options
       -c     Specifies	 that  the  composite  fingerprint for all input files
	      should be	generated, instead of the default of  one  fingerprint
	      per  file.   The composite fingerprint is	simply the fingerprint
	      of the WAVE data from all	input files taken as a	whole  in  the
	      order given, and is identical to the one that would be generated
	      from  the	 joined	 file  if  the same files were joined into one
	      large file, with no padding added.  This option can be  used  to
	      fingerprint  file	 sets, or to identify file sets	in which track
	      breaks have been moved around, but no audio has been modified in
	      any way (e.g. no padding added, no resampling done, etc.).

       -m     Generate MD5 fingerprints.  This is the default.

       -s     Generate SHA1 fingerprints.

   pad mode options
       NOTE: file names	for files created in pad mode will be based on the in-
       put file	name with the string '-prepadded' or '-postpadded' appended to
       it, and the extension will be the default extension of the output  file
       format.	For example, with an output file format	of shn and pre-padding
       specified  on  the  command  line,  the	file  'foo.wav'	 would	become
       'foo-prepadded.shn'.  This can be overridden  with  the	-a  and/or  -z
       global options described	above.

       Be  aware  that	some output format encoders (e.g. flac,	ape) automati-
       cally strip headers and/or extra	RIFF chunks.

       -b     Specifies	that the file created should be	padded at  the	begin-
	      ning  with silence to make its WAVE data size a multiple of 2352
	      bytes.

       -e     Specifies	that the file created should be	padded at the end with
	      silence to make its WAVE data size a  multiple  of  2352	bytes.
	      This is the default action.

   join	mode options
       NOTE:  file  names for files created in join mode will be prefixed with
       'joined.', and the extension will be the	default	extension of the  out-
       put  file  format.   For	example, with an output	file format of wav the
       files 'files*.wav' would	become 'joined.wav'.  This can	be  overridden
       with the	-a and/or -z global options described above.

       -b     Specifies	 that  the file	created	should be padded at the	begin-
	      ning with	silence	to make	its WAVE data size a multiple of  2352
	      bytes.   Note that this option does not apply if the input files
	      are not CD-quality, since	padding	is undefined in	that case.

       -e     Specifies	that the file created should be	padded at the end with
	      silence to make its WAVE data size a  multiple  of  2352	bytes.
	      This  is the default action.  Note that this option does not ap-
	      ply if the input files are not CD-quality, since padding is  un-
	      defined in that case.

       -n     Specifies	 that  the  file created should	not be padded with si-
	      lence to make its	WAVE data size a multiple of 2352 bytes.  Note
	      that this	option does not	apply if the input files are  not  CD-
	      quality, since padding is	undefined in that case.

   split mode options
       NOTE:  file  names for files created in split mode are of the form pre-
       fixNNN.ext, where NNN is	the output file	number,	and 'ext' is  the  de-
       fault extension of the output file format.  If an output	file format of
       'wav'  is  used,	 and  the  prefix is not altered via the -n switch de-
       scribed below, then the output file names will be  "split-track01.wav",
       "split-track02.wav", etc.  This can be overridden with the -a and/or -z
       global options described	above.

       For  information	 on  specifying	split points, see the Specifying split
       points section below.

       -c num Specifies	the number to start counting from when	naming	output
	      files.  The default is 1.

       -e len Prefix each track	with len amount	of lead-in taken from the pre-
	      vious  track.   len  must	 be  given  in bytes, m:ss, m:ss.ff or
	      m:ss.nnn format.

       -f file
	      Specifies	a file from which to read split	point  data.   If  not
	      given, then split	points are read	from the terminal.

       -l len Specifies	that the input file should be split into smaller files
	      based  on	multiples of the len time interval.  len must be given
	      in bytes,	m:ss, m:ss.ff or m:ss.nnn format.

       -m str Specifies	a character manipulation string	for  filenames	gener-
	      ated  from CUE sheets.  These characters,	taken one-by-one, rep-
	      resent from/to character translation.  They must	always	be  in
	      pairs.  Some examples:

	      :-     Translate all instances of	':' to '-'

	      :-/-   Translate both ':'	and '/'	to '-'

	      :-/_*x Translate ':' to '-', '/' to '_', and '*' to 'x'

       -n fmt Specifies	 the  file  count output format.  The default is %02d,
	      which gives two-digit zero-padded	numbers	(01, 02, 03, ...).

       -t fmt Name output files	in user-specified format based	on  CUE	 sheet
	      fields.  The following formatting	strings	are recognized:

	      %p     Performer

	      %a     Album

	      %t     Track title

	      %n     Track number

       -u len Postfix  each  track  with len amount of lead-out	taken from the
	      next track.  len must  be	 given	in  bytes,  m:ss,  m:ss.ff  or
	      m:ss.nnn format.

       -x list
	      Only  extract  tracks  in	 list  (comma  separated,  may contain
	      ranges).	Examples include:

	      7	     Only extract track	7

	      3-5    Only extract tracks 3 through 5

	      2-6,9,11-13
		     Only extract tracks 2 through 6, 9, and 11	through	13

       Specifying split	points
	      Split points simply mark places within the WAVE data of the  in-
	      put  file	 where tracks will be split.  They can be specified in
	      any combination of the following formats:

	      bytes  where bytes is a specific byte offset

	      m:ss   where m = minutes and ss =	seconds

	      m:ss.ff
		     where m = minutes,	ss = seconds and ff = frames  (75  per
		     second, so	ff ranges from 00 to 74)

	      m:ss.nnn
		     where  m  =  minutes, ss =	seconds	and nnn	= milliseconds
		     (will be rounded to closest sector	boundary, or the first
		     sector boundary if	the closest one	happens	to be the  be-
		     ginning of	the file)

	      CUE sheet
		     -	a  simple  CUE sheet, in which each "INDEX 01 m:ss:ff"
		     line is converted to a m:ss.ff split point

	      Split points must	be given in increasing order, and must	appear
	      one  per	line.	If  the	 byte offset calculated	from the final
	      split point equals the input file's WAVE data size, then	it  is
	      ignored.	 Since split points specify locations within the input
	      file where tracks	will be	split, N split points will create  N+1
	      output  files.   All  m:ss  formats will create splits on	sector
	      boundaries whenever the input file is CD-quality;	to force  non-
	      sector-aligned splits, use the exact byte	format.

   cat mode options
       -c     Specifies	 that  extra RIFF chunks should	be suppressed from the
	      output.  The default is to write the extra RIFF chunks.

       -d     Specifies	that the WAVE data should be suppressed	from the  out-
	      put.  The	default	is to write the	data.

       -e     Specifies	 that  the  WAVE  header should	be suppressed from the
	      output.  The default is to write the header.

       -n     Specifies	that the NULL pad byte at end of odd-sized data	chunks
	      should be	suppressed from	the output, if present.	  The  default
	      is  to  write  the NULL pad byte.	 This option only applies when
	      WAVE data	is also	written, otherwise it is ignored.

   cmp mode options
       -c secs
	      Sets the number of seconds of audio to use  for  the  byte-shift
	      comparison buffer.  This option only makes sense with the	-s op-
	      tion.  The default is 3 seconds.

       -f fuzz
	      Sets the "fuzz factor" for determining whether byte-shifted data
	      is  identical.   fuzz  is	a positive integer that	represents the
	      maximum number of	allowable  byte	 mismatches  between  the  two
	      files in the area	searched by the	-s option.  This allows	one to
	      check  for  differing  bytes between to files that (a) are byte-
	      shifted and (b) contain at least one error in the	area  searched
	      by  the  -s  option.  The	higher the fuzz	factor,	the longer the
	      search takes, so set it low to begin with	(8  or	so),  and  in-
	      crease  it in small steps	if needed.  NOTE: this switch can only
	      be used with the -s switch.

       -l     List offsets and values of all differing bytes.  Output is simi-
	      lar to 'cmp -l'; in particular, offsets  are  1-based.   Can  be
	      used with	the -s switch.

       -s     Check  to	see whether the	WAVE data contained in the input files
	      are identical modulo a byte-shift.  Currently,  this  will  only
	      detect differences up to the first 529200	bytes (equal to	3 sec-
	      onds of CD-quality data).	 This can be used to compare WAVE data
	      within a pre-burned file to WAVE data in the corresponding track
	      ripped  from  the	burned CD, which is useful if the ripped track
	      came from	a CD burned TAO, and thus might	have a 2-second	gap of
	      silence at the beginning.	 This option can also help identify  a
	      CD burner/CD reader combined read/write offset.

   cue mode options
       -c     Specifies	that a simple CUE sheet	should be output.  This	is the
	      default  action.	 NOTE:	all input files	must be	CD-quality for
	      CUE sheets to be valid.

       -s     Specifies	that  split  points  in	 explicit  byte-offset	format
	      should be	output.

   conv	mode options
       NOTE:  file names for files created in conv mode	will be	named based on
       the input file name.  Specifically, if the input	file  name  ends  with
       the default file	extension for that file's format, then the default ex-
       tension	for  the  desired output format	will replace it; otherwise, it
       will be appended	to it.	For example, for an output format of shn and a
       wav input file named 'file.wav',	 the  converted	 file  will  be	 named
       'file.shn',  since  '.wav' is the default extension for the wav format.
       On the other hand, given	the same situation above, but  with  an	 input
       file   named   'file.wave',   the   converted   file   will   be	 named
       'file.wave.shn',	since '.wave' does not	match  '.wav'.	 This  can  be
       overridden with the -a and/or -z	global options described above.

       Be  aware  that	some output format encoders (e.g. flac,	ape) automati-
       cally strip headers and/or extra	RIFF chunks, while others  (e.g.  sox)
       might  adjust  WAVE  data sizes in rare instances in order to align the
       audio on	a block	boundary.

       -t     Read WAVE	data from the terminal.

   info	mode options
       This mode doesn't support any additional	options.

   strip mode options
       NOTE: file names	for files created in strip mode	will be	based  on  the
       input file name with the	string '-stripped' appended to it, and the ex-
       tension	will  be the default extension of the output file format.  For
       example,	with an	output file format of wav the file 'bar.shn' would be-
       come 'bar-stripped.wav'.	 This can be overridden	with the -a and/or  -z
       global options described	above.

       Be  aware  that	some output format encoders (e.g. flac,	ape) automati-
       cally strip headers and/or extra	RIFF chunks, while others  (e.g.  sox)
       might  adjust  WAVE  data sizes in rare instances in order to align the
       audio on	a block	boundary.

       -c     Specifies	that extra RIFF	chunks should not  be  stripped.   The
	      default  is  to  remove  everything that appears after the first
	      data chunk.

       -e     Specifies	that WAVE headers should not be	made  canonical.   The
	      default is to canonicalize headers.

   gen mode options
       NOTE:  file  names  for files created in	gen mode will be prefixed with
       'silence.', and the extension will be the default extension of the out-
       put file	format.	 For example, with an output file format  of  wav  the
       generated file would become 'silence.wav'.  This	can be overridden with
       the -a and/or -z	global options described above.

       -l len Generate	files  containing  len amount of silence.  len must be
	      given in bytes, m:ss, m:ss.ff or m:ss.nnn	format.

   trim	mode options
       NOTE: file names	for files created in trim mode will be	based  on  the
       input  file name	with the string	'-trimmed' appended to it, and the ex-
       tension will be the default extension of	the output file	 format.   For
       example,	with an	output file format of shn the file 'foo.wav' would be-
       come  'foo-trimmed.shn'.	  This can be overridden with the -a and/or -z
       global options described	above.

       -b     Only trim	silence	from the beginning of files

       -e     Only trim	silence	from the end of	files

ENVIRONMENT VARIABLES
       ST_DEBUG
	      If set, shntool will print debugging information.	 This is anal-
	      ogous to the -D global option, with the exception	that debugging
	      is enabled immediately, instead  of  when	 the  command-line  is
	      parsed.

       ST_<FORMAT>_DEC
	      Specify  input  file  format  decoder and/or arguments.  Replace
	      <FORMAT> with the	format you wish	to modify,  e.g.   ST_SHN_DEC.
	      The  format  of  this variable is	analagous to the -i global op-
	      tion, except that	the initial format is not included.  Examples:

	      ST_SHN_DEC='shorten-2.3b'

	      ST_SHN_DEC='shorten -x -d	2048 %f	-'

       ST_<FORMAT>_ENC
	      Specify output file format extension, encoder and/or  arguments.
	      Replace  <FORMAT>	 with  the  format  you	 wish  to modify, e.g.
	      ST_SHN_ENC.  The format of this variable is analagous to the  -o
	      global  option,  except that the initial format is not included.
	      Examples:

	      ST_SHN_ENC='shorten -v2 -	%f'

	      ST_FLAC_ENC='flake - %f'

	      ST_AIFF_ENC='ext=aif'

	      ST_CUST_ENC='ext=mp3 lame	--quiet	- %f'

       Note that command-line options take precedence over any of these	 envi-
       ronment variables.

EXIT STATUS
       Generally  speaking,  shntool will exit with status 0 upon success, and
       status 1	if it encounters an error.  The	only  exception	 is  when  the
       'quit'  option  is selected from	within the interactive file reordering
       menu, in	which case the exist status will be 255.

NOTES
       shntool is a misnomer, since it processes WAVE data, not	shorten	 data.
       The  name is a holdover from its	early days as 'shnlen',	a program cre-
       ated specifically to extract information	about WAVE data	stored	within
       .shn files.

       Aliases	for  shntool are prefixed with 'shn' instead of	'wav' to avoid
       possible	collisions with	existing programs.

AUTHOR
       Jason Jordan <shnutils at freeshell dot org>

       Please send all bug reports to the above	address.

       The   latest   version	of   shntool   can   always   be   found    at
       <http://www.etree.org/shnutils/>	or <http://shnutils.freeshell.org/>.

COPYRIGHT
       Copyright (C) 2000-2009 Jason Jordan

       This  is	 free  software.   You may redistribute	copies of it under the
       terms  of  the  GNU  General  Public  License   <http://www.gnu.org/li-
       censes/gpl.html>.   There  is  NO  WARRANTY, to the extent permitted by
       law.

REVISION
       $Id: shntool.1,v	1.140 2009/03/30 05:59:25 jason	Exp $

shntool	3.0.10			  March	2009			    SHNTOOL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=shntool&sektion=1&manpath=FreeBSD+Ports+15.0>

home | help