scamp.score.NoteLike
- class scamp.score.NoteLike(pitch: Envelope | float | tuple | None, volume: Envelope | float | None, written_length: float, properties: NoteProperties)[source]
Bases:
ScoreComponent
Represents a note, chord, or rest that can be notated without ties
- Parameters:
pitch – float if single pitch, Envelope if a glissando, tuple if a chord, None if a rest
volume – the volume of the note, sometimes an Envelope
written_length – the notated length of the note, disregarding any tuplets it is part of
properties – a properties dictionary, same as found in a PerformanceNote
- Variables:
pitch – float if single pitch, Envelope if a glissando, tuple if a chord, None if a rest
written_length – the notated length of the note, disregarding any tuplets it is part of
properties – a properties dictionary, same as found in a PerformanceNote
Methods
Averages the pitch of this note, accounting for if it's a glissando or a chord
Returns whether or not this does a glissando.
is_chord
()Returns whether or not this is a chord.
is_rest
()Returns whether or not this is a rest.
merge_with
(other)Merges other into this note, adding its length and combining its articulations
ID representing the original PerformanceNote that this came from.
to_music_xml
([source_id_dict])Convert this score component to its corresponding pymusicxml component
Inherited Methods
export_lilypond
(file_path[, non_score_blocks])Convert and wrap as a LilyPond (.ly) file, and save to the given path.
export_music_xml
(file_path[, pretty_print])Convert and wrap as a MusicXML score, and save to the given path.
export_pdf
(file_path[, non_score_blocks])Exports score as a PDF file and saves it to the given file_path
print_lilypond
([wrap_as_file, non_score_blocks])Convert and print LilyPond code, via the abjad library.
print_music_xml
([pretty_print])Convert and wrap as a MusicXML score, and print the resulting XML.
show
([non_score_blocks])Using the abjad.show command, generates and opens a PDF of the music represented by this component
show_xml
()Convert and wrap as a MusicXML score, and open it up in notation software.
to_abjad
([wrap_as_file, non_score_blocks])Convert this score component to its corresponding abjad component
to_lilypond
([wrap_as_file, non_score_blocks])Convert to LilyPond code, via the abjad library.
- average_pitch() float [source]
Averages the pitch of this note, accounting for if it’s a glissando or a chord
- Returns:
the averaged pitch as a float
- merge_with(other: NoteLike) NoteLike [source]
Merges other into this note, adding its length and combining its articulations
- Parameters:
other – another NoteLike
- Returns:
self, having been merged with other
- to_music_xml(source_id_dict=None) Sequence[_XMLNote] [source]
Convert this score component to its corresponding pymusicxml component
- source_id() int | None [source]
ID representing the original PerformanceNote that this came from. Since PerformanceNotes are split up into tied segments, we need to keep track of which ones belonged together so that we can rejoin them with ties, glissandi, etc. (This is done via _join_same_source_abjad_note_group or _join_same_source_xml_note_group)
- export_lilypond(file_path: str, non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) None
Convert and wrap as a LilyPond (.ly) file, and save to the given path.
- Parameters:
file_path – file path to save to
non_score_blocks – a list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad); typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- export_music_xml(file_path: str, pretty_print: bool = True) None
Convert and wrap as a MusicXML score, and save to the given path.
- Parameters:
file_path – file path to save to
pretty_print – whether or not to take the extra space and format the file with indentations, etc.
- export_pdf(file_path: str, non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) None
Exports score as a PDF file and saves it to the given file_path
- Parameters:
file_path – where to save the PDF
non_score_blocks – a list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad); typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- print_lilypond(wrap_as_file: bool = False, non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) None
Convert and print LilyPond code, via the abjad library.
- Parameters:
wrap_as_file – if True, wraps this as an
abjad.LilypondFile
non_score_blocks – (Only applicable if wrap_as_file is set to True). A list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad). Typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- print_music_xml(pretty_print: bool = True) None
Convert and wrap as a MusicXML score, and print the resulting XML.
- Parameters:
pretty_print – whether or not to take the extra space and format the file with indentations, etc.
- show(non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) None
Using the abjad.show command, generates and opens a PDF of the music represented by this component
- Parameters:
non_score_blocks – a list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad); typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- show_xml() None
Convert and wrap as a MusicXML score, and open it up in notation software. (The software to use is defined in engraving_settings.show_music_xml_command_line.)
- to_abjad(wrap_as_file: bool = False, non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) Component
Convert this score component to its corresponding abjad component
- Parameters:
wrap_as_file – if True, wraps this as an
abjad.LilypondFile
non_score_blocks – (Only applicable if wrap_as_file is set to True). A list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad). Typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- to_lilypond(wrap_as_file: bool = False, non_score_blocks: Optional[Sequence] = None, **lilypond_file_args) str
Convert to LilyPond code, via the abjad library.
- Parameters:
wrap_as_file – if True, wraps this as an
abjad.LilypondFile
non_score_blocks – (Only applicable if wrap_as_file is set to True). A list of
abjad.Block
objects (or strings containing the LilyPond code for such a block, which are then parsed by abjad). Typical blocks might be a header block, a layout block, or a paper block. If no header block is specified, one will be created with the score’s title and composer. If a header is specified, title and composer will be added if not present.lilypond_file_args – any additional keyword arguments will be passed along to the constructor of
abjad.LilyPondFile
(assuming wrap_as_file is True). This allows for setting staff size and various other customizations.
- Returns:
a string containing the LilyPond code