IncisedRhythmMaker

digraph InheritanceGraph { graph [bgcolor=transparent, color=lightsteelblue2, fontname=Arial, fontsize=10, outputorder=edgesfirst, overlap=prism, penwidth=2, rankdir=LR, splines=spline, style="dashed, rounded", truecolor=true]; node [colorscheme=pastel19, fontname=Arial, fontsize=10, height=0, penwidth=2, shape=box, style="filled, rounded", width=0]; edge [color=lightslategrey, penwidth=1]; subgraph "cluster_abjad.system" { graph [label="abjad.system"]; node [color=1]; "abjad.system.AbjadObject.AbjadObject" [URL="../api/abjadext/rmakers/../../abjad/system/AbjadObject.html#abjad.system.AbjadObject.AbjadObject", label="Abjad\nObject", target=_top]; "abjad.system.AbjadValueObject.AbjadValueObject" [URL="../api/abjadext/rmakers/../../abjad/system/AbjadValueObject.html#abjad.system.AbjadValueObject.AbjadValueObject", label="Abjad\nValue\nObject", target=_top]; "abjad.system.AbjadObject.AbjadObject" -> "abjad.system.AbjadValueObject.AbjadValueObject"; } subgraph "cluster_abjadext.rmakers" { graph [label="abjadext.rmakers"]; node [color=2]; "abjadext.rmakers.IncisedRhythmMaker.IncisedRhythmMaker" [URL="../api/abjadext/rmakers/IncisedRhythmMaker.html#abjadext.rmakers.IncisedRhythmMaker.IncisedRhythmMaker", color=black, fontcolor=white, label="Incised\nRhythm\nMaker", target=_top]; "abjadext.rmakers.RhythmMaker.RhythmMaker" [URL="../api/abjadext/rmakers/RhythmMaker.html#abjadext.rmakers.RhythmMaker.RhythmMaker", label="Rhythm\nMaker", target=_top]; "abjadext.rmakers.RhythmMaker.RhythmMaker" -> "abjadext.rmakers.IncisedRhythmMaker.IncisedRhythmMaker"; } subgraph cluster_builtins { graph [label=builtins]; node [color=3]; "builtins.object" [URL="https://docs.python.org/3.6/library/functions.html#object", label=object, target=_top]; } "abjad.system.AbjadValueObject.AbjadValueObject" -> "abjadext.rmakers.RhythmMaker.RhythmMaker"; "builtins.object" -> "abjad.system.AbjadObject.AbjadObject"; }

class abjadext.rmakers.IncisedRhythmMaker.IncisedRhythmMaker(*, beam_specifier=None, duration_specifier=None, division_masks=None, extra_counts_per_division=None, incise_specifier=None, logical_tie_masks=None, replace_rests_with_skips=None, split_divisions_by_counts=None, tie_specifier=None, tuplet_specifier=None)

Incised rhythm-maker.

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[0, 1],
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=16,
...         ),
...     )
>>> divisions = 4 * [(5, 16)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Attributes Summary

__call__ Calls incised rhythm-maker on divisions.
division_masks Gets division masks.
duration_specifier Gets duration specifier.
extra_counts_per_division Gets extra counts per division.
incise_specifier Gets incise specifier.
logical_tie_masks Gets logical tie masks.
replace_rests_with_skips Is true when rhythm-maker should replace rests with skips.
split_divisions_by_counts Gets secondary divisions.
tie_specifier Gets tie specifier.
tuplet_specifier Gets tuplet specifier.

Special methods

__call__(divisions, previous_state=None)

Calls incised rhythm-maker on divisions.

Return type:List[Selection]
(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.

(AbjadObject).__format__(format_specification='')

Formats Abjad object.

Set format_specification to '' or 'storage'. Interprets '' equal to '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).__repr__()

Gets interpreter representation of Abjad object.

Returns string.


Read-only properties

(RhythmMaker).beam_specifier

Gets beam specifier.

Return type:Optional[BeamSpecifier]
division_masks

Gets division masks.

No division masks:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         talea_denominator=16,
...         ),
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Masks every other output division:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         talea_denominator=16,
...         ),
...     division_masks=[
...         abjad.Pattern(
...             indices=[0],
...             period=2,
...             ),
...         ],
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 
Return type:Optional[PatternTuple]
duration_specifier

Gets duration specifier.

