Software Documentation

Exporting a firing system scriptDocumentation

IntegrationIntermediate Last updated: June 6, 2019

13 Pyromate script file format

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 format Extension Text encoding Field delimiter End-of-line
Text .PMM ASCII Tab CRLF

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 characteristics Description
Sort order of rows Rows sorted ascending by effect time, then by module number, then by pin number.
What rows represent Each 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.

Header The 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 resolution The 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 numbering The 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, corresponding to the 12 connectors on the right side of the panel labelled A-L.
Electrical constraints The 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 row The 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 modules Digital 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 name Description
Row designation The letter “s” (denoting a digital script) or “S” (denoting a script for the analog system).
Line number The row count, beginning with 1.
Shot number The count of unique event times, beginning with 1; multiple rows with the same event time have the same shot number.
Group number Finale 3D writes the number 0.
Event time The time of ignition in hundredths of a second for digital systems, and tenths for analog systems.
Module number For 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 number A 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 link Explanation
test_pyromate.pmm Example exported file to be downloaded to controller (PMM)
test_pyromate.fin Example show file
test_smart_show.csv Example SmartShow exported file (CSV)