.. _moduleInstrument:

music21.instrument
==================

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

.. module:: music21.instrument


This module represents instruments through objects that contain general information
such as Metadata for instrument names, classifications, transpositions and default
MIDI program numbers.  It also contains information specific to each instrument
or instrument family, such as string pitches, etc.  Information about instrumental
ensembles is also included here though it may later be separated out into its own
ensemble.py module.




.. function:: ensembleNameBySize(number)


    return the name of a generic ensemble with "number" players:



    >>> from music21 import *
    >>> instrument.ensembleNameBySize(4)
    'quartet'
    >>> instrument.ensembleNameBySize(1)
    'solo'
    >>> instrument.ensembleNameBySize(83)
    'treoctogetet'



.. function:: fromString(instrumentString)


    Given a string with instrument content (from an orchestral score
    for example), attempts to return an appropriate
    :class:`~music21.instrument.Instrument`.



    >>> from music21 import instrument
    >>> t1 = instrument.fromString("Clarinet 2 in A")
    >>> t1
    <music21.instrument.Instrument Clarinet>
    >>> t1.transposition
    <music21.interval.Interval m-3>
    ⁠ 
    >>> t2 = instrument.fromString("Clarinetto 3")
    >>> t2
    <music21.instrument.Instrument Clarinet>



    >>> t3 = instrument.fromString("Flauto 2")
    >>> t3
    <music21.instrument.Instrument Flute>


    Excess information is ignored, and the useful information can be extracted
    correctly as long as it's sequential.




    >>> t4 = instrument.fromString("I <3 music saxofono tenor go beavers")
    >>> t4
    <music21.instrument.Instrument Tenor Saxophone>




.. function:: instrumentFromMidiProgram(number)


    return the instrument with "number" as its assigned midi program:



    >>> from music21 import *
    >>> instrument.instrumentFromMidiProgram(0)
    <music21.instrument.Instrument Piano>
    >>> instrument.instrumentFromMidiProgram(21)
    <music21.instrument.Instrument Accordion>
    >>> instrument.instrumentFromMidiProgram(500)
    Traceback (most recent call last):
        ...
    InstrumentException: No instrument found with given midi program





.. function:: partitionByInstrument(streamObj)

    Given a single Stream, or a Score or similar multi-part structure, partition into a Part for each unique Instrument, joining events possibly from different parts.



Instrument
----------

