

                METHOD EXPLORER
                ~~~~~~~~~~~~~~~
             v3.11 (30th March 1996)


This program is intended for the production of 'blue lines', the lines which
bellringers use to learn a method, and the production in useful form of all
of the changes in a plain course of a method with roll-ups highlighted. If
you don't ring church bells (also known as campanology), then this program
will seem utterly bizarre, so either delete it now, or learn to ring. I
recommend the latter option.

The problem with most computer-generated blue lines is that they're not as
easy to read as the ones in Method 300 or that you'd write out for yourself,
mainly because places look too short. This program basically allows the
production of very nice-looking lines, with a high level of
user-customisability, and lots of bells, whistles and knobs. It should be
fairly intutive, and supports Acorn's interactive help (which you can load
yourself, or which Explorer tries to load from Resources::$.Apps if you
choose the 'Interactive Help' option from the iconbar menu).

The problem with most computer-generated change listings (that I've come
across, at least) is that they just go in one big column. This program
produces the changes across the page in leads, and can make use of printer
control codes to squeeze lots on. On an Epson LQ-850 (for example), you can
produce 20cpi text, which can accomodate a whole course of surprise maximus
on one page.

To get going, just load it up and click on the iconbar icon with Select.
This brings up the 'Start' window. From this, clicking on 'Create blue line'
will start making the method and producing the line in drawfile format.
Alternatively, clicking on the 'Preferences' button will bring up the
'Preferences' window, which allows you to alter many aspects of the look of
the blue line, as well as permanently save the settings (but not the method)
defined in the Start window. The Preferences window is also available from
the iconbar menu, as is the start window. Once your line has been produced,
clicking on Menu over the window will allow you to zoom the view of the line
and save the line as a drawfile. Clicking on 'Print changes...' goes to a
little window for producing the changes. Print will send them to the printer,
and 'Text file' will send them to Edit or similar text editor. That's pretty
much it. Below are details of the three main windows...

Preferences Window
==================

Blue line size:
    The line is produced such that its length is exactly that specified
here. Other features, such as the name of the method and the place notation,
go above and below the line, so if you're wanting to produce the line to
exact specifications, make it sufficiently small to fit. If you're producing
a method on a high number of bells, you may find that the features of the
line get a bit small, in which case you may want the program to only produce
the first half of the method. This really depends on whether you remember
methods by the whole thing or just half mirrored! Also, you can enter the
width of the page (so that the program knows where to centre the line and
place multiple lines), and the origin of the line, so that the line is
placed within any printing boundaries if printing the line later.

Line proportions:
    This is the real essence of the blue-line module of Explorer: the way
that different features have different sizes. The best way to get a feel for
them all is to experiment. The default settings are pretty good. To remind
yourself how most programs manage, change hunt, dodge and places to the same
number (20?). Treble is for the line that cuts across the blue line where the
bell passes the treble, and so a higher number here makes the treble cut
across at a steeper angle, and Blob is the radius of the little circles that
are put on the line at the lead-ends. Line width is line width, and Treble
width is the width of the Treble line. The mirror line is set to be half the
width of the Line width.

Extra features:
    'Bell numbers at lead-ends' is whether the number for the place bell is
written to the right of the line at the same vertical position as the blobs.
'Treble interaction added' puts a line cutting across the blue line where
the bell passes the treble, and a little cross to the side of the line where
the bell dodges with the treble. 'Expanded place notation' sets whether the
place notation appears at the bottom of the line in the form
36141256361456 (expanded) or 3425345 (not expanded). You can
also choose to have a whole or half-lead of changes for the method printed
to the side of the line. If you choose to do this, the program will also
work out and show how many roll-ups there are in a plain course (a roll-up
as the program understands the term is defined below). Finally, you can also
change the font that the program uses to display text on the blue line.
Because the EventShell suite (see the bottom of this file for information on
this) does not allow the program to determine how much space text takes up,
this information is worked out by the program on the assumption that the font
is roughly the same size and proportion as Trinity.Medium. If you use a
substantially different font (such as a non-proportional one like Corpus)
then text may well not be centred properly or overlap. However, it is not
difficult to deal with any anomalies like this with Draw.
    'OK' closes the window, taking the new settings. 'Cancel' closes the
