beast r4452 - trunk/docs



Author: stw
Date: Sun Mar 16 09:07:23 2008
New Revision: 4452
URL: http://svn.gnome.org/viewvc/beast?rev=4452&view=rev

Log:
Added bsewavetool man page, see bug #437469.


Added:
   trunk/docs/bsewavetool.1.doxi
Modified:
   trunk/docs/Makefile.am

Modified: trunk/docs/Makefile.am
==============================================================================
--- trunk/docs/Makefile.am	(original)
+++ trunk/docs/Makefile.am	Sun Mar 16 09:07:23 2008
@@ -9,6 +9,7 @@
 MAN_TARGETS = $(strip				\
 	mans/beast.1				\
 	mans/bsescm.1				\
+	mans/bsewavetool.1			\
 	mans/sfidl.1				\
 	mans/bse.5				\
 )
@@ -26,6 +27,7 @@
 	\
 	html/beast.1.html			\
 	html/bsescm.1.html			\
+	html/bsewavetool.1.html			\
 	html/sfidl.1.html			\
 	html/bse.5.html				\
 	html/coding-style.html			\
@@ -231,6 +233,7 @@
 	bsescm.1.doxi		\
 	plugin-devel.doxi	\
 	sfidl.1.doxi		\
+	bsewavetool.1.doxi	\
 	coding-style.doxi	\
 )
 

