Software Documentation

Software Documentation

Firing SystemsDocumentation

Integration Intermediate Last updated: June 23, 2025

9 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. Hazard in Finale 3D means “Priority” in Fire Pioneer.
  2. 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).
Segments Fire Pioneer supports dividing a show into multiple segments corresponding to songs.  By default, every song file you add to your show in Finale 3D corresponds to a separate segment, beginning with zero for the first and counting up.

Finale 3D provides an export option for Fire Pioneer to export the script as a single file, in which case the segment number will be zero for all rows in the exported file, or as “One script file per segment”, in which case the segment numbers in the files correspond to the segment numbers of the songs.  See segments for instructions.

Timecode FSK timecode files for Fire Pioneer contain a segment number embedded in the timecode signal along with the timing information.  The segment number must correspond to the segment number in the associated script file.  If you have a show with multiple songs, each song representing a segment, then you should export the show from Finale 3D using the “One script file per segment” export option, which will generate multiple script files, one for each song.

To generate the associated audio files that include the songs on one channel and the timecode on the other channel, use the function, “File > Export > Export soundtrack…”. In the export soundtrack dialog, select “Music mono (mixed)” for either the left or right channel and “Fire Pioneer FSK (one file per segment)” for the other channel.  This will generate multiple WAV files, one for each song, with the embedded segment numbers corresponding to the segment numbers in the script file.

If you want verify any timecode file is correct or ascertain what segment number it contains, please try the function, “File > Tools > Analyze timecode in soundtrack file…”  This function works on all timecode files, whether they are generated from Finale 3D or from other software.

 

 

Table 3 – Export options

Option name Description
Segments Either “One script file” or “One script file per segment”

 

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 4 – 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 segment number, 0-9999, with 0 being the default value (defined by songs or segment markers 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 5 – Example files

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