window ignoring any new settings entered since the window was opened. 'Save'
does the same as 'OK' but also saves the settings of the Preferences
and the Start window inside the !Explorer directory as "LinePrefs", which
will be loaded and used the next time Explorer is run.


Start Window
============

    Enter the name of the method (which will be displayed above the line) in
the space next to 'Method name'. Likewise enter the place notation below it.
The program is very flexible in its analysis of place notations, so if you
enter "-3*4x25x36X14#5" it will still produce Cambridge. Explorer uses the
microSIRIL standard of & meaning the place notation should be mirrored and +
meaning that it should not, with & being assumed if nothing is entered.
Enter the lead-end in the relevant box as well. You can enter the lead-head
code if you want (where a-f = 12, g-m = 18/0/T). Remember that the bell
numbers go: 1234567890EABCD. You can also drag a file to this window (or the
iconbar). If you do this, the first three items in the file (separated by
spaces) will be used to enter the method data, with the first 'word' being
the title, and the other two being the place notation and the lead end
notation / code, the larger being assumed to be the place notation. So if
you want to use the microSIRIL method libraries, the thing to do is use Edit
(or equivalent) to find your desired method in the relevant file, select its
line, save this line out as a file to disc, then drag this selection file to
Explorer. A bit long-winded, I know, but EvntShell doesn't cope with memory
dragging well, and really integrating the method libraries into the program
seems to me to be a bit of a waste of effort.   
    If you choose 'Send line to !Draw', then the line will be produced and
Explorer will try to send it to whatever program would load a Drawfile if
you double-clicked on one. This is particularly useful if you want to print
the line, or edit it in some way.
    If you enter 1 for the number of lines, then the blue line will be
centred on the page (if the line is sent to Draw). If you choose more than
one line, then the lines are spaced out across the page. If you choose too
many lines for a given page width and line size, then the lines will overlap
each other. Given the default settings, you can squeeze three lines on one
page, or two if some changes are also printed to the side of the line.

Auto-intelligence:
    Auto-intelligence is there to make doing Surprise/Delight methods
easier. By analysing the place notation it works out how long a lead is and
so how many bells there are, and uses the lead-end to work out which bell is
used for the start of the blue line (basically the bell of the last digit of
the lead-end). It also checks that the method comes round at the right
place. This is all very handy, but means that if you try an Alliance method
or a principle it all goes wrong, in which case you must turn
Auto-intelligence off.

    The main buttons are fairly obvious: 'Cancel' does the same as in the
Preferences window, 'Preferences...' brings up said window, 'Create blue
line' does just that, and 'Print all changes...' brings up the Print all
changes dialogue.

    If you choose not to have Explorer send the line to Draw, then it will
display the line in a window of its own. Pressing MENU on this window will
allow you to save the line as a drawfile (though there is a problem with
saving directly to Draw, which is why I added the option in the Start
window), and change the scale of the view, from the Zoom box. You can also
bring up the 'Print all changes' dialogue.


Print all changes
=================

    This window allows you to produce a listing of all of the changes in
