<?xml version="1.0"?>
<rss version="2.0">
  <channel><title>monotype</title><link>http://bill.welliver.org/</link><description></description><generator>Fins 0.9.7</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><link>http://bill.welliver.org//space/letterpress/monotype/monotype software introduction</link><guid isPermaLink="1">http://bill.welliver.org//space/letterpress/monotype/monotype software introduction</guid><title>Monotype Computer Interface</title><pubDate>Thu, 3 Dec 2009 00:57:07 -0500</pubDate><description>The purpose of this document is to explain the premise of the 'Monotype' computer control system (referred to hereafter as 'the system') for 'Monotype' composition casters. The system consists of a physical component (hardware) which connects a control computer to the composition caster as well as a set of software that is used to run the system.&lt;p class="paragraph"/&gt;
&lt;h3 class="heading-1"&gt;Hardware&lt;p class="paragraph"/&gt;&lt;/h3&gt;
The purpose of the hardware assembly is to allow a computer to control the various pneumatic inputs on the composition caster, as well as to report machine cycle position and timing to the computer interface.&lt;p class="paragraph"/&gt;
The hardware component of the system consists of 3 major assemblies: the computer interface board, the air valve bank and the air bar adapter. Typically, the hardware interface is attached to a composition caster in a semi-permanent fashion. While the interface requires no modification to the caster and is fairly straightforward to attach, it is usually easiest to install it and run the caster from computer.&lt;p class="paragraph"/&gt;
The computer interface board connects to the caster control computer using an industry standard USB (Universal Serial Bus) interface. The interface board allows the caster control computer to control the air valve bank, and also informs the caster control computer of the cycling of the composition caster. An external power supply connects to the computer interface board and provides the 12 volt power needed to activate the various air valves. Additionally, the interface board is electrically isolated from the computer (using optical isolation) in order to protect against any dangerous electrical conditions which may accidentally appear between the caster and computer.&lt;p class="paragraph"/&gt;
The air valve bank is a set of solenoid activated pneumatic valves, 31 in all, which activate the various air pins and actuators present on the composition caster. The air valves are mounted on a manifold which can be hung from a wall or ceiling near the casting machine. The air valve bank is connected to a compressed air source at 'Monotype' standard 15 PSI, as well as to the computer interface board via cable and the air bar adapter via a set of flexible hoses.&lt;p class="paragraph"/&gt;
The air bar adapter consists of a machined bar which is placed over the 31 openings on the paper tower in place of a paper ribbon. A set of clamp brackets hold the adapter bar on the paper tower. Additionally, an electronic sensor is attached to the paper tower in order to detect the caster cycle.&lt;p class="paragraph"/&gt;
&lt;h3 class="heading-1"&gt;Software&lt;p class="paragraph"/&gt;&lt;/h3&gt;
The software portion of the system consists of 2 major components: the electronic ribbon (called eRibbons) generator and the caster control application. The caster control application is installed and runs on a computer connected to a composition caster using the computer control interface. We'll start by examining the caster control application first.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;The Caster Control Application&lt;/b&gt;&lt;p class="paragraph"/&gt;
As we've mentioned, the caster control application runs on a machine which is physically attached to a composition caster via the caster control hardware interface. The purpose of the caster control application is to send the appropriate control signals to the hardware interface at the appropriate times in order to simulate the effect of having a paper ribbon running through the caster. The caster control application is fairly simple in operation: it resembles the controls of a cassette deck or cd player. Using the caster control application, a "pre-punched" eRibbon is converted to air signals at the casting machine. The caster control application provides a set of simple operations that can be performed, such as loading a ribbon, starting or stopping the advance of the eRibbon as well as controls that allow the operator to advance forward or back through the ribbon, line by line.&lt;p class="paragraph"/&gt;
The ribbon generator can be run on any computer, not necessarily one attached to a caster control interface. This separation of tasks allows an operator to generate ribbons from the comfort of an office, or while away from the foundry. When a ribbon is generated, the operator need merely transfer the prepared eRibbon to the caster control computer using a CD, USB flash drive or network.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;The Ribbon Generator&lt;/b&gt;&lt;p class="paragraph"/&gt;
Using the ribbon generator, an operator manages the various pieces of information necessary to make eRibbons. Most of these pieces of data (we refer to these as  files or objects) are directly analogous with aspects of the standard 'Monotype' paper ribbon system. These objects are:&#xD;
&lt;ul class="minus"&gt;
&lt;li&gt;Stopbar Definitions&lt;/li&gt;
&lt;li&gt;Matrix Case Arrangements (MCA)&lt;/li&gt;
&lt;li&gt;Ribbon Generator input&lt;/li&gt;
&lt;li&gt;eRibbons&lt;/li&gt;
&lt;/ul&gt;eRibbons are the direct equivalent of a punched paper ribbon. They describe the air signals required to control the casting machine for a given job and are the ultimate goal of the Ribbon generator software. eRibbon files are saved in a simple text format and are used by the caster control application. An eRibbon can be examined and modified by hand, if necessary.&lt;p class="paragraph"/&gt;
Stopbars and MCAs are very similar to stopbars and matrix arrangements or keybars employed in the traditional 'Monotype' composition system. Additionally, the MCA contains some extra information used to drive certain aspects of ribbon generation. The Stopbar and MCA objects are stored as files by the ribbon generator in standard XML format. Subject to the requirement that they be correctly formatted, these files can be edited by hand or using other tools by the operator, in addition to the supplied editing tools.&lt;p class="paragraph"/&gt;
Ribbon Generator Input is combined with information specified by Stopbar and MCA objects to produce an eRibbon. The Ribbon Generator Input is a text file which is similar in nature to HTML; that is, it contains the text to be cast, and is "sprinkled" with specially formatted control strings. These control strings instruct the ribbon generator to perform special functions, such as quadding a line or engaging letterspacing. Ribbon Generator Input files can be prepared using a standard text editor, such as TextEdit on the Mac.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Working with Stopbars&lt;/b&gt;&lt;p class="paragraph"/&gt;
Stopbar arrangments, or wedges, are the first and most basic component used in generating electronic ribbons. They represent the unit width that a given wedge will produce when employed in the composition caster. In our electronic system, stopbar arrangements serve the following purposes:&#xD;
&lt;ol class="alpha"&gt;
&lt;li&gt;provide the default width for a sort when creating MCAs&lt;/li&gt;
&lt;li&gt;during the ribbon generation process, they determine whether a sort being cast requires adjustments in its width&lt;/li&gt;
&lt;/ol&gt;Creating a new Stopbar is fairly easy, and it's pretty satisfying, as you can add a new wedge in very little time and feel like you've accomplished something. It's important to get the wedge/stopbar arrangments entered correctly, as everything else you do will be affected by this.&lt;p class="paragraph"/&gt;
A fairly comprehensive list of stopbars with their width assignments are available from the Alembic Press website:&lt;p class="paragraph"/&gt;
&lt;span class="nobr"&gt;&lt;img height="9" width="8" src="/static/images/Icon-Extlink.png" alt="&amp;#91;external]"/&gt;&lt;a href="http://www.alembicpress.co.uk/Typecaster/stop.htm"&gt;http://www.alembicpress.co.uk/Typecaster/stop.htm&lt;/a&gt;&lt;/span&gt;&lt;p class="paragraph"/&gt;
To create a new wedge, click on the "Wedges" tab, and then "New Wedge". Give the wedge a name (such as "S158") and click on "Create".&lt;p class="paragraph"/&gt;
This will take you to the wedge position screen where you'll punch in the units for each position on the wedge. Do that (make sure you've entered them in correctly!) and then click on "Save". If you realize you've made a mistake, you can go back and make changes by clicking on the wedge name/number from the "Stopbar arrangements" menu.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Working with MCAs&lt;/b&gt;&lt;p class="paragraph"/&gt;
The second component used by the ribbon generator is the Mat Case Arrangement, or MCA. The MCA describes the various sorts that are contained in a given physical matcase. MCAs may be of various geometries based on the particular version of composition caster you have (15x15, 15x17 or 16x17). Each position in the matcase may contain a sort, a space, or nothing at all.&lt;p class="paragraph"/&gt;
Spaces come in two types: fixed spaces or justifying spaces. Each MCA may contain exactly 1 justifying space, which also doubles as a standard fixed space. The position of the justifying space will determine the minimum possible justifying space width. Normally, the justifying space will be placed in a 5 or 6 unit row, which will result in a minimum justifying space width of either 3 or 4 units, respectively.&lt;p class="paragraph"/&gt;
Sorts describe a particular matrix present in the MCA. A given sort has a few attributes: &#xD;
&lt;ol class="alpha"&gt;
&lt;li&gt;the alphabet associated with the sort (bold, italic, small caps, etc)&lt;/li&gt;
&lt;li&gt;the width, in units, that the sort should be when cast&lt;/li&gt;
&lt;li&gt;the activator, that is, the character or characters that will trigger the sort to be cast when present in the input text, which must be unique for a given alphabet&lt;/li&gt;
&lt;li&gt;the display value, which is how the sort will be represented in soft proofs&lt;/li&gt;
&lt;/ol&gt;Normally, the activator and display value will be the same, however for flexibility they may be different. Normally, the activator is simply the character that appears on the matrix, such as "a", or "!". In certain cases, it may be desirable to employ a unique activator, such as if you have a logogram, ligature or alternate form that you want to use selectively. for example, an italic alphabet may have both a standard "M" as well as a swash variant. In this case, each "M" must have it's own unique activator. As an example, if we normally want to employ the standard "M", we might make its activator be "M", while the swash "M" might have "_M" as its activator. If, in the input text, we want to use the swash "M", we can cause it to be used by inserting "_M" into the text.&lt;p class="paragraph"/&gt;
You may notice from the list of information stored for each sort that its width may be specified. The wedge associated with a given matcase and a mat will determine the default width of a sort placed in the MCA, however you can change this, for example if:&#xD;
&lt;ol class="alpha"&gt;
&lt;li&gt;you are using a non-standard wedge and want to ensure that a sort is cast at its correct width, which may be different than the width provided by the wedge&lt;/li&gt;
&lt;li&gt;you know that a given sort would be better cast by default on a wider or narrower body&lt;/li&gt;
&lt;/ol&gt;If a sort is defined to use a width that is not the same as the width provided by a wedge at the desired matcase position, the ribbon generator will use various techniques to ensure the sort is cast at the requested width. The MCA editor will indicate mats that have differences between the requested width and the wedge by highlighting the sort in yellow.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;The MCA Editor&lt;/b&gt;&lt;p class="paragraph"/&gt;
During the creation of a new MCA, a name for the MCA is provided. This name can be as descriptive as desired, though since the MCA is stored as a file on disk, it is best to keep the names simple, avoiding punctuation or other special characters that may be forbidden or confusing within filenames.&lt;p class="paragraph"/&gt;
The operator should select the correct matcase size when creating a new MCA. Valid sizes are 15x15, 15x17 and 16x17. Note that a caster must be properly configured for using matcases other than 15x15. Currently, it is not possible to change the matcase size from within the MCA editing tool, but can be changed by manually editing the MCA file.&lt;p class="paragraph"/&gt;
When creating a layout, you specify the default wedge (stopbar) to be used. This enables the matcase editor to pre-fill the unit width values for any sorts you add. All sorts start out the unit width of the row they're positioned in. Of course you can change that if you want. For example,  if you want to put a 6 unit sort in a row that is normally 5 units, the ribbon generator will adjust the width of the sort being cast by using unit-shift, unit-adding or the justification wedges. To change the unit width of a character, click on it and set the value to whatever you want (there are limits, of course&amp;#8230; you probably can't put a 18 unit "W" in a 5 unit row and have things work.) Again, the layout will show those sorts whose widths are not the same as the wedge position by coloring the background yellow.&lt;p class="paragraph"/&gt;
The stopbar selected when creating an MCA is used to automatically select the proper Stop bar when generating an eRibbon. The specified Stopbar may be overridden at ribbon generation time, for example if the standard stopbar is unavailable.&lt;p class="paragraph"/&gt;
The MCA editor provides a point-and-click interface for editing the contents of a MCA. The operator can either drag-and-drop a sort into the MCA from a list of unplaced sorts, or manually by clicking on a given matcase position in order to edit the matrix present in that position.&lt;p class="paragraph"/&gt;
Clicking on a matcase position will pop up a "matrix editor", where you can choose from an empty matrix, a fixed space, a justifying space or a sort. If you choose a sort, you'll enter information about that matrix.&lt;p class="paragraph"/&gt;
Any sorts you've added since the last time you saved will be blue.&lt;p class="paragraph"/&gt;
Below the MCA display is a space that describes any "problems" with your arrangement. For example, the problem display may say,&lt;p class="paragraph"/&gt;
Matcase contains duplicate mat: I|E:new C 9, orig G 8&lt;p class="paragraph"/&gt;
That means that positions C9 and G8 both contain the same matrix, in this case an italic "E". One of them is probably wrong, though if your arrangement does actually have more than one italic E, that's probably okay, but the ribbon generator will only use the first one it finds. You can make the wrong one a blank matrix, or a fixed space, or perhaps there's actually a different mat in that position.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Managing sort variants&lt;/b&gt;&lt;p class="paragraph"/&gt;
A common cause of "Matcase contains duplicate mat" warnings is when a matcase contains multiple variations of a given sort for a particular alphabet. If, for example, your arrangement has a regular italic "E", and a swash "E",  you might only want to employ the swash E in certain places. So, you'd leave the regular "E" as it is, and give the swash "E" a different activator. The activator is the text in your ribbon file that will trigger that matrix to be used. Normally, the activator is the same as the character, but they don't have to be. You could make the activator for the swash e something like "_E_", so that if the ribbon generator encounters that bit of text, it knows you really meant "use the swash E".  A good option (though you are free to choose a convention that suits you) to use "@E_SWASH".  The "@" at the beginning tells the ribbon generator to not use it unless I tell it to actually to, using a special code in the text (the activator command). That way, it's less likely to get accidentally used if the input text contains the activator. You can do the same thing for ligatures that you don't want to automatically use, such as "st" or so on. See the "Ligatures" section below.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Ligatures&lt;/b&gt;&lt;p class="paragraph"/&gt;
By default, any ligatures you add to a matcase will automatically be used when they appear in the ribbon input. For example, if if your text has the word "ruffle" in it, the ribbon generator will notice the "ffl" and cast an "ffl" ligature instead of the 3 individual letters.  If you don't want a ligature to be used automatically, you add a "@" sign to the beginning of it's activator. Activators that begin with the "@" sign are special. They won't get used, even if the activator sequence appears in the text. You'd use the activator command (see below) to call such sorts into use. For example, if you add a "ct" ligature and you only want to use it by specifying it manually in the ribbon input, you type "ct" in the character box and "@ct" in the activator box. Then, in your input text you can cause the "ct" ligature to be cast by including "@ct" in your text: for example "benedi&lt;a@ct&gt;".&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Manual Matrix Editing&lt;/b&gt;&lt;p class="paragraph"/&gt;
By clicking on a postion in the MCA, a pop-up editor will appear that allows modification of any of the parameters of the matrix in the selected position:&#xD;
&lt;ul class="minus"&gt;
&lt;li&gt;type of matrix: empty, fixed space, justifying space or sort. Each matcase should contain exactly one justifying space. The position of the justifying space in the matcase will determine the minimum size that a justifying space may be cast. A justifying space will also be used as a fixed space when necessary.&lt;/li&gt;
&lt;/ul&gt;for sorts, the following information may be provided:&#xD;
&lt;ul class="minus"&gt;
&lt;li&gt;character: the character or sequence of characters which will be displayed in previews of the generated ribbon.&lt;/li&gt;
&lt;li&gt;weight: type of alphabet the matrix belongs to, such as italic, small caps, etc. The default alphabet in a MCA should be marked as "Roman".&lt;/li&gt;
&lt;li&gt;activator: the character or sequence of characters that will cause the matrix to be cast when appearing in a ribbon input file, such as "A" or "&amp;" or "ffl"). Multi-character activators that begin with "@" will not be automatically employed when they appear in the input text; they must be specifically brought into use by a special command sequence. By default, the activator is populated with the same value as the character value, described above&lt;/li&gt;
&lt;li&gt;unit width: by default, the unit width specified by the default Stopbar selected during MCA creation. this may be overridden as necessary, such as when using one of the various width manipulation mechanisms (unit shift, etc)&lt;/li&gt;
&lt;/ul&gt;Matrices that have been changed since the last save are surrounded by a blue border. Matrices which have a specified unit width different than the width provided by the default Stopbar for the MCA (such as in a unit shift arrangement) will have their background highlighted in yellow.&lt;p class="paragraph"/&gt;
To add a sort to an MCA manually:&#xD;
&lt;ol&gt;
&lt;li&gt;select the location you'd like to add the custom sort to, and click on the cell (the pointer may or may not change to the "pointing finger", but it shouldn't matter).&lt;/li&gt;
&lt;li&gt;When you click on the matrix position, a popup should appear that allows you to set that matrix position as a sort (there will also be options for fixed and justifying spaces, or empty). Choose "sort" and a set of options should appear.&lt;/li&gt;
&lt;li&gt;Type the custom sort character into the "character" field. If you hit tab, it should also copy the same sort into the "activator" field.&lt;/li&gt;
&lt;li&gt;Click "save", and the matrix picker should disappear.&lt;/li&gt;
&lt;li&gt;The custom sort should appear in the matrix position you just edited.&lt;/li&gt;
&lt;li&gt;Click "save" to save the MCA.&lt;/li&gt;
&lt;/ol&gt;1 Creating Ribbons&lt;p class="paragraph"/&gt;
Once you have defined Stopbars and MCAs, you can use these to generate eRibbons. To generate an eRibbon, you must tell the ribbon generator about the text you'd like to set. You may do this in one of two ways: a) by creating a text file that you provide to the ribbon generator or b) for smaller texts, by entering the text directly into the ribbon generator.&lt;p class="paragraph"/&gt;
&lt;style type="text/css"&gt;
.noteMacro {
background-color:#FFFFCE;
border:1px solid #F0C000;
margin-bottom:5px;
margin-top:5px;
text-align:left;
}
&lt;/style&gt;
&lt;table cellpadding='5' width='85%' cellspacing='8px' class='noteMacro' 
border="0" align='center'&gt;&lt;colgroup&gt;&lt;col width='24'&gt;&lt;col&gt;&lt;/colgroup&gt;&lt;tr&gt;&lt;td valign='top'&gt;&lt;img 
src="/static/images/warning.gif" width="16" height="16" 
align="absmiddle" alt="" border="0"&gt;&lt;/td&gt;&lt;td&gt;&#xD;
If you are generating a text that contains non-ASCII characters (simple english text), from a text file, you must make sure that the text is saved in UTF-8 format. If your text contains non-ASCII characters and you do not provide UTF-8, unexpected results, including errors, may occur.&#xD;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Ribbon generation codes&lt;/b&gt;&lt;p class="paragraph"/&gt;
A ribbon input file is basically plain text that contains special codes that tell the ribbon generator to perform specific functions, such as quadding a line or inserting a particular ligature into the generated text. The following table includes a list of these special codes that can be used to perform these special functions.&lt;p class="paragraph"/&gt;
Note that in order to create a new paragraph, or to break a line in a particular place, you must use one of the codes below; the ribbon generator ignores extra white-space (tabs, spaces and empty lines).&lt;p class="paragraph"/&gt;
&#xD;
&lt;table _parsed="1"&gt;
&lt;tr&gt;
&lt;th&gt;Control Code &lt;/th&gt;
&lt;th&gt; Description&#xD;&lt;/th&gt;
&lt;/tr&gt;&lt;tr&gt;
&lt;td&gt;&amp;#60;A&amp;#91;activator]&gt; &lt;/td&gt;
&lt;td&gt; insert character or ligature identified by &amp;#91;activator]&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;qo&gt; &lt;/td&gt;
&lt;td&gt; quad out the current line and begin a new line&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;p&gt; &lt;/td&gt;
&lt;td&gt; start a new line, quadding out if the line cannot be justified (differs from &amp;#60;qo&gt; in that &lt;qo&gt; will always result in spaces of the minimum allowable width)&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;i&gt;...&amp;#60;/i&gt; &lt;/td&gt;
&lt;td&gt; select italic alphabet for the text contained within, if available&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;b&gt;...&amp;#60;/b&gt; &lt;/td&gt;
&lt;td&gt; select bold alphabet for the text contained within, if available&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;sc&gt;...&amp;#60;/sc&gt; &lt;/td&gt;
&lt;td&gt; select small cap alphabet for the text contained within, if available&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;center&gt; &lt;/td&gt;
&lt;td&gt; center justify&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;left&gt; &lt;/td&gt;
&lt;td&gt; left justify (aka ragged right)&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;right&gt; &lt;/td&gt;
&lt;td&gt; right justify (aka ragged left)&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;justify&gt; &lt;/td&gt;
&lt;td&gt; default justification mode&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;s&amp;#91;n]&gt; &lt;/td&gt;
&lt;td&gt; insert a fixed &amp;#91;n] unit space&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;l&amp;#91;n]&gt;...&amp;#60;/l&amp;#91;n]&gt; &lt;/td&gt;
&lt;td&gt; adjust all sorts contained within by adding &amp;#91;n] units (letterspacing)&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;indent&amp;#91;n]&gt;...&amp;#60;/indent&amp;#91;n]&gt; &lt;/td&gt;
&lt;td&gt; indent paragraphs, where N is a positive or negative integer indicating the number of units to indent. Negative numbers trigger hanging indentation.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;header&gt;...&amp;#60;/header&gt; &lt;/td&gt;
&lt;td&gt; define the current header for all (even and odd) pages. &#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;footer&gt;...&amp;#60;/footer&gt; &lt;/td&gt;
&lt;td&gt; define the current footer for all (even and odd) pages.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;eheader&gt;...&amp;#60;/eheader&gt; &lt;/td&gt;
&lt;td&gt; define the current header for even pages.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;efooter&gt;...&amp;#60;/efooter&gt; &lt;/td&gt;
&lt;td&gt; define the current footer for even pages.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;oheader&gt;...&amp;#60;/oheader&gt; &lt;/td&gt;
&lt;td&gt; define the current header for odd pages.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;ofooter&gt;...&amp;#60;/ofooter&gt; &lt;/td&gt;
&lt;td&gt; define the current footer for odd pages.&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;pagebreak&gt; &lt;/td&gt;
&lt;td&gt; manually force a page break&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;setpagenumber n&gt; &lt;/td&gt;
&lt;td&gt; set the current page number to &amp;#91;n].&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;pagenumber&gt; &lt;/td&gt;
&lt;td&gt; insert the current page number as an arabic numeral&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;romanpagenumber&gt; &lt;/td&gt;
&lt;td&gt; insert the current page number as an upper case roman numeral&#xD;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&amp;#60;lowercaseromanpagenumber&gt; &lt;/td&gt;
&lt;td&gt; insert the current page number as a lower case roman numeral&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;&lt;p class="paragraph"/&gt;
&#xD;
very simple example:&lt;p class="paragraph"/&gt;
&lt;div class="code"&gt;&lt;pre&gt;&lt;pre&gt;&#xD;
&amp;lt;center&amp;gt;&#xD;
My Life Story&amp;lt;qo&amp;gt;&#xD;
&amp;lt;i&amp;gt;by Bill Welliver&amp;lt;/i&amp;gt;&amp;lt;qo&amp;gt;&#xD;
&amp;lt;qo&amp;gt;&#xD;
&amp;lt;justify&amp;gt;&#xD;
It was a dark and stormy night. &amp;lt;qo&amp;gt;&#xD;
&lt;/pre&gt;&lt;/pre&gt;&lt;/div&gt;
</description></item><item><link>http://bill.welliver.org//space/letterpress/monotype/monotype interface prospectus</link><guid isPermaLink="1">http://bill.welliver.org//space/letterpress/monotype/monotype interface prospectus</guid><title>monotype interface prospectus</title><pubDate>Tue, 2 Jun 2009 17:41:55 -0400</pubDate><description>&lt;b class="bold"&gt;Introduction&lt;/b&gt;&lt;p class="paragraph"/&gt;
&lt;i class="ital"&gt;Note: The following material rambles a bit. Please don't hesitate to get in touch with me if you have any questions.&lt;/i&gt;&lt;p class="paragraph"/&gt;
The Monotype composition caster computer interface, or "system," as I'll refer to it in the future, consists of 2 parts: a) the hardware (physical) interface and b) the software components that generate electronic ribbons and drive the physical interface. The hardware has proven to be quite reliable and is in use in at least 15 foundries. The software that drives the caster is pretty well tested, and most development activity on that front involves niceties rather than core functionality. The ribbon generation system is currently where most of my efforts are directed, and where there's most room for improvement. I've personally generated ribbons for real projects, up to 40 pages in length. Others have used it to cast far lengthier texts, which should be a good indication of it's current state of usefulness. The good news is that because all of the hard work to be done is in software, there's no downside to getting started with fitting people out with hardware components.&lt;p class="paragraph"/&gt;
A few words about the software portion of this effort and how "upgrades" are going to be handled. Since I don't really see this as a money making enterprise, I have no plans on charging any additional money for the software. I will keep a list of planned enhancements that I am planning on making (the TO-DO list), and those enhancements will be available on an ongoing basis. If you need something added a) more quickly than I was planning or b) that isn't on my personal TO-DO list, I'm open to someone "sponsoring" that work on a case by case basis. Generally speaking, I commit to bug fixes for at least 12 months following shipment of your interface.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;What will it cost me and what are the ground rules?&lt;/b&gt;&lt;p class="paragraph"/&gt;
As I mentioned, I'm not in this to make money. The costs below pretty closely reflect the cost of parts from suppliers with a very modest increase to cover shipping of parts and administrative hassle. If for some reason costs go down because of high interest, I'll pass that savings along. I don't anticipate costs to increase greatly in the near future, however if prices have increased between the time I calculated cost and the time I place the order, the amount due upon completion will be adjusted accordingly. To start ordering parts, I'll need 50% of the cost initially as a non-refundable deposit with the remainder due before shipping. If you back out for some reason and I am able to find someone to take the interface in your place, I'll refund your deposit once the unit's sold. A check or wire transfer (with the fees paid by the sender) is the easiest way for me to accept money. Unfortunately, Paypal has limitations on quantity, so this isn't a workable option.&lt;p class="paragraph"/&gt;
A piecemeal approach is also a potential option; please contact me if you'd like to discuss this possibility.&lt;p class="paragraph"/&gt;
Total: US$2750 up-front, US$2750 before delivery; US$5500 total (Approximately US$5630 for non-US delivery).&lt;p class="paragraph"/&gt;
Shipping in the US is included, shipping outside of the US would be extra and will probably cost about USD 130.&lt;p class="paragraph"/&gt;
Build time is approximately 12 weeks depending on vendor shipping schedules and my own work and travel schedule.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;What you'll get&lt;/b&gt;&#xD;
&lt;ul class="minus"&gt;
&lt;li&gt;The latest Caster Controller and Ribbon Generator software&lt;/li&gt;
&lt;li&gt;Access to the internet based Ribbon Generator website&lt;/li&gt;
&lt;li&gt;The interface, including the electronics and pneumatics&lt;/li&gt;
&lt;li&gt;A mounting enclosure for the interface board&lt;/li&gt;
&lt;li&gt;A pneumatic regulator and pressure gauge. The system works best when high pressure air is fed to a regulator attached to the interface. This ensures that there is enough recovery capacity to drive the pneumatics on the caster properly.&lt;/li&gt;
&lt;li&gt;Power supply and appropriate power cord for your locale&lt;/li&gt;
&lt;li&gt;USB Cable&lt;/li&gt;
&lt;li&gt;Software updates for at least a year&lt;/li&gt;
&lt;/ul&gt;&lt;b class="bold"&gt;Other items you'll need&lt;/b&gt;&#xD;
&lt;ul class="minus"&gt;
&lt;li&gt;plumbing to connect the air manifold to your compressed air system (such as a quick-disconnect fitting, etc). The air manifold will include a female 1/8 NPT port that your fittings can connect to. I like to use a quick disconnect fitting so that it's easy to remove the unit for repairs, etc. I can help get you set up with what you need as part of a separate conversation.&lt;/li&gt;
&lt;li&gt;an Intel-based or Apple Silicon (M1, M2) Mac with a USB port. The current version of the caster control software supports MacOS 10.12 and newer. Additionally, a "cloud" based version of the ribbon generation software is available for use anywhere you have an internet connection.&lt;/li&gt;
&lt;li&gt;a hanging mechanism. I'll supply a length of plastic hanger strap that you can screw to the ceiling but you'll need to supply appropriate screws or fashion something more elegant yourself, such as a mounting panel or enclosure. The supplied interface will allow the air valve manifold to hang up to 24 inches from the paper tower.&lt;/li&gt;
&lt;li&gt;I'll include a 10 foot USB cable. Similarly, the power supply cable to the interface board will be 6 feet. You may need to provide a longer cable yourself.&lt;/li&gt;
&lt;li&gt;An American or English composition caster in good working order. The computer interface places pushes the limits of the pneumatics (in particular) and any sluggishness in the mechanisms of the machine will result in less than satisfactory results.&lt;/li&gt;
&lt;/ul&gt;&lt;b class="bold"&gt;Some notes and fine print&lt;/b&gt;&lt;p class="paragraph"/&gt;
 I will include basic installation instructions (it's really pretty easy to install, so you shouldn't need much in the way of documentation). I'll test each unit for functionality (ie, air valves working, interface board working) but won't mount it on a caster. That way, the gaskets will have a chance to seat initially on your machine. Otherwise, you'll get something that matches what I've already demonstrated. The air valves are connected electrically with spade quick disconnects, which allows for easy replacement of valves should the need ever arise. The interface board is electrically isolated from the USB interface, which means that if something goes wrong on the caster side of the interface, your computer won't get fried.&lt;p class="paragraph"/&gt;
I will make sure that the equipment arrives safely and in working order. I will do my best to provide assistance getting you up and running via email. At my option, additional means of support may be offered. If you break something, I'll do my best to fix it for you, but you might have to pay for any replacement parts needed to do that. Note that because of the industrial nature of the environment this equipment will be used in, I can't provide any other warranty or guarantee.&lt;p class="paragraph"/&gt;
I think that's about it. This information is correct as of the authoring date at the top of this page. If I've left anything off, it's most likely fairly minor but I reserve the right to amend anything that's been written here.&lt;p class="paragraph"/&gt;
&lt;b class="bold"&gt;Getting Started&lt;/b&gt;&lt;p class="paragraph"/&gt;
If you're interested or have additional questions, please contact me via email at the following address: William &lt;i class="ital"&gt;at&lt;/i&gt; welliver &lt;i class="ital"&gt;dot&lt;/i&gt; org.</description></item><item><link>http://bill.welliver.org//space/start/2014-02/monotype_optical_cycle_sensor</link><guid isPermaLink="1">http://bill.welliver.org//space/start/2014-02/monotype_optical_cycle_sensor</guid><title>Monotype Optical Cycle Sensor</title><pubDate>Wed, 26 Feb 2014 01:15:26 -0500</pubDate><description>Over the past 6 years, I've had the pleasure of supplying computer interfaces for &lt;a href="http://en.wikipedia.org/wiki/Monotype_Corporation" class="wiki_link_external" &gt;&#x2019;Monotype&#x2018;&lt;/a&gt; installations at a number of type founders across the U.S. and Europe. Overall, the system works well, and its users are producing sophisticated work that they probably wouldn't have been able to otherwise. However, there is one aspect of the computer interface that's been a consistent problem and concern for me, and that is the cycle sensor.&lt;p class="paragraph"/&gt;
In order for the computer interface to work properly, it needs to know when the casting machine is ready for a signal. As originally designed, the computer control system for &#x2019;Monotype&#x2018; composition casters used a reed switch to detect the machine's cycle position. A reed switch closes, or turns "on", when a magnet moves close. Similarly, the switch opens, or turns "off" when the magnet moves away. In keeping with my somewhat arbitrary rule of "no caster modifications", this reed switch is (quite literally) clamped on the caster's air tower, and activated by a magnet attached to the rod that activates the air bar clamp. When the caster is in good operating condition, and none of the fancy attachments are being used, this system works fairly well.&lt;p class="paragraph"/&gt;
Students of &#x2019;Monotype&#x2018; equipment know that the engineers at Lanston Monotype were incredibly precise, and they left very little room for error when they designed the equipment that we're now effectively hacking. As a result, the extra length of air line that the computer interface introduces to the system is just enough that the machine isn't always able to respond to the air signals in time to act on them. The result is that signals are occasionally missed. This is especially true of machines with 15x17 mat cases or unit shift: the extra valve boxes that allow codes to do double duty cause delays that push things over the edge.&lt;p class="paragraph"/&gt;
The first attempt to improve the situation involved a modest change. The sensor was repositioned to the cam lever that operates the air bar clamp. This gave a little more wiggle room, because the cam lever operates over a fairly wide arc, allowing the reed switch to operate a little sooner. Ultimately, though, the whole approach was hindered by the fact that the cam only produces an air pulse timed to the use of a paper ribbon. We needed more flexibility in order for the system to work reliably in all situations.&lt;p class="paragraph"/&gt;
The solution turns out to to be quite elegant: a transparent disc is attached to one of the machine's camshafts. The camshaft, and by extension the transparent disc, rotates once for each cycle of the machine. A section of the disc is made opaque, and an infrared sensor is placed over the outer edge of the disc. The infrared sensor then detects the opaque segment as it rotates past, causing the air valves to send air to the caster.&lt;p class="paragraph"/&gt;
&lt;img src="/space/start/2014-02/monotype_optical_cycle_sensor/sensor.jpg" alt=""/&gt; &lt;br class="break"/&gt;
&lt;i class="ital"&gt;The optical sensor in place on a caster&lt;/i&gt;&lt;p class="paragraph"/&gt;
There are 2 aspects of the air pulse that are of interest to us: the time the pulse begins, and its length. The exact moment that the air valves are turned on can be controlled by rotating the disc in relationship to the sensor. For example, moving the disc forward in the direction of rotation causes the opaque sector to arrive at the sensor a little earlier. Similarly, the length of the air pulse can be controlled by controlling the width of the disc's opaque sector. The transparent disc is made up of a set of overlapping discs, each with an opaque section. Sliding these overlapping discs relative to each other allows the width of the opaque section to be varied, causing the air pulse to be shorter or longer.&lt;p class="paragraph"/&gt;
Now, with the new optical cycle sensor, we have complete control and simple control over the timing and duration of the air pulses to the casting machine. A few hardy souls, including &lt;a href="http://nickfuckinggill.com" class="wiki_link_external" &gt;Nick Gill&lt;/a&gt; at &lt;a href="http://www.handandeye.co.uk" class="wiki_link_external" &gt;Hand &amp; Eye Letterpress&lt;/a&gt; have been testing the new approach out, and the initial reports back are good. An added bonus is that unlike the previous reed switch, the new sensor has no moving parts to wear out, which should improve reliability.&lt;p class="paragraph"/&gt;
The new Optical Cycle Sensor is available for retrofit on existing computer interfaces, and will ship standard on future interface installations.</description></item></channel>
</rss>
