Path: steve Newsgroups: rec.juggling Distribution: local Followup-To: From: steve@geosys.co.uk (Steve Hawtin) Reply-To: steve@geosys.co.uk Organization: Oilfield Systems Ltd. Subject: Another notation Keywords: notation juggle I have read of a number of "languages" for describing juggling patterns, as yet I have not found one that "feels right", however I thought I might have a go at creating such a language. Now while I am only an ameteur juggler I am a professional programmer so over a weekend I put together a program that takes pattern descriptions in an "English like" language, and displays them on a computer screen. I have sent the program off to piggy.cogsci.indiana.edu and I understand that it is available via ftp or ftpmail. The program is called "jug" you will require a 'C' compiler on your system to compile the source code once it has been compiled you can start it with a command such as jug five.jug the second parameter is the file describing the juggle you want it to perform for you. The basic output relies on just having an ASCII terminal, so it should be possible to use the program on any machine with a compiler. There are some problems with porting to some systems, if you find any fixes for your system please mail them to me and I will put them in the standard version. Of course the main element of interest is the description of juggles to perform, so here is some idea of how the language works. When I do a pattern it can be split into three steps, 1. Pick up the balls, clubs, rings or cats. 2. Throw some of them into the air 3. Now that everything is moving start the pattern With this in mind a pattern description should contain a description of these three steps. The first step just tells me what to pick up in which hand, and possibly where my hands should be, for example if I have a red ball, a green club and a blue cat right red green left blue but what about where my hand should be? It seems logical to me that my right hand is at 0 when throwing in the cascade, with positive positions going towards my left hand, and the same in reverse for my left hand, so say postion 3 on my right hand is the same as position 0 on my left hand # right -2 -1 0 1 2 3 4 5 # left 5 4 3 2 1 0 -1 -2 of course we have more than one dimension, otherwise juggling would be slightly harder than it currently is, so we could specify the position as right red green at -1,1,1 where the second component, height, is positive upwards, and the third component is positive away from you. Now that we know where to start from the second step is to describe what to throw up to get the pattern started, when we have instructions there are a number of things that must be specified. First we have the time at which to do the action, we can do this by having a "time label" such as "89:" for time 89. Next we need to know what to do, so if at time 0 we want to do a throw we could say 0: throw green right from -1,2 with a throw we must also specify how far across to throw the ball and how high to throw it. One way to do this is to say where the ball should be when it falls back to the level it started from, and how many moves later this should be, so if we say 0: throw green right from 0,0 towards 3,4 then at time 4 the green ball will be at 3,0 on its way to the floor. So we could add 4: catch left green at 0 since 3,0 for the right hand is the same as 0,0 for the left. Of course we could also have moved the hand at time 3 and caught the ball at time 4 by saying 3: move left 0,0 4: catch left Now we have a number of objects travelling arround under the influence of gravity, we need to specify a pattern of actions to stop them hitting the floor. Using the same instructions that were used for the second stage a simple cascade could be 3: throw left towards 4,4 # No need to specify ball, only one there 4: catch left # Just catch the nearest at -1,0 6: swap hand # Using the other hand loop time 3 # Go back to label 3 and do again Of course the '#' character introduces a comment that lasts until the end of the line. So we can now have a complete description of a shower, it could be # Right hand shower # First where the balls are to start with right red green left blue # Next how to get into the pattern 0: throw right green towards 3,6 from 0 # Finally the pattern itself 3: throw right towards 3,6 throw left towards 3,2 5: catch right 6: catch left loop 3 Unfortunately this language still does not feel right, it seems to be too complicated and requires too many explicit numbers in the commands. However it does allow the description of more complex patterns than site swaping and the interpreter makes the job of creating new juggles easier. If anyone has any ideas for improvements, please get in touch. Steve Hawtin EMAIL : steve@geosys.co.uk Oilfield Systems Ltd., BANGNET : ...!uunet!mcsun!uknet!geosys!steve Worthy Park House, PHONE : +44 962 882448 Abbots Worthy, Winchester, FAX : +44 962 885085 Hants. SSO21 1AN, ENGLAND.