.. _moduleBase:

music21.base
============

.. WARNING: DO NOT EDIT THIS FILE:
   AUTOMATICALLY GENERATED.
   PLEASE EDIT THE .py FILE DIRECTLY.

.. automodule:: music21.base

Music21Object
-------------

.. autoclass:: music21.base.Music21Object

.. rubric:: :class:`~music21.base.Music21Object` bases

- :class:`~music21.prebase.ProtoM21Object`

.. rubric:: :class:`~music21.base.Music21Object` read-only properties

.. autoattribute:: music21.base.Music21Object.beat

.. autoattribute:: music21.base.Music21Object.beatDuration

.. autoattribute:: music21.base.Music21Object.beatStr

.. autoattribute:: music21.base.Music21Object.beatStrength

.. autoattribute:: music21.base.Music21Object.hasEditorialInformation

.. autoattribute:: music21.base.Music21Object.hasStyleInformation

.. autoattribute:: music21.base.Music21Object.measureNumber

Read-only properties inherited from :class:`~music21.prebase.ProtoM21Object`:

.. hlist::
   :columns: 3

   - :attr:`~music21.prebase.ProtoM21Object.classSet`
   - :attr:`~music21.prebase.ProtoM21Object.classes`

.. rubric:: :class:`~music21.base.Music21Object` read/write properties

.. autoattribute:: music21.base.Music21Object.activeSite

.. autoattribute:: music21.base.Music21Object.derivation

.. autoattribute:: music21.base.Music21Object.duration

.. autoattribute:: music21.base.Music21Object.editorial

.. autoattribute:: music21.base.Music21Object.id

.. autoattribute:: music21.base.Music21Object.offset

.. autoattribute:: music21.base.Music21Object.priority

.. autoattribute:: music21.base.Music21Object.quarterLength

.. autoattribute:: music21.base.Music21Object.seconds

.. autoattribute:: music21.base.Music21Object.style

.. rubric:: :class:`~music21.base.Music21Object` methods

.. automethod:: music21.base.Music21Object.__eq__

.. automethod:: music21.base.Music21Object.clearCache

.. automethod:: music21.base.Music21Object.containerHierarchy

.. automethod:: music21.base.Music21Object.contextSites

.. automethod:: music21.base.Music21Object.getAllContextsByClass

.. automethod:: music21.base.Music21Object.getContextByClass

.. automethod:: music21.base.Music21Object.getOffsetBySite

.. automethod:: music21.base.Music21Object.getOffsetInHierarchy

.. automethod:: music21.base.Music21Object.getSpannerSites

.. automethod:: music21.base.Music21Object.informSites

.. automethod:: music21.base.Music21Object.mergeAttributes

.. automethod:: music21.base.Music21Object.next

.. automethod:: music21.base.Music21Object.previous

.. automethod:: music21.base.Music21Object.purgeLocations

.. automethod:: music21.base.Music21Object.purgeOrphans

.. automethod:: music21.base.Music21Object.setOffsetBySite

.. automethod:: music21.base.Music21Object.show

.. automethod:: music21.base.Music21Object.sortTuple

.. automethod:: music21.base.Music21Object.splitAtDurations

.. automethod:: music21.base.Music21Object.splitAtQuarterLength

.. automethod:: music21.base.Music21Object.splitByQuarterLengths

.. automethod:: music21.base.Music21Object.write

Methods inherited from :class:`~music21.prebase.ProtoM21Object`:

.. hlist::
   :columns: 3

   - :meth:`~music21.prebase.ProtoM21Object.isClassOrSubclass`

.. rubric:: :class:`~music21.base.Music21Object` instance variables

.. attribute:: Music21Object.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
	
	>>> m21o = base.Music21Object()
	>>> m21o.classSortOrder
	20
	
	>>> tc = clef.TrebleClef()
	>>> tc.classSortOrder
	0
	
	>>> ks = key.KeySignature(3)
	>>> ks.classSortOrder
	2
	
	
	New classes can define their own default classSortOrder
	
	>>> class ExampleClass(base.Music21Object):
	...     classSortOrder = 5
	...
	>>> ec1 = ExampleClass()
	>>> ec1.classSortOrder
	5
	

.. attribute:: Music21Object.groups

	An instance of a :class:`~music21.base.Groups`
	object which describes
	arbitrary `Groups` that this object belongs to.

.. attribute:: Music21Object.isStream

	Boolean value for quickly identifying
	:class:`~music21.stream.Stream` objects (False by default).

