Software Documentation

Software Documentation

Firing SystemsDocumentation

Integration Intermediate Last updated: May 23, 2025

18 Happiness

The process of designing a show and assigning firing system addresses for the effects in Finale 3D begins with laying out the launch positions, then dragging and dropping effects in the 3D design view, and then executing a function to assign the firing system module numbers (0-99), port letters (A, B), and output terminals (1-24), which together are called the firing system “addresses.”

In Finale 3D, the Happiness port letter is called the “slat”.  The combination of the module number and port letter together is called the “rail”.  For example, the rail address for module 10, port A is written “10-A”.  Output terminals in Finale 3D are called “pins.”

Users of the Happiness firing system may be accustomed to thinking of modules and launch positions as the same thing, with a position using both port A and port B if the number of terminals on a single module isn’t enough.  If you want to specify the modules per position in this manner in Finale 3D, please right-click on the positions and do “Edit position properties” to set the firing system type, module or slat type, and start module number for each position.

There are two options for module or slat type: “Happiness 24ch Port A and B”, or “Happiness 24ch Port A only”.  If you select the first option, then the launch position will use port B of the start module number if the number of required output terminals exceeds 24.  If you select the second option, an additional module will be used (start module number + 1) if the number of required output terminals exceeds 24.

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

  1. Set module type. Choose one module type for the full show in “Show > Set show information…” or choose different module types per-position by right clicking positions and doing “Edit position properties” from the context menu.
  2. Address show. Use the menu item “Addressing > Address show…” or any of the other addressing methods (see Addressing basic instructions).
  3. Export script. Export the script file (“File > Export > Export firing scripts…“).  Choose whether you want Finale 3D to employ the Happiness script row modes that represent entire sequences of shots in a single row, as described in Table 3.

 

Figure 1 – Happiness firing system

 

Table 1 – File format and encoding

File format Extension Text encoding Field delimiter End-of-line
Text file .csv ASCII Comma Carriage return  + linefeed (0x0D0A)

 

Table 2 – Special characteristics

Special characteristics Description
Time representation The Happiness script format has a time resolution of 0.1 seconds.  Rows in the script employing script row modes other than Mode 0 can achieve a higher time resolution per shot by specifying an entire sequence.  The duration of the entire sequence still has 0.1 second resolution, but the individual shot times within the sequence divide that duration into intervals effectively at a higher resolution.

The firing system has a latency of 50 milliseconds between rows.

Sort order of rows Rows sorted ascending by event time (ignition time).
What rows represent Each row represents a single shot or a sequence of shots depending on the mode.
Script row mode Each script row has a mode that defines whether it represents a single shot or a sequence.  Finale 3D provides options when exporting the script to use the single shot mode (Mode 0) always, or to use whatever modes represent the script most efficiently.  The two options are logically the same.  Both options represent the show as designed.  The option to use all modes is recommended since it has the highest effective time resolution.

0: Single shot on one pin of one module
T: Sequential or simultaneous shots of a range of pins on one module
A: Center to outside pattern of shots across a range of sequential modules, using the same pin on each module
B: Forward sequence of shots across a range of sequential modules, using the same pin on each module
C: Simultaneous shots across a range of sequential modules, using the same pin on each module
D: Reverse sequence of shots across a range of sequential modules, using the same pin on each module
E: Outside to center pattern of shots across a range of sequential modules, using the same pin on each module

To take advantage of the sequence modes, the sequences in your designs need to use sequential module numbers and the same pin number in each module.  If you have a front of positions, for example, with sequences from left to right, center to outside, etc., the module numbers in those positions need to be sequential from one end to the other, and each sequence needs to use the same pin number across the modules.  To ensure the “Addressing > Address show…” dialog assigns the firing system addresses optimally for the sequence modes you may need to assign start modules to launch positions by right-clicking the positions and doing “Edit position properties”, and you may need to assign addresses in the order of “Position > Event time” in the “Addressing > Address show…” dialog.

Port A and B Each module number has an option for a port A and port B module.  In Finale 3D, the port is called the “slat”.  Thus each module number has a possible port A and port B for that module number, written as “10-A” or “10-B” for module 10, port A or B.  Finale 3D provides the option to use port A only, or to use both ports.

 

When you export a firing script for Happiness, Finale 3D presents an “Export Options” dialog with the choices shown in Table 3.

 

Table 3 – Export options

Option name Description
Mode 0 only Useful for troubleshooting
All modes (0, T, A, B, C, D, E) Recommended because it has better timing for fast sequences

 

Table 4 – Specifications of script fields

 

Field name Description
Row number (int) The row number, beginning with zero.
Mode (character) Either: 0, T, A, B, C, D, or E.  See description in Table 2, above.
Event time: minutes (int) The ignition time, minutes.
Event time: seconds (int) The ignition time, seconds.
Event time: tenths (int) The ignition time, tenths of a second.
Module number start (int) The module number, or lowest module number if the row represents a sequence.
Module number end (int or blank) Blank if the row represents a single shot or applies to a single module; otherwise the highest module number if the row represents a sequence across modules.
Pin number (int or string) The pin number if the row represents a single shot or a sequence across a range of modules with the same-pin (Mode 0, A, B, C, D, or E); or a range of increasing pins “X->Y” for a sequence of shots on the same module (Mode T).
Time interval between shots (float) The time delta in seconds between shots in the sequence, or 0.0 for single shots or simultaneous shots.
Port (character) Either: A or B.  See description in Table 2, above.
Time interval to next row (float) The time delta in seconds to the next row.
Note (string, up to 16 characters) The Script Notes field in the script table.

 

Happiness,Firing,System,PC-PROG,,,,,,,,
V3.0,,,,,,,,,,,
serial number,mode,Effect time:min,Effect time:sec,Effect time:msec,start,end,fire number,time(s),port,interval(s),note
0,,0,0,0,,,,,,5.0,
1,T,0,5,0,0,,1->5,0.1,A,5.0,
2,T,0,10,0,1,,1->5,0.1,A,5.0,
3,T,0,15,0,2,,1->5,0.1,A,5.0,
4,T,0,20,0,3,,1->5,0.1,A,5.0,
5,T,0,25,0,4,,1->5,0.1,A,10.0,
6,T,0,35,0,0,,6->10,0.0,A,5.0,
7,T,0,40,0,1,,6->10,0.0,A,5.0,
8,T,0,45,0,2,,6->10,0.0,A,5.0,
9,T,0,50,0,3,,6->10,0.0,A,5.0,
10,T,0,55,0,4,,6->10,0.0,A,10.0,
11,C,1,5,0,0,4,11,0.0,A,5.0,
12,B,1,10,0,0,4,12,0.1,A,5.0,
13,D,1,15,0,0,4,13,0.1,A,5.0,
14,A,1,20,0,0,4,14,0.1,A,5.0,
15,E,1,25,0,0,4,15,0.1,A,10.0,
16,A,1,35,0,0,3,16,0.1,A,5.0,
17,E,1,40,0,0,3,17,0.3,A,0.0,

Figure 2 – Example Happiness script

 

Table 5 – Example files and downloads

Download link Explanation
happiness-script.csv Example exported script file
happiness-show.fin Example show file