During his investigations into methods for generating symmetric passing patterns, Cristophe Prechac came across a March 1994 post by Tarim titled “A new class of passing patterns“. Tarim’s methods could also produce some of the same passing patterns that Prechac’s methods could. We have already studied Prechac’s algorithm in some detail. In this post we will study Tarim’s algorithm and see how it complements Prechac’s algorithm in generating and representing passing patterns.
Tarim’s Transmogrification
Like Prechac, Tarim too thought of a given Object Siteswap Sequence (OSS) as a “solo” pattern meant to be juggled by one juggler using the Hand Siteswap Sequence (HSS) “2”[1]. To convert a given OSS to a passing pattern for N jugglers, Tarim proposed (though not in exactly these words) to modify the HSS to “2*N” in the manner described below.
Two Jugglers
Tarim largely detailed his procedure to convert “solo” patterns into passing patterns in a two-juggler context. Let the two jugglers be called J0 and J1[2]. We then label their hands as follows:
J0 starting hand: H0
J1 starting hand: H1
J0 other hand: H2
J1 other hand: H3.
Then, in an infinitely repeating juggling pattern, the Tth throw should be made by the hand Hh where h = T mod 4, 4 being the total number of hands (2*N) for N = 2 jugglers. Table 1 shows the hand throwing any given throw. Here, t≥0; t integer.
Throw Number | Throwing Hand | Hand Description |
---|---|---|
T = 4*t = 0, 4, 8, … | H0 | J0 starting hand |
T = 4*t+1 = 1, 5, 9, … | H1 | J1 starting hand |
T = 4*t+2 = 2, 6, 10, … | H2 | J0 other hand |
T = 4*t+3 = 3, 7, 11, … | H3 | J1 other hand |
This construction automatically determines to which hand a throw with a particular siteswap number S will be directed when thrown by the hand Hh; 0≤h≤3. This is indicated in Table 2, where s≥0; s integer.
Siteswap Number | Target Hand | Throw type |
---|---|---|
S = 4*s | Hh | Fountain |
S = 4*s+1 | H(h+1)mod4 | Pass |
S = 4*s+2 | H(h+2)mod4 | Cascade |
S = 4*s+3 | H(h+3)mod4 | Pass |
A “fountain” throw means a throw made by the hand to itself and “cascade” throw means a throw made by a juggler from one hand to his or her own other hand. In case the throw is a pass, whether it is a “crossing” pass or a “tramline” pass[3] depends on the choice of starting hands for each juggler.
Example
Consider the 7-object OSS “9 6 6”. Using the methods and results described above, Table 3 gives one complete cycle of events for the resulting pattern for two jugglers. These events can be repeated infinitely.
Throw # | Siteswap # | Throwing Hand | Throwing Juggler | Throw type |
---|---|---|---|---|
0 | 9 | H0 | J0 | Pass |
1 | 6 | H1 | J1 | Cascade |
2 | 6 | H2 | J0 | Cascade |
3 | 9 | H3 | J1 | Pass |
4 | 6 | H0 | J0 | Cascade |
5 | 6 | H1 | J1 | Cascade |
6 | 9 | H2 | J0 | Pass |
7 | 6 | H3 | J1 | Cascade |
8 | 6 | H0 | J0 | Cascade |
9 | 9 | H1 | J1 | Pass |
10 | 6 | H2 | J0 | Cascade |
11 | 6 | H3 | J1 | Cascade |
If we choose the starting hands for J0 and J1 (i.e., H0 and H1 respectively), to be the same (i.e., either both H0 and H1 are right hands or both are left hands), then the “9” will turn out to be crossing pass. If J0 and J1 start with different hands, then the “9” will be a tramline pass.
Notice that if we look at only J0‘s throws, we get the repeating sequence “9 6 6” while J1‘s throws give the repeating sequence “6 9 6” which is just a cyclically rotated version of J0‘s sequence. Hence, this pattern is an out of phase symmetric passing pattern because the two jugglers are doing the same things but at different times.
Remember that the two jugglers, by throwing alternately, can achieve twice the throw rate that one of them could. Therefore, the siteswap numbers need to be interpreted in the context of this doubled throw rate.
General Case
Let us now follow Tarim’s lead and extend this procedure to construct a passing pattern for N jugglers.
- For N jugglers, we have 2*N hands labelled H0, H1, …, H2N-1 and they throw in that order, i.e., the hand throwing the Tth throw is T mod 2N.
- The hands to be assigned to juggler Jn (0≤n≤N-1) are: Hn and HN+n.
Table 4 shows which siteswap numbers will translate to fountain throws, cascade throws and passes when thrown from the hand Hh; 0≤h≤2*N-1. Again, s≥0; s integer.
Siteswap Number | Target Hand | Target Juggler | Throw type |
---|---|---|---|
2N*s | Hh | Jh mod N | Fountain |
2N*s + 1 | H(h+1) mod 2N | J(h+1) mod N | Pass |
… | … | … | Pass |
2N*s + (N-1) | H(h+N-1) mod 2N | J(h+N-1) mod N | Pass |
2N*s + N | H(h+N) mod 2N | J(h+N) mod N | Cascade |
2N*s + (N+1) | H(h+N+1) mod 2N | J(h+N+1) mod N | Pass |
… | … | … | Pass |
2N*s + (2N-1) | H(h+2N-1) mod 2N | J(h+2N-1) mod N | Pass |
Whether a certain pass is crossing or tramline will again depend on which of the two hands, Hn or HN+n, is assigned as the starting hand for each Jn. Note that no passes will be generated if all the siteswap numbers in a given OSS are multiples of N as all such throws are either “fountain” or “cascade” throws.
Implications of Tarim’s Methodology
As we did for Prechac’s algorithm, let us now study some interesting consequences of Tarim’s algorithm.
Asymmetric Passing Patterns
If Tarim’s method is used on a period P siteswap sequence to generate a passing pattern for N jugglers where P and N are not mutually prime, then, the resultant passing pattern is asymmetric. For example, let’s apply Tarim’s method to juggle the 7-object OSS “9 6 6 7” with period P = 4 as a passing pattern for N = 2 jugglers. Table 5 shows one cycle of the repeating sequence of events involved in this pattern.
Throw # | Siteswap # | Throwing Hand | Throwing Juggler | Throw Type |
---|---|---|---|---|
0 | 9 | H0 | J0 | Pass |
1 | 6 | H1 | J1 | Cascade |
2 | 6 | H2 | J0 | Cascade |
3 | 7 | H3 | J1 | Pass |
Note that the two jugglers’ roles are now asymmetric. For example, J0 never throws a “7” while J1 never throws a “9”. In contrast, Prechac’s method always produces symmetric patterns irrespective of whether P and N are mutually prime or not.
Interestingly, Prechac did provide a workaround to generate asymmetric passing patterns[4] using which he was able to generate the equivalent pattern for Table 5: “<4.5p 3 | 3.5p 3>”. This workaround however, can only distort the passes to become asymmetric. The self throws of the jugglers remain unaffected. Tarim’s method, on the other hand, can generate patterns where the self throws of different jugglers are also different. For example, if we convert the 7-object OSS “9 6 8 5” to a 2-juggler passing pattern using Tarim’s method, we find that J0‘s throws are a passed “9” and a fountain “8”, while J1‘s throws are a cascade “6” and a passed “5”. Both, the passes and the self throws made by J0 and J1 are thus, different. For completeness, we also point out that Prechac’s workaround can produce asymmetric patterns involving synchronous throws, e.g. “<4p | 3p>”, that Tarim’s method can’t.
Symmetric Passing Patterns
If P and N are mutually prime, then Tarim’s method produces symmetric passing patterns. This method however, cannot produce symmetric passing patterns involving synchronous throws which Prechac’s method produces when P and N are not mutually prime.
It can be argued that a workaround also exists in Tarim’s algorithm that can generate some symmetric passing patterns involving synchronous throws. For example, we use the OSS “9 6 6” to generate a passing pattern for 2 jugglers. Then we use a cyclically rotated OSS “6 9 6” to generate a passing pattern for 2 other jugglers and put them together to create a symmetric 4 juggler passing pattern involving 2 disjoint sets of jugglers and two jugglers (one from each set) throwing synchronously. We can do another rotation of the OSS “6 6 9” and put two more jugglers to create a 6-juggler pattern with 3 disjoint sets of jugglers and 3 jugglers (one from each set) throwing synchronously. In Prechac notation, one way of arriving at all these patterns is to start with the siteswap sequence “3 3 3” of period P = 3 and then convert them into passing patterns for:
N=2 jugglers: add k*P/N to one of the “3” throws with k = 1. The “3” throw will thus become 3+3/2 = 4.5p.
N=4 jugglers: add k*P/N to one of the “3” throws with k = 2. The “3” throw will thus become 3+2*3/4 = 4.5p.
N=6 jugglers: add k*P/N to one of the “3” throws with k = 3. The “3” throw will thus become 3+3*3/6 = 4.5p.
The resulting Prechac pattern in all three cases is “4.5p 3 3”.
A Digression
The characteristics of the subset of synchronous symmetric passing patterns generated by Prechac’s methods that this extension to Tarim’s method can also generate are:
- HCF(P,N) = HP > 1. This ensures synchronous throws.
- HCF(k,N) = Hk > 1. This ensures disjoint sets of jugglers are created.
- If N = Hk*n, then, HCF(P,n) = 1. This ensures that within a particular disjoint set of jugglers, there are no synchronous throws.
These conditions ensure that Tarim’s method can generate the passing sequence for one disjoint set of jugglers and we can then replicate this set, with cyclic rotation as required, to create the overall symmetric passing pattern including synchronous throws.
Tarim and Prechac: Complementary Algorithms
The workarounds in Prechac’s and Tarim’s algorithms notwithstanding, they are fundamentally different procedures producing a complementary range of passing patterns. Under certain conditions though, they both generate the same family of asynchronous symmetric passing patterns. For these cases, Prechac’s remark that he found Tarim’s method “slightly awkward and misleading” gives the impression that the two are competing methods for doing the same thing. But even here, I feel they complement each other in terms of the insight they provide into the patterns.
Let us use the equivalent passing patterns of period P = 4 for N = 3 jugglers represented as “4 5 11/3p 2″ in Prechac’s system and as “12 6 11 15” in Tarim’s system to compare the two.
Throw heights
Tarim’s notation has intimidatingly large siteswap numbers which would seem to imply very high throws. Prechac therefore says that “… the numbers in this [Tarim’s] system do not immediately reflect heights of throws and which throws are passes”. However, this criticism assumes that the user has not bothered to understand Tarim’s construction. We need to remember that in theory, 3 jugglers can throw at 3 times the throw rate of a single juggler. The siteswap numbers in the sequence “12 6 11 15” thus have to be interpreted in the context of the throw rate of the pattern being 3 times that when an individual juggler is juggling and the throw heights corresponding to the siteswap numbers should be scaled down accordingly.
Prechac’s construction accounts for the increased throw rate by allowing some jugglers to throw at fractional beats. Thus a pass from one juggler to another could end up having a fractional siteswap number. If this is not understood, a user could also criticise Prechac’s system for having “illegal” (fractional) siteswap numbers.
As for identifying which throws passes, Table 4 provides a simple mechanism by which one can do this in Tarim’s system.
Notation
Simply multiplying the siteswap numbers in Prechac’s sequence “4 5 11/3p 2″ by the number of jugglers N = 3 yields, “12 15 11 6”, which is not a valid siteswap sequence. Tarim’s equivalent passing sequence “12 6 11 15” does have the same siteswap numbers, but in a different order. Noting this, Prechac states that in Tarim’s system, “the sequence of numbers does not actually always denote what the jugglers have to do.” However, this conclusion once again assumes an incorrect understanding of Tarim’s notation. We need to remember that Tarim’s representation is taking into account all the throws occurring in the pattern, in the order in which they occur, irrespective of which juggler has thrown them. In that sense, Tarim’s notation ironically gives a more complete description of “what the jugglers have to do”. In contrast, Prechac’s notation is only telling us what one juggler has to do. The relative timing to be followed by a juggler with respect to the others is not made explicitly obvious in Prechac’s notation.
Numbers Juggling
Prechac’s final reason to explain why he does “not like very much Tarim’s notation” is that he is, “more familiar with siteswaps involving 3 or 4 objects than 7 or more”, implying that this makes Tarim’s system harder to use. I imagine his statement regarding siteswap familiarity is true for most jugglers, but don’t necessarily agree that this makes Tarim’s system less attractive. Given the ease with which one can generate siteswap sequences for any number of objects, this should hardly be a stumbling block. One may conversely argue that though Prechac starts with more familiar siteswap sequences, his algorithm to convert them into passing patterns is far more complex, and hence less attractive, than Tarim’s.
Just like Prechac did for Tarim’s system, one may point to the lack of intuitiveness in Prechac’s notation as well. For example, it is not immediately obvious how many jugglers are involved in a given Prechac pattern and therefore, how many objects are to be used. Further, as Sean Gandini comments in his proposed classification system for Prechac patterns, “… it can take a while to know whom to pass to and at what time.” Again, these “difficulties” are easily resolved with a proper understanding of Prechac’s algorithm.
Conclusion
The obscure “belgrano.html” file that comes with JoePass documentation seems to contain Tarim’s own response to Prechac’s post. Apart from arguments similar to those presented here, the pattern “4.5p 4.5p 4.5p 4.5p 1 3.5p 4.5p 1 3.5p” is quoted as an example to show that the Prechac algorithm cannot generate all symmetric passing patterns from valid solo siteswap sequences. Again, an adversarial mindset seems to have overshadowed an appreciation of the others’ algorithm. Prechac’s algorithm works both, by adding, or subtracting, k*P/N to the solo siteswap numbers. In fact, we can even choose to add to some numbers and subtract from others. A solo siteswap sequence from which the above pattern can be generated through subtraction is “9 9 9 9 1 8 9 1 8”.
Anyone wanting to experiment with passing patterns should explore both Tarim’s and Prechac’s algorithms. Even where their results overlap, their notation provides complementary insights. If I find anything at all to critique, it is perhaps that Tarim’s method stopped short of recommending the generalized OSS+HSS methodology as discussed in the “Passing Patterns” section of Vanilla Siteswap Extensions II. Instead, it restricted itself to a particular way of assigning hands to jugglers and also to using the HSS “2*N”.
Footnotes
- See Siteswap Notation II.
- Tarim himself used the rather more creative names Dee and Dum. But the numeric subscripts used here are easier to deal with mathematically.
- A pass from one hand of a juggler to the same hand of another juggler (i.e., right to right or left to left) is called a crossing pass. A pass from one hand of a juggler to the other hand of another juggler (i.e., right to left or left to right) is a tramline pass. The nomenclature comes from how the passes will travel if the two jugglers are facing each other.
- See “Asymmetric Passing” section of The Prechac Transformation.