pymusicxml.music_xml_objects.Part¶
-
class
pymusicxml.music_xml_objects.
Part
(*args, **kwds)[source]¶ Bases:
pymusicxml.music_xml_objects.MusicXMLComponent
,pymusicxml.music_xml_objects.MusicXMLContainer
Represents a musical part/staff.
- Parameters
part_name – name of this part
measures – list of measures contained in this part
part_id – unique identifier for the part (set automatically by the containing Score upon rendering)
instrument_name – used by notation programs to understand which sound to use; not rendered in score. Set automatically based on part name if left as None.
midi_program_num – the general midi program number for the instrument. Again, used by notation programs to pick an instrument sound. Set automatically based on part name if left as None.
Methods
iter_leaves
([which_voices])Iterates through the Notes/Chords/Rests in this part, expanding out any measures, tuplets and beam groups.
render
()Renders this component to a tuple of ElementTree.Element.
Renders the “score-part” tag for the top of the MusicXML score.
Wraps this component in a
Score
so that it can be exported and viewedInherited Methods
append
(value)S.append(value) – append value to the end of the sequence
clear
()count
(value)export_to_file
(file_path[, pretty_print])Exports this musical object (wrapped as a score) to the given file path.
extend
(values)S.extend(iterable) – extend sequence by appending elements from the iterable
index
(value, [start, [stop]])Raises ValueError if the value is not present.
insert
(i, o)Insert the given object before the given index.
pop
([index])Raise IndexError if list is empty or index is out of range.
remove
(value)S.remove(value) – remove first occurrence of value.
reverse
()S.reverse() – reverse IN PLACE
to_xml
([pretty_print])Renders this component to MusicXML, adding a version tag, but not wrapping it up as a full score.
view_in_software
(command)Uses the given terminal command to create a score out of this musical object, and open it in music notation software.
Attributes
List of the measures in this Part.
-
general_midi_preset_nums
= {'Accordion': 22, 'Acoustic Bass': 33, 'Acoustic Grand Piano': 1, 'Acoustic Guitar (nylon)': 25, 'Acoustic Guitar (steel)': 26, 'Agogo': 114, 'Alto Sax': 66, 'Applause': 127, 'Bag pipe': 110, 'Banjo': 106, 'Baritone Sax': 68, 'Bassoon': 71, 'Bells': 15, 'Bird Tweet': 124, 'Blown Bottle': 77, 'Brass Section': 62, 'Breath Noise': 122, 'Bright Acoustic Piano': 2, 'Celesta': 9, 'Cello': 43, 'Choir Aahs': 53, 'Church Organ': 20, 'Clarinet': 72, 'Clavinet': 8, 'Contrabass': 44, 'Distortion Guitar': 31, 'Drawbar Organ': 17, 'Dulcimer': 16, 'Electric Bass (finger)': 34, 'Electric Bass (pick)': 35, 'Electric Grand Piano': 3, 'Electric Guitar (clean)': 28, 'Electric Guitar (jazz)': 27, 'Electric Guitar (muted)': 29, 'Electric Piano 1': 5, 'Electric Piano 2': 6, 'English Horn': 70, 'FX 1 (rain)': 97, 'FX 2 (soundtrack)': 98, 'FX 3 (crystal)': 99, 'FX 4 (atmosphere)': 100, 'FX 5 (brightness)': 101, 'FX 6 (goblins)': 102, 'FX 7 (echoes)': 103, 'FX 8 (sci-fi)': 104, 'Fiddle': 111, 'Flute': 74, 'French Horn': 61, 'Fretless Bass': 36, 'Glockenspiel': 10, 'Guitar Fret Noise': 121, 'Guitar harmonics': 32, 'Gunshot': 128, 'Harmonica': 23, 'Harp': 47, 'Harpsichord': 7, 'Helicopter': 126, 'Honky-tonk Piano': 4, 'Horn': 61, 'Kalimba': 109, 'Koto': 108, 'Lead 1 (square)': 81, 'Lead 2 (sawtooth)': 82, 'Lead 3 (calliope)': 83, 'Lead 4 (chiff)': 84, 'Lead 5 (charang)': 85, 'Lead 6 (voice)': 86, 'Lead 7 (fifths)': 87, 'Lead 8 (bass + lead)': 88, 'Marimba': 13, 'Melodic Tom': 118, 'Music Box': 11, 'Muted Trumpet': 60, 'Oboe': 69, 'Ocarina': 80, 'Orchestra Hit': 56, 'Orchestral Harp': 47, 'Organ': 20, 'Overdriven Guitar': 30, 'Pad 1 (new age)': 89, 'Pad 2 (warm)': 90, 'Pad 3 (polysynth)': 91, 'Pad 4 (choir)': 92, 'Pad 5 (bowed)': 93, 'Pad 6 (metallic)': 94, 'Pad 7 (halo)': 95, 'Pad 8 (sweep)': 96, 'Pan Flute': 76, 'Percussive Organ': 18, 'Piano': 1, 'Piccolo': 73, 'Pizzicato Strings': 46, 'Recorder': 75, 'Reed Organ': 21, 'Reverse Cymbal': 120, 'Rock Organ': 19, 'Sax': 66, 'Seashore': 123, 'Shakuhachi': 78, 'Shamisen': 107, 'Shanai': 112, 'Sitar': 105, 'Slap Bass 1': 37, 'Slap Bass 2': 38, 'Soprano Sax': 65, 'Steel Drums': 115, 'String Ensemble 1': 49, 'String Ensemble 2': 50, 'Strings': 49, 'Synth Bass 1': 39, 'Synth Bass 2': 40, 'Synth Brass 1': 63, 'Synth Brass 2': 64, 'Synth Drum': 119, 'Synth Strings 1': 51, 'Synth Strings 2': 52, 'Synth Voice': 55, 'Taiko Drum': 117, 'Tango Accordion': 24, 'Telephone Ring': 125, 'Tenor Sax': 67, 'Timpani': 48, 'Tinkle Bell': 113, 'Tom': 118, 'Tremolo Strings': 45, 'Trombone': 58, 'Trumpet': 57, 'Tuba': 59, 'Tubular Bells': 15, 'Vibraphone': 12, 'Viola': 42, 'Violin': 41, 'Violoncello': 43, 'Voice Oohs': 54, 'Whistle': 79, 'Woodblock': 116, 'Xylophone': 14}¶
-
property
measures
¶ List of the measures in this Part.
-
iter_leaves
(which_voices=None) → Iterator[Union[pymusicxml.music_xml_objects.Note, pymusicxml.music_xml_objects.Chord, pymusicxml.music_xml_objects.Rest]][source]¶ Iterates through the Notes/Chords/Rests in this part, expanding out any measures, tuplets and beam groups. The notes/chords/rests are ordered in time, and draw from the specified voices.
- Parameters
which_voices – List of voices to return notes from (numbered 0, 1, 2, 3). The default value of None returns notes from all voices.
-
render
() → Sequence[xml.etree.ElementTree.Element][source]¶ Renders this component to a tuple of ElementTree.Element. (The reason for making it a tuple is that musical objects like chords are represented by several notes side by side, with all but the first containing a </chord> tag.)
-
render_part_list_entry
() → Sequence[xml.etree.ElementTree.Element][source]¶ Renders the “score-part” tag for the top of the MusicXML score.
-
wrap_as_score
() → pymusicxml.music_xml_objects.Score[source]¶ Wraps this component in a
Score
so that it can be exported and viewed
-
append
(value)¶ S.append(value) – append value to the end of the sequence
-
clear
() → None – remove all items from S¶
-
count
(value) → integer – return number of occurrences of value¶
-
export_to_file
(file_path: str, pretty_print: bool = True) → None¶ Exports this musical object (wrapped as a score) to the given file path.
- Parameters
file_path – The path of the file we want to write to.
pretty_print – If True, breaks the MusicXML onto multiple lines, with indentation
-
extend
(values)¶ S.extend(iterable) – extend sequence by appending elements from the iterable
-
index
(value[, start[, stop]]) → integer – return first index of value.¶ Raises ValueError if the value is not present.
Supporting start and stop arguments is optional, but recommended.
-
insert
(i, o) → None¶ Insert the given object before the given index.
- Parameters
i – Index at which to insert
o – Object to insert
-
pop
([index]) → item – remove and return item at index (default last).¶ Raise IndexError if list is empty or index is out of range.
-
remove
(value)¶ S.remove(value) – remove first occurrence of value. Raise ValueError if the value is not present.
-
reverse
()¶ S.reverse() – reverse IN PLACE
-
to_xml
(pretty_print: bool = False) → str¶ Renders this component to MusicXML, adding a version tag, but not wrapping it up as a full score.
- Parameters
pretty_print – If True, breaks the MusicXML onto multiple lines, with indentation
-
view_in_software
(command: str) → None¶ Uses the given terminal command to create a score out of this musical object, and open it in music notation software.
- Parameters
command – The terminal command corresponding to the software with which we want to open the score.