<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc [
<!ENTITY docname "draft-swhited-contra-tags-03">
]>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="info" docName="&docname;" ipr="trust200902" obsoletes="" updates="" xml:lang="en" version="3" submissionType="independent">
  <front>
    <title abbrev="Contra Tags">
        Metadata for Called Folk Dances
    </title>
    <seriesInfo name="Internet-Draft" value="&docname;"/>
    <author fullname="Sam Whited" initials="ssw" role="editor" surname="Whited">
      <organization abbrev="ACD">Atlanta Contra Dancers</organization>
      <address>
        <email>sam@samwhited.com</email>
        <uri>https://blog.samwhited.com</uri>
      </address>
    </author>
    <date year="2026" month="04" day="10"/>
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>audio</keyword>
    <keyword>matroska</keyword>
    <keyword>metadata</keyword>
    <abstract>
      <t>
        This document defines metadata tags for describing aspects of Contra,
        Square, and other traditional called folk dances.
        These tags are meant for archivists as well as modern day callers of
        traditional dances.
      </t>
    </abstract>
  </front>
  <middle>
    <section>
      <name>Introduction</name>
      <t>
        Many traditional folk dances including Contra Dance, Square Dance,
        English Country Dance (ECD), and others from a variety of cultural
        backgrounds involve a caller who leads the dance by speaking or singing
        the choreography in time to the music.
        The caller will help the dancers perform the choreography until either
        the music that is pre-selected for a particular dance ends or until the
        caller decides to stop depending on the dance style.
      </t>
      <t>
        For archivists or modern callers selecting recordings of called dances
        there are a number of properties of the music that are not described
        by traditional music metadata that may be desirable to know.
        For example, an archivist may want to find all recordings of a specific
        caller playing with a specific band, but the callers name is not a
        commonly used metadata tag.
        Or a modern caller may want to filter out all tracks that have their
        own calls or are "crooked" (ie. don't perfectly align with the phrasing
        of the particular dance they are calling) to select recordings to call
        to when a live band is not available for a dance.
      </t>
      <t>
        Having a set of standardized tags to describe such dances makes it
        easier for software meant for callers or archivists to display such
        information in a standard, searchable, way.
        The justification for assigned tags in
        <xref target="I-D.ietf-cellar-tags" sectionFormat="of" section="3.1"/>
        also applies to this document.
      </t>
      <t>
        This document only aims to cover tags specifically related to called
        folk dances.
        More general tags that may complement the tags in this document
        are defined in <xref target="I-D.ietf-cellar-tags"/>.
      </t>
      <section anchor="requirements">
        <name>Requirements Language</name>
        <t>
          The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
          "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
          "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
          "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>",
          "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and
          "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
          described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
          when, and only when, they appear in all capitals, as shown here.
        </t>
      </section>
    </section>
    <section>
      <name>Assigned Tags</name>
      <section anchor="s_called_tracks">
        <name>Called Tracks</name>

        <t>
          The tags defined in the following table describe recordings that
          include sung or spoken dance calls.
        </t>
        <t>
          Some recordings include separate tracks for the caller and the band
          or contain an entire evening of dances in a single file separated by a
          CUE track.
          To facilitate these use cases, these tags <bcp14>SHOULD</bcp14> set a
          target (<xref target="RFC9559" sectionFormat="comma" section="24.2"/>)
          referencing the track containing the calls.
        </t>

        <table>
          <name>Tags for tracks with calls</name>
          <thead>
            <tr>
              <th>Tag Name</th>
              <th>Type</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>DANCE_FORM</td>
              <td>UTF-8</td>
              <td>
                The form of the folk dance such as "contra" or "square".
                Because a large number of different folk dances exist (and
                because this tag may be broadly useful for dances other than
                called folk dances) no particular format or list of dance forms
                are defined.
                Archivists may choose to be much more particular about this tag,
                for example listing the specific formation of a contra dance
                such as "duple minor improper contra" while a caller may simply
                list the dance as "contra".
              </td>
            </tr>
            <tr>
              <td>DANCE_CALLER</td>
              <td>UTF-8</td>
              <td>
                The name of the caller heard in the track.
                This <bcp14>MAY</bcp14> be the special value
                "<tt>[unknown]</tt>" (see <xref target="s_special_values"/>).
              </td>
            </tr>
            <tr>
              <td>DANCE_TITLE</td>
              <td>UTF-8</td>
              <td>
                The name of the dance being called.
                This <bcp14>MAY</bcp14> be the special value
                "<tt>[unknown]</tt>" (see <xref target="s_special_values"/>).
              </td>
            </tr>
            <tr>
              <td>DANCE_CHOREOGRAPHER</td>
              <td>UTF-8</td>
              <td>
                The name of the author of the dance being called.
                This <bcp14>MAY</bcp14> be one of the special values
                "<tt>[unknown]</tt>" or "<tt>[traditional]</tt>"
                (see <xref target="s_special_values"/>).
              </td>
            </tr>
            <tr>
              <td>DANCE_CHOREOGRAPHY</td>
              <td>UTF-8</td>
              <td>
                The moves of the dance in plain text format.
                No exact style is specified.
                The dance author, choreographer, or other information that can
                be represented by other tags in this document
                <bcp14>SHOULD NOT</bcp14> be included and should instead be read
                from the appropriate tags.
              </td>
            </tr>
            <tr>
              <td>DANCE_ROLES</td>
              <td>UTF-8</td>
              <td>
                Role terms used in the calls.
                For example, "Larks/Robins" or "Leads/Follows" or "Positional" for
                dances that explicitly do not mention role terms for a
                partnership.
                No specific format is defined.
              </td>
            </tr>
            <tr>
              <td>DANCE_LICENSE</td>
              <td>UTF-8</td>
              <td>
                Like the LICENSE field defined in
                <xref target="I-D.ietf-cellar-tags" sectionFormat="of" section="4.13"/>
                except relating to the choreography of the dance being called.
              </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="s_any_track">
        <name>Called or Uncalled Tracks</name>
        <t>
          The following tags are generally applicable to tracks that include the
          caller as well as to tracks that are uncalled but fit the form of
          a particular folk dance or are commonly used for folk dance.
          If the file contains multiple audio tracks these tags
          <bcp14>SHOULD</bcp14> set a target pointing to the track containing
          the music.
        </t>
        <table>
          <name>Tags for any track</name>
          <thead>
            <tr>
              <th>Tag Name</th>
              <th>Type</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>DANCE_INTRO</td>
              <td>UTF-8</td>
              <td>
                The number of intro beats (not bars) before the dance starts and
                before any potatoes.
                For example, if a dance had a 28 beat introductory phrase
                followed by 4 traditional potatoes before the first time through
                the dance, this tag would be set to 28 and
                <tt>DANCE_POTATOES</tt> would be set to 4.
                If a tune had an 8 beat intro and no traditional potatoes this
                would be set to 8 and <tt>DANCE_POTATOES</tt> would be set to 0
                or unset.
              </td>
            </tr>
            <tr>
              <td>DANCE_POTATOES</td>
              <td>UTF-8</td>
              <td>
                "Potatoes" are a term used to describe the synchronization beats
                played by the band before the tune starts to get the caller and
                dancers on time.
                This tag is the number of beats (not bars) leading up to the
                first time through the dance.
              </td>
            </tr>
            <tr>
              <td>DANCE_START</td>
              <td>UTF-8</td>
              <td>
                The start time (in milliseconds) of the first time through the
                dance. This is where the dancers would start moving, not where
                the caller would start calling.
              </td>
            </tr>
            <tr>
              <td>DANCE_TIMES</td>
              <td>UTF-8</td>
              <td>
                The number of complete times through the dance excluding any
                intro, outro, or potatoes.
                The exact definition will depend on the type of dance.
                For example, a contra dance has 64 beat (32 bar) phrases so
                the number of times through the dance will be the number of
                beats of music (excluding intros, outros, and any crooked
                phrasing) divided by 64.
              </td>
            </tr>
            <tr>
              <td>DANCE_CROOKED</td>
              <td>UTF-8</td>
              <td>
                Whether the dance is a "crooked" tune (ie. not in perfect dance
                form).
                If set, this key <bcp14>MUST</bcp14> always be the value
                "<tt>TRUE</tt>" or "<tt>FALSE</tt>".
              </td>
            </tr>
            <tr>
              <td>DANCE_IS_SONG</td>
              <td>UTF-8</td>
              <td>
                Whether the track is a song (has sung vocal lyrics other than
                the calls) or a tune (instrumental only).
                If set, this key <bcp14>MUST</bcp14> always be the value
                "<tt>TRUE</tt>" or "<tt>FALSE</tt>".
              </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="s_special_values">
        <name>Special Values</name>
        <t>
          Several tags that take free-form text may also have certain special
          values such as "<tt>[unknown]</tt>" or "<tt>[traditional]</tt>" as
          described above.
          In software that displays this metadata these values
          <bcp14>MAY</bcp14> be shown as a different, localizable, string.
        </t>
        <t>
          The value "<tt>[unknown]</tt>", where permitted, indicates that the
          value of the tag should be displayed but is currently unknown.
          This is different from an unset tag which conveys no semantic meaning.
        </t>
        <t>
          The value "<tt>[traditional]</tt>", where permitted, indicates that
          the authorship of the dance is part of a folk tradition and no
          particular author or authors can be assigned to it.
        </t>
      </section>
    </section>
    <section>
      <name>Use with Vorbis Comments and other tagging systems</name>
      <t>
        Though these tags were defined for use with Matroska files, they may
        be used in other common tagging systems such as Vorbis Comments
        <xref target="Vorbis"/> and in systems which re-use Vorbis Comments
        such as FLAC
        <xref target="RFC9639" sectionFormat="comma" section="8.6"/> tags.
        To use tags from this document in Vorbis Comments remove the
        "<tt>DANCE_</tt>" prefix and instead use the namespace
        "<tt>DANCE:</tt>".
        For example, the "<tt>DANCE_POTATOES</tt>" tag becomes
        "<tt>DANCE:POTATOES</tt>".
      </t>
      <t>
        These tag names may be useful in other common tagging systems such as
        ID3 and APE where they can likely be used without modification, however,
        their exact use in such systems is not defined in this document.
      </t>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>

      <t>
        This memo modifies the "Matroska Tag Names" registry defined in
        <xref target="I-D.ietf-cellar-tags" sectionFormat="of" section="6.1"/>
        to add the following values:
      </t>
      <table>
        <name>Additions to the "Matroska Tag Names" Registry</name>
        <thead>
          <tr>
            <th>Tag Name</th>
            <th>Tag Type</th>
            <th>Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td>DANCE_FORM</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_CALLER</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_TITLE</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_CHOREOGRAPHER</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_CHOREOGRAPHY</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_ROLES</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_LICENSE</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_called_tracks"/></td>
          </tr>
          <tr>
            <td>DANCE_INTRO</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
          <tr>
            <td>DANCE_POTATOES</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
          <tr>
            <td>DANCE_START</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
          <tr>
            <td>DANCE_TIMES</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
          <tr>
            <td>DANCE_CROOKED</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
          <tr>
            <td>DANCE_IS_SONG</td>
            <td>UTF-8</td>
            <td>This document, <xref target="s_any_track"/></td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>

      <t>
        This document does not affect the security of the internet.
      </t>
    </section>
  </middle>
  <back>
    <references>
      <name>Normative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9559.xml"/>
    </references>
    <references>
      <name>Informative References</name>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9639.xml"/>
      <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-cellar-tags.xml"/>
      <reference anchor="Vorbis" target="https://xiph.org/vorbis/doc/v-comment.html">
        <front>
          <title>Ogg Vorbis I format specification: comment field and header specification</title>
          <author>
            <organization>Xiph.Org</organization>
          </author>
        </front>
      </reference>
    </references>
    <section anchor="Acknowledgements" numbered="false">
      <name>Acknowledgements</name>
      <t>
        Thanks to Joe Harrington for his perspective as both a contra dance
        caller and DJ on the Shared Weight mailing list.
      </t>
    </section>
  </back>
</rfc>
