<!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>2013/04/30</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-2005, 2011-2013</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>--no-utf8-convert</option></term>
        <listitem>
          <para>
	    Do not convert tags from UTF-8 to local charset, or vice versa. This is
	    useful for scripts, and setting tags in situations where the locale is wrong.
	  </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 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.  If
	    FILE is '-' (stdin), only one FLAC file may be specified.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--export-tags-to=file</option></term>
        <listitem>
	  <para>
	    Export tags to a file.  Use '-' for stdout.  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-from</option>={<replaceable>FILENAME</replaceable>|<replaceable>SPECIFICATION</replaceable>}</term>
	<listitem>
	  <para>Import a picture and store it in a PICTURE metadata block.  More than one --import-picture-from command can be specified.  Either a filename for the picture file or a more complete specification form can be used.  The SPECIFICATION is a string whose parts are separated by | (pipe) characters.  Some parts may be left empty to invoke default values.  FILENAME is just shorthand for "||||FILENAME".  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 optional; if left blank, it will be detected from the file.  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 specifies 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>--export-picture-to=file</option></term>
        <listitem>
	  <para>
	    Export PICTURE block to a file.  Use '-' for stdout.  Only one FLAC file may be specified on the command line.  The first PICTURE block will be exported unless --export-picture-to is preceded by a --block-number=# option to specify the exact metadata block to extract.  Note that the block number is the one shown by --list.
	  </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 as FLAC tags.  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, 18.9, 22.05, 24, 28, 32, 37.8, 44.1, 48, 56, 64, 88.2,
	    96, 112, 128, 144, 176.4, or 192kHz.
	  </para>
        </listitem>
      </varlistentry>
      <varlistentry>
	<term><option>--scan-replay-gain</option></term>
        <listitem>
	  <para>
            
	    Like --add-replay-gain, but only analyzes the files rather
	    than writing them to the tags.
	  </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, PICTURE.  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:
-->
