<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [

<!-- Process this file with docbook-to-man to generate an nroff manual
     page: `docbook-to-man manpage.sgml > manpage.1'.  You may view
     the manual page with: `docbook-to-man manpage.sgml | nroff -man |
     less'.  A typical entry in a Makefile or Makefile.am is:

manpage.1: manpage.sgml
	docbook-to-man $< > $@
  -->

<!-- This is based on an example constructed by Colin Watson
     <email>cjwatson@debian.org</email>, based on a man page template
     provided by Tom Christiansen <email>tchrist@jhereg.perl.com</email>
     and a DocBook man page example by Craig Small
     <email>csmall@debian.org</email>.
  -->

  <!-- Fill in the various UPPER CASE things here. -->
  <!ENTITY manfirstname "<firstname>dann</firstname>">
  <!ENTITY mansurname   "<surname>frazier</surname>">
  <!-- Please adjust the date whenever revising the manpage. -->
  <!ENTITY mandate      "<date>2005-02-02</date>">
  <!-- SECTION should be 1-8, maybe with subsection. Other parameters are
       allowed: see man(7), man(1). -->
  <!ENTITY mansection   "<manvolnum>1</manvolnum>">
  <!ENTITY manemail     "<email>dannf@debian.org</email>">
  <!ENTITY manusername  "dannf">
  <!ENTITY manucpackage "<refentrytitle>METAFLAC</refentrytitle>">
  <!ENTITY manpackage   "metaflac">
]>

