.. _moduleFeatures.native:

music21.features.native
=======================

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

.. module:: music21.features.native

Original music21 feature extractors.




ChordBassMotionFeature
----------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: ChordBassMotionFeature(dataOrStream=None, *arguments, **keywords)


    A twelve element feature that reports the fraction
    of all chord motion of music21.harmony.Harmony objects
    that move up by i-half-steps. (a half-step motion down would
    be stored in i = 11).  i = 0 is always 0.0 since consecutive
    chords on the same pitch are ignored (unless there are 0 or 1 harmonies, in which case it is 1)

    Sample test on the beatles' "here comes the sun"



    >>> from music21 import *
    >>> s = converter.parse('http://wikifonia.org/node/8859') # here comes the sun
    >>> fe = features.native.ChordBassMotionFeature(s)
    >>> fe.extract().vector
    [0.0, 0.05..., 0.14..., 0.03..., 0.06..., 0.3..., 0.008..., 0.303..., 0.0, 0.0, 0.07..., 0.008...]





    **ChordBassMotionFeature** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **ChordBassMotionFeature** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


ComposerPopularity
------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: ComposerPopularity(dataOrStream=None, *arguments, **keywords)


    composer's popularity today, as measured by the number of
    Google search results (log-10)



    >>> from music21 import *
    >>> s = corpus.parse('mozart/k155', 2)
    >>> fe = features.native.ComposerPopularity(s)
    >>> fe.extract().vector >= 6
    True



    **ComposerPopularity** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **ComposerPopularity** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


DiminishedSeventhSimultaneityPrevalence
---------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: DiminishedSeventhSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Percentage of all simultaneities that are diminished seventh chords.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.DiminishedSeventhSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.0]



    **DiminishedSeventhSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **DiminishedSeventhSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


DiminishedTriadSimultaneityPrevalence
-------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: DiminishedTriadSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Percentage of all simultaneities that are diminished triads.



    >>> from music21 import *
    >>> s = corpus.parse('bwv66.6')
    >>> fe = features.native.DiminishedTriadSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.018867924528...]



    **DiminishedTriadSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **DiminishedTriadSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


DominantSeventhSimultaneityPrevalence
-------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: DominantSeventhSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Percentage of all simultaneities that are dominant seventh.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.DominantSeventhSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.0]



    **DominantSeventhSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **DominantSeventhSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


FirstBeatAttackPrevalence
-------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: FirstBeatAttackPrevalence(dataOrStream=None, *arguments, **keywords)




    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.FirstBeatAttackPrevalence(s)



    **FirstBeatAttackPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **FirstBeatAttackPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


IncorrectlySpelledTriadPrevalence
---------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: IncorrectlySpelledTriadPrevalence(dataOrStream=None, *arguments, **keywords)


    Percentage of all triads that are spelled incorrectly.

    example:

    Mozart k155 movement 2 has a single instance of an incorrectly spelled
    triad (m. 17, where the C# of an A-major chord has a lower neighbor B#
    thus temporarily creating an incorrectly spelled A-minor chord).

    We would expect highly chromatic music such as Reger or Wagner to have
    a higher percentage, or automatically rendered MIDI
    transcriptions (which don't distinguish between D# and Eb).

    (Aside to Mozart experts: shouldn't m. 18 beat 2 also be B#? seems a
    mistake in most editions... -- it doesn't alter this analysis though
    since the A and E in the bass are gone)



    >>> from music21 import *
    >>> s = corpus.parse('mozart/k155', 2)
    >>> fe = features.native.IncorrectlySpelledTriadPrevalence(s)
    >>> fe.extract().vector
    [0.007...]



    **IncorrectlySpelledTriadPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **IncorrectlySpelledTriadPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


LandiniCadence
--------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: LandiniCadence(dataOrStream=None, *arguments, **keywords)

    Return a bolean if one or more Parts end with a Landini-like cadential figure.



    >>> from music21 import *



    **LandiniCadence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **LandiniCadence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


LanguageFeature
---------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: LanguageFeature(dataOrStream=None, *arguments, **keywords)


    language of text as a number
    the number is the index of text.LanguageDetector.languageCodes + 1
    or 0 if there is no language.


    Detect that the language of "For unto us a child is born" is English.



    >>> from music21 import *
    >>> s = corpus.parse('handel/hwv56/movement1-13.md')
    >>> fe = features.native.LanguageFeature(s)
    >>> fe.extract().vector
    [1]



    **LanguageFeature** **attributes**

        .. attribute:: languageDetector


            Attempts to detect language on the basis of trigrams

            uses code from
            http://code.activestate.com/recipes/326576-language-detection-using-character-trigrams/
            unknown author.  No license given.

            See Trigram docs below...



        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **LanguageFeature** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MajorTriadSimultaneityPrevalence
--------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MajorTriadSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Percentage of all simultaneities that are major triads.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MajorTriadSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.1333333...]



    **MajorTriadSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MajorTriadSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MinorTriadSimultaneityPrevalence
