Before Torus was a website, it was a system for producing a hardcopy index as a small booklet. The first shape character (u or d) determines whether the tune is in the first or second half of the booklet, the second character determines which part of this half it lies in, and so on. Successive characters narrow the search down to a single page, then to a line on that page, and finally to a tune on that line.
This hardcopy index is available as a 66-page document (187kB) in PDF format (viewable with Adobe Acrobat, for example). Please respect the Torus distribution conditions.
The index is produced by a formatter program that reads the database, works out how to format the entries, and writes source for the LaTeX mathematical typesetting system (it can also produce simple text or plain TeX). This source is then processed by LaTeX in the usual way to produce the PDF file. The formatter is written in C, and a custom-written LaTeX class handles the preamble and postamble. The very first (1994) version of Torus was a 16-page index with the entries written in by hand, and initially the machine-written version always had 2n pages. However, since then the formatter has steadily grown more sophisticated in the way it packs the entries onto the pages more efficiently, then spreads them out to make the pages more readable.
Personally I now use the Palm version of Torus instead of a hardcopy, so I've stopped developing the formatter and the LaTeX class. To make things worse, since the database is now in CSV format it has to be pre-processed by a Perl script before the formatter can read it. So, although everything works, I don't feel that the formatter and its documentation are in a fit state to distribute, and I'm afraid I don't intend to make them so. However, if you're really keen to use the formatter yourself, then contact me and we'll work something out.
This page is maintained by
Thomas Bending,
and was last modified on 23 September 2007.
Comments, criticisms and suggestions are welcome.
Copyright © Thomas Bending 2010.
![]()