Added: trunk/docs/bsewavetool.1.doxi
==============================================================================
--- (empty file)
+++ trunk/docs/bsewavetool.1.doxi	Sun Mar 16 09:07:23 2008
@@ -0,0 +1,348 @@
+ doxer_dnl      # emacs: -*- mode: texinfo; texinfo-open-quote: "\""; texinfo-close-quote: "\""; -*-
+ doxer_set{rvstamp,git_author_date,parse_date} $Date: 2007-01-13 20:21:16 +0100 (Sa, 13 Jan 2007) $
+ include @doxer_get{DOXI_INCLUDE_FILE}
+ doxer_set{title}	BSEWAVETOOL - BSE Wave Tool
+ doxer_set{man-title}	BSEWAVETOOL
+ doxer_set{man-date}	@doxer_get{rvstamp}
+ doxer_set{man-source}	beast- doxer_get{BST_VERSION}
+ doxer_set{man-manual}	BEAST Manual Pages
+
+ heading NAME
+bsewavetool - A tool for editing the native multisample format for @beast and @bse.
+
+ heading SYNOPSIS
+	@manb{bsewavetool} [ mani{tool-options}] command @mani{<file.bsewave>} [ mani{command-arguments}]
+
+ heading DESCRIPTION
+	@manb{bsewavetool} is a command line tool for editing the native
+	multisample format for @beast and @bse, the @mani{bsewave} format.
+	Some common operations are creating new @mani{bsewave} files, adding
+	chunks to an existing file, encoding the sample data, adding meta
+	information or exporting chunks.
+
+	Common uses for @mani{bsewave} files are:
+	@itemize{bullet}
+	@item mapping an individual sample to each midi note (key on the keyboard) -
+	      this is mainly useful for drumkits
+	@item approximating the sound of an instrument (such as a piano) by sampling
+	      some notes, and mapping these to the corresponding frequencies in a
+	      @mani{bsewave} file - when such a file is loaded by @bse and a note is
+	      played, @bse will play the "nearest" note, and - if necessary pitch it
+	@done
+
+
+ heading TOOL OPTIONS
+        @itemize{none}
+        @item @manb{-o} @mani{<output.bsewave>} @*
+          Name of the destination file (default: <file.bsewave>).
+        @item @manb{--silent} @*
+          Suppress extra processing information.
+        @item @manb{--skip-errors} @*
+          Skip errors (may overwrite bsewave files after load errors occoured for
+          part of its contents).
+        @item @manb{-h}, @manb{--help} @*
+          Show elaborated help message with command documentation.
+        @item @manb{-v}, @manb{--version} @*
+          Print version information.
+        @done
+
+ heading COMMANDS
+
+ subheading store
+        Store the input bsewave as output bsewave. If both file names are the same,
+        the bsewave file is simply rewritten. Allthough no explicit modifications
+        are performed on the bsewave, externally referenced sample files will be
+        inlined, chunks may be reordered, and other changes related to the bsewave
+        storage process may occour.
+
+ subheading create <n_channels> [options]
+        Create an empty bsewave file, @mani{<n_channels>}=1 (mono) and
+        @mani{<n_channels>}=2 (stereo) are currently supported. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-N} @mani{<wave-name>} @*
+          Name of the wave stored inside of <output.bsewave>.
+        @item @manb{-f} @*
+          Force creation even if the file exists already.
+        @done
+
+ subheading oggenc [options]
+        Compress all chunks with the Vorbis audio codec and store the wave data
+        as Ogg/Vorbis streams inside the bsewave file. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-q} @mani{<n>} @*
+          Use quality level @mani{<n>}, refer to oggenc(1) for details.
+        @done
+
+ subheading add-chunk [options] {-m=midi-note|-f=osc-freq} <sample-file> ...
+        Add a new chunk containing @mani{<sample-file>} to the wave file. For each chunk,
+        a unique oscillator frequency must be given to determine what note the
+        chunk is to be played back for. Multi oscillator frequency + sample-file
+        option combinations may be given on the command line to add multiple wave
+        chunks. The -f and -m options can be omitted for a sample file, if the
+        oscillator frequency can be determined through auto extract options. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency for the next chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--auto-extract-midi-note} @mani{<nth>} @*
+          Automatically retrieve the midi note by extracting the
+          @mani{<nth>} number from the base name of @mani{<sample-file>}.
+        @item @manb{--auto-extract-osc-freq} @mani{<nth>} @*
+          Automatically retrieve the oscillator frequency by
+          extracting the @mani{<nth>} number from the base name
+          of @mani{<sample-file>}.
+        @done
+
+ subheading add-raw-chunk [options] {-m=midi-note|-f=osc-freq} <sample-file> ...
+        Add a new chunk just like with "add-chunk", but load raw sample data.
+        Additional raw sample format options are supported. @*
+
+        @manb{Raw sample format options:}
+        @itemize{none}
+        @item @manb{-R} @mani{<mix-freq>} @*
+          Mixing frequency for the next chunk [44100].
+        @item @manb{-F} @mani{<format>} @*
+          Raw sample format, supported formats are: alaw, ulaw, float,
+          signed-8, signed-12, signed-16, unsigned-8, unsigned-12, unsigned-16 [signed-16].
+        @item @manb{-B} @mani{<byte-order>} @*
+          Raw sample byte order, supported types:
+          little-endian, big-endian [little-endian].
+        @done
+
+ subheading xinfo {-m=midi-note|-f=osc-freq|--chunk-key=key|--all-chunks|--wave} key=[value] ...
+        Add, change or remove an XInfo string of a bsewave file.
+        Omission of [value] deletes the XInfo associated with the key.
+        Key and value pairs may be specified multiple times, optionally preceeded
+        by location options to control what portion of a bsewave file (the wave,
+        individual wave chunks or all wave chunks) should be affected. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--chunk-key} @mani{<key>} @*
+          Select wave chunk using chunk key from list-chunks.
+        @item @manb{--all-chunks} @*
+          Apply XInfo modification to all chunks.
+        @item @manb{--wave} @*
+          Apply XInfo modifications to the wave itself.
+        @done
+
+ subheading info {-m=midi-note|-f=osc-freq|--chunk-key=key|--all-chunks|--wave} [options]
+        Print information about the chunks of a bsewave file. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--all-chunks} *
+          Show information for all chunks (default).
+        @item @manb{--chunk-key} @mani{<key>} @*
+          Select wave chunk using chunk key from list-chunks.
+        @item @manb{--wave} @*
+          Show information for the wave.
+        @item @manb{--pretty}=medium @*
+          Use human readable format (default).
+        @item @manb{--pretty}=full @*
+          Use human readable format with all details.
+        @item @manb{--script} @mani{<field1>},@mani{<field2>},@mani{<field3>},...,@mani{<fieldN>} @*
+          Use script readable line based space separated output.
+        @done
+        @manb{Valid wave or chunk fields:}
+        @itemize{none}
+        @item channels @* Number of channels.
+        @item label    @* User interface label.
+        @item blurb    @* Associated comment.
+        @done
+        @manb{Valid wave fields:}
+        @itemize{none}
+        @item authors  @*         Authors who participated in creating the wave file.
+        @item license  @*         License specifying redistribution and other legal terms.
+        @item play-type @*        Set of required play back facilities for a wave.
+        @done
+        @manb{Valid chunk fields:}
+        @itemize{none}
+        @item osc-freq      @*    Frequency of the chunk.
+        @item mix-freq      @*    Sampling rate of the chunk.
+        @item midi-note     @*    Midi note of a chunk.
+        @item length        @*    Length of the chunk in sample frames.
+        @item volume        @*    Volume at which the chunk is to be played.
+        @item format        @*    Storage format used to save the chunk data.
+        @item loop-type     @*    Whether the chunk is to be looped.
+        @item loop-start    @*    Offset in sample frames for the start of the loop.
+        @item loop-end      @*    Offset in sample frames for the end of the loop.
+        @item loop-count    @*    Maximum limit for how often the loop should be repeated.
+        @done
+        @manb{Chunk fields that can be computed for the signal:}
+        @itemize{none}
+        @item +avg-energy-raw @*  Average signal energy (dB) of the raw data of the chunk.
+        @item +avg-energy     @*  Average signal energy (dB) using volume xinfo.
+        @done
+
+        The script output consists of one line per chunk. The individual fields
+        of a line are separated by a single space. Special characters are escaped,
+        such as spaces, tabs, newlines and backslashes. So each line of script
+        parsable output can be parsed using the read(P) shell command.
+        Optional fields will printed as a single (escaped) space. @*
+
+        The human readable output formats (--pretty) may vary in future versions
+        and are not recommended as script input.
+
+ subheading clip {-m=midi-note|-f=osc-freq|--chunk-key=key|--all-chunks} [options]
+
+        Clip head and or tail of a wave chunk and produce fade-in ramps at the
+        beginning. Wave chunks which are clipped to an essential 0-length will
+        automatically be deleted. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--chunk-key} @mani{<key>}  @*
+          Select wave chunk using chunk key from list-chunks.
+        @item @manb{--all-chunks}  @*
+          Try to clip all chunks.
+        @item @manb{-s}= mani{<threshold>} @*
+          Set the minimum signal threshold (0..32767) [16].
+        @item @manb{-h}= mani{<head-samples>} @*
+          Number of silence samples to verify at head [0].
+        @item @manb{-t}= mani{<tail-samples>} @*
+          Number of silence samples to verify at tail [0].
+        @item @manb{-f}= mani{<fade-samples>} @*
+          Number of samples to fade-in before signal starts [16].
+        @item @manb{-p}= mani{<pad-samples>} @*
+          Number of padding samples after signal ends [16].
+        @item @manb{-r}= mani{<tail-silence>} @*
+          Number of silence samples required at tail to allow tail clipping [0].
+        @done
+
+ subheading normalize {-m=midi-note|-f=osc-freq|--chunk-key=key|--all-chunks} [options]
+        Normalize wave chunk. This is used to extend (or compress) the signal
+        range to optimally fit the available unclipped dynamic range. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--chunk-key} @mani{<key>} @*
+          Select wave chunk using chunk key from list-chunks.
+        @item @manb{--all-chunks} @*
+          Try to normalize all chunks.
+        @done
+
+ subheading loop {-m=midi-note|-f=osc-freq|--all-chunks} [options]
+        Find suitable loop points. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency
+        @item @manb{--chunk-key} @mani{<key>} @*
+          Select wave chunk using chunk key from list-chunks
+        @item @manb{--all-chunks} @*
+          Try to loop all chunks
+        @done
+
+ subheading highpass [options]
+        Apply highpass filter to wave data.
+
+        @itemize{none}
+        @item @manb{--cutoff-freq} @mani{<f>} @*
+          Filter cutoff frequency in Hz
+        @item @manb{--order} @mani{<o>} @*
+          Filter order [64]
+        @done
+
+ subheading lowpass [options]
+        Apply lowpass filter to wave data.
+
+        @itemize{none}
+        @item @manb{--cutoff-freq} @mani{<f>} @*
+          Filter cutoff frequency in Hz
+        @item @manb{--order} <o> @*
+          Filter order [64]
+        @done
+
+ subheading upsample2 [options]
+        Resample wave data to twice the sampling frequency.
+
+        @itemize{none}
+        @item @manb{--precision} @mani{<bits>} @*
+          Set resampler precision bits [24]. @*
+          Supported precisions: 1, 8, 12, 16, 20, 24
+          (1 is a special value for linear interpolation)
+        @done
+
+ subheading downsample2 [options]
+        Resample wave data to half the sampling frequency.
+
+        @itemize{none}
+        @item @manb{--precision} @mani{<bits>} @*
+          Set resampler precision bits [24]. @*
+          Supported precisions: 1, 8, 12, 16, 20, 24 
+          (1 is a special value for linear interpolation).
+        @done
+
+ subheading export {-m=midi-note|-f=osc-freq|--chunk-key=key|--all-chunks|-x=filename} [options]
+        Export chunks from bsewave as WAV file. @*
+
+        @manb{Options:}
+        @itemize{none}
+        @item @manb{-x} @mani{<filename>} @*
+          Set export filename (supports %N %F and %C, see below).
+        @item @manb{-f} @mani{<osc-freq>} @*
+          Oscillator frequency to select a wave chunk.
+        @item @manb{-m} @mani{<midi-note>} @*
+          Alternative way to specify oscillator frequency.
+        @item @manb{--chunk-key} @mani{<key>} @*
+          Select wave chunk using chunk key from list-chunks.
+        @item @manb{--all-chunks} @*
+          Try to export all chunks.
+        @done
+        The export filename can contain the following extra information:
+        @itemize{none}
+        @item %F  @*  The frequency of the chunk.
+        @item %N  @*  The midi note of the chunk.
+        @item %C  @*  Cent detuning of the midi note.
+        @done
+
+ subheading list-chunks [options]
+        Prints a list of chunk keys of the chunks contained in the bsewave file.
+        A chunk key for a given chunk identifies the chunk uniquely and stays valid
+        if other chunks are inserted and deleted. @*
+
+        This bash script shows the length of all chunks (like info --all-chunks): @*
+          @doxer_dnl doxer does not preserve backticks (`), so we use bash $() instead
+          @doxer_dnl doxer cannot do @example here (due to man backend I suppose),
+          @doxer_dnl it seems that enclosing the section in
+          @doxer_dnl .nf
+          @doxer_dnl .fi
+          @doxer_dnl would be the right thing to do from a man point of view - however
+          @doxer_dnl written with ;, the shell script is usable even without proper
+          @doxer_dnl indentation
+          for key in $(bsewavetool list-chunks foo.bsewave) ;
+          do 
+            bsewavetool info foo.bsewave --chunk-key $key --script length ;
+          done
+
+ heading SEE ALSO
+ uri{beast 1 html,beast(1)} @*
+ longuri{http://beast.gtk.org, BEAST/BSE Website} @*
+ longuri{http://beast.gtk.org/architecture#section-samples-and-wave-files, Samples and Waves in BEAST}



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]