
Synchronous multiplex siteswap
Source:R/synchronousMultiplexSiteswap.R
synchronousMultiplexSiteswap.RdCreates a synchronous multiplex siteswap object. This combines synchronous
notation (both hands throw simultaneously, written as pairs in parentheses)
with multiplex notation (square brackets group simultaneous throws from the
same hand). For example, "(2,4)([4x4],2x)" is a 4-prop pattern where the
second slot has hand 0 throwing two balls simultaneously.
Usage
synchronousMultiplexSiteswap(sequence = character(0))Details
All individual throw heights must be even. An x suffix marks a crossing
throw; a trailing * indicates the pattern alternates between two mirrored
versions.
Additional properties
@typeAlways
"synchronous multiplex"(read-only).@full_sequenceThe expanded sequence with the
*shorthand resolved.@throwsCharacter vector of all slot throw strings across one expanded cycle. Multiplex groups are kept as single elements, e.g.
"[4x4]".@throws_by_handNamed list with elements
hand_1andhand_2, each a character vector of throw strings per slot (one per sync slot).@periodNumber of throw slots per full cycle (2 × number of sync slots, since both hands throw on every beat; always even).
@symmetry"symmetrical"if the pattern is its own mirror image;"asymmetrical"otherwise.@n_propsNumber of props: sum of all throw heights divided by the period.
@can_throwTRUEif thrown and landing prop counts balance at every (slot, hand) pair within one cycle.@satisfies_average_theoremTRUEifn_propsis a whole number.@validTRUEif bothcan_throwandsatisfies_average_theoremareTRUE.
Examples
synchronousMultiplexSiteswap("(2,4)([4x4],2x)")
#> ✔ '(2,4)([4x4],2x)' is valid synchronous multiplex siteswap
#> ℹ It uses 4 props
#> ℹ It is asymmetrical with period 4
synchronousMultiplexSiteswap("(4,[42x])*")
#> ✔ '(4,[42x])*' is valid synchronous multiplex siteswap
#> ℹ Full sequence: (4,[42x])([42x],4)
#> ℹ It uses 5 props
#> ℹ It is symmetrical with period 4
s <- synchronousMultiplexSiteswap("(2,4)([4x4],2x)")
s@n_props
#> [1] 4
s@valid
#> [1] TRUE