the Passing DataBase

1. Introduction

Multi-hand notation

Multi-hand notation has been developed by Ed Carstens for use with his juggling program JugglePro. It is an analytical notation system that extends the siteswap construction to an arbitrary number of hands and to an arbitrary juggling rhythm.

Once the juggling hands are allowed to throw at any given beat, one can describe transitions between async patterns and sync patterns or even more bizarre rhythms. Note that in the original mhn system no attention is paid to catching beats, only throwing beats are taken into account.

Multi hand notation, much like standard siteswap notation, is useful both to provide short descriptions of patterns and to simulate them on juggling softwares.

Causal diagrams

Causal diagrams were invented by Martin Frost. They offer appealing geometric pictures of juggling patterns, particularly passing patterns.
Let f denote the permutation on (a subset of) HxZ defining a juggling pattern, where H is the set of hands and Z is the set of integers. Then, essentially, the causal diagram of the pattern is the ladder diagram of f-2 (that is: f translated 2 beats in the past).

Now, why is this mapping f-2 so interesting?
While the original permutation describes the paths in HxZ of the objects juggled, the new one f-2 describes the paths, or the timetable, of the problems encountered by the jugglers, which is often all we are interested in: we do not care which clubs we juggle, we merely want to sustain the pattern as a whole.

This construction works fine both for async patterns and sync patterns. It needs to be adapted however in order to allow for more general patterns: transitions between different rhythms, galloped patterns, etc ...

Causal diagrams are often much easier to use than siteswap/mhn descriptions when one tries to work out syncopations in passing patterns. They are also a powerful tool to discover (i.e., most often, rediscover :)) new patterns.

This page

In this page and its complement, the hurries page, the mhn system and the causal diagram construction are adapted so as to obtain a complete correspondence beween the two notation systems.

The main novelty in the mhn system used here is that it explicitely takes into account the "catching beats", henceforth refered to as dwell beats.

The causal diagram construction is also slightly modified: this concerns essentially the representation of an empty hand 0 and a short hold 1x .

2. Relaxed juggling

Common juggling wisdom as well as practise suggest that in normal situations, the same hand cannot throw twice in a row (unless hurried throws are allowed). Between two throwing beats, there must be one beat where the hand catches a new object and prepares for the next throw.

Let s be the siteswap value of a throw, s >= 2 , s tells us how many beats in the future the object will be rethrown (or maybe held further for a while), it does not tell us however how many beats the object spends in the air.
The usual implicit assumption is that the airtime value will lie somewhere strictly between s-2 and s , depending on the style of the juggler, or in technical terms on his choice of dwell ratio.

Here we will adopt a "relaxed" style of juggling, assuming an airtime value strictly less than s-1 which means that once an object is caught, it will spend at least one beat in the hand before being rethrown. This assumption is necessary if we want to allow the possibility to violate it later in the hurries page! Anyway, in this page it will be maintained throughout:


To a throw of siteswap value s corresponds an airtime value
strictly less than s-1

After an object has landed, it will be prepared for the next throw:


For an object thrown with siteswap value s , the juggling action that takes place in the target hand s-1 beats later, i.e. one beat before it is rethrown, is refered to as a dwell hold

Exceptions for some "small throws":

The "relaxed juggling" assumption does not apply when s=0 - an empty hand - or s=1x - a short hold. There will be no corresponding dwell hold.

When s=2 - a "throw" usually interpreted as a long hold - it does apply if this 2 is indeed thrown.

When s=1 - a fast handacross - the relaxed juggling assumption is difficult to meet: the club should land in the past! We will maintain it however, obviously an idealization, and the dwell hold takes place immediately in the target hand.

3. Notations

Throws are denoted as in JoePass!
However, for "inactive" hands, it is essential to differentiate between the two following cases:

The hand is empty.
The hand has just caught an object and is doing a dwell hold.

Note that this distinction makes no sense in the original mhn system since both cases correspond to an absence of throw and pure mhn, as well as genuine siteswap theory, only cares about throws.

For a given hand, a dwell hold will be denoted by a dash: - .

4. Causal arrows

For an object thrown at beat t with a siteswap value s>=2 , landing will occur between beats t+s-2 and t+s-1 , according to the previous assumption. Therefore the target hand must empty itself or be already empty s-2 beats in the future.
Hence the causal arrow representing the throw will be of length s-2 .
In particular, a 2 throw will be depicted by a closed loop and a 2x throw by a vertical arrow.

A fast handacross 1 requires the target hand to be ready for catch immediately, i.e., it must have emptied itself previously. Hence a 1 beat crossing backwards arrow.

A short hold 1x is a problem only for this very hand that is currently doing the short hold. We will depict this by a big point.

An empty hand 0 can only occur if this hand has thrown or was already empty one beat before. Hence a 1 beat horizontal backwards arrow.

A dwell hold - is not really a throw. It will not be depicted

