Creates a passing siteswap object from a multi-juggler sequence in
<A|B> notation. Each section separated by | gives one juggler's throws;
a p suffix (e.g. "3p") marks a throw that passes to the next juggler.
Fractional notation (e.g. "<4.5 3 3 | 3 4 3.5>") is also supported,
where .5 throws are passes and the second juggler is half a beat later.
Usage
passingSiteswap(sequence = character(0))Details
In p-notation, both jugglers are fully synchronised: they throw on the same beat and alternate hands together. In fractional notation, the second juggler is offset by half a beat in the combined timeline.
See also
The visualisation functions timeline(), ladder() and
throw_data().
Other siteswap constructors:
multiplexSiteswap(),
siteswap(),
synchronousMultiplexSiteswap(),
synchronousSiteswap(),
vanillaSiteswap()
Additional properties
@typeAlways
"passing"(read-only).@is_fractionalTRUEfor fractional notation;FALSEfor p-notation (read-only).@n_jugglersNumber of jugglers (sections in the sequence) (read-only).
@sequences_by_jugglerList of character vectors, one per juggler, each giving the raw tokens (e.g.
c("3p", "3", "3")) (read-only).@throws_by_jugglerList of numeric vectors, one per juggler, of throw heights (integers for p-notation; may include
.5for fractional) (read-only).@is_pass_by_jugglerList of logical vectors, one per juggler, indicating which throws are passes (read-only).
@periodNumber of throws per juggler per cycle (read-only).
@symmetry"symmetrical"when period is odd;"asymmetrical"when period is even (read-only).@n_propsTotal number of props (
sum(all throws) / period) (read-only).@can_throwTRUEif no two throws land on the same(juggler, beat, hand)triple (no collision) (read-only).@satisfies_average_theoremTRUEifn_propsis a whole number (read-only).@validTRUEif bothcan_throwandsatisfies_average_theoremareTRUE(read-only).
Examples
passingSiteswap("<3p 3 3 3 3 3 | 3p 3 3 3 3 3>")
#> ✔ '<3p 3 3 3 3 3 | 3p 3 3 3 3 3>' is valid passing siteswap
#> ℹ It uses 6 props across 2 jugglers
#> ℹ It is asymmetrical with period 6
passingSiteswap("<4p 3 | 3 4p>")
#> ✔ '<4p 3 | 3 4p>' is valid passing siteswap
#> ℹ It uses 7 props across 2 jugglers
#> ℹ It is asymmetrical with period 2
# Compact and spaced forms are equivalent
s1 <- passingSiteswap("<3p33|3p33>")
s2 <- passingSiteswap("<3p 3 3 | 3p 3 3>")
identical(s1@throws_by_juggler, s2@throws_by_juggler)
#> [1] TRUE
s <- passingSiteswap("<4p 3 | 3 4p>")
s@n_props
#> [1] 7
s@valid
#> [1] TRUE
