.. _moduleFiguredBass.rules:

music21.figuredBass.rules
=========================

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

.. module:: music21.figuredBass.rules



Rules
-----



.. class:: Rules()



    A Rules object is provided as an input to a :class:`~music21.figuredBass.segment.Segment`,
    and controls the application of methods designed to filter out undesired possibilities in
    a single Segment or undesired progressions between two consecutive Segments.


    The rules are categorized in an identical manner to methods in :mod:`~music21.figuredBass.possibility`:


    1) Single Possibility Rules. These rules apply to any possibility within a single Segment (possibA), and
    are applied in finding correct possibilities for a Segment in :meth:`~music21.figuredBass.segment.Segment.allCorrectSinglePossibilities`.


    2) Consecutive Possibility Rules. These rules apply between any correct single possibility in segmentA
    (possibA) and any correct single possibility in segmentB (possibB), segmentB coming directly after segmentA.
    They are applied in finding correct (possibA, possibB) pairs between two Segments in :meth:`~music21.figuredBass.segment.Segment.allCorrectConsecutivePossibilities`.


    3) Special Resolution Rules. These rules apply to Segments whose :attr:`~music21.figuredBass.segment.Segment.segmentChord` is an
    augmented sixth, dominant seventh, or diminished seventh chord, and are applied as necessary in
    :meth:`~music21.figuredBass.segment.Segment.allCorrectConsecutivePossibilities`.




    >>> from music21.figuredBass import rules
    >>> fbRules = rules.Rules()
    >>> fbRules.forbidParallelFifths = False
    >>> fbRules.upperPartsMaxSemitoneSeparation = None



    **Rules** **attributes**

        .. attribute:: forbidIncompletePossibilities

            True by default. If True, :meth:`~music21.figuredBass.possibility.isIncomplete` is applied to all possibA, and all those possibilities for which the method returns False are retained.


        .. attribute:: forbidVoiceCrossing

            True by default. If True, :meth:`~music21.figuredBass.possibility.voiceCrossing` is applied to all possibA, and all those possibilities for which the method returns False are retained.


        .. attribute:: upperPartsMaxSemitoneSeparation

            12 by default. A number, in semitones, representing the maxSemitoneSeparation argument provided to :meth:`~music21.figuredBass.possibility.upperPartsWithinLimit`.
            Method is applied to all possibA, and all those possibilities for which the method returns True are retained.


        .. attribute:: forbidHiddenFifths

            True by default. If True, :meth:`~music21.figuredBass.possibility.hiddenFifth` is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns False are retained.


        .. attribute:: forbidHiddenOctaves

            True by default. If True, :meth:`~music21.figuredBass.possibility.hiddenOctave` is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns False are retained.


        .. attribute:: forbidParallelFifths

            True by default. If True, :meth:`~music21.figuredBass.possibility.parallelFifths` is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns False are retained.


        .. attribute:: forbidParallelOctaves

            True by default. If True, :meth:`~music21.figuredBass.possibility.parallelOctaves` is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns False are retained.


        .. attribute:: forbidVoiceOverlap

            True by default. If True, :meth:`~music21.figuredBass.possibility.voiceOverlap` is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns False are retained.


        .. attribute:: partMovementLimits

            [] (empty list) by default. Contains (partNumber, maxSeparation) pairs provided as arguments to :meth:`~music21.figuredBass.possibility.partMovementsWithinLimits`.
            Method is applied to all (possibA, possibB) pairs, and all those pairs for which the method returns True are retained.


        .. attribute:: applyConsecutivePossibRulesToResolution

            False by default. If True, consecutive possibility rules are applied between (specialPossib, resPossib) pairs.


        .. attribute:: applySinglePossibRulesToResolution

            False by default. If True, single possibility rules are applied to resolution possibilities.


        .. attribute:: doubledRootInDim7

            False by default. If True, Diminished seventh resolutions to the tonic will contain a doubled *root*, as opposed to a doubled *third*.
            Rule is ignored (determined in context) if :attr:`~music21.figuredBass.segment.Segment.segmentChord` is in first inversion.


        .. attribute:: resolveAugmentedSixthProperly

            True by default. If True, Segments whose :attr:`~music21.figuredBass.segment.Segment.segmentChord` spells out an augmented sixth chord are resolved properly by using :meth:`~music21.figuredBass.segment.Segment.resolveAugmentedSixthSegment`.


        .. attribute:: resolveDiminishedSeventhProperly

            True by default. If True, Segments whose :attr:`~music21.figuredBass.segment.Segment.segmentChord` spells out a fully-diminished seventh chord are resolved properly by using :meth:`~music21.figuredBass.segment.Segment.resolveDiminishedSeventhSegment`.


        .. attribute:: resolveDominantSeventhProperly

            True by default. If True, Segments whose :attr:`~music21.figuredBass.segment.Segment.segmentChord` spells out a dominant seventh chord are resolved properly by using :meth:`~music21.figuredBass.segment.Segment.resolveDominantSeventhSegment`.


        .. attribute:: restrictDoublingsInItalianA6Resolution

            True by default. If True, then doublings in the It+6 chord are limited to the tonic, or fifth. Setting this to False allows doubling of the root or third, most likely
            through parallel unisons if :attr:`~music21.figuredBass.rules.Rules.forbidParallelOctaves` is set to True.