Actually, short holds 1x and long holds 2 do not really need to be depicted. They offer no additional information to reconstruct a mhn pattern from a causal diagram (unless one wants to emphasize if a 2 is thrown or held). For clarity, and particularly in passing patterns, they will often not be depicted.

5. Summary of assumptions and notations

At each beat, each hand either :
mhn value causal arrow
dwell hold - not depicted
empty hand 0 1 beat backwards arrow
short hold 1x big point (or not depicted)
long "hold" 2 closed loop (or not depicted)
fast handacross 1 1 beat crossing backwards arrow
slow handacross 2x vertical arrow
throw s >= 3 s s-2 beats forwards arrow

6. Examples

Solo juggling


mhn: (- , 1)(1 , -) or (- , 1)%

slow 1


mhn: (0 , 1x)(- , 1)(1x , 0)(1 , -) or (0 , 1x)(- , 1)%

async to sync shower

51 to (2x,4x)

mhn: (- , 5)(1 , -)(- , 5)(1 , -)(- , 5)(1 , -)(- , 1x)(2x , 4x)(- , -)(2x , 4x)(- , -)...

sync to async shower

(2x,4x) to 51

mhn: (2x , 4x)(- , -)(2x , 4x)(- , -)(2x , 5)(- , -)(1x , 5)(1 , -)(- , 5)(1 , -)...

3 cascade at height 5


mhn: (0 , 1x)(- , 5)(1x , 0)(5 , -) or (0 , 1x)(- , 5)%

3 shower to high 3 switch

5151 5x1 51x51x...

mhn: (- , 5)(1 , -)(- , 5)(1 , -)(- , 5x)(1 , -)(- , 5)(1x , 0)(- , 5)(1x , 0)...

2 at height 3!


mhn: (- , 3x)(1x , 0)%

4x throw

mhn: (- , 3)(3 , -)(- , 4x)(1x , -)(3 , 1x)(- , 3)(3 , -)...

4x flash

mhn: (- , 3)(3 , -)(- , 4x)(4x , -)(0 , 4x)(- , 0)(3 , -)...

from 4 sync to 4 async

mhn: (4 , 4)(- , -)(4 , 4)(- , -)(4 , 5x)(- , -)(4 , 5x)(- , 0)(4 , -)(- , 4)(4 , -)(- , 4)...

from 4 async to 4 sync

mhn: (- , 4)(4 , -)(- , 4)(4 , -)(- , 5x)(4 , -)(- , 5x)(4 , 0)(- , -)(4 , 4)(- , -)(4 , 4)(- , -)...

Passing patterns

3 ultimate

There is only one backwards going causal chain. Passes are drawn in red for emphasis.
See the oddpatterns page for more interesting passing patterns where the jugglers throw sync throws.

mhn: <(0 , 3p) (- , 0) (3p , 0) (0 , ) |
(0 , -) (0 , 3px) (- , 0) (3px , 0)>

4 ultimate

With flat vertical passes as in Marc and Benji's beautiful number.

mhn: <(- , 2p) (2p , ) |
(- , 2p) (2p , -) >

5 ultimate, 2 beats version

(holds are not represented)

mhn: <(2 , 3p) (- , -) (3p , 2) (- , -) |
(- , -)(2 , 3px)(- , -) (3px , 2)>

Gandini's patterns from hell

Take any symmetric passing pattern where the jugglers throw singles in phase and choose any number k (preferably prime with the period of the pattern). Then replace every kth single by a double.

E.g. PPS with k=5:

mhn: <(1x , 3p) (3p , -) (- , 3) (3p , -) (- , 4px) (1x , -) (3 , 1x) (- , 3p) (3p , -) (- , 3) (4px , -) (- , 1x) (1x , 3p) (3 , -) (- , 3p) (3p , -) (- , 4x) (1x , -) % |
(1x , 3p) (3p , -) (- , 3) (3p , -) (- , 4px) (1x , -) (3 , 1x) (- , 3p) (3p , -) (- , 3) (4px , -) (- , 1x) (1x , 3p) (3 , -) (- , 3p) (3p , -) (- , 4x) (1x , -) %>

A 36 beats cycle! Hopefully, the causal is of no particular interest :)


Kickups may be seen as particular cases of multiplex throws. The analysis developed in this page extends easily to multiplex patterns. I skip however a formal mhn description of the patterns for simplicity. Also, in the causal diagrams below, I omit the backwards going arrows that indicate that the foot is empty after the kickup.

6 to 7 Shower

J2 throws a straight double pass on his pass beat, this is a signal for J1 to switch into the 7 clubs version of the pattern.

6 to 7 Waltz

J2 throws a straight double pass (of siteswap value 4.5) on his pass beat, thus signalling to J1 to switch into the 7 clubs PSS pattern with double passes.

6 to 7 PPS

J2 throws crossing double passes on his pass beats, this again is a signal for J1 to start doing his part of the 7 clubs version of the pattern.