musicscore.part
- class musicscore.part.Part(id, name=None, abbreviation=None, *args, **kwargs)[source]
Bases:
MusicTree,QuantizeMixin,FinalizeMixin,XMLWrapperParent type:
ScoreChild type:
Measure- add_child(child: Measure) Measure[source]
Check and add child to list of children. Child’s parent is set to self.
- add_chord(chord: Chord, *, staff_number: int | None = None, voice_number: int | None = 1) None[source]
Adds a chord to the specified voice in current measure (see
get_current_measure()).If no current measure is set the first measure is selected.
If part has still no measures one measure is added.
If the specified voice in current measure is full chord is added to the voice with the same number in the next measure. If no next measure exists one measure is added
If a leftover chord remains after adding chord, it is added to voice’s
leftover_chordand is added to so many next measures as needed.
- Parameters:
chord –
Chordrequiredstaff_number – positive int, None. If None is set to 1.
voice_number – positive_int
- Returns:
None
- add_measure(time: Time | List | Tuple | None = None, number: int | None = None) Measure[source]
- finalize() None[source]
FinalizeMixinmethodfinalize can only be called once.
It calls finalize method of all children.
- get_beat(*args, **kwargs) Beat
MusicTreemethodThis method can be used for
ScoreandPart,MeasureandStaffandVoice- Parameters:
- Return type:
- get_beats() List[Beat]
MusicTreemethodThis method can be used for
ScoreandPart,Measure,StaffandVoice.- Returns:
a flat list of all beats.
- Return type:
List[
Beat]
- get_children_of_type(type) List[Tree]
Treemethod- Returns:
list of added children of type.
- Return type:
List[
Tree]
- get_chord(*args, **kwargs) Chord
MusicTreemethodThis method can be used for
ScoreandPart,Measure,Staff,VoiceandBeat- Parameters:
args – can be used instead of
kwargs. A mixture of args and kwargs is not allowed.kwargs –
part_number,measure_number,staff_number,voice_number,beat_number,chord_numberdepending on musicscore’s class. AStafffor example needsvoice_number,beat_numberandchord_numberwhile aScoreneeds all keyword arguments.
- Return type:
- get_chords() List[Chord]
MusicTreemethodThis method can be used for
ScoreandPart,MeasureandStaff,VoiceandBeat- Returns:
a flat list of all chords.
- Return type:
List[
Chord]
- get_coordinates_in_tree() str
Treemethod- Returns:
0 for
root. 1, 2, … for layer 1. Other layers: x.y.z…. Example: 3.2.2 => third child of secod child of second child of the root.- Return type:
str
>>> class TestTree(Tree): ... def _check_child_to_be_added(self, child): ... return True >>> root = TestTree() >>> root.get_coordinates_in_tree() '0' >>> child1 = root.add_child(TestTree()) >>> child2 = root.add_child(TestTree()) >>> grandchild1 = child2.add_child(TestTree()) >>> grandchild2 = child2.add_child(TestTree()) >>> child1.get_coordinates_in_tree() '1' >>> child2.get_coordinates_in_tree() '2' >>> grandchild1.get_coordinates_in_tree() '2.1' >>> grandchild2.get_coordinates_in_tree() '2.2'
- get_current_measure(staff_number: int | None = 1, voice_number: int = 1)[source]
Gets current measure for adding
Chordto a specificVoicestaff_number None is set to 1
- Parameters:
staff_number – positive int, None
voice_number – positive int
- get_indentation() str
Treemethod- Returns:
indentation according to
level(layer number). As default it is used for creating tabs intree_representation- Return type:
str
- get_layer(level: int, key: Callable | None = None) list
Treemethod- Parameters:
level – layer number where 0 is the
root.key – An optional callable for each node in the layer.
- Returns:
All nodes on this level. The leaves of branches which are shorter than the given level will be repeated on this and all following layers.
- Return type:
list
- get_leaves(key: Callable | None = None) list
Treemethod- Parameters:
key – An optional callable to be called on each leaf.
- Returns:
nested list of leaves or values of key(leaf) for each leaf
- Return type:
nested list of
Tree
- get_measure(*args, **kwargs) Measure
MusicTreemethodThis method can be used for
ScoreandPart- Parameters:
args – can be used instead of
kwargs. A mixture of args and kwargs is not allowed.kwargs –
part_number,measure_numberdepending on musicscore’s class.
- Return type:
- get_possible_subdivisions(beat_quarter_duration: QuarterDuration | None = None) List[int]
QuantizeMixinmethodThis method is used by
Beat’squantize_quarter_durations().Possible subdivisions dictionary can be set with
set_possible_subdivisions(). Keys in the subdivisions dictionary correspond to beat quarter durations (e.g. 1, 1/2 etc.) For example if get_possible_subdivisions()[1] == [3, 5, 8] a beat with a quarter duration of 1 can after quantization consists only of eighth triplets, quintuplets and 32ths. If this dictionary is not set orbeat_quarter_durationas key does not exist, the parent’s possible subdivisions dictionary will be checked.Scorehas a defaultPOSSIBLE_SUBDIVISIONSdictionary which will be used if no other musicscore node on the path from self to root has its own possible subdivisions dictionary withbeat_quarter_durationas a key. For setting possible subdivisions dictionary use alwaysset_possible_subdivisions().- Parameters:
beat_quarter_duration – Used as key in possible subdivisions dictionary. If
Noneand self is aBeatself.quarter_durationis used. IfNoneand self is not aBeatit is set to 1.- Returns:
A list of possible subdivisions of a
Beat. This is used by beat’squantize_quarter_durations()- Return type:
List[int]
- get_staff(*args, **kwargs) Staff
MusicTreemethodThis method can be used for
Score,PartandMeasure- Parameters:
args – can be used instead of
kwargs. A mixture of args and kwargs is not allowed.kwargs –
part_number,measure_number,staff_numberdepending on musicscore’s class.
- Return type:
- get_voice(*args, **kwargs) Voice
MusicTreemethodThis method can be used for
ScoreandPart,MeasureandStaff- Parameters:
args – can be used instead of
kwargs. A mixture of args and kwargs is not allowed.kwargs –
part_number,measure_number,staff_number,voice_numberdepending on musicscore’s class.
- Return type:
- remove(child: Tree) None
TreemethodChild’s parent will be set to
Noneand child will be removed from list of children.- Parameters:
child –
- Returns:
None
- replace_child(old, new, index: int = 0) None
Treemethod- Parameters:
old – child or function
new – child
index – index of old child in the list of its appearances
- Returns:
None
- reversed_path_to_root() Iterator[Tree]
Treemethod- Returns:
path from self upwards through all ancestors up to the
root.
- set_current_measure(staff_number: int, voice_number: int, measure: Measure) None[source]
Sets current measure for adding
Chordto a specificVoice- Parameters:
staff_number – positive int
voice_number – positive int
measure –
musicscore.measure.Measure
- Returns:
None
- set_possible_subdivisions(subdivisions: list[int], beat_quarter_duration: QuarterDuration | None = None) None
QuantizeMixinmethodThis method is used to set or change possible subdivisions dictionary of a beat or its ascendants. For example if get_possible_subdivisions()[1] == [3, 5, 8] a beat with a quarter duration of 1 can after quantization consists only of eighth triplets, quintuplets and 32ths.
- Parameters:
subdivisions – list of possible subdivisions to be used in
musicscore.beat.Beat.quantize_quarter_durations()beat_quarter_duration – If
Noneand self is aBeatself.quarter_durationis used. IfNoneand self is not aBeatit is set to 1.
- Returns:
None
- to_string(*args, **kwargs)
FinalizeMixinmethodIt triggers
finalize()first before calling parent’sxml_object.to_string()method. If no xml_object exists (it means there is no direct MusicXML equavalent of this class) aClassHasNoMusicXMLEquivalentErroris thrown.
- tree_representation(key: Callable | None = None, tab: Callable | None = None) str
Treemethod- Parameters:
key – An optional callable if
Nonecompact_reprproperty of each node is called.tab – An optional callable if
Noneget_indentation()method of each node is called.
- Returns:
a representation of all nodes as string in tree form.
- Return type:
str
- property abbreviation: str | None
- property compact_repr: str
Treeproperty- Returns:
compact representation of a node. Default is the string representation. This property is used as default in the
tree_representationmethod and can be customized in subclasses to get the most appropriate representation.- Return type:
str
- property get_quantized: bool
QuantizeMixinpropertyIf
get_quantizedis set to None the firstget_quantizedof ancestors which isFalseorTruewill be returned.If
musicscore.score.Score.get_quantizedis set to None it will be converted toFalsemusicscore.measure.Measure.finalize()loops over all beats. Ifmusicscore.beat.Beat.get_quantizedreturnsTruemusicscore.beat.Beat.quantize_quarter_durations()is called.
- Type:
Optional[bool]
- Return type:
bool
- property is_leaf: bool
Treeproperty- Returns:
Trueif self has no children.Falseif self has one or more children.- Return type:
bool
- property is_root: bool
Treeproperty- Returns:
Trueif self has no parent, elseFalse.- Return type:
bool
- property level: int
Treeproperty- Returns:
0forroot,1, 2 etc.for each layer of children- Return type:
nonnegative int
>>> class TestTree(Tree): ... def _check_child_to_be_added(self, child): ... return True >>> root = TestTree() >>> root.level 0 >>> ch = root.add_child(TestTree()).add_child(TestTree()).add_child(TestTree()) >>> ch.level 3
- property name: str
Set and get name. Setting tries toupdate name of
musicscore.part.score_part- Type:
str
- Returns:
part’s name. If no name is set part’s
id_is returned.
- property next: Tree | None
Treeproperty- Returns:
next sibling.
Noneif this is the last current child of the parent.- Return type:
- property previous: Tree | None
Treeproperty- Returns:
previous sibling.
Noneif this is the first child of the parent.- Return type:
- property show_accidental_signs: str
MusicTreepropertyIf show_accidental_signs is set to None the first get_quantized of ancestors which is
FalseorTruewill be returned.If
show_accidental_signsis set to None it will be converted todefault_show_accidental_signsPossible show_accidental_signs are: None, ‘modern’, ‘traditional’
- Type:
Optional[str]
- Return type:
str
- property xml_object: XMLElement
XMLWrappermethodThis musicscore class has an equivalent
MusicXMLclass which can be reached via this property.If an attribute is not found directly in the main class, it wll be passed on to
__get_attribute__or__set__attribute__methods ofself.xml_object. It can also use the short cut attributes ofXMLElementto get or set the first child.- Returns:
wrapped MusicXML element of type
XMLClass
- class musicscore.part.ScorePart(part, *args, **kwargs)[source]
Bases:
XMLWrapper- XMLClass
alias of
XMLScorePart
- to_string(*args, **kwargs) str
XMLWrappermethodCalls
to_stringmethod of self.xml_object- Returns:
musicxml snippet
- property part: Part
Setting part property updates its
XMLPartNameand sets or updates itsId- Returns:
- property xml_object: XMLElement
XMLWrappermethodThis musicscore class has an equivalent
MusicXMLclass which can be reached via this property.If an attribute is not found directly in the main class, it wll be passed on to
__get_attribute__or__set__attribute__methods ofself.xml_object. It can also use the short cut attributes ofXMLElementto get or set the first child.- Returns:
wrapped MusicXML element of type
XMLClass
- class musicscore.part.Id(value)[source]
Bases:
objectThis class uses the class attribute __refs__ of type list to keep track of all
Partids of one score to make sure they are unique.- add_parent(obj: XMLWrapper) None[source]
Adds object to Id as parent. Parents id gets updated.
- get_parents() List[XMLWrapper][source]
Gets Id’s parent objects
- update_parents_id(parent: XMLWrapper) None[source]
Sets parent’s xml_object.id to self.value
- property value: str
val: a unique id. If not unique IdWithSameValueExistsError is raised.
All parents ids will be updated.