.. _moduleRepeat:

music21.repeat
==============

.. WARNING: DO NOT EDIT THIS FILE: AUTOMATICALLY GENERATED.  Edit the .py file directly

.. module:: music21.repeat

This module provides the base class for all RepeatMark objects: entities that denote repeats. Some RepeatMark objects are Expression objects; others are Bar objects. 


AlSegno
-------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: AlSegno(text=None)

    Jump to the sign. Presumably a forward jump, not a repeat. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlFine()


Coda
----

Inherits from: :class:`~music21.repeat.RepeatExpressionMarker`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Coda(text=None)

    The coda symbol, or the word coda, as placed in a score. 

    >>> from music21 import *
    >>> rm = repeat.Coda()


DaCapo
------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DaCapo(text=None)

    The Da Capo command, indicating a return to the beginning and a continuation to the end. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Da Capo repeat not be repeated. 


DaCapoAlCoda
------------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DaCapoAlCoda(text=None)

    The Da Capo al Coda command, indicating a return to the beginning and a continuation to the :class:`~music21.repeat.Coda` object. The music resumes at a second :class:`~music21.repeat.Coda` object. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Da Capo repeat not be repeated. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlCoda()


DaCapoAlFine
------------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DaCapoAlFine(text=None)

    The Da Capo al Fine command, indicating a return to the beginning and a continuation to the :class:`~music21.repeat.Fine` object. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Da Capo repeat not be repeated. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlFine()


DalSegno
--------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DalSegno(text=None)

    The Dal Segno command, indicating a return to the segno and a continuation to the end. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Da Capo repeat not be repeated. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlFine()


DalSegnoAlCoda
--------------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DalSegnoAlCoda(text=None)

    The Dal Segno al Coda command, indicating a return to the beginning and a continuation to the :class:`~music21.repeat.Coda` object. The music resumes at a second :class:`~music21.repeat.Coda` object. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Da Segno repeat not be repeated. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlCoda()


DalSegnoAlFine
--------------

Inherits from: :class:`~music21.repeat.RepeatExpressionCommand`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: DalSegnoAlFine(text=None)

    The Dal Segno al Fine command, indicating a return to the segno and a continuation to the :class:`~music21.repeat.Fine` object. By default, `repeatAfterJump` is False, indicating that any repeats encountered on the Dal Segno repeat not be repeated. 

    >>> from music21 import *
    >>> rm = repeat.DaCapoAlFine()


Expander
--------



.. class:: Expander(streamObj)

    Expand a single Part or Part-like Stream with repeats. Nested repeats given with :class:`~music21.bar.Repeat` objects, or repeats and sections designated with :class:`~music21.repeat.RepeatExpression` objects, are all expanded. This class is a utility processor. Direct usage is more commonly from the :meth:`~music21.stream.Stream.expandRepeats` method. 

    **Expander** **methods**

        .. method:: isExpandable()

            Return True or False if this Stream is expandable, that is, if it has balanced repeats or sensible da copo or dal segno indications. 

        .. method:: process()

            Process all repeats. Note that this processing only happens for Measures contained in the given Stream. Other objects in that Stream are neither processed nor copied. 


Fine
----

Inherits from: :class:`~music21.repeat.RepeatExpressionMarker`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Fine()

    The fine word as placed in a score. 

    >>> from music21 import *
    >>> rm = repeat.Fine()


RepeatExpression
----------------

