<?xml version="1.0" encoding="utf-8"?>
<?xml-model href="rfc7991bis.rnc"?>
<!DOCTYPE rfc [
<!ENTITY docname "draft-swhited-contra-tags-00">
]>
<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>Independent</organization>
      <address>
        <email>sam@samwhited.com</email>
        <uri>https://blog.samwhited.com</uri>
      </address>
    </author>
    <date year="2026" month="04" day="09"/>
    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>audio</keyword>
    <keyword>matroska</keyword>
    <abstract>
      <t>
        This document defines Matroska 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 (in the case
        of ECD) or until the caller decides to stop (contra, square).
      </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 is of use for
        archivists preserving field recordings, and for modern day callers of
        folk dances such as Modern Urban Contra callers who can use such tags
        to more rapidly select music that is suitable for calling when working
        with recorded music.
      </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
          incude sung or spoken dance calls.

          If the recording includes a separate track for the caller or otherwise
          includes multiple audio tracks (ie. an entire evening of dances in a
          single file separated with a CUE track) these tags
          <bcp14>SHOULD</bcp14> set a target pointing to the exact track
          containing the calls.
        </t>

        <table>
          <name>Tags</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 may be the special value "[unknown]".
              </td>
            </tr>
            <tr>
              <td>DANCE_TITLE</td>
              <td>UTF-8</td>
              <td>
                The name of the dance being called.
                This may be the special value "[unknown]".
              </td>
            </tr>
            <tr>
              <td>DANCE_CHOREOGRAPHER</td>
              <td>UTF-8</td>
              <td>
                The name of the author of the dance being called.
                This may be one of the special values "[unknown]" or
                "[traditional]".
              </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, difficulty, or any callers notes
              <bcp14>SHOULD NOT</bcp14> be included and should instead be
              read from the appropriate tags.
            </td>
            </tr>
            <tr>
              <td>DANCE_CALLER_NOTES</td>
              <td>UTF-8</td>
              <td>
              Any notes provided by the choreographer or the caller related to
              calling the dance. For example, many choreographers will provide
              notes such as "When teaching the A1 part, have the Larks cross
              over first...".
              Or individual callers may provide notes on their calling card
              such as "Beginner friendly" or "Advanced dance".
            </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</name>
          <thead>
            <tr>
              <th>Tag Name</th>
              <th>Type</th>
              <th>Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td>DANCE_HAS_POTATOES</td>
              <td>UTF-8</td>
              <td>
                "Potatoes" are a term used to describe the syncronization beats
                played by the band before the tune starts to get the caller
                and dancers on time.
                If set, this key <bcp14>MUST</bcp14> always be the value "TRUE"
                or "FALSE".
              </td>
            </tr>
            <tr>
              <td>DANCE_POTATOES</td>
              <td>UTF-8</td>
              <td>
                The number of beats (not bars), regardless of whether they are
                traditional potatoes or an introductory phrase, of music before
                the first time through the dance.
                If the <tt>DANCE_HAS_POTATOES</tt> tag is "FALSE" this
                represents beats in an introductory phrase, otherwise it
                represents the number of traditional potatoes (normally 4).
                If the <tt>BPM</tt>
                (<xref target="I-D.ietf-cellar-tags" sectionFormat="comma" section="4.10"/>)
                and <tt>DANCE_START</tt> tags are set,
                this should be approximately <tt>DANCE_START / 3600 * BPM</tt>
                rounded to the nearest natural number.
              </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.
                If the <tt>BPM</tt>
                (<xref target="I-D.ietf-cellar-tags" sectionFormat="comma" section="4.10"/>)
                and <tt>DANCE_POTATOES</tt> tags are set,
                this should be approximately <tt>DANCE_POTATOES / BPM * 3600</tt>.
              </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 tpye 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 "TRUE"
                or "FALSE".
              </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 "TRUE"
                or "FALSE".
              </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section>
        <name>Special Values</name>
        <t>
          Several tags that take freeform text may also have certain special
          values such as "[unknown]" or "[traditional]" as described above.
          These values <bcp14>MAY</bcp14> be shown as a different string,
          possibly translated into the users native language.
        </t>
      </section>
    </section>
    <section>
      <name>Use with Vorbis Comments</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>
    </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_CALLER_NOTES</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_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"/>
    </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>
  </back>
</rfc>