.. attribute:: Music21Object.sites

	a :class:`~music21.sites.Sites` object that stores
	references to Streams that hold this object.

ElementWrapper
--------------

.. autoclass:: music21.base.ElementWrapper

.. rubric:: :class:`~music21.base.ElementWrapper` bases

- :class:`~music21.base.Music21Object`
- :class:`~music21.prebase.ProtoM21Object`

.. rubric:: :class:`~music21.base.ElementWrapper` read-only properties

Read-only properties inherited from :class:`~music21.base.Music21Object`:

.. hlist::
   :columns: 3

   - :attr:`~music21.base.Music21Object.beat`
   - :attr:`~music21.base.Music21Object.beatDuration`
   - :attr:`~music21.base.Music21Object.beatStr`
   - :attr:`~music21.base.Music21Object.beatStrength`
   - :attr:`~music21.base.Music21Object.hasEditorialInformation`
   - :attr:`~music21.base.Music21Object.hasStyleInformation`
   - :attr:`~music21.base.Music21Object.measureNumber`

Read-only properties inherited from :class:`~music21.prebase.ProtoM21Object`:

.. hlist::
   :columns: 3

   - :attr:`~music21.prebase.ProtoM21Object.classSet`
   - :attr:`~music21.prebase.ProtoM21Object.classes`

.. rubric:: :class:`~music21.base.ElementWrapper` read/write properties

Read/write properties inherited from :class:`~music21.base.Music21Object`:

.. hlist::
   :columns: 3

   - :attr:`~music21.base.Music21Object.activeSite`
   - :attr:`~music21.base.Music21Object.derivation`
   - :attr:`~music21.base.Music21Object.duration`
   - :attr:`~music21.base.Music21Object.editorial`
   - :attr:`~music21.base.Music21Object.id`
   - :attr:`~music21.base.Music21Object.offset`
   - :attr:`~music21.base.Music21Object.priority`
   - :attr:`~music21.base.Music21Object.quarterLength`
   - :attr:`~music21.base.Music21Object.seconds`
   - :attr:`~music21.base.Music21Object.style`

.. rubric:: :class:`~music21.base.ElementWrapper` methods

Methods inherited from :class:`~music21.base.Music21Object`:

.. hlist::
   :columns: 3

   - :meth:`~music21.base.Music21Object.__eq__`
   - :meth:`~music21.base.Music21Object.clearCache`
   - :meth:`~music21.base.Music21Object.containerHierarchy`
   - :meth:`~music21.base.Music21Object.contextSites`
   - :meth:`~music21.base.Music21Object.getAllContextsByClass`
   - :meth:`~music21.base.Music21Object.getContextByClass`
   - :meth:`~music21.base.Music21Object.getOffsetBySite`
   - :meth:`~music21.base.Music21Object.getOffsetInHierarchy`
   - :meth:`~music21.base.Music21Object.getSpannerSites`
   - :meth:`~music21.base.Music21Object.informSites`
   - :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.setOffsetBySite`
   - :meth:`~music21.base.Music21Object.show`
   - :meth:`~music21.base.Music21Object.sortTuple`
   - :meth:`~music21.base.Music21Object.splitAtDurations`
   - :meth:`~music21.base.Music21Object.splitAtQuarterLength`
   - :meth:`~music21.base.Music21Object.splitByQuarterLengths`
   - :meth:`~music21.base.Music21Object.write`

Methods inherited from :class:`~music21.prebase.ProtoM21Object`:

.. hlist::
   :columns: 3

   - :meth:`~music21.prebase.ProtoM21Object.isClassOrSubclass`

.. rubric:: :class:`~music21.base.ElementWrapper` instance variables

.. attribute:: ElementWrapper.obj

	
	The object this wrapper wraps. It should not be a Music21Object, since
	if so, you might as well put that directly into the Stream itself.

Instance variables inherited from :class:`~music21.base.Music21Object`:

.. hlist::
   :columns: 3

   - :attr:`~music21.base.Music21Object.classSortOrder`
   - :attr:`~music21.base.Music21Object.groups`
   - :attr:`~music21.base.Music21Object.isStream`
   - :attr:`~music21.base.Music21Object.sites`

ContextSortTuple
----------------

.. autoclass:: music21.base.ContextSortTuple

ContextTuple
------------

.. autoclass:: music21.base.ContextTuple

Groups
------

.. autoclass:: music21.base.Groups

.. rubric:: :class:`~music21.base.Groups` methods

.. automethod:: music21.base.Groups.__eq__

.. automethod:: music21.base.Groups.append