From: Don M. <df...@ri...> - 2009-04-20 11:28:07
|
2009/4/15 Richard Smith <ri...@ex...>: > But my suggestion here is that instead of hard-coding these, > we instead equip the system with a way of defining these > concepts ourselves. GSiril goes some way towards this: > assuming b and p are already defined, we can define W on 8 > bells as: > > W = repeat( { b, /*8?/: b, break; p } ) There's an interesting dichotomy when we're describing touches, that from your description it would appear GSiril cuts both ways: In one way when describing touches we want to enumerate chunks of the changes that generate rows. These are the things that typically (though not always!) get repeated in multi-parts and repeated blocks and so on. Siril operates exclusively at this level. In another way when describing touches we want to talk about the rows produced. This is what we're doing when we use calling positions such as M,W,H that refer to an observation bell. I believe Graham's notation in the prototype operates exclusively at this level. But in real life we tend to drift back and forth between these two views. I guess human beings find this sort of model munging natural, but it's a nuisance when you're trying to come up with an unambiguous notation a machine can understand. Perhaps the most obvious example of such model munging is the way Grandsire is conventionally laid out on higher numbers: 23456789 1 2 3 4 ____________________ 324765 s - - s 23456987 s - - 42356798 - - The calls at 1, 2, 3 and 4 are at the level of changes. They're "make the relevant call at the first, second, ..." lead that comes up, without regard to the position of any bells in the rows produced. If this were part of a repeating block where subsequent block heads might include 23165978 every bell would be in a different postion in that subsequent repetition, so it's got to be a reference to changes, not rows. And yet to turn this into something meaningful we've got to look at the rows produced to know when the course ends. That is, to know how many plain leads to hang on the end of each of these courses, as the first is four leads, the second five leads, and the sixth six leads. Making matters even worse, the only evidence we have for this is the printed course heads, or perhaps our own implicit smarts as to the back bells probably coming together at a course end. And yet when we repeat this block, we're repeating the changes, not looking at the rows again, as we're not even being show most of the course heads for the repeats! That is, we want a sequence of changes, but we need the rows in the first use of those changes to help us define which changes we wanted, but then stick exlusively to a sequence of changes. I'm not entirely clear on how GSiril is spanning these two different models, though apparently it is. That /*8?/: thingie pattern matches against the rows generated, and is some kind of conditional? So I could define some block that includes these pattern matching thingies and say "repeat it five times" and each of those six instances of it might have a completely different length and different composition of changes? Is there someway to have GSiril describe, say, a seven part that uses calling positions against an observation bell, with the observation bell changing in each part? How about a calling on higher numbers that uses calls with respect to the tenor to describe shuffling the big bells around, but M,W,H with respect to just the little bells? -- Don Morrison <df...@ri...> "In many ways, the long-standing animus between the Red Sox and the New York Yankees is authentic, deep-rooted and wholly organic. In [other] ways, it’s a bit more like pro wrestling." -- Sean McAdam, _The Boston Herald_, 7 January 2009 |