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

average_pitch()

Averages the pitch of this note, accounting for if it's a glissando or a chord

does_glissando()

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

source_id()

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.

is_rest() bool[source]

Returns whether or not this is a rest.

is_chord() bool[source]

Returns whether or not this is a chord.

does_glissando()[source]

Returns whether or not this does a glissando.

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