Inherits from: :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: RepeatExpression()

    This class models any mark added to a Score to mark repeat start and end points that are designated by text expressions or symbols. Repeat(Barline) objects are not RepeatExpression objects, but both are RepeatMark subclasses. This class stores internally a :class:`~music21.expressions.TextExpression`. This object is used for rendering text output in translation. A properly configured TextExpression object can also be used to create an instance of a RepeatExpressions. 

    **RepeatExpression** **attributes**

        Attributes without Documentation: `useSymbol`

        Attributes inherited from :class:`~music21.base.Music21Object`: :attr:`~music21.base.Music21Object.classSortOrder`, :attr:`~music21.base.Music21Object.hideObjectOnPrint`, :attr:`~music21.base.Music21Object.id`, :attr:`~music21.base.Music21Object.isSpanner`, :attr:`~music21.base.Music21Object.isStream`, :attr:`~music21.base.Music21Object.isWrapper`, :attr:`~music21.base.Music21Object.groups`

    **RepeatExpression** **properties**

        Properties inherited from :class:`~music21.base.Music21Object`: :attr:`~music21.base.Music21Object.activeSite`, :attr:`~music21.base.Music21Object.beat`, :attr:`~music21.base.Music21Object.beatDuration`, :attr:`~music21.base.Music21Object.beatStr`, :attr:`~music21.base.Music21Object.beatStrength`, :attr:`~music21.base.Music21Object.classes`, :attr:`~music21.base.Music21Object.derivationHierarchy`, :attr:`~music21.base.Music21Object.duration`, :attr:`~music21.base.Music21Object.measureNumber`, :attr:`~music21.base.Music21Object.offset`, :attr:`~music21.base.Music21Object.priority`

        Properties inherited from :class:`~music21.base.JSONSerializer`: :attr:`~music21.base.JSONSerializer.json`

    **RepeatExpression** **methods**

        .. method:: applyTextFormatting(te=None)

            Apply the default text formatting to the text expression version of of this repeat 

        .. method:: getText()

            Get the text used for this expression. 

        .. method:: getTextExpression()

            Return a copy of the TextExpression stored in this object. 

        .. method:: isValidText(value)

            Return True or False if the supplied text could be used for this RepeatExpression. 

        .. method:: setText(value)

            Set the text of this repeat expression. This is also the primary way that the stored TextExpression object is created. 

        .. method:: setTextExpression(value)

            Directly set a TextExpression object. 

        Methods inherited from :class:`~music21.base.Music21Object`: :meth:`~music21.base.Music21Object.searchParentByAttr`, :meth:`~music21.base.Music21Object.getContextAttr`, :meth:`~music21.base.Music21Object.setContextAttr`, :meth:`~music21.base.Music21Object.addContext`, :meth:`~music21.base.Music21Object.addLocation`, :meth:`~music21.base.Music21Object.addLocationAndActiveSite`, :meth:`~music21.base.Music21Object.freezeIds`, :meth:`~music21.base.Music21Object.getAllContextsByClass`, :meth:`~music21.base.Music21Object.getCommonSiteIds`, :meth:`~music21.base.Music21Object.getCommonSites`, :meth:`~music21.base.Music21Object.getContextByClass`, :meth:`~music21.base.Music21Object.getOffsetBySite`, :meth:`~music21.base.Music21Object.getSiteIds`, :meth:`~music21.base.Music21Object.getSites`, :meth:`~music21.base.Music21Object.getSpannerSites`, :meth:`~music21.base.Music21Object.hasContext`, :meth:`~music21.base.Music21Object.hasSpannerSite`, :meth:`~music21.base.Music21Object.isClassOrSubclass`, :meth:`~music21.base.Music21Object.mergeAttributes`, :meth:`~music21.base.Music21Object.purgeLocations`, :meth:`~music21.base.Music21Object.removeLocationBySite`, :meth:`~music21.base.Music21Object.removeLocationBySiteId`, :meth:`~music21.base.Music21Object.removeNonContainedLocations`, :meth:`~music21.base.Music21Object.setOffsetBySite`, :meth:`~music21.base.Music21Object.show`, :meth:`~music21.base.Music21Object.splitAtDurations`, :meth:`~music21.base.Music21Object.splitAtQuarterLength`, :meth:`~music21.base.Music21Object.splitByQuarterLengths`, :meth:`~music21.base.Music21Object.unfreezeIds`, :meth:`~music21.base.Music21Object.unwrapWeakref`, :meth:`~music21.base.Music21Object.wrapWeakref`, :meth:`~music21.base.Music21Object.write`

        Methods inherited from :class:`~music21.base.JSONSerializer`: :meth:`~music21.base.JSONSerializer.jsonAttributes`, :meth:`~music21.base.JSONSerializer.jsonComponentFactory`, :meth:`~music21.base.JSONSerializer.jsonPrint`, :meth:`~music21.base.JSONSerializer.jsonRead`, :meth:`~music21.base.JSONSerializer.jsonWrite`


RepeatExpressionCommand
-----------------------

