Type any phrase to search documentation

Software Documentation

Exporting a firing system scriptDocumentation

IntegrationIntermediateLast updated: February 17, 2020

22 Pyromate

Finale 3D supports a variety of Pyromate controllers, including 32 pin and 45 pin digital controllers, 45 pin analog controllers, and SmartShow 32 pin systems. To create and download a script for the Pyromate firing system, please follow these three steps:

  1. Address the show (“Addressing > Address show”).
  2. Export the script (“File > Export > Export firing scripts“).
  3. Download the show to your controller (“File > Download > Download firing system script to Pyromate”)

Step 2 creates the script file, which is a text file with a “PMM” extension. While it is possible to open this file in a text editor, the file is not meant for humans to read or write. It contains only the data that the controller requires for shooting the show. Thus, most Pyromate users will not need to concern themselves with the file format described in this section, except for some notes on module addresses for the 45 pin modules, mentioned in Table 2.

Finale 3D also supports the Pyromate SmartShow-based firing systems. If you use SmartShow, then you will only do step (1) and (2). Step (2) will save a CSV file instead of a PMM file, which you will open in the SmartShow software for firing the show.


Table 1 – File format and encoding

File formatExtensionText encodingField delimiterEnd-of-line

The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table:


Table 2 – Special characteristics

Special characteristicsDescription
Sort order of rowsRows sorted ascending by effect time, then by module number, then by pin number.
What rows representEach row represents a unique firing event, a module/pin/event-time combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row.

Events at different times are necessarily different rows, even if their addresses are the same. For example, two flame projector shots at different times, triggered by the same module-pin address, will be two rows because they are at different times.

HeaderThe file contains a single header row consisting of the letter N, followed by tab, followed by the show name in a padded field of 16 characters.
Time resolutionThe Pyromate digital systems support 1/100th second time resolution; the analog systems support 1/10th second resolution. Finale 3D rounds events to the required time resolution in the export process, and displays a warning in the summary dialog indicating the number of adjustments made.
Module numberingThe Pyromate SmartShow-based firing systems number modules 1-99. All other Pyromate digital systems number modules 1-99 for 32 pin modules or 100-199 for 45 pin modules.

Pyromate analog systems number modules 1-12 or A-L, corresponding to the 12 connectors on the right side of the panel labelled A-L (Finale 3D supports both 1-12 and A-L formats in the script window). Module numbers formatted as letters A-L in the script window are converted to the corresponding numbers 1-12 in the exported file.

Electrical constraintsThe Pyromate analog systems can fire multiple pins simultaneously on the same module, but cannot fire pins on different modules simultaneously. In the analog Pyromate export function, Finale 3D automatically separates simultaneous shows on different modules by a tenth of a second, or more if there are cascading conflicts, in order to satisfy this electrical constraint.
End-of-file rowThe file contains a single end of file row consisting of the letter S, followed by tab, followed by 0, followed by tab again, followed by 0 again. This row also includes trailing CRLF characters, even though it is the last row in the file.
Module addresses of 45-pin modulesDigital Pyromate controllers use module address range 1-99 for 32-pin modules, and 100-199 for 45-pin modules. Thus if you address a show for 45-pin module types, the module addresses start at 101 and count up; whereas if you address a show for 32-pin modules types, the module addresses start at 1.

If you address a show for 45-pin modules and 32-pin modules (indicating the module types by right clicking positions and editing their position properties), the addressing function will address all the modules in the same sequence of numbers, but it will add 100 to all the 45-pin module addresses. Thus a sequence with three 32-pin modules, followed by three 45-pin modules, followed by three 32-pin modules would be 1, 2, 3, 104, 105, 106, 7, 8, 9.

If you prefer a sequence like 1, 2, 3, 101, 102, 103, 4, 5, 6, or any other sequence, you can set the “Start Module” field for all the positions by editing their position properties. Make sure that positions with 45-pin modules get addresses >= 100, and make sure if positions have multiple modules that their ranges do not overlap.

After the header, each row in the script has a number of fields separated by the tab character. The names of these fields and their descriptions are the following:

Table 3 – Specifications of script fields

Field nameDescription
Row designationThe letter “s” (denoting a digital script) or “S” (denoting a script for the analog system).
Line numberThe row count, beginning with 1.
Shot numberThe count of unique event times, beginning with 1; multiple rows with the same event time have the same shot number.
Group numberFinale 3D writes the number 0.
Event timeThe time of ignition in hundredths of a second for digital systems, and tenths for analog systems.
Module numberFor digital systems, a number from 1-99 for 32-pin modules, or 100-199 for 45-pin modules; for analog systems, a number from 1-99.
Pin numberA number from 1-32 for 32-pin modules, or 1-45 for 45-pin modules.


An example script is shown below. Notice the last two rows are at the same event time but have different modules and therefore cannot be combined into a single row.

N	test_pyromate.pm
s	1	1	0	276	101	1
s	2	2	0	286	102	1
s	3	3	0	296	103	1
s	4	4	0	306	104	1
s	5	5	0	316	105	1
s	6	6	0	326	106	1
s	7	7	0	336	107	1
s	8	8	0	346	108	1
s	9	9	0	356	108	2
s	10	9	0	356	109	1
S	0	0

Figure 1 – Example Pyromate script


Table 4 – Example files

Download linkExplanation
test_pyromate.pmmExample exported file to be downloaded to controller (PMM)
test_pyromate.finExample show file
test_smart_show.csvExample SmartShow exported file (CSV)