Inherits from: :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Instrument()


    Base class for all musical instruments.  Designed
    for subclassing, though usually a more specific
    instrument class (such as StringInstrument) would
    be better to subclass.



    **Instrument** **attributes**

        .. attribute:: classSortOrder

            Property which returns an number (int or otherwise)
            depending on the class of the Music21Object that
            represents a priority for an object based on its class alone --
            used as a tie for stream sorting in case two objects have the
            same offset and priority.  Lower numbers are sorted to the left
            of higher numbers.  For instance, Clef, KeySignature, TimeSignature
            all come (in that order) before Note.

            All undefined classes have classSortOrder of 20 -- same as note.Note



            >>> from music21 import *
            >>> tc = clef.TrebleClef()
            >>> tc.classSortOrder
            0
            >>> ks = key.KeySignature(3)
            >>> ks.classSortOrder
            1


            New classes can define their own default classSortOrder



            >>> class ExampleClass(base.Music21Object):
            ...     classSortOrderDefault = 5
            ...
            >>> ec1 = ExampleClass()
            >>> ec1.classSortOrder
            5



        Attributes without Documentation: `instrumentName`, `midiChannel`, `lowestNote`, `instrumentId`, `partId`, `instrumentAbbreviation`, `partAbbreviation`, `partName`, `highestNote`, `midiProgram`, `transposition`

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

    **Instrument** **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.isGrace`, :attr:`~music21.base.Music21Object.measureNumber`, :attr:`~music21.base.Music21Object.offset`, :attr:`~music21.base.Music21Object.priority`, :attr:`~music21.base.Music21Object.seconds`

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

    **Instrument** **methods**

        .. method:: autoAssignMidiChannel(usedChannels=[])


            Assign an unused midi channel given a list of
            used channels.

            assigns the number to self.midiChannel and returns
            it as an int.

            Note that midi channel 10 is special, and
            thus is skipped.

            Currently only 16 channels are used.



            >>> from music21 import *
            >>> used = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11]
            >>> i = instrument.Violin()
            >>> i.autoAssignMidiChannel(used)
            12
            >>> i.midiChannel
            12




        .. method:: bestName()

            Find a viable name, looking first at instrument, then part, then
            abbreviations.



        .. method:: instrumentIdRandomize()

            Force a unique id by using an MD5



        .. method:: partIdRandomize()

            Force a unique id by using an MD5



        Methods inherited from :class:`~music21.base.Music21Object`: :meth:`~music21.base.Music21Object.searchActiveSiteByAttr`, :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.hasSite`, :meth:`~music21.base.Music21Object.hasSpannerSite`, :meth:`~music21.base.Music21Object.hasVariantSite`, :meth:`~music21.base.Music21Object.isClassOrSubclass`, :meth:`~music21.base.Music21Object.mergeAttributes`, :meth:`~music21.base.Music21Object.next`, :meth:`~music21.base.Music21Object.previous`, :meth:`~music21.base.Music21Object.purgeLocations`, :meth:`~music21.base.Music21Object.purgeOrphans`, :meth:`~music21.base.Music21Object.purgeUndeclaredIds`, :meth:`~music21.base.Music21Object.removeLocationBySite`, :meth:`~music21.base.Music21Object.removeLocationBySiteId`, :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`


Accordion
---------

Inherits from: :class:`~music21.instrument.Organ`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Accordion()



AcousticBass
------------

Inherits from: :class:`~music21.instrument.Guitar`, :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: AcousticBass()



AcousticGuitar
--------------

Inherits from: :class:`~music21.instrument.Guitar`, :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: AcousticGuitar()



Agogo
-----

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Agogo()



Alto
----

Inherits from: :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Alto()



AltoSaxophone
-------------

Inherits from: :class:`~music21.instrument.Saxophone`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: AltoSaxophone()



Bagpipes
--------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Bagpipes()



Banjo
-----

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Banjo()



Baritone
--------

Inherits from: :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Baritone()



BaritoneSaxophone
-----------------

Inherits from: :class:`~music21.instrument.Saxophone`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: BaritoneSaxophone()



Bass
----

Inherits from: :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Bass()



BassClarinet
------------

Inherits from: :class:`~music21.instrument.Clarinet`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: BassClarinet()




    >>> from music21 import *
    >>> bcl = instrument.BassClarinet()
    >>> bcl.instrumentName
    'Bass clarinet'
    >>> bcl.midiProgram
    71
    >>> 'WoodwindInstrument' in bcl.classes
    True




BassDrum
--------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: BassDrum()



Bassoon
-------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Bassoon()



BongoDrums
----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: BongoDrums()



BrassInstrument
---------------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: BrassInstrument()



Castanets
---------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Castanets()



Celesta
-------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Celesta()



Clarinet
--------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Clarinet()



Clavichord
----------

Inherits from: :class:`~music21.instrument.KeyboardInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Clavichord()



CongaDrum
---------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: CongaDrum()



Contrabass
----------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Contrabass()


    For the Contrabass, the stringPitches attribute refers to the sounding pitches
    of each string; whereas the lowestNote attribute refers to the lowest written
    note





Cowbells
--------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Cowbells()



CrashCymbals
------------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: CrashCymbals()



Dulcimer
--------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Dulcimer()



ElectricBass
------------

Inherits from: :class:`~music21.instrument.Guitar`, :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: ElectricBass()



ElectricGuitar
--------------

Inherits from: :class:`~music21.instrument.Guitar`, :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: ElectricGuitar()



ElectricOrgan
-------------

Inherits from: :class:`~music21.instrument.Organ`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: ElectricOrgan()



EnglishHorn
-----------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: EnglishHorn()



FingerCymbals
-------------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: FingerCymbals()



Flute
-----

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Flute()



FretlessBass
------------

Inherits from: :class:`~music21.instrument.Guitar`, :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: FretlessBass()



Glockenspiel
------------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Glockenspiel()



Gong
----

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Gong()



Guitar
------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Guitar()



Handbells
---------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Handbells()



Harmonica
---------

Inherits from: :class:`~music21.instrument.Organ`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Harmonica()



Harp
----

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Harp()



Harpsichord
-----------

Inherits from: :class:`~music21.instrument.KeyboardInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Harpsichord()



HiHatCymbal
-----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: HiHatCymbal()



Horn
----

Inherits from: :class:`~music21.instrument.BrassInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Horn()




    >>> from music21 import *
    >>> hn = instrument.Horn()
    >>> hn.instrumentName
    'Horn'
    >>> hn.midiProgram
    60
    >>> 'BrassInstrument' in hn.classes
    True




Kalimba
-------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Kalimba()



KeyboardInstrument
------------------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: KeyboardInstrument()



Koto
----

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Koto()



Mandolin
--------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Mandolin()



Maracas
-------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Maracas()



Marimba
-------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Marimba()



MezzoSoprano
------------

Inherits from: :class:`~music21.instrument.Soprano`, :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: MezzoSoprano()