Inherits from: :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: RepeatExpressionCommand()

    Some repeat expressions are commands, instructing the reader to go somewhere else. DaCapo and related are examples. 

    **RepeatExpressionCommand** **attributes**

        Attributes without Documentation: `repeatAfterJump`

        Attributes inherited from :class:`~music21.repeat.RepeatExpression`: :attr:`~music21.repeat.RepeatExpression.useSymbol`

        Attributes inherited from :class:`~music21.base.Music21Object`: :attr:`~music21.base.Music21Object.classSortOrder`, :attr:`~music21.base.Music21Object.hideObjectOnPrint`, :attr:`~music21.base.Music21Object.id`, :attr:`~music21.base.Music21Object.isSpanner`, :attr:`~music21.base.Music21Object.isStream`, :attr:`~music21.base.Music21Object.isWrapper`, :attr:`~music21.base.Music21Object.groups`

    **RepeatExpressionCommand** **properties**

        Properties inherited from :class:`~music21.base.Music21Object`: :attr:`~music21.base.Music21Object.activeSite`, :attr:`~music21.base.Music21Object.beat`, :attr:`~music21.base.Music21Object.beatDuration`, :attr:`~music21.base.Music21Object.beatStr`, :attr:`~music21.base.Music21Object.beatStrength`, :attr:`~music21.base.Music21Object.classes`, :attr:`~music21.base.Music21Object.derivationHierarchy`, :attr:`~music21.base.Music21Object.duration`, :attr:`~music21.base.Music21Object.measureNumber`, :attr:`~music21.base.Music21Object.offset`, :attr:`~music21.base.Music21Object.priority`

        Properties inherited from :class:`~music21.base.JSONSerializer`: :attr:`~music21.base.JSONSerializer.json`

    **RepeatExpressionCommand** **methods**

        Methods inherited from :class:`~music21.repeat.RepeatExpression`: :meth:`~music21.repeat.RepeatExpression.applyTextFormatting`, :meth:`~music21.repeat.RepeatExpression.getText`, :meth:`~music21.repeat.RepeatExpression.getTextExpression`, :meth:`~music21.repeat.RepeatExpression.isValidText`, :meth:`~music21.repeat.RepeatExpression.setText`, :meth:`~music21.repeat.RepeatExpression.setTextExpression`

        Methods inherited from :class:`~music21.base.Music21Object`: :meth:`~music21.base.Music21Object.searchParentByAttr`, :meth:`~music21.base.Music21Object.getContextAttr`, :meth:`~music21.base.Music21Object.setContextAttr`, :meth:`~music21.base.Music21Object.addContext`, :meth:`~music21.base.Music21Object.addLocation`, :meth:`~music21.base.Music21Object.addLocationAndActiveSite`, :meth:`~music21.base.Music21Object.freezeIds`, :meth:`~music21.base.Music21Object.getAllContextsByClass`, :meth:`~music21.base.Music21Object.getCommonSiteIds`, :meth:`~music21.base.Music21Object.getCommonSites`, :meth:`~music21.base.Music21Object.getContextByClass`, :meth:`~music21.base.Music21Object.getOffsetBySite`, :meth:`~music21.base.Music21Object.getSiteIds`, :meth:`~music21.base.Music21Object.getSites`, :meth:`~music21.base.Music21Object.getSpannerSites`, :meth:`~music21.base.Music21Object.hasContext`, :meth:`~music21.base.Music21Object.hasSpannerSite`, :meth:`~music21.base.Music21Object.isClassOrSubclass`, :meth:`~music21.base.Music21Object.mergeAttributes`, :meth:`~music21.base.Music21Object.purgeLocations`, :meth:`~music21.base.Music21Object.removeLocationBySite`, :meth:`~music21.base.Music21Object.removeLocationBySiteId`, :meth:`~music21.base.Music21Object.removeNonContainedLocations`, :meth:`~music21.base.Music21Object.setOffsetBySite`, :meth:`~music21.base.Music21Object.show`, :meth:`~music21.base.Music21Object.splitAtDurations`, :meth:`~music21.base.Music21Object.splitAtQuarterLength`, :meth:`~music21.base.Music21Object.splitByQuarterLengths`, :meth:`~music21.base.Music21Object.unfreezeIds`, :meth:`~music21.base.Music21Object.unwrapWeakref`, :meth:`~music21.base.Music21Object.wrapWeakref`, :meth:`~music21.base.Music21Object.write`

        Methods inherited from :class:`~music21.base.JSONSerializer`: :meth:`~music21.base.JSONSerializer.jsonAttributes`, :meth:`~music21.base.JSONSerializer.jsonComponentFactory`, :meth:`~music21.base.JSONSerializer.jsonPrint`, :meth:`~music21.base.JSONSerializer.jsonRead`, :meth:`~music21.base.JSONSerializer.jsonWrite`


RepeatExpressionMarker
----------------------

Inherits from: :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: RepeatExpressionMarker()

    Some repeat expressions are markers of positions in the score; these classes model those makers, such as Coda, Segno, and Fine. 


RepeatMark
----------



.. class:: RepeatMark()

    Base class of all repeat objects, including RepeatExpression objects and Repeat (Barline) objects. This object is used to for multiple-inheritance of such objects and to filter by class. 


Segno
-----

Inherits from: :class:`~music21.repeat.RepeatExpressionMarker`, :class:`~music21.repeat.RepeatExpression`, :class:`~music21.repeat.RepeatMark`, :class:`~music21.expressions.Expression`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Segno()

    The fine word as placed in a score. 

    >>> from music21 import *
    >>> rm = repeat.Segno()