text form. [If you would very much like for the program to produce the
changes in Draw format, then get hold of me and I'll have a go for you]. If
you want Explorer to identify and highlight any rows with roll-ups, then
choose the 'Highlight roll-ups' option. The program considers a roll-up to
be any row with a sequence of four or more bells in order, either ascending
or descending. If the roll-up is 4 or 5 bells long, a + is shown to the
right of the change. If it is 6 or 7 bells long, a * is shown to the right
of the change. And if it is 8 or more bells long, a # is shown to the right
of the change. These are totalled at the bottom of the page as well. The
program also highlights and counts combination roll-ups (CRUs), which are a
fairly irrelevant methematical concept of musicality, if you ask me.
    Choosing 'Text file' will produce a text file of the changes, which
Explorer then tries to get a program to load, the program being whatever
would normally load a textfile when you double-clicked on one, which is
usually Edit. Choosing 'Print' will print the changes out, making use of the
information contained in the rest of the window (which can be revealed by
clicking on the toggle icon of the window). The printing system is very
naughty, sending text and control codes directly to the printer, by-passing
the printer driver. If this is a problem, then do pester me to program a
drawfile-producing routine for you.
    The Print code is the sequence of control codes that get sent to the
printer before any changes get printed. For example, you may want to set the
printer to condensed mode so that Royal can be printed out on one page. My
printer allows you to set Condensed and elite at the same time, allowing
20cpi, which means that Maximus will fit on one page. Refer to your printer's
manual for details. However, if it isn't possible for your printer to manage
such feats, the program will intelligently fit the whole course onto however
many pages it needs. You must specify the width of page that any given
control codes allows, so that the program can do this. Also, the program
spreads the leads out across the page so that they look nice. The 'Gap' is
therefore actually the minimum gap that the program will use. If you really
want to squeeze the leads in, you can set this to a low number, and likewise,
if you want to force the program to space the course out over many pages,
then set the gap higher.
    You can save the settings of this dialogue box with the Save button.
These settings are saved in the file 'ChangePref'  ie. independently of the
line preferences. 



I think that's pretty much everything. This program has gone through many
incarnations, using Schema, Drawplus and finally EvntShell to produce the
drawfiles, though none of the earlier versions have been publicly available.
The real incentive for me writing this thing in the first place was my dad:
J Alan Ainsworth, mega-ringer and Amersham bellmaster. Ta Dad!

The program usually takes up about 384k on my machine, not counting the
modules it loads. The program requires RISC-OS 3.1 or higher to run, though I
have not tested it at all on any other machines, so if it doesn't work I'll
look into it.





LICENSE
=======
This program is FREEWARE, and as such may be freely distributed as long as
you make no change to the program or files within, and that you make no
charge for the program. The copyright remains mine at all times (though see
below). There is NO warranty and I can and will NOT be held responsible for
any situation arising from the use or misuse of this program.

However, if you find this program useful, you might like to make a donation
to the Oxford University Society of Change Ringing (of which I am master, or
at least I was when I wrote this), of 10 or so, by sending me a cheque made
out to the OUSCR. I will then know you're out there and will be able to tell
you about new versions and you could perhaps suggest some improvements or
whatever.

Contact me at:
Mark Ainsworth,
10 Cheyne Close,
Amersham,
Bucks.
HP6 5LT. 
Tel (01494) 727970 (Holiday-time only)

email: quee0076@sable.ox.ac.uk
  WWW: http://users.ox.ac.uk/~quee0076
OUSCR: http://users.ox.ac.uk/~ouscr

 Cheers,

   |\/| 
   |  |ark 
   __---~~~~~
  ~


============================================================================

This program has been written using the routines supplied with the EvntShell
library which is copyright Paul Hobbs.

EvntShell is a starting point for developing your own applications that run
under the RISC-OS wimp system. The EvntShell library contains code to handle
most of the 'Events' (i.e. opening a menu, closing a window etc) that can
occur, and all your application has to do is inform the library what it
should do when certain events occur. For example a menu can be attached to a
window or to an icon - the library will open the menu for you (in the
correct position!) when the <MENU> button on the mouse is used.

Normally writing a wimp application is a very complex business, involving
much reading of the Programmers Reference Manuals, magazine articles and
examining other applications. The aim of the EvntShell library is to reduce
the need for this and to enable the speedy creation of easily maintained and
robust applications.

Distribution Licence for EvntShell

You have permission to use any part or the whole library in any Public
Domain/ShareWare project ONCE YOUR COPY HAS BEEN REGISTERED, as long as I am
fully credited (via the inclusion of this file in the program
documentation). If you wish to use these routines in a program that is for
sale (for however much and for whatever reasons) or released as copyright
material then my express permission in writing must be obtained. I maintain
copyright on all the material supplied as part of the EvntShell system
(except where noted below) and reserve the right to amend these conditions
in cases where I deem misuse.

The library code is supplied free of charge to everyone 'as is'. There is no
guarantee that it is free from bugs and no warranty is given about its
suitability for use.

Further details about EvntShell may be obtained from the author:

Paul Hobbs
Rheinpfalzstrasse 2
85049 Ingolstadt
Germany

The heap manager routines used by EvntShell are copyright Risc User and are
used with permission.

Copyright for all of the supplied relocatable modules remains with the
original authors.

-----------------------------------------------------------------------------