Oboe
----

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Oboe()



Ocarina
-------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Ocarina()



Organ
-----

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Organ()



PanFlute
--------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: PanFlute()



Percussion
----------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Percussion()



Piano
-----

Inherits from: :class:`~music21.instrument.KeyboardInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Piano()




    >>> from music21 import *
    >>> p = instrument.Piano()
    >>> p.instrumentName
    'Piano'
    >>> p.midiProgram
    0



    **Piano** **attributes**

        Attributes without Documentation: `names`

        Attributes inherited from :class:`~music21.instrument.Instrument`: :attr:`~music21.instrument.Instrument.classSortOrder`, :attr:`~music21.instrument.Instrument.instrumentName`, :attr:`~music21.instrument.Instrument.midiChannel`, :attr:`~music21.instrument.Instrument.lowestNote`, :attr:`~music21.instrument.Instrument.instrumentId`, :attr:`~music21.instrument.Instrument.partId`, :attr:`~music21.instrument.Instrument.instrumentAbbreviation`, :attr:`~music21.instrument.Instrument.partAbbreviation`, :attr:`~music21.instrument.Instrument.partName`, :attr:`~music21.instrument.Instrument.highestNote`, :attr:`~music21.instrument.Instrument.midiProgram`, :attr:`~music21.instrument.Instrument.transposition`

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

    **Piano** **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.isGrace`, :attr:`~music21.base.Music21Object.measureNumber`, :attr:`~music21.base.Music21Object.offset`, :attr:`~music21.base.Music21Object.priority`, :attr:`~music21.base.Music21Object.seconds`

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

    **Piano** **methods**

        Methods inherited from :class:`~music21.instrument.Instrument`: :meth:`~music21.instrument.Instrument.autoAssignMidiChannel`, :meth:`~music21.instrument.Instrument.bestName`, :meth:`~music21.instrument.Instrument.instrumentIdRandomize`, :meth:`~music21.instrument.Instrument.partIdRandomize`

        Methods inherited from :class:`~music21.base.Music21Object`: :meth:`~music21.base.Music21Object.searchActiveSiteByAttr`, :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.hasSite`, :meth:`~music21.base.Music21Object.hasSpannerSite`, :meth:`~music21.base.Music21Object.hasVariantSite`, :meth:`~music21.base.Music21Object.isClassOrSubclass`, :meth:`~music21.base.Music21Object.mergeAttributes`, :meth:`~music21.base.Music21Object.next`, :meth:`~music21.base.Music21Object.previous`, :meth:`~music21.base.Music21Object.purgeLocations`, :meth:`~music21.base.Music21Object.purgeOrphans`, :meth:`~music21.base.Music21Object.purgeUndeclaredIds`, :meth:`~music21.base.Music21Object.removeLocationBySite`, :meth:`~music21.base.Music21Object.removeLocationBySiteId`, :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`


Piccolo
-------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Piccolo()



PipeOrgan
---------

Inherits from: :class:`~music21.instrument.Organ`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: PipeOrgan()



PitchedPercussion
-----------------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: PitchedPercussion()



Ratchet
-------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Ratchet()



Recorder
--------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Recorder()



ReedOrgan
---------

Inherits from: :class:`~music21.instrument.Organ`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: ReedOrgan()



SandpaperBlocks
---------------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SandpaperBlocks()



Saxophone
---------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Saxophone()



Shakuhachi
----------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Shakuhachi()



Shamisen
--------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Shamisen()



Shehnai
-------

Inherits from: :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Shehnai()



Siren
-----

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Siren()



Sitar
-----

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Sitar()



SizzleCymbal
------------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SizzleCymbal()



SleighBells
-----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SleighBells()



SnareDrum
---------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SnareDrum()



Soprano
-------

Inherits from: :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Soprano()



SopranoSaxophone
----------------

Inherits from: :class:`~music21.instrument.Saxophone`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SopranoSaxophone()



SteelDrum
---------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SteelDrum()