Spells durations with the fewest number of glyphs:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Forbids notes with written duration greater than or equal to 1/2:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     duration_specifier=abjadext.rmakers.DurationSpecifier(
...         forbidden_duration=(1, 2),
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Spells all divisions metrically when spell_metrically is true:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     duration_specifier=abjadext.rmakers.DurationSpecifier(
...         spell_metrically=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Spells only unassignable durations metrically when spell_metrically is 'unassignable':

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     duration_specifier=abjadext.rmakers.DurationSpecifier(
...         spell_metrically='unassignable',
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Rewrites meter:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     duration_specifier=abjadext.rmakers.DurationSpecifier(
...         rewrite_meter=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Returns duration specifier or none.

Return type:Optional[DurationSpecifier]
extra_counts_per_division

Gets extra counts per division.

Return type:Optional[List[int]]
incise_specifier

Gets incise specifier.

Doesn’t incise:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker()
>>> divisions = [(5, 8), (5, 8), (5, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Fills divisions with notes. Incises outer divisions only:

>>> incise_specifier = abjadext.rmakers.InciseSpecifier(
...     prefix_talea=[-8, -7],
...     prefix_counts=[2],
...     suffix_talea=[-3],
...     suffix_counts=[4],
...     talea_denominator=32,
...     outer_divisions_only=True,
...     )
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=incise_specifier,
...     )
>>> divisions = [(5, 8), (5, 8), (5, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Fills divisions with rests. Incises outer divisions only:

>>> incise_specifier = abjadext.rmakers.InciseSpecifier(
...     prefix_talea=[7, 8],
...     prefix_counts=[2],
...     suffix_talea=[3],
...     suffix_counts=[4],
...     talea_denominator=32,
...     fill_with_notes=False,
...     outer_divisions_only=True,
...     )
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=incise_specifier,
...     )
>>> divisions = [(5, 8), (5, 8), (5, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 
Return type:Optional[InciseSpecifier]
logical_tie_masks

Gets logical tie masks.

No logical tie masks:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         outer_divisions_only=True,
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=16,
...         ),
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Silences every other logical tie:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         outer_divisions_only=True,
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=16,
...         ),
...     logical_tie_masks=[
...         abjadext.rmakers.silence([1], 2),
...         ],
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 
Return type:Optional[PatternTuple]
(RhythmMaker).previous_state

Gets previous state dictionary.

Return type:OrderedDict
replace_rests_with_skips

Is true when rhythm-maker should replace rests with skips.

Does not replace rests with skips:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         fill_with_notes=False,
...         prefix_talea=[1],
...         prefix_counts=[1],
...         talea_denominator=16,
...         ),
...     replace_rests_with_skips=False,
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Does replace rests with skips:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         fill_with_notes=False,
...         prefix_talea=[1],
...         prefix_counts=[1],
...         talea_denominator=16,
...         ),
...     replace_rests_with_skips=True,
...     )
>>> divisions = [(4, 8), (3, 8), (4, 8), (3, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Use in keyboard and other polyphonic selections where other voices provide rhythmic alignment.

Return type:Optional[bool]
split_divisions_by_counts

Gets secondary divisions.

Return type:Optional[List[int]]
(RhythmMaker).state

Gets state dictionary.

Return type:OrderedDict
tie_specifier

Gets tie specifier.

Does not tie across divisions:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Ties across divisions:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tie_specifier=abjadext.rmakers.TieSpecifier(
...         tie_across_divisions=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Patterns ties across divisions:

>>> pattern = abjad.Pattern(
...     indices=[0],
...     period=2,
...     )
>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tie_specifier=abjadext.rmakers.TieSpecifier(
...         tie_across_divisions=pattern,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Uses repeat ties:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tie_specifier=abjadext.rmakers.TieSpecifier(
...         tie_across_divisions=True,
...         repeat_ties=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Strips all ties:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tie_specifier=abjadext.rmakers.TieSpecifier(
...         strip_ties=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 

Spells durations metrically and then strips all ties:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     duration_specifier=abjadext.rmakers.DurationSpecifier(
...         spell_metrically=True,
...         ),
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tie_specifier=abjadext.rmakers.TieSpecifier(
...         strip_ties=True,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 
Return type:Optional[TieSpecifier]
tuplet_specifier

Gets tuplet specifier.

Makes augmentations:

>>> rhythm_maker = abjadext.rmakers.IncisedRhythmMaker(
...     extra_counts_per_division=[1],
...     incise_specifier=abjadext.rmakers.InciseSpecifier(
...         prefix_talea=[-1],
...         prefix_counts=[1],
...         outer_divisions_only=True,
...         suffix_talea=[-1],
...         suffix_counts=[1],
...         talea_denominator=8,
...         ),
...     tuplet_specifier=abjadext.rmakers.TupletSpecifier(
...         diminution=False,
...         ),
...     )
>>> divisions = [(8, 8), (4, 8), (6, 8)]
>>> selections = rhythm_maker(divisions)
>>> lilypond_file = abjad.LilyPondFile.rhythm(
...     selections,
...     divisions,
...     )
>>> abjad.show(lilypond_file) 
Return type:Optional[TupletSpecifier]