SPAFT

Stedman Proving And Formatting Tool

During the time I have been Peal Recorder of the Ancient Society of College Youths, I have collected quite a selection of compositions rung by the Society. I recently decided it was time to organize this collection, and thought that at the same time I could make some of it available on the WWW. Since they form a major proportion of the pile, and in general have not been published elsewhere, I have started with the compositions of Stedman Cinques.

In order to reduce the chance of transcription errors, my approach was to prove the peals as I went along, using MicroSiril, which was also used to generate output that could be inserted straight into the html file. This is a bit tedious, since stedman does not lend itself to a general-purpose proving program, and the results, although acceptable, are far from ideal.

Having processed about forty compositions by this means, I noticed that I was short of peals by Paul Mounsey. Following a request for some, he furnished me with an envelope stuffed full, and it was at this point that I decided I needed something to make my job a bit easier.

The result is SPAFT, which was designed with the following requirements in mind:

Input

Should be quick and easy, but simple for the program to interpret.

Output

Should format the composition in a similar layout to that traditionally used for publication.

If the touch does not come round, the normal reason will be an error in the input (which should be apparent from the course-heads), so details of falseness are irrelevant. If it does come round, and there is any falseness, the six-ends of the courses containing at least the first repeated row should be output, with the false sixes highlighted.

Implementation

ASCII standard C++, for portability.

I think I have more or less succeeded with these aims. The software is available here as a 32-bit widows version for download. This requires libraries msvcp50.dll and msvcrt.dll. If you need these, then download and unzip redist.exe.

Alternatively, send an for the source code, which uses the Standard Template Library (STL).

The program runs from the command line, and takes a single input parameter - the filename. Output is written to the standard output stream, and can be redirected to a file if required, e.g:

spaft peal.in > peal.out
If no input fileneame is specified, input is taken from standard input. This means that the microSIRIL interface can be used.

An Example input file is as follows:

{ 5009 by PABS }
"by Philip A B Saddleton" {title}
#11 { Cinques (default, so not required) }
!2q { Start from 2nd row of a quick six (default !4q) }
<6.19> { Displayed calling positions (optional) }
{ white space, stops and new lines interchangeable separators }
a[1.5.7.8.10.11.13.14.15.16.17 (20)] { course length defaults to 2n }
A[6.19 19 6.19 19 19 6.19 19 6.19 19] 
b[2.5.6.13.14.15.16.19]
B[6.19 19 19 6.19 19 19 6.19 19]
2.13s.15.16.19
B 
_ {extra underline}
b A
This should be fairly self-explanatory when compared with the output, which is then:
5009 Stedman Cinques by Philip A B Saddleton
 3124567890E  6 19 
 -----------------
 12546378E90   (a)
 -----------------
 5241         -  2 |
 423165       -  3 |A
 3214         -  2 |
 1243         -  2 |
 -----------------
 2145638709E   (b)
 -----------------
 413562       -  3 |
 312564       -  3 |B
 2153         -  2 |
 -----------------
 12456378E90  2.13s.15.16.19
 125364         B
 -----------------
 2154638709E   (b)
 214365         A
 -----------------

(a) =  1.5.7.8.10.11.13.14.15.16.17 (20 sixes)
(b) =  2.5.6.13.14.15.16.19
Start from rounds as the second row of a quick six
Here are a few other examples: The last of these doesn't come round as published, so I added an extra course, from my turning-course generator. The output is as follows:
4284 Stedman Caters by Thomas Hooley
(incorrect version taken from Comp 501)

 123456789  1  5  6  8 15 
 ------------------------
 241356978  -     s     - |
 4321             s     - |
 3142             s     - |
 1324             s  s  - |A
 3412             s     - |
 4231             s     - |
 2143             s     - |
 ------------------------
 2314                   -
 214365897      (a)
 132564789  -  -  -     -
 ------------------------
 3152             s  s  -    |
 123465        -  -     -    |
 ------------------------    |
 241365978  -     s     - |  |
 4321             s     - |  |
 3142             s     - |  |
 1324             s  s  - |  |
  132465978               |  |
  341527689               |  |
  345718296               |  |
  473859162               |  |
  478936521               |  |
  794682315               |  |
s 796243851 *             |  |
  927365418               |  |B
  923571684               |A |
  259138746               |  |
  251894367               |  |
  582416973               |  |
  584627139               |  |
  865743291               |  |
  867359412               |  |
- 638974512               |  |
  639481725               |  |
  346192857               |  |
  341265978               |  |
 3412             s     - |  |
 4231             s     - |  |
 2143             s     - |  |
 ------------------------
  214365978 
- 132549678 
  135927486 
  391758264 
  397816542 
- 983675142 
  986534721 
  859462317 
  854291673 
  528147936 
  521783469 
  275316894 
  273659148 
  762934581 
  769428315 *
- 647893215 
  648371952 
  436185729 
  431562897 
 431562897  -  -        -
 142365789       B
 431562987      (b)
 142365798       B
 123456789      (c)
 ------------------------

(a) =  1.4.7s.10s.12s (16 sixes)
(b) =  1.5.6.7s.15.18
(c) =  1s.2.4.9s.10.11.13 (14 sixes)
Start from rounds as the last row of a quick six
150 repeated rows
Rows 1750 and 2119 are both  679243851 
Rounds occurs after 4284 changes

I am not the first to go down this path. Nearly 30 years ago Frank King produced a program called SORE (Stedman or Erin), for which the emphasis was on a fairly natural input style. However the aims were somewhat different, with a priority on memory and speed requirements that are hardly necessary today.


GRAFT

Following a request from Richard Allton, I have produced a similar program to prove Grandsire. Most of the code is the same, but because of the way the input is parsed it was simpler to create a new program than make it another input option. Download GRAFT.

Input is as you might expect by analogy to SPAFT, but a few points may need clarification:

Sample input - Major and Caters.

COMPBASE

COMPBASE allows both SPAFT and GRAFT definitions to be contained in a single database, along with the ability to call external programs. Any further development of SPAFT and GRAFT will be to this software, which I hope will eventually expand to include other types of composition (e.g. twin-bob stedman, or spliced). There is a rudimentary help included. See the sample input for examples. In order to run microsiril, download CBPROVE.BAT and copy PROVE.COM to the working folder.

Download compbase.zip


Software

Philip's Home Page


This page created by Philip Saddleton

Last updated 27 April 2004