StringInstrument
----------------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: StringInstrument()


    **StringInstrument** **attributes**

        Attributes inherited from :class:`~music21.instrument.Instrument`: :attr:`~music21.instrument.Instrument.classSortOrder`, :attr:`~music21.instrument.Instrument.instrumentName`, :attr:`~music21.instrument.Instrument.midiChannel`, :attr:`~music21.instrument.Instrument.lowestNote`, :attr:`~music21.instrument.Instrument.instrumentId`, :attr:`~music21.instrument.Instrument.partId`, :attr:`~music21.instrument.Instrument.instrumentAbbreviation`, :attr:`~music21.instrument.Instrument.partAbbreviation`, :attr:`~music21.instrument.Instrument.partName`, :attr:`~music21.instrument.Instrument.highestNote`, :attr:`~music21.instrument.Instrument.midiProgram`, :attr:`~music21.instrument.Instrument.transposition`

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

    **StringInstrument** **properties**

        .. attribute:: stringPitches


            stringPitches is a property that stores a list of Pitches (or pitch names,
            such as "C4") that represent the pitch of the open strings from lowest to
            highest.[*]




            >>> from music21 import *
            >>> vln1 = instrument.Violin()
            >>> vln1.stringPitches
            [G3, D4, A4, E5]


            instrument.stringPitches are full pitch objects, not just names:




            >>> [x.octave for x in vln1.stringPitches]
            [3, 4, 4, 5]


            Scordatura for Scelsi's violin concerto *Anahit*.
            (N.B. that string to pitch conversion is happening automatically)




            >>> vln1.stringPitches = ["G3","G4","B4","D4"]
            >>> vln1.stringPitches
            [G3, G4, B4, D4]


            (`[*]In some tuning methods such as reentrant tuning on the ukulele,
            lute, or five-string banjo the order might not strictly be from lowest to
            highest.  The same would hold true for certain violin scordatura pieces, such
            as some of Biber's *Mystery Sonatas*`)




        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.isGrace`, :attr:`~music21.base.Music21Object.measureNumber`, :attr:`~music21.base.Music21Object.offset`, :attr:`~music21.base.Music21Object.priority`, :attr:`~music21.base.Music21Object.seconds`

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

    **StringInstrument** **methods**

        Methods inherited from :class:`~music21.instrument.Instrument`: :meth:`~music21.instrument.Instrument.autoAssignMidiChannel`, :meth:`~music21.instrument.Instrument.bestName`, :meth:`~music21.instrument.Instrument.instrumentIdRandomize`, :meth:`~music21.instrument.Instrument.partIdRandomize`

        Methods inherited from :class:`~music21.base.Music21Object`: :meth:`~music21.base.Music21Object.searchActiveSiteByAttr`, :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.hasSite`, :meth:`~music21.base.Music21Object.hasSpannerSite`, :meth:`~music21.base.Music21Object.hasVariantSite`, :meth:`~music21.base.Music21Object.isClassOrSubclass`, :meth:`~music21.base.Music21Object.mergeAttributes`, :meth:`~music21.base.Music21Object.next`, :meth:`~music21.base.Music21Object.previous`, :meth:`~music21.base.Music21Object.purgeLocations`, :meth:`~music21.base.Music21Object.purgeOrphans`, :meth:`~music21.base.Music21Object.purgeUndeclaredIds`, :meth:`~music21.base.Music21Object.removeLocationBySite`, :meth:`~music21.base.Music21Object.removeLocationBySiteId`, :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`


SuspendedCymbal
---------------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: SuspendedCymbal()



Taiko
-----

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Taiko()



TamTam
------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TamTam()



Tambourine
----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Tambourine()



TempleBlock
-----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TempleBlock()



Tenor
-----

Inherits from: :class:`~music21.instrument.Vocalist`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Tenor()



TenorDrum
---------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TenorDrum()



TenorSaxophone
--------------

Inherits from: :class:`~music21.instrument.Saxophone`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TenorSaxophone()



Timbales
--------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Timbales()



Timpani
-------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Timpani()



TomTom
------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TomTom()



Triangle
--------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Triangle()



Trombone
--------

Inherits from: :class:`~music21.instrument.BrassInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Trombone()



Trumpet
-------

Inherits from: :class:`~music21.instrument.BrassInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Trumpet()



Tuba
----

Inherits from: :class:`~music21.instrument.BrassInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Tuba()



TubularBells
------------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: TubularBells()



Ukulele
-------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Ukulele()



Viola
-----

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Viola()



Violin
------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Violin()



Violoncello
-----------

Inherits from: :class:`~music21.instrument.StringInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Violoncello()



Vocalist
--------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Vocalist()


    n.b. called Vocalist to not be confused with stream.Voice




Whip
----

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Whip()



Whistle
-------

Inherits from: :class:`~music21.instrument.Flute`, :class:`~music21.instrument.WoodwindInstrument`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Whistle()



WindMachine
-----------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: WindMachine()



Woodblock
---------

Inherits from: :class:`~music21.instrument.Percussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Woodblock()



WoodwindInstrument
------------------

Inherits from: :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: WoodwindInstrument()



Xylophone
---------

Inherits from: :class:`~music21.instrument.PitchedPercussion`, :class:`~music21.instrument.Instrument`, :class:`~music21.base.Music21Object`, :class:`~music21.base.JSONSerializer`

.. class:: Xylophone()



