The Bells Applet: Change Ringing on the Web

</COMMENT> For You the Bells Toll (if you press START)

Author: Kees van den Doel

If this applet does not work for you, please let me know by emailing me at kvdoel@cs.ubc.ca. Please let me know which operating system and web-browser you are using. This Applet needs the Java2 plug-in, or be viewed from a Java2 enabled browser. It has been tested on Windows98 and Linux.

If you want to run this applet offline, you can download this whole page.

This applet allows you to design a bell tower with up to eight bells, and ring the bells using change ringing. I didn't know what that was, until very recently, so if my explanation of change ringing given below is not very accurate you know why.

You can edit the pitches of the bells, the sharpness of the hammer striking the bell, and the number of modes. The sounds of bells 1-2(B) are synthesized using physical modeling. Some technical details of the synthesis can be found here . No sounds have to be downloaded over the net to get the applet to play bells 1 and 2(B) but bell 3 uses sampled sounds, which amount to about 130K, compared to about 66K for the applet.

The number of "modes" is the number of vibration modes of each bell that are taken into account. Setting this to a large value gives a complex sound but takes more time to compute. Setting it to a low value makes the sound simpler, but computes faster. If you set it to one, you get sinusoidal sounds.

You can chose between two bells, called Bell 1 and Bell 2, 2B or "Sample". The original sounds were analyzed and a model based on those sounds was made. I found the original sounds on the web at http://sunsite.unc.edu/pub/multimedia/sun-sounds/sound_effects (Bell 1, towerclock.au) and http://www.angelfire.com/ca/jamtt/sounds.htm (Bell 2(B), bell.wav). You can hear the original by clicking on the words "Bell" in the first sentence of this paragraph.

When you select "Sample", the applet uses the recorded sounds from bell 2, transposed over an octave. The first time you try this, there may be a delay, because the audio files have to be downloaded over the network to your machine. Under Netscape 3 they will be loaded once and then you should have no further problems. Under Netscape 4 the authors of Netscape decided they know better what I want then myself, and Netscape 4 does not load the sounds, even though I ask for this, until you actually start to use the bells. This messes up the timing quite a bit. Nevertheless, after you've played all eight bells the sounds are supposed to remain in memory and the delays should not occur again.

You will noticed that the sampled sounds are qualitatively much better than the synthesized sounds. I am trying to figure out why. If you can formulate clearly what is lacking in the synthesized sounds compared to the sampled sounds, please share your thoughts with me.

You can also select between several tunings of the bells. Note that these options are not available if you use sampled sound.

Once the bell tower is built (if you change parameters, press the Apply button to compute the new sounds), you can play it. You can ring the bells using "change ringing". This is an old art, whereby a sequence of bells is repeatedly rung in series, but in a different order each time. You can think of it as listing the permutations of the bells. There is a whole science built on this. For some introductory material on this art, see here for example.

You input the "method", which is the algorithm to permute your bells, at the bottom of the applet, using "place notation". Detailed information of what this is can be found here . It is simple and elegant. Suppose you want to use 7 bells (you can use up to 8 in my applet). You must start with 1234567 and then this series is permuted, as determined by your entry in the place notation field at the bottom of the applet. The next sequence of 7 is obtained by flipping pairs of adjacent bells. The reason for this lies in the physical effort of pulling the ropes on real bells. For example, you can flip 23 and 45. But you can't flip 34 and 45, because then 3 would move two places, and that's not allowed. And don't even think of flipping 3 and 6!

The pairs are written in a funny way, namely by specifying which bells are not to change place. So "125" means 1 and 2 and 5 remain fixed, so that 34 exchange place, and 67 exchange place. This notation requires some care, because for example "25" is impossible, because if 2 can't move, then 1 can't move either. Make sure that whatever you enter in the field is consistent or you may not get what you want. If all pairs change, it's written as "X". For an odd number of bells the last one remains in place for an "X". So for seven bells "X" is equivalent to "7".

The complete algorithm is now written by listing the changes, separated by a dot. So, "x.127.347" would mean: Play 1234567, then flip all adjacent pairs, giving 2143657, then keep 1 and 2 in place but flip 34 and 56, giving 2134567 (note that when I say "flip 23" I mean flip those places, not those bells), then flip 12 and 56 to give 1234657. When you're done you go back to the beginning and repeat, so then comes "x" (flip all) giving 2143567, etc. Eventually you'll come back where you started, as there are only a finite number of permutations.

Note that "x.27.34" is illegal, as it is impossible since 1 must remain at a fixed position if 2 is. A simplified notation allows this, and other simplifications, but this won't work on this applet.

One more thing: If you write "x.14" I will assume you want to ring 4 bells, flipping 12 and 34, then flipping 23, then 12 and 34 again, etc. But if you want to use 6 bells for example, you can write "x.14 (6)", or even "x.14(6)", if you are too lazy to type the space. But if you put spaces anywhere else you won't get what you think.

For some traditional "methods" look at this site. The notation there is the simplified one, which allows for something like "repeats" (actually retrogrades), so you'll have to convert the examples given there to the fully expanded place notation used by me. If you are really unhappy with it you can try to beg me to write a parser for the compact notation.

Some minor details:

You can randomize the rhythm with the slider. To give it a more human (imperfect) feel.

You can "scRaMbLe" the bells into some weird sounds.

If you like, you can mail me at kvdoel@cs.ubc.ca. If you are a change ringer, I'd like to hear what you think of this applet, if it's useful to you, etc.