--------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MinorTriadSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Percentage of all simultaneities that are minor triads.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MinorTriadSimultaneityPrevalence(s)
    >>> fe.extract().vector # same as major in this work
    [0.13333333...]



    **MinorTriadSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MinorTriadSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MostCommonNoteQuarterLength
---------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MostCommonNoteQuarterLength(dataOrStream=None, *arguments, **keywords)




    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MostCommonNoteQuarterLength(s)
    >>> fe.extract().vector
    [0.5]



    **MostCommonNoteQuarterLength** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MostCommonNoteQuarterLength** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MostCommonNoteQuarterLengthPrevalence
-------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MostCommonNoteQuarterLengthPrevalence(dataOrStream=None, *arguments, **keywords)




    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MostCommonNoteQuarterLengthPrevalence(s)
    >>> fe.extract().vector
    [0.533333...]



    **MostCommonNoteQuarterLengthPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MostCommonNoteQuarterLengthPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MostCommonPitchClassSetSimultaneityPrevalence
---------------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MostCommonPitchClassSetSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Fraction of all pitch class simultaneities that are the most common simultaneity.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MostCommonPitchClassSetSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.1333333333333...]



    **MostCommonPitchClassSetSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MostCommonPitchClassSetSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


MostCommonSetClassSimultaneityPrevalence
----------------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: MostCommonSetClassSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)

    Fraction of all set class simultaneities that are the most common simultaneity.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.MostCommonSetClassSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.43333333...]
    >>> s2 = corpus.parse('schoenberg/opus19', 6)
    >>> fe2 = features.native.MostCommonSetClassSimultaneityPrevalence(s2)
    >>> fe2.extract().vector
    [0.184...]



    **MostCommonSetClassSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **MostCommonSetClassSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


QualityFeature
--------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: QualityFeature(dataOrStream=None, *arguments, **keywords)


    Extends the jSymbolic QualityFeature to automatically find mode

    Set to 0 if the key signature indicates that
    a recording is major, set to 1 if it indicates
    that it is minor.  A Music21
    addition: if no key mode is found in the piece, analyze the piece to
    discover what mode it is most likely in.


    Example: Mozart k155, mvmt 2 (musicxml) is explicitly encoded as being in Major:




    >>> from music21 import *
    >>> mozart155mvmt2 = corpus.parse('mozart/k155', 2)
    >>> fe = features.native.QualityFeature(mozart155mvmt2)
    >>> f = fe.extract()
    >>> f.vector
    [0]


    now we will try it with the last movement of Schoenberg's opus 19 which has
    no mode explicitly encoded in the musicxml but which our analysis routines
    believe (having very little to go on) fits the profile of e-minor best.




    >>> schoenberg19mvmt6= corpus.parse('schoenberg/opus19', 6)
    >>> fe2 = features.native.QualityFeature(schoenberg19mvmt6)
    >>> f2 = fe2.extract()
    >>> f2.vector
    [1]




    **QualityFeature** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **QualityFeature** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


