No user ID provided.

Software Documentation

Software Documentation

Firing System AddressingDocumentation

Intermediate Last updated: September 30, 2019

24 Custom module specifications

If you have a manual firing system, or a do-it-yourself firing system, or some other firing system that is not directly supported by Finale 3D, you can still use Finale 3D to design and export a script for your firing system by creating custom module specifications.  In fact, even if your firing system is directly supported by Finale 3D, you may find it useful to create custom module specifications in order to add virtual slats or reserve some pins for other uses (common examples are limiting a module to use only 30 pins of 32 or 15 of 16).  The menu item, “Addressing > Addressing settings > Set custom module specification…” is the first step.

The custom module specification dialog shown in the figure below enables you to define the format of the firing system addresses, including,

  • Are the addresses two part addresses (module + pin) or three part addresses (module + slat + pin)?
  • If addresses have three parts, how many slats per module?
  • How many pins per slat or module?
  • Are addresses numeric, or letters?
  • If numeric, do addresses start with 1 or 0?
  • If numeric, are addresses in decimal (normal) or hexadecimal (Pyrodigital-like)?

You can specify the answers to all of these question by filling in the “Rail Address Template” field of the custom module specification dialog.


Figure 1 – The rail address template in the custom module specification dialog defines the format of addresses.


The rail address template is a two-part or three part formula, with the parts separated by dashes.  There are no spaces in the formula.  If the formula has two parts, the address format will contain a module number and pin number, no slat.  If the formula has three parts, then addresses include a slat.

Each part of the rail address template can be a number or a letter.  If the slat or pin part is a number, it indicates the maximum number of slats-per-module, or pins-per-slat-or-module.  There’s no maximum number of modules, so the number for the module part doesn’t matter, except that it does set the minimum number of digits of the formatted number (example: 999 or 111 or any 3-digit number = 3 digits, 9 or 1 or any one digit number = 1 digit).

If the part is a letter, the letter indicates the maximum number according to what letter in the alphabet is used, e.g., the letter “D” for the slat part means four slats, A, B, C, and D.  If the template part is a number, then it optionally can be preceded by a pound sign (#), which indicates that the counting sequence begins with 1 instead of 0.  Also, if the template part is a number, then it optionally can be preceded by a dollar sign ($), after the pound sign if the pound sign exists, to indicate the number is in hexadecimal, for Pyrodigital-like firing system addresses as in #$FF-$F for modules beginning with 01, going up to FF, each module having pins 0-F.

Looking at the example rail address template in Figure 1, the custom module specifications indicate,

  • 3-digit module numbers, starting with module 1
  • Four slats per module, A, B, C, and D
  • 12 pins per slat, starting with 1.

Based on this specification, the “Rail” column in the script window will contain two part addresses identifying both the module and slat, as shown in Figure 2.  The “Pin” column always contains a single number or letter, in this case a number from 1 to 12.

Figure 2 – The Rail column in the script has the module number, or the module number AND slat number if the addresses include slats.


The top field in the custom module specifications dialog shown in Figure 1 indicates the firing system for which this custom module is being defined.  If you are creating module specifications for a firing system that is not directly supported by Finale 3D, then please select “CSV” for the firing system.   That will produce scripts as CSV text files that you can open in Excel or a text editor to format with the exact fields and syntax that your firing system requires.  If the firing system is directly supported by Finale 3D, then please select it in this field.

When you assign firing system addresses using the menu item, “Addressing > Address show…” or any of the other addressing menu items, you select the firing system and module type in the addressing dialog, as shown in Figure 3.  Please select “Custom Module” for the module type to use the custom module specifications that you defined in the “Addressing > Addressing settings…” dialog.


Figure 3 – Specify the firing system and Custom Module in the addressing dialog.


For some firing systems, the module type specifies a time unit, such as 30 fps versus 25 fps or 29.97 SMPTE DF.  If you have selected this kind of firing system, then the “Time Unit” field of the custom module specifications dialog in Figure 1 provides options for you to select the time unit for your custom specifications; otherwise just use the “Firing system default”, which is the default value.

Returning to the uses mentioned in the introduction, if your firing system is not directly supported by Finale 3D, then it’s obvious why you are creating custom module specifications — you need to!  But if your firing system is directly supported by Finale 3D, then you are probably considering custom module specifications for a specific purpose.  The most common special purpose is simply creating specifications with fewer pins than actually exist to make modules match up better with racks or label sheets or simply to leave some extra pins for the operator’s own purposes.  But one other special purpose deserves attention for its advanced uses — virtual slats.


Virtual slats

Even if a firing system does not include slats in its address format, it is often possible for people to divide the number of pins on the module into different slats.  For example, if a FireOne module has 32 pins, you may have the hardware to divide those 32 pins into four slats of 8 pins each.  Doing so may allow you to pre-wire or pre-attach the slats to rack configurations prior to setting up the show, or may allow you to use a single module to serve multiple launch positions at different locations in an orderly manner, with one slat at each location instead of e-matches stretching between the positions.

Finale 3D has phenomenal addressing features to support these uses of slats (please see Slats, virtual slats, and splitter boxes), but in order to take advantage of the the addressing features you need to use address formats that include slats.  So what are you to do if your firing system’s address format doesn’t include slats?

The answer is to create a custom module specification with “Virtual Slats” that partition the module’s total number of pins into some number of slats.  In the FireOne example of 32 pins, you can create virtual slats of 8-pins each by specifying the rail address template, #999-D-#8.  If you use this custom module specification instead of the standard module, then your addresses will appear in the script window and on reports and labels including a slat field — A, B, C, or D — for each module; and each slat will have 8 pins, 1 through 8.  However, when the FireOne script file is exported in its FIR format, the addresses will automatically be converted back to pins 1-32 per module, without any mention of slats.  In this manner, you can use virtual slats to convert your firing system from a module-pin based address format to a module-slat-pin based address format.