Software Documentation

Exporting a firing system scriptDocumentation

IntegrationIntermediate Last updated: September 30, 2019

11 Fire Pioneer

To create and export a script for the Fire Pioneer firing system, please follow these three steps:

  1. Design the show.
  2. Address the show (“Addressing > Address show”).
  3. Export the script (“File > Export > Export firing scripts“).

Step 3 creates the script file, which is a CSV file that you can import into the Fire Pioneer software.

Figure 1 – Fire Pioneer control panel

 

The CSV header row defines the fields, and the terminology is similar to the column headers in Finale 3D.  A few differences to note are:

  1. Track in Finale 3D means “Segment” in Fire Pioneer, no difference.
  2. Hazard in Finale 3D means “Priority” in Fire Pioneer.
  3. Part Number in Finale 3D doesn’t have a corresponding field in the Fire Pioneer script format, so it is stored in the “EffectComment1” field in the exported Fire Pioneer script.

The other minor variations in terminology and adaptations are explained in Table 3, below.

 

Table 1 – File format and encoding

File format Extension Text encoding Field delimiter End-of-line
Text .CSV UTF-8 with BOM (0xef 0xbb 0xbf) ; (semi-colon) 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.
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 with the column names, in the same format as the CSV data rows themselves.
Multi-hit pins Non-pyro effects like flames and relays can be triggered multiple times on the same module-pin address. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them.
Special characters The characters ‘ and “ and , and ; and \ and tab and newline will be filtered out of any text fields.
Minimum separation between cues None required; millisecond resolution supported.
Module specifications Supports 99 modules (numbered 1-99), each module with 32 pins (numbered 0-31).

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

 

Table 3 – Specifications of script fields

Field name Description
Eid The row number in the script, beginning with 1.
EventDescription The word “Event” immediately followed by the row number in the script, beginning with 1.
EffectDescription A description of the effect, preceded by a count in parentheses if the row represents more than one device, such as for a chain or a pair of effects ignited together.
ScriptTimeText The effect time, formatted as HH:MM:SS,DDD.
Position The position name.
Angle ASCII-art characters (\ | /) indicating the angles of the shots; multiple characters if multiple devices are ignited by this firing row, e.g., \/ for an angled pair.
Qty Number of devices ignited by this firing row if more than 1, or 1 as the minimum value.
Address The firing system address of the shot: a four digit number, the first two digits being the module number (1-99), and the second two digits being the pin number (0-31).
Priority The Hazard class, from 0-8, with 0 being the default value (the Hazard field in Finale 3D).
Segment The track number, 0-9999, with 0 being the default value (the Track field in Finale 3D).
Comment The script notes for the row (the Notes field in Finale 3D).
ScriptTimeMS The effect time, in milliseconds.
FireTimeMS The event time, in milliseconds.
Type The type of the effect, which in Finale 3D is restricted to one of these enumerated values: cake, candle, single_shot, shell, ground, rocket, mine, comet, flame, other_effect, not_an_effect, rack.
Cal The size of the effect, including units (e.g., 75mm); since double quote characters are filtered out of the exported Fire Pioneer script file, they will be missing from effect sizes in inches (e.g., 2.5 instead of 2.5″) (the Size field in Finale 3D).
Breaktime The prefire time of the effect, formatted as a floating point number (the Prefire field in Finale 3D).
Duration The duration of the effect, formatted as a floating point number.
VendorNumber The manufacturer part number of the effect (the Manufacturer Part Number field in Finale 3D).
Location The standard storage location for the effect (the Storage Location field in Finale 3D).
PRICE1 The standard price for the effect (the Price field in Finale 3D).
PRICE2 The standard cost for the effect (the Cost field in Finale 3D).
PRICE3 Finale 3D writes 0 to this field.
EffectComment1 Finale 3D writes the part number in this field (the Part Number field in Finale 3D).
EffectComment2 Finale 3D leaves this field blank.
FireoneSlat Finale 3D writes 0 to this field.
FireoneCue Finale 3D writes 0 to this field.
PyroAddr Finale 3D writes 0 to this field.

 

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.

Eid;EventDescription;EffectDescription;ScriptTimeText;FireTimeText;Position;Angle;Qty;Address;Priority;Segment;Comment;ScriptTimeMS;FireTimeMS;Type;Cal;Breaktime;Duration;VendorNumber;Location;PRICE1;PRICE2;PRICE3;EffectComment1;EffectComment2;FireoneSlat;FireoneCue;PyroAddr
1;Event1;Green Chrysanthemum;00:00:05,000;00:00:02,760;Pos-01;|;1;0100;0;0;;5000;2760;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
2;Event2;Green Chrysanthemum;00:00:05,100;00:00:02,860;Pos-02;|;1;0200;0;0;;5100;2860;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
3;Event3;Green Chrysanthemum;00:00:05,200;00:00:02,960;Pos-03;|;1;0300;0;0;;5200;2960;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
4;Event4;Green Chrysanthemum;00:00:05,300;00:00:03,060;Pos-04;|;1;0400;0;0;;5300;3060;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
5;Event5;Green Chrysanthemum;00:00:05,400;00:00:03,160;Pos-05;|;1;0500;0;0;;5400;3160;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
6;Event6;Green Chrysanthemum;00:00:05,500;00:00:03,260;Pos-06;|;1;0600;0;0;;5500;3260;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
7;Event7;Green Chrysanthemum;00:00:05,600;00:00:03,360;Pos-07;|;1;0700;0;0;;5600;3360;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
8;Event8;Green Chrysanthemum;00:00:05,700;00:00:03,460;Pos-08;|;1;0800;0;0;;5700;3460;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
9;Event9;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-08;|;1;0801;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0
10;Event10;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-09;|;1;0900;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0

Figure 1 – Example Fire Pioneer script

 

Table 4 – Example files

Download link Explanation
firepioneer.csv Example exported file  (CSV)
test_firepioneer.fin Example show file