RangeOfNoteQuarterLengths
-------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: RangeOfNoteQuarterLengths(dataOrStream=None, *arguments, **keywords)

    Difference between the longest and shortest quarter lengths.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.RangeOfNoteQuarterLengths(s)
    >>> fe.extract().vector
    [3.75]



    **RangeOfNoteQuarterLengths** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **RangeOfNoteQuarterLengths** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


TonalCertainty
--------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: TonalCertainty(dataOrStream=None, *arguments, **keywords)




    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.TonalCertainty(s)
    >>> f = fe.extract()
    >>> f.vector
    [1.18093058...]




    **TonalCertainty** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **TonalCertainty** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


TriadSimultaneityPrevalence
---------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: TriadSimultaneityPrevalence(dataOrStream=None, *arguments, **keywords)


    Gives the proportion of all simultaneities which form triads (major,
    minor, diminished, or augmented)



    >>> from music21 import *
    >>> s = corpus.parse('bwv66.6')
    >>> fe = features.native.TriadSimultaneityPrevalence(s)
    >>> fe.extract().vector
    [0.71698...]
    >>> s2 = corpus.parse('schoenberg/opus19', 2)
    >>> fe2 = features.native.TriadSimultaneityPrevalence(s2)
    >>> fe2.extract().vector
    [0.022727...]



    **TriadSimultaneityPrevalence** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **TriadSimultaneityPrevalence** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


UniqueNoteQuarterLengths
------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: UniqueNoteQuarterLengths(dataOrStream=None, *arguments, **keywords)




    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.UniqueNoteQuarterLengths(s)
    >>> fe.extract().vector
    [7]



    **UniqueNoteQuarterLengths** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **UniqueNoteQuarterLengths** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


UniquePitchClassSetSimultaneities
---------------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: UniquePitchClassSetSimultaneities(dataOrStream=None, *arguments, **keywords)

    Number of unique pitch class simultaneities.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.UniquePitchClassSetSimultaneities(s)
    >>> fe.extract().vector
    [16]



    **UniquePitchClassSetSimultaneities** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **UniquePitchClassSetSimultaneities** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


UniqueSetClassSimultaneities
----------------------------

Inherits from: :class:`~music21.features.base.FeatureExtractor`

.. class:: UniqueSetClassSimultaneities(dataOrStream=None, *arguments, **keywords)

    Number of unique set class simultaneities.



    >>> from music21 import *
    >>> s = corpus.parse('hwv56/movement3-05.md')
    >>> fe = features.native.UniqueSetClassSimultaneities(s)
    >>> fe.extract().vector
    [5]



    **UniqueSetClassSimultaneities** **attributes**

        Attributes without Documentation: `id`

        Attributes inherited from :class:`~music21.features.base.FeatureExtractor`: :attr:`~music21.features.base.FeatureExtractor.normalize`, :attr:`~music21.features.base.FeatureExtractor.description`, :attr:`~music21.features.base.FeatureExtractor.stream`, :attr:`~music21.features.base.FeatureExtractor.discrete`, :attr:`~music21.features.base.FeatureExtractor.dimensions`, :attr:`~music21.features.base.FeatureExtractor.data`, :attr:`~music21.features.base.FeatureExtractor.isSequential`, :attr:`~music21.features.base.FeatureExtractor.name`

    **UniqueSetClassSimultaneities** **methods**

        Methods inherited from :class:`~music21.features.base.FeatureExtractor`: :meth:`~music21.features.base.FeatureExtractor.extract`, :meth:`~music21.features.base.FeatureExtractor.getAttributeLabels`, :meth:`~music21.features.base.FeatureExtractor.getBlankFeature`, :meth:`~music21.features.base.FeatureExtractor.setData`