<refentry>
  <refentryinfo>
    <address>
      &manemail;
    </address>
    <author>
      &manfirstname;
      &mansurname;
    </author>
    <copyright>
      <year>2002,2003,2004,2005</year>
      <holder>&manusername;</holder>
    </copyright>
    &mandate;
  </refentryinfo>
  <refmeta>
    &manucpackage;

    &mansection;
  </refmeta>
  <refnamediv>
    <refname>&manpackage;</refname>

    <refpurpose>
      program to list, add, remove, or edit metadata in one or more FLAC files.
    </refpurpose>
  </refnamediv>
  <refsynopsisdiv>
    <cmdsynopsis>
      <command>&manpackage;</command>

      <group choice="opt"><arg><replaceable>options</replaceable></arg></group>
      <group choice="opt">
	<arg><replaceable>operations</replaceable></arg></group>
      <arg rep="repeat" choice="req"><replaceable>FLACfile</replaceable></arg>
    </cmdsynopsis>
  </refsynopsisdiv>
  <refsect1>
    <title>DESCRIPTION</title>

    <para>Use <command>&manpackage;</command> to list, add, remove, or edit
      metadata in one or more FLAC files.  You may perform one major operation,
      or many shorthand operations at a time.</para>

  </refsect1>
  <refsect1>
    <title>OPTIONS</title>

    <variablelist>
      <varlistentry>
        <term><option>--preserve-modtime</option></term>
        <listitem>
          <para>
	    Preserve the original modification time in spite of edits.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--with-filename</option></term>
        <listitem>
          <para>
	    Prefix each output line with the FLAC file name (the default if
	    more than one FLAC file is specified).
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--no-filename</option></term>
        <listitem>
          <para>
	    Do not prefix each output line with the FLAC file name (the default
	    if only one FLAC file is specified).
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--dont-use-padding</option></term>
        <listitem>
          <para>
	    By default metaflac tries to use padding where possible to avoid
	    rewriting the entire file if the metadata size changes.  Use this
	    option to tell metaflac to not take advantage of padding this way.
	  </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
    <title>SHORTHAND OPERATIONS</title>

    <variablelist>
      <varlistentry>
        <term><option>--show-md5sum</option></term>
        <listitem>
          <para>
	    Show the MD5 signature from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-min-blocksize</option></term>
        <listitem>
          <para>
	    Show the minimum block size from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-max-blocksize</option></term>
        <listitem>
          <para>
	    Show the maximum block size from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-min-framesize</option></term>
        <listitem>
          <para>
	    Show the minimum frame size from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-max-framesize</option></term>
        <listitem>
          <para>
	    Show the maximum frame size from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-sample-rate</option></term>
        <listitem>
          <para>
	    Show the sample rate from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-channels</option></term>
        <listitem>
          <para>
	    Show the number of channels from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-bps</option></term>
        <listitem>
          <para>
	    Show the # of bits per sample from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-total-samples</option></term>
        <listitem>
          <para>
	    Show the total # of samples from the STREAMINFO block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-vendor-tag</option></term>
        <listitem>
          <para>
	    Show the vendor string from the VORBIS_COMMENT block.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--show-tag=name</option></term>
        <listitem>
          <para>
	    Show all tags where the the field name matches 'name'.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--remove-tag=name</option></term>
        <listitem>
          <para>
	    Remove all tags whose field name is 'name'.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--remove-first-tag=name</option></term>
        <listitem>
          <para>
	    Remove first tag whose field name is 'name'.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--remove-all-tags</option></term>
        <listitem>
          <para>
	    Remove all tags, leaving only the vendor string.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--set-tag=field</option></term>
        <listitem>
          <para>
	    Add a tag.  The field must comply with the
	    Vorbis comment spec, of the form "NAME=VALUE".  If there is
	    currently no tag block, one will be created.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--set-tag-from-file=field</option></term>
        <listitem>
          <para>
	    Like --set-tag, except the VALUE is a filename whose
	    contents will be read verbatim to set the tag value.
	    Unless --no-utf8-convert is specified, the contents will be
	    converted to UTF-8 from the local charset.  This can be used
	    to store a cuesheet in a tag (e.g.
	    --set-tag-from-file="CUESHEET=image.cue").  Do not try to
	    store binary data in tag fields!  Use APPLICATION blocks for
	    that.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--import-tags-from=file</option></term>
        <listitem>
	  <para>
	    Import tags from a file.  Use '-' for stdin.  Each
	    line should be of the form NAME=VALUE.  Multi-line comments
	    are currently not supported.  Specify --remove-all-tags and/or
	    --no-utf8-convert before --import-tags-from if necessary.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--export-tags-to=file</option></term>
        <listitem>
	  <para>
	    Export tags to a file.  Use '-' for stdin.  Each
	    line will be of the form NAME=VALUE.  Specify
	    --no-utf8-convert if necessary.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--import-cuesheet-from=file</option></term>
        <listitem>
	  <para>
	    Import a cuesheet from a file.  Use '-' for stdin.  Only one
	    FLAC file may be specified.  A seekpoint will be added for each
	    index point in the cuesheet to the SEEKTABLE unless
	    --no-cued-seekpoints is specified.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--export-cuesheet-to=file</option></term>
        <listitem>
	  <para>
	    Export CUESHEET block to a cuesheet file, suitable for use by
	    CD authoring software.  Use '-' for stdout.  Only one FLAC file
	    may be specified on the command line.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--import-picture</option>=<replaceable>SPECIFICATION</replaceable></term>
	<listitem>
	  <para>Import a picture and store it in a PICTURE metadata block.  More than one --import-picture command can be specified.  The SPECIFICATION is a string whose parts are separated by | (pipe) characters.  Some parts may be left empty to invoke default values.  The format of SPECIFICATION is</para>
	  <para>[TYPE]|MIME-TYPE|[DESCRIPTION]|[WIDTHxHEIGHTxDEPTH[/COLORS]]|FILE</para>
	  <para>TYPE is optional; it is a number from one of:</para>
	  <para>0: Other</para>
	  <para>1: 32x32 pixels 'file icon' (PNG only)</para>
	  <para>2: Other file icon</para>
	  <para>3: Cover (front)</para>
	  <para>4: Cover (back)</para>
	  <para>5: Leaflet page</para>
	  <para>6: Media (e.g. label side of CD)</para>
	  <para>7: Lead artist/lead performer/soloist</para>
	  <para>8: Artist/performer</para>
	  <para>9: Conductor</para>
	  <para>10: Band/Orchestra</para>
	  <para>11: Composer</para>
	  <para>12: Lyricist/text writer</para>
	  <para>13: Recording Location</para>
	  <para>14: During recording</para>
	  <para>15: During performance</para>
	  <para>16: Movie/video screen capture</para>
	  <para>17: A bright coloured fish</para>
	  <para>18: Illustration</para>
	  <para>19: Band/artist logotype</para>
	  <para>20: Publisher/Studio logotype</para>
	  <para>The default is 3 (front cover).  There may only be one picture each of type 1 and 2 in a file.</para>

	  <para>MIME-TYPE is mandatory; for best compatibility with players, use pictures with MIME type image/jpeg or image/png.  The MIME type can also be --&gt; to mean that FILE is actually a URL to an image, though this use is discouraged.</para>

	  <para>DESCRIPTION is optional; the default is an empty string.</para>

	  <para>The next part specfies the resolution and color information.  If the MIME-TYPE is image/jpeg, image/png, or image/gif, you can usually leave this empty and they can be detected from the file.  Otherwise, you must specify the width in pixels, height in pixels, and color depth in bits-per-pixel.  If the image has indexed colors you should also specify the number of colors used.  When manually specified, it is not checked against the file for accuracy.</para>

	  <para>FILE is the path to the picture file to be imported, or the URL if MIME type is --&gt;</para>

	  <para>For example, "|image/jpeg|||../cover.jpg" will embed the JPEG file at ../cover.jpg, defaulting to type 3 (front cover) and an empty description.  The resolution and color info will be retrieved from the file itself.</para>

	  <para>The specification "4|-->|CD|320x300x24/173|http://blah.blah/backcover.tiff" will embed the given URL, with type 4 (back cover), description "CD", and a manually specified resolution of 320x300, 24 bits-per-pixel, and 173 colors.  The file at the URL will not be fetched; the URL itself is stored in the PICTURE metadata block.</para>
	</listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--add-replay-gain</option></term>
        <listitem>
	  <para>
	    Calculates the title and album gains/peaks of the given FLAC
	    files as if all the files were part of one album, then stores
	    them in the VORBIS_COMMENT block.  The tags are the same as
	    those used by vorbisgain.  Existing ReplayGain tags will be
	    replaced.  If only one FLAC file is given, the album and title
	    gains will be the same.  Since this operation requires two
	    passes, it is always executed last, after all other operations
	    have been completed and written to disk.  All FLAC files
	    specified must have the same resolution, sample rate, and
	    number of channels.  The sample rate must be one of 8, 11.025,
	    12, 16, 22.05, 24, 32, 44.1, or 48 kHz.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--remove-replay-gain</option></term>
        <listitem>
	  <para>
	    Removes the ReplayGain tags.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--add-seekpoint</option>={<replaceable>#</replaceable>|<replaceable>X</replaceable>|<replaceable>#x</replaceable>|<replaceable>#s</replaceable>}</term>
	<listitem>
	  <para>
	    Add seek points to a SEEKTABLE block.  Using #, a seek point at
	    that sample number is added.  Using X, a placeholder point is
	    added at the end of a the table.  Using #x, # evenly spaced seek
	    points will be added, the first being at sample 0.  Using #s, a
	    seekpoint will be added every # seconds (# does not have to be a
	    whole number; it can be, for example, 9.5, meaning a seekpoint
	    every 9.5 seconds).  If no SEEKTABLE block exists, one will be
	    created.  If one already exists, points will be added to the
	    existing table, and any duplicates will be turned into placeholder
	    points.  You may use many --add-seekpoint options; the resulting
	    SEEKTABLE will be the unique-ified union of all such values.
	    Example: --add-seekpoint=100x --add-seekpoint=3.5s will add 100
	    evenly spaced seekpoints and a seekpoint every 3.5 seconds.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--add-padding=length</option></term>
        <listitem>
          <para>
	    Add a padding block of the given length (in bytes).  The overall
	    length of the new block will be 4 + length; the extra 4 bytes is
	    for the metadata block header.
	  </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  <refsect1>
    <title>MAJOR OPERATIONS</title>

    <variablelist>
      <varlistentry>
        <term><option>--list</option></term>
        <listitem>
          <para>
	    List the contents of one or more metadata blocks to stdout.  By
	    default, all metadata blocks are listed in text format.  Use the
	    following options to change this behavior:
	  </para>
	  <variablelist>
	    <varlistentry>
	      <term><option>--block-number=#[,#[...]]</option></term>
	      <listitem>
		<para>
		  An optional comma-separated list of block numbers to display.
		  The first block, the STREAMINFO block, is block 0.
		</para>
	      </listitem>
	    </varlistentry>
	    <varlistentry>
	      <term><option>--block-type=type[,type[...]]</option></term>
	      <listitem><para></para></listitem>
	    </varlistentry>
	    <varlistentry>
	      <term><option>--except-block-type=type[,type[...]]</option></term>
	      <listitem>
		<para>
		  An optional comma-separated list of block types to be included
		  or ignored with this option.  Use only one of --block-type or
		  --except-block-type.  The valid block types are: STREAMINFO,
		  PADDING, APPLICATION, SEEKTABLE, VORBIS_COMMENT.  You may
		  narrow down the types of APPLICATION blocks displayed as
		  follows:
		</para>
		<para>
        APPLICATION:abcd        The APPLICATION block(s) whose textual repre-
                                sentation of the 4-byte ID is "abcd"
        APPLICATION:0xXXXXXXXX  The APPLICATION block(s) whose hexadecimal big-
                                endian representation of the 4-byte ID is
                                "0xXXXXXXXX".  For the example "abcd" above the
                                hexadecimal equivalalent is 0x61626364
		</para>
		<note>
		  <para>
		    if both --block-number and --[except-]block-type are
		    specified, the result is the logical AND of both
		    arguments.</para></note>
	      </listitem>
	    </varlistentry>
	    <varlistentry>
	      <term><option>--application-data-format=hexdump|text</option></term>
	      <listitem>
		<para>
		  If the application block you are displaying contains binary
		  data but your --data-format=text, you can display a hex dump
		  of the application data contents instead using
		  --application-data-format=hexdump.
		</para>
	      </listitem>
	    </varlistentry>
	  </variablelist>
	</listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--remove</option></term>
        <listitem>
          <para>
            Remove one or more metadata blocks from the metadata.  Unless
            --dont-use-padding is specified, the blocks will be replaced with
            padding.  You may not remove the STREAMINFO block.
	  </para>
	  <variablelist>
	    <varlistentry>
	      <term><option>--block-number=#[,#[...]]</option></term>
	      <listitem><para></para></listitem>
	    </varlistentry>
	    <varlistentry>
	      <term><option>--block-type=type[,type[...]]</option></term>
	      <listitem><para></para></listitem>
	    </varlistentry>
	    <varlistentry>
	      <term><option>--except-block-type=type[,type[...]]</option></term>
	      <listitem>
		<para>See --list above for usage.</para>
		<note>
		  <para>
		    if both --block-number and --[except-]block-type are
		    specified, the result is the logical AND of both arguments.
		  </para></note>
	      </listitem>
	    </varlistentry>
	  </variablelist>
	</listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--remove-all</option></term>
        <listitem>
          <para>
            Remove all metadata blocks (except the STREAMINFO block) from the
            metadata.  Unless --dont-use-padding is specified, the blocks will
            be replaced with padding.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--merge-padding</option></term>
        <listitem>
          <para>
	    Merge adjacent PADDING blocks into single blocks.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
        <term><option>--sort-padding</option></term>
        <listitem>
          <para>
	    Move all PADDING blocks to the end of the metadata and merge them
            into a single block.
	  </para>
        </listitem>
      </varlistentry>
    </variablelist>
  </refsect1>
  
  <refsect1>
    <title>SEE ALSO</title>

    <para>flac(1).</para>
  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:t
sgml-parent-document:nil
sgml-default-dtd-file:nil
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
