EvenRunRhythmMaker

class rhythmmakertools.EvenRunRhythmMaker(beam_specifier=None, duration_spelling_specifier=None, exponent=None, tie_specifier=None, tuplet_spelling_specifier=None)

Even run rhythm-maker.

>>> import abjad
>>> from abjad.tools import rhythmmakertools

Makes even run of notes each equal in duration to 1/d with d equal to the denominator of each division on which the rhythm-maker is called:

>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker()
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

Lineage

digraph InheritanceGraph { graph [background=transparent, bgcolor=transparent, color=lightslategrey, fontname=Arial, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=LR, root="__builtin__.object", splines=spline, style="dotted, rounded", truecolor=true]; node [colorscheme=pastel19, fontname=Arial, fontsize=12, penwidth=2, style="filled, rounded"]; edge [color=lightsteelblue2, penwidth=2]; subgraph cluster_abctools { graph [label=abctools]; "abjad.tools.abctools.AbjadObject.AbjadObject" [color=1, group=0, label=AbjadObject, shape=box]; "abjad.tools.abctools.AbjadObject.AbstractBase" [color=1, group=0, label=AbstractBase, shape=box]; "abjad.tools.abctools.AbjadValueObject.AbjadValueObject" [color=1, group=0, label=AbjadValueObject, shape=box]; "abjad.tools.abctools.AbjadObject.AbjadObject" -> "abjad.tools.abctools.AbjadValueObject.AbjadValueObject"; "abjad.tools.abctools.AbjadObject.AbstractBase" -> "abjad.tools.abctools.AbjadObject.AbjadObject"; } subgraph cluster_rhythmmakertools { graph [label=rhythmmakertools]; "abjad.tools.rhythmmakertools.EvenRunRhythmMaker.EvenRunRhythmMaker" [color=black, fontcolor=white, group=2, label=<<B>EvenRunRhythmMaker</B>>, shape=box, style="filled, rounded"]; "abjad.tools.rhythmmakertools.RhythmMaker.RhythmMaker" [color=3, group=2, label=RhythmMaker, shape=box]; "abjad.tools.rhythmmakertools.RhythmMaker.RhythmMaker" -> "abjad.tools.rhythmmakertools.EvenRunRhythmMaker.EvenRunRhythmMaker"; } subgraph cluster_builtins { graph [label=builtins]; "builtins.object" [color=2, group=1, label=object, shape=box]; } "abjad.tools.abctools.AbjadValueObject.AbjadValueObject" -> "abjad.tools.rhythmmakertools.RhythmMaker.RhythmMaker"; "builtins.object" -> "abjad.tools.abctools.AbjadObject.AbstractBase"; }

Attribute summary

beam_specifier Gets beam specifier.
division_masks Gets division masks.
duration_spelling_specifier Gets duration spelling specifier.
exponent Gets exponent.
logical_tie_masks Gets logical tie masks.
tie_specifier Gets tie specifier.
tuplet_spelling_specifier Gets tuplet spelling specifier.
__call__(divisions[, rotation]) Calls even-run rhythm-maker on divisions.
__copy__(*arguments) Copies Abjad value object.
__eq__(argument) Is true when all initialization values of Abjad value object equal the initialization values of argument.
__format__([format_specification]) Formats even run rhythm-maker.
__hash__() Hashes Abjad value object.
__illustrate__([divisions]) Illustrates rhythm-maker.
__ne__(argument) Is true when Abjad object does not equal argument.
__repr__() Gets interpreter representation of Abjad object.

Read-only properties

(RhythmMaker).beam_specifier

Gets beam specifier.

Set to beam specifier or none.

(RhythmMaker).division_masks

Gets division masks.

Set to division masks or none.

EvenRunRhythmMaker.duration_spelling_specifier

Gets duration spelling specifier.

>>> specifier = rhythmmakertools.DurationSpellingSpecifier(
...     forbidden_written_duration=(1, 4),
...     )
>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     duration_spelling_specifier=specifier,
...     )
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

