componenttools.copy_components_and_fracture_crossing_spanners

abjad.tools.componenttools.copy_components_and_fracture_crossing_spanners.copy_components_and_fracture_crossing_spanners(components, n=1)[source]

New in version 1.1.

Clone components and fracture crossing spanners.

The components must be thread-contiguous.

The steps this function takes are as follows. Deep copy components. Deep copy spanners that attach to any component in components. Fracture spanners that attach to components not in components. Return Python list of copied components.

abjad> voice = Voice(Measure((2, 8), notetools.make_repeated_notes(2)) * 3)
abjad> pitchtools.set_ascending_named_diatonic_pitches_on_nontied_pitched_components_in_expr(voice)
abjad> beam = spannertools.BeamSpanner(voice.leaves[:4])
abjad> f(voice)
\new Voice {
    {
        \time 2/8
        c'8 [
        d'8
    }
    {
        \time 2/8
        e'8
        f'8 ]
    }
    {
        \time 2/8
        g'8
        a'8
    }
}
abjad> result = componenttools.copy_components_and_fracture_crossing_spanners(voice.leaves[2:4])
abjad> result
(Note("e'8"), Note("f'8"))
abjad> new_voice = Voice(result)
abjad> f(new_voice)
\new Voice {
    e'8 [
    f'8 ]
}
abjad> voice.leaves[2] is new_voice.leaves[0]
False

Clone components a total of n times.

abjad> result = componenttools.copy_components_and_fracture_crossing_spanners(voice.leaves[2:4], n = 3)
abjad> result
(Note("e'8"), Note("f'8"), Note("e'8"), Note("f'8"), Note("e'8"), Note("f'8"))
abjad> new_voice = Voice(result)
abjad> f(new_voice)
\new Voice {
    e'8 [
    f'8 ]
    e'8 [
    f'8 ]
    e'8 [
    f'8 ]
}

Changed in version 2.0: renamed clone.fracture() to componenttools.copy_components_and_fracture_crossing_spanners().

Changed in version 2.0: renamed componenttools.clone_components_and_fracture_crossing_spanners() to componenttools.copy_components_and_fracture_crossing_spanners().

This Page