abjad.metricmodulation

abjad.metricmodulation.MetricModulation(...)

Metric modulation.

class abjad.metricmodulation.MetricModulation(left_rhythm: Any, right_rhythm: Any, hide: bool = False, left_markup: Markup | None = None, right_markup: Markup | None = None, scale: tuple[int | float, int | float] = (1, 1))[source]

Metric modulation.

With notes:

>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c'8."),
...     right_rhythm=abjad.Note("c'4."),
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  

With tuplets:

>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Tuplet("5:4", "c'4"),
...     right_rhythm=abjad.Note("c'4"),
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  
>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c'4"),
...     right_rhythm=abjad.Tuplet("5:4", "c'4"),
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  

With tuplets again:

>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c16."),
...     right_rhythm=abjad.Tuplet("3:2", "c8"),
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  

With ties:

>>> durations = [abjad.Duration(5, 16)]
>>> pitches = [abjad.NamedPitch("c'")]
>>> notes = abjad.makers.make_notes(pitches, durations)
>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c'4"),
...     right_rhythm=notes,
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  

With ties and tuplets:

>>> durations = abjad.makers.make_durations([(5, 16)])
>>> pitches = abjad.makers.make_pitches([0])
>>> notes = abjad.makers.make_notes(pitches, durations)
>>> tuplet = abjad.Tuplet("3:2", notes)
>>> abjad.makers.tweak_tuplet_bracket_edge_height(tuplet)
>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c'4"),
...     right_rhythm=tuplet,
... )
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', metric_modulation])
>>> abjad.show(lilypond_file)  

Attach metric modulations to generate score output:

>>> staff = abjad.Staff("c'4 d'4 e'4 f'4 e'4 d'4")
>>> score = abjad.Score([staff], name="Score")
>>> abjad.attach(abjad.TimeSignature((3, 4)), staff[0])
>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Note("c4"),
...     right_rhythm=abjad.Note("c8."),
... )
>>> abjad.attach(metric_modulation, staff[3], direction=abjad.UP)
>>> abjad.override(staff).TextScript.staff_padding = 2.5
>>> lilypond_file = abjad.LilyPondFile([r'\include "abjad.ily"', score])
>>> abjad.show(lilypond_file)  

ratio

Gets ratio of metric modulation.

ratio

Gets ratio of metric modulation.

>>> metric_modulation = abjad.MetricModulation(
...     left_rhythm=abjad.Tuplet("3:2", [abjad.Note("c'4")]),
...     right_rhythm=abjad.Note("c'4"),
... )
>>> metric_modulation.ratio
(2, 3)