Returns duration spelling specifier or none.

EvenRunRhythmMaker.exponent

Gets exponent.

Makes even run of notes with durations equal to 1/(2**0 * d) or 1/d:

>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     exponent=0,
...     )
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

(d equals the denominator of each input division.)

Input division denominators 8, 4, 4 result in notes with durations 1/8, 1/4, 1/4.

Makes even run of notes with durations equal to 1/(2**1 * d) or 1/(2d):

>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     exponent=1,
...     )
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

(d equals the denominator of each input division.)

Input division denominators 8, 4, 4 result in notes with durations 1/16, 1/8, 1/8.

Makes even run of notes with durations equal to 1/(2**2 * d) or 1/(4d):

>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     exponent=2,
...     )
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

(d equals the denominator of each input division.)

Input division denominators 8, 4, 4 result in notes with durations 1/32, 1/16, 1/16.

Defaults to none.

Interprets none equal to 0.

Returns nonnegative integer or none.

(RhythmMaker).logical_tie_masks

Gets logical tie masks.

Set to patterns or none.

Defaults to none.

Returns patterns or none.

EvenRunRhythmMaker.tie_specifier

Gets tie specifier.

Do not tie across any divisions:

>>> tie_specifier = rhythmmakertools.TieSpecifier(
...     tie_across_divisions=False,
...     )
>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     tie_specifier=tie_specifier,
...     )
>>> divisions = [(5, 8), (3, 8), (4, 8), (2, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

Ties across all divisions:

>>> tie_specifier = rhythmmakertools.TieSpecifier(
...     tie_across_divisions=True,
...     )
>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     tie_specifier=tie_specifier,
...     )
>>> divisions = [(5, 8), (3, 8), (4, 8), (2, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

Ties across every other pair of divisions (starting with the first):

>>> tie_specifier = rhythmmakertools.TieSpecifier(
...     tie_across_divisions=[1, 0],
...     )
>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker(
...     tie_specifier=tie_specifier,
...     )
>>> divisions = [(5, 8), (3, 8), (4, 8), (2, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> show(lilypond_file) 

Returns true or false.

EvenRunRhythmMaker.tuplet_spelling_specifier

Gets tuplet spelling specifier.

Note

not yet implemented.

Returns tuplet spelling specifier or none.

Special methods

EvenRunRhythmMaker.__call__(divisions, rotation=None)

Calls even-run rhythm-maker on divisions.

>>> rhythm_maker = rhythmmakertools.EvenRunRhythmMaker()
>>> divisions = [(4, 8), (3, 4), (2, 4)]
>>> result = rhythm_maker(divisions)
>>> for selection in result:
...     selection
... 
Selection([Container("c'8 c'8 c'8 c'8")])
Selection([Container("c'4 c'4 c'4")])
Selection([Container("c'4 c'4")])

Returns a list of selections. Each selection holds a single container filled with notes.

(AbjadValueObject).__copy__(*arguments)

Copies Abjad value object.

Returns new Abjad value object.

(AbjadValueObject).__eq__(argument)

Is true when all initialization values of Abjad value object equal the initialization values of argument.

Returns true or false.

EvenRunRhythmMaker.__format__(format_specification='')

Formats even run rhythm-maker.

>>> f(rhythm_maker)
rhythmmakertools.EvenRunRhythmMaker()

Set format_specification to ‘’ or ‘storage’.

Returns string.

(AbjadValueObject).__hash__()

Hashes Abjad value object.

Returns integer.

(RhythmMaker).__illustrate__(divisions=((3, 8), (4, 8), (3, 16), (4, 16)))

Illustrates rhythm-maker.

Returns LilyPond file.

(AbjadObject).__ne__(argument)

Is true when Abjad object does not equal argument. Otherwise false.

Returns true or false.

(AbjadObject).__repr__()

Gets interpreter representation of Abjad object.

Returns string.