Software Documentation

Software Documentation

Firing SystemsDocumentation

Integration Intermediate Last updated: January 1, 2022

10 FireByWire

To create and export a script for the FireByWire 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 your firing system, or edit in a text editor.

 

Figure 1 – The FireByWire firing system

 

The exported script is a human-readable text file that contains little more than the essential information for a firing system controller to fire the show — the ignition time, effect time, channel, position, and effect name.

 

Table 1 – File format and encoding

File format Extension Text encoding Field delimiter End-of-line
Text CSV ASCII Comma CRLF 

 

The script contains rows of data fields separated by commas, and a few header rows.   The script contains a variable number of columns that depends on the number positions, enabling each position’s data to shown in a separate pair of columns to represent the effects and channels of the shots on the position.  The special characteristics of the script are shown in the following table:

 

Table 2 – Special characteristics

Special characteristics Description
Sort order of rows Rows are sorted by ignition time (despite the fact that the effect time is the first field in each row).
Columns Scripts contain three columns (row number, effect time, and event time), plus a pair of columns for each position to hold the effects and channels of shots at the position.
What rows represent In FireByWire scripts exported by Finale 3D, each row identifies a unique firing pin ignition at a single position (i.e., unique module-slat-pin-position).  Although FireByWire scripts are capable of representing shots at multiple positions in the same row (since the script format has columns for each position), Finale 3D keeps each shot on a separate row in its exported FireByWire scripts.
Module/slat/pin addresses The FireByWire system employs modules with 4 slats of 8 or 16 pins each, for 32 or 64 pins in total per module. 
Special characters Fields include ASCII characters other than: ‘ , ; ” \ tab and newline and other control characters.

When you export a firing script for FireByWire, Finale 3D presents an “Export Options” dialog with options for different versions, as shown in Table 3.

 

Table 3 – Export options

Option name Description
Version Choose the 1ms time resolution or 100ms time resolution script version.

 

 

Each script row has the fields shown in Table 4.

 

Table 4 – Specifications of script fields

Field name Description
Row number The row number count, beginning with 1.
Burst The time of the visual impact of the effect, such as the break of the shell. Format is MM:SS.DDD.
Launch The exact time of the firing system’s “ignition event” (application of a voltage to a pin) that ignites e-matches or triggers a sequencer that ultimately leads to the ignition of effects. Format is MM:SS.DDD.
<First position name> The effect description of a shot in the first position.
Channel The channel of a shot in the first position, in the format MMM-SP, where MMM is the module, beginning with 001, and S is the slat from 1-4, and P is the pin letter from A-P.
<Next position name> The effect description of a shot in the next position.
Etc. Additional columns for the remaining positions and their channels.

The example script with three positions in Figure 2 below and the corresponding exported script in Figure 3 illustrate the arrangement of position columns in the FireByWire script export format.

 

Figure 2 – A script showing the module and slat numbers in the “Rail” column and the pin letter in the “Pin” column.

 

The three positions in the script shown in Figure 2 become pairs of columns in the FireByWire exported script, shown in Figure 3.

 

FireByWire script
Exported from Finale
MLE Pyrotechnics
C:\Users\will\Documents\test_firebywire01.wav
x,Burst,Launch,Pos-01,Channel,Pos-02,Channel,Pos-03,Channel
1,00:05.000,00:02.760,Green Chrysanthemum,001-1A,,,,
2,00:06.000,00:03.760,,,Green Chrysanthemum,002-1A,,
3,00:07.000,00:04.760,,,,,Green Chrysanthemum,003-1A
4,00:09.883,00:07.643,Green Chrysanthemum,001-1B,,,,
5,00:10.883,00:08.643,,,Green Chrysanthemum,002-1B,,
6,00:11.883,00:09.643,,,,,Green Chrysanthemum,003-1B
7,00:15.731,00:13.491,Purple Chrysanthemum,001-1C,,,,
8,00:15.731,00:13.491,,,Purple Chrysanthemum,002-1C,,
9,00:15.731,00:13.491,,,,,Purple Chrysanthemum,003-1C

Figure 3 – Exported FireByWire firing system script corresponding to the script of Figure 2

 

Table 5 – Example files

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