scamp.score.Tuplet

class scamp.score.Tuplet(tuplet_divisions: int, normal_divisions: int, division_length: float, contents: Optional[Sequence[NoteLike]] = None)[source]

Bases: ScoreComponent, ScoreContainer

Representation of a Tuplet object within a single voice of music. Reads as: tuplet_divisions in the space of normal_divisions of division_length e.g. 7, 4, and 0.25 would mean ‘7 in the space of 4 sixteenth notes’

Parameters:
  • tuplet_divisions – The new number that the tuplet is divided into

  • normal_divisions – the normal number of divisions of division_length that would fill the time

  • division_length – length in quarter notes of the tuplet note type

  • contents – List of NoteLike objects (notes and rests) contained in this tuplet

Variables:
  • tuplet_divisions – The new number that the tuplet is divided into

  • normal_divisions – the normal number of divisions of division_length that would fill the time

  • division_length – length in quarter notes of the tuplet note type

Methods

dilation_factor()

Factor by which the amount of "room" in the tuplet is expanded.

from_length_and_divisor(length, divisor)

Constructs and returns the appropriate tuplet from the length and the divisor.

length()

The actual length, in quarter notes, of the tuplet from the outside.

length_within_tuplet()

The length, in quarter notes, of the tuplet from the inside.

to_music_xml([source_id_dict])

Convert this score component to its corresponding pymusicxml component

Inherited Methods

append(item)

Add a child ScoreComponent of the appropriate type

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

extend(items)

Add several child ScoreComponents of the appropriate type

index(item)

Get the index of the given child ScoreComponent

insert(index, item)

Insert a child ScoreComponent at the given index.

pop([i])

Pop and return the child ScoreComponent at the given index.

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.

remove(item)

Remove the given child ScoreComponent.

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.

Attributes

contents

List of NoteLike objects (notes and rests) contained in this tuplet

classmethod from_length_and_divisor(length: float, divisor: int) Tuplet | None[source]

Constructs and returns the appropriate tuplet from the length and the divisor. Returns None if no tuplet needed.

Parameters:
  • length – length of the beat in quarters

  • divisor – divisor for the beat

Returns:

a Tuplet, or None

property contents: Sequence[NoteLike]

List of NoteLike objects (notes and rests) contained in this tuplet

dilation_factor() float[source]

Factor by which the amount of “room” in the tuplet is expanded. E.g. in a tripet, this factor is 3/2, since you can fit 3/2 as much stuff in there.

length() float[source]

The actual length, in quarter notes, of the tuplet from the outside.

length_within_tuplet() float[source]

The length, in quarter notes, of the tuplet from the inside.

to_music_xml(source_id_dict=None) Tuplet[source]

Convert this score component to its corresponding pymusicxml component

append(item: ScoreComponent) None

Add a child ScoreComponent of the appropriate type

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.

extend(items) None

Add several child ScoreComponents of the appropriate type

index(item) int

Get the index of the given child ScoreComponent

insert(index, item) None

Insert a child ScoreComponent at the given index.

pop(i=-1) ScoreComponent

Pop and return the child ScoreComponent at the given index.

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.

remove(item) None

Remove the given child ScoreComponent.

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