Total found: 308
A number of firing systems support manually triggered sequences, as an alternative to an entire show that plays from start to end. The manually triggered sequence mode for firing systems is generally called “semi-automatic” firing. Some firing systems call it "manual" mode or "step by tracks" or "separate scripts" mode. Whatever the firing system calls it, if you are designing a semi-automatic show, you need to split up the show into the separately triggered sequences. In Finale 3D, individual sequences are identified using the “Track” column in the script window. This column is hidden by default, to make it visible, go to the blue gear menu in the script window > Hide or unhide column > Track. For some firing systems, setting the Track column values automatically makes the script semi-automatic. For other firing systems, you need to select semi-automatic mode in the export options dialog presented when you export the script. Using FireOne as an example, choosing the semi-automatic export option will cause a SEM file to be generated instead of an FIR file. Generally, designers lay out the sequences one after another on the timeline, with a little space in between. After doing the design, a unique track value for each sequence needs to be specified. One of the following options can be used to set the track values: Option 1) Type and/or use copy and paste to enter the track values directly into the "Track" column in the script window. (see Figure 1 below) Option 2) Select the events for a particular sequence, then go to "Script (menu) > Tracks > Set track..." (see Figure 2 below) Option 3) Select the events for a particular sequence, then right-click on one of the selected events, choose "Edit Properties", then enter the track value in the Track field (see Figure 3 below) Figure 1 – Setting the Track value in the script window. Figure 2 – Setting the Track value from the Script menu. Figure 3 – Setting the Track value in the “Edit properties” dialog. Since firing system addresses may depend on the sequence values, you should set the Track field before addressing the show, in this order: Divide show into sequences on the timeline one after another. Select each sequence and assign its Track value. Address show. Export script.
Finale 3D can import and export show files in the GS2 format, which is the interchange format for Galaxis firing systems. You can design shows in Finale 3D, export them in GS2, and then transfer the firing data to the Galaxis controllers using the Pyrotec Composer software available from Galaxis, or you can design shows in Pyrotec Composer and import the GS2 files into Finale 3D to make simulation videos. The Version 2.6 and Version 2.8 of the GS2 format include the device allocation tables in the specifications, removing the need to construct the table manually when importing into Pyrotec Composer, as discussed more fully below. To create and export a script for the Galaxis firing system, please follow these steps: Set module type. Choose one module type for the full show in "Show > Set show information..." or in "Addressing > Addres show...", or choose different module types per-position by right clicking positions and doing "Edit position properties" from the context menu. Configure show for flames (if using G-Flame). If you are designing a show with G-Flames, each G-Flame device is represented as a separate position exclusively for that device (no pyro from the same position!). Please (a) add the flame positions for your G-Flame units, and (b) set the positions' module types to the correct G-Flame module type, and (c) set their "Start Module" to a distinct module number for each flame position. Choose module numbers for your flame positions that will not conflict with the module numbers used by the pyro positions. See Flame systems basic instructions and Exporting a firing system script for flame systems and Galaxis G-Flame for further instructions. Address show. Use the menu item "Addressing > Address show..." or any of the other addressing methods (see Addressing basic instructions). Export script. Export the script as a GS2 ("File > Export > Export firing scripts..."). Choose at the time of exporting whether you want Finale 3D to implement steppers or not, in the export options described in Table 3 (you can add steppers in the Pyrotec Composer software if you prefer to do it there). Download script. Open the GS2 file in Pyrotec Composer and download to your your hardware. Step 5 creates the script file, which is a text file with a "GS2" extension. The format of the file is difficult for a human to read, so Finale 3D provides the function "File > Tools > Open firing system script as generic table..." to view the contents of the GS2 file in a table window. You can select all in the table window (control-A), then copy (control-C), then paste into an Excel file in order to change the column widths and inspect the data. You can also open the GS2 file directly in Pyrotec Composer. Figure 1 – Galaxis firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text file of concatenated tables of concatenated fields .gs2 Code Page 1252 Carriage return + linefeed (0x0D0A) None The GS2 script is a text file that you can inspect and edit in a text editor, but it is in a format that is difficult to read. The format consists of three header fields, followed by a script table of firing rows with 70 fields for each row, serialized. All fields are separated by carriage return and linefeed but there’s no end-of-line delimiter, which makes the script quite long in a text editor. Finale 3D has the function, “File > Tools > Open firing system script as generic table…” which reads the GS2 file into a table format in a window that you can read more easily, or copy/paste into Excel to examine. Prior to December 2018 the up-to-date version of GS2 was Version 2.4. This file format contained the header and script table, followed by other optional data that was internal to the Pyrotec Composer software. The optional data wasn’t necessary for reading the GS2 into Composer, but if the optional data was not present in the file you would need to rebuild your device allocation tables in Composer before downloading to your devices, which was a significant manual effort for large shows. In December 2018 Galaxis came out with Version 2.6 of GS2, which Finale 3D also supports. Version 2.6 incorporates the device allocation table information in the defined specification of the format, which allows Finale 3D and other software programs to import and export the device allocation table information along with the script table, eliminating the need for you to rebuild it manually in Composer. Loosely speaking, if you design and address a show in Finale 3D you will have specified what module device IDs and what types of modules or G-Flame units go at every position, and what hazard classes are associated with the devices referenced in the rows. Thus by designing a show in Finale 3D you have already created all the information in the Galaxis device allocation tables, so being able to export a Version 2.6 GS2 file format that incorporates this information and doesn’t require you to rebuild it manually is a big time savings. The minimum version number of Pyrotec Composer that supports Version 2.6 of GS2 is V2.3.0.253. Taking into consideration Version 2.4 and Version 2.6 of the GS2 file format, we can say that the format consists of a header, followed by a script table, then either (a) followed by optional Galaxis internal information for the Version 2.4 format, or (b) followed by device allocation tables and then followed by exactly 18775 Galaxis internal information fields for the Version 2.6 format. The Finale 3D function, “File > Tools > Open firing system script as generic table…” will show you all the data of all the defined tables in Version 2.4 and Version 2.6, and will add a header and remove and count the unused rows to make the tables easily readable in glance. Table 2 – Special characteristics Special characteristics Description Time representation Certain fields in the GS2 file (Event Time, and Effect Time) are represented as integers in the Galaxis integer time representation format: an integer whose last two digits represent hundredths of a second, whose next two digits represent seconds, and whose next one or two digits represent minutes. For example, the representation of 1 minute, 20 seconds, 10/100ths is 12010, not 8010. Other fields (Dt and Step Time) are represented simply as integers in hundredths of second. Sort order of rows Rows sorted ascending by event time (ignition time). What rows represent Each firing row represents a quantity of one or more same-type effects at a unique event time, or an additional effect possibly of a different type or angle or position at the previous row’s event time. Thus each event time is represented by one or more sequential rows. The event time count (Field #0) is 1 for the first event, and increments for each new event time. The following "Dt" field (Field #1) is the time delta to the next event time, or blank for additional effects at the previous event time. Chains counting as one unit Some display companies follow the convention that one chain is one unit for stock keeping records; others follow the convention that a chain of five shells is five units. The GS2 file has a Quantity field that represents the number of units. The meaning of this field for chains -- whether it is the number of shells in the chain or just one per chain -- cannot be determined from the file intrinsically. When you export a GS2 file from Finale 3D, the Quantity field will always represent the number of shells in the chain. However, if you import a GS2 file into Finale 3D, you are given the option for whether chain quantities indicate the number of chains or devices. Header The file contains a header consisting of three fields: version, date, and available_SC_ID. The Version is “V2.6” for Version 2.6, and “V2” otherwise. The date is a user-text string, in the format, “8/27/2009-4:42:18 PM”. The available_SC_ID is an integer 10000 + the number of used rows in the script table. Pyrotec Composer Versions The minimum version number of Pyrotec Composer that supports Version 2.6 of GS2 is V2.3.0.253. Galaxis internal information Version 2.4 of the GS2 file contains optional Galaxis internal information fields after the script rows. Version 2.6 contains exactly 18775 opaque fields of Galaxis internal information after the device allocation tables, which optionally can be blank fields. Steppers Galaxis addresses the issue of wireless transmission times by combining rapid sequences of ignition events into short programs ("steppers") triggered by the first ignition time event in the sequence. Galaxis also supports using steppers to combine a user-defined sequence of events as one cue number, so as to reduce the number of cues required for large shows (Galaxis' cue number limit is 999) or to support manual triggering of one sequence at a time (semi-automatic). Finale 3D can export scripts with or without steppers, but if your script contains sequences of events with less than 0.3 seconds between them then you need to export the script with steppers or add the steppers using a command in Pyrotec Composer before downloading to your modules. When you address and export the show in Finale 3D using the "... w/Steppers" modules, Finale 3D will automatically add steppers as required for wireless transmission. If you want to add user-defined stepper sequences, then unhide the "Track" field in the script table, and assign an identifier such as a number or letter to any sequence of rows you would like to make into a stepper sequence. When Finale 3D exports the GS2, any sequence of rows with the same track identifier will be made into a stepper sequence. When converting the script to use steppers, the "Cue" (Field #0), "Dt" (Field #1), "Step Cue" (Field #8), and "Step Delay" (Field #9) fields are changed to represent the stepper programs. Only the first event time in a stepper program counts, so the Cue field is blank for all but the first row in a stepper sequence and any immediately following rows at the same event time. The Dt field for stepper rows is blank except for the first row, which contains the delta to the next counted event time. The Step Cue and Step Delay fields of the first row and immediately following rows at the same ignition time are blank; for subsequent rows the Step Cue is the Cue of the first row, then colon, then the SC-ID of the first row (e.g., 1:10001), and the Step Delay is the time delta between the row's ignition time and the event time of the first row in the stepper sequence. Finale 3D will automatically optimize the stepper sequences to make them as short as possible. For example, if you have a sequence of nine shots at 100ms intervals, Finale 3D will create three steppers, the first stepper handling the first shot at time T, the second shot at T + 100ms, and the third shot at T + 200ms; the second stepper handling the three shots at T + 300ms, T + 400ms, and T+ 500ms; the third stepper handling the three shots at T + 600ms, T + 700ms, T + 800ms. The three stepper sequences are separated by 300ms each, satisfying the Galaxis hardware requirement, and it is not possible to make the stepper sequences any shorter than that. If you would the entire sequence of nine shots be on a single stepper, you set the "Track" field of the nine shots to any unique name or number, and then Finale 3D will keep them together in a single (longer) stepper sequence in the exported GS2 file. “Start Show” row Galaxis firing hardware requires an initial “Start Show” row in the script table at time 0 to initiate the hardware. Finale 3D adds this row to the script table automatically at time of export if the script doesn’t contain an explicit firing event at time 0. Split-matrix boards Galaxis firing systems support partitioning a device’s range of outputs into 10-output “split-matrix boards.” Finale 3D supports split-matrix boards using virtual slats, so you can take advantage of Finale 3D’s powerful addressing and racking features for reasoning with constraints relating to slats (split-matrix boards) being at different physical locations (see Slats, virtual slats, and splitter boxes). For example, suppose you have one device with 100 outputs that are distributed out to ten launch positions by ten split-matrix boards with ten outputs each. It would be important when addressing the show to apply the constraint that each split-matrix board is restricted to addressing shots at a single launch position, for otherwise you might have wires running from position to position. But it would be too restrictive to constrain each device (module) to a single launch position, because that would defeat the whole idea of using split-matrix boxes to distribute the device’s outputs among multiple positions. Using virtual slats to represent split-matrix boards allows you to arrange slats (split-matrix boards) at various positions while having their device ID and outputs refer to the output range of the parent device. In the Finale 3D script, split-matrix boards’ Rail Addresses are two-part addresses, such as 1-A meaning device ID 1, first split-matrix board; or 1-B meaning device ID, second matrix board. The Pin Addresses (outputs) of each split-matrix board are numbered 1-10 in the Finale 3D script, but are converted to the corresponding 10 output sub-range of the parent device’s range of outputs 1-100 when exported to the GS2 file. G-Flame and L-Flame The GS2 file represents G-Flame fixtures as modules, or in Galaxis terminology, devices, with a device ID and a G-Flame device name (9). For assigning firing system addresses, each G-Flame unit is a module identified by its module number. Any pin number will do for a firing event on a G-Flame unit. Finale 3D writes pin number 1 for all firing events, but the pin number could be anything. As a special consideration for G-Flame fixtures (but not other Galaxis device types), Finale 3D adjusts event times if necessary to guarantees 0.3 second separation between events on the same G-Flame device, as required by the G-Flame hardware. To design a show with G-Flame fixtures using Finale 3D, please address the show with "GALAXIS G-Flame" module types if the show is entirely G-Flame effects, or assign "GALAXIS G-Flame" as the module type of specific positions (by editing their position properties) if the show is partially G-Flame effects and partially pyrotechnics. Any single position will represent either a single G-Flame fixture or a location from which pyrotechnics are ignited, depending on its module type. From the effects window, add pyrotechnic effects to the pyrotechnic positions, and add flame effects to the G-Flame positions. Any effect with Type = flame will work, such as the generic effects GFX9800, GFX9801, GFX9802, and GFX9803. The duration of the effect definition will carry through into the exported GS2 file and will control how long the fuel nozzle is open. Terminal Function (Multiple-trigger pins) Technical explanation In 2025 Galaxis introduced the "Terminal Function" to configure the PFE Advanced – 10 Outputs and PFE Advanced – 20 Outputs devices specially such that each of the first 10 pins can be triggered multiple times. This function supports using these devices to trigger special effects fixtures from the Galaxis controller, without using the DMX protocol. The GS2 file format requires that each independent fixture triggered by a Terminal Function pin has its own launch position. The Device Type in the Device Allocation Table (see Table 4 below) that is associated with the launch position identifies the Terminal Function pin. The module number (device ID) of the event in the GS2 file identifies the PFE Advanced module. The output channel (pin number) in the GS2 file is ignored. As explained in Table 4, Device Types 200-209 and 400-409 identify specific pin numbers of the PFE Advanced – 10 Outputs and PFE Advanced – 20 Outputs, respectively. If a module at a launch position has Device Type 201 in the Device Allocation Table, that means all the script rows for that module at that launch position refer to pin number 1; If the Device Type were 202, then all those script rows would refer to pin number 2 on the module. In Finale 3D, the pin number being triggered on a Terminal Function device is specified in the script rows using the slat field of the Rail column (not the Pin field). Rail "02-01" means "module 2, pin 1"; Rail "02-10" means "module 2, pin 10". When exporting a GS2 script file, Finale 3D translates slat information in the Rail column into the Device Allocation Table of the GS2 file. In the script table, Finale 3D sets the pin field of Terminal Function event rows to match the slat field, but the slat field is what matters. As for the G-Flame module type described above, Finale 3D automatically adjusts event times if necessary to guarantees 0.3 second separation between events on the same Terminal Function pin, as required by the hardware. User instructions Step 1. To use Terminal Function devices in Finale 3D, you need to create a separate launch position for every fixture that will be triggered by a Terminal Function pin. Users who are familiar with DMX programming in Finale 3D will recognize that DMX fixtures in Finale 3D are similarly represented as independent launch positions, except that for DMX programming the launch positions are specifically configured as DMX fixtures and appear as blue squares in the Design View, whereas for Terminal Function programming in Finale 3D for Galaxis, the fixtures are regular "pyro" launch positions, which appear as orange circles in the Design View. Step 2. All the fixtures using the same PFE Advanced device must have the same module number. Thus the launch positions representing those fixtures must share a module number. To assign addresses with the same module number for the fixtures using the same PFE Advanced device but with unique physical outputs (pins) on that device (represented as slats in the Rail column), you will need to use the Section field of the Positions window, which you can edit directly in the Positions window or by right-clicking positions and doing "Edit position properties...". Set the Section field to a unique value (like s1, s2, s3, s4, ...) for every launch position except for the Terminal Function launch positions representing fixtures. For them, give each set of launch positions using the same PFE Advanced device the same value in the Section field. If you have ten fixtures all using the same PFE Advanced device, then assign all ten the same Section field value. Step 3. In the Positions window or by right-clicking positions and doing "Edit position properties...", set the Module or Slat Type of all the positions representing fixtures triggered by Terminal Function devices to "Galaxis 10ch Terminal Outputs" or "Galaxis 20ch Terminal Outputs", depending on your hardware. Step 4. To assign firing system addresses, do "Addressing > Address show..." and adjust the constrains in paragraph 3 of the dialog as follows: a) Remove "Position" from the module constraints, and b) Add "Position" to the slat constraints. For Terminal Function script rows, Finale 3D will assign module and slat numbers (slat number = Terminal Function pin) and pin numbers (matching the slat numbers but ignored by the Galaxis controller). For all other script rows, Finale 3D will assign module numbers and pin numbers regularly. The script table consists of N * 70 fields concatenated together, where N is the number of rows, each field terminated with the end-of-field delimiter. Version 2.4 may include up to 10,000 rows and nothing more, or exactly 10,000 rows followed by optional internal Pyrotec Composer information. Version 2.6 includes exactly 15,000 rows, followed by device tables, followed by optional internal Pyrotec Composer information. GS2 scripts exported by Finale 3D will contain valid values for the following fields, shown with field numbers counting from 0 (i.e., 0-69). The remaining fields will be empty. Figure 2 – This Galaxis split-matrix board displays the absolute pin numbers that the box is configured for. While slat-based addresses in Finale 3D are displayed as three part addresses (Module-Slat-Pin) with the pin relative to the slat, your Galaxis split-matrix boards display absolute pin numbers relative to the module instead of relative to the slat, as shown in Figure 2. To avoid doing the conversion from slat-relative to module-relative pin numbers in the field, you may want to create custom labels in Finale 3D using the "Pin Absolute" field or the "Module/Pin Address" field, as described in Labels basic instructions. When you export a firing script for Galaxis, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3. Table 3 – Export options Option name Description Version Choose version v2.4 or v2.6 or v2.8. Steppers Choose whether steppers are used, and what the time threshold is for automatically created steppers Tracks and steppers Choose if tracks define groups of events to be combined as steppers no matter what their relative times are Table 4 – Specifications of script fields Field name Description Field #0, Cue (int or blank) A counting number, beginning with one, of unique event times. Multiple rows with the same event time will have the same count. Often referred to as a "Cue" or "Cue number." Finale 3D writes this field but ignores it when importing GS2 shows. Field #1, Dt (int or blank) Time delta between events, represented as an integer in hundredths of a second. Finale 3D writes this field but ignores it when importing GS2 shows. Field #2, Event Time (int or blank) The ignition time, represented in Galaxis integer time representation. Finale 3D writes this field and reads it when importing GS2 shows. Field #3, Effect Time (int or blank) The visual effect time, represented in Galaxis integer time representation. Finale 3D writes this field and reads it when importing GS2 shows. Field #4, Delay (comma-radix float) The time delay between the Event Time and Effect Time, represented in the format 0,00. The time delay equals the item's prefire time plus any external delay such as a fuse delay. Finale 3D writes this field but ignores it when importing GS2 shows, because it is redundant with the Event Time and Effect Time. Field #5, Duration (comma-radix float) The duration of the effect or chain, in the format 0,00. If the effect is a chain, the duration is the time from first to last shot in the chain. Field #8, Step Cue (int or blank) A parameter for triggering a sequence of events (see "Steppers", above). Finale 3D writes this field but ignores it when importing GS2 shows. Field #9, Step Delay (int or blank) A parameter for triggering a sequence of events, represented as an integer in hundredths of a second. Finale 3D writes this field but ignores it when importing GS2 shows. Field #10, Category (string up to 80 characters) A user-defined type. Finale 3D writes the effect's Type from the Finale script, e.g., shell, comet, mine, etc. Finale ignores this field when importing. NOTE: since Finale ignores this field when importing, please include the type of the effect in the description field (Field #12) if you are going to import the GS2 file into Finale, so it has enough information to create a simulation. For example, the description needs to be "Crackling Comet", not just "Crackling", even if the Category is "Comet". Field #11, Name (string up to 80 characters) The name of the effect as you would read it on the label or on a price list or in reports. Finale 3D reads and writes this field, which may be in a non-English language. When importing, Finale 3D constructs the simulation from the VDL field (Field #60) unless it is blank, in which case Finale 3D constructs the simulation based on the Name, as a fallback. Field #12, Notes (string up to 80 characters) The script notes for the event. Field #13, Size (string up to 80 characters) The size of the effect in inches or millimeters. Finale 3D reads and writes this field. Finale 3D writes the effect size string with units, e.g., 100mm or 4", and constructs accurate simulations most reliably when importing if the field includes the units designation, so Finale 3D doesn't have to guess whether it is inches or millimeters. Field #21, Quantity (int) The number of devices represented by the row (e.g., number of shells), except for chains, in which case either (a) the number of chains each counting as one unit (in which case it must be “1”), or (b) the number of devices in the chain. When importing into Finale 3D, the user specifies whether “Chains count as one unit” in a configuration dialog to disambiguate (a) versus (b). When exporting, Finale 3D always writes the device count, meaning (b). Field #22, Position (string up to 80 characters) The name of the launch position from which the effect is fired. Finale 3D reads and writes this field. Field #23, Angle (string up to 80 characters) The angle of the trajectory for all devices represented by this row. A chain or flight of shells in a fan must be split into multiple rows so that each can have an independent angle represented in this field. Finale 3D reads and writes this field in degrees, followed by symbol font arrow characters that indicate left versus right: dG (up), dF (left), and dH (right), e.g., up = 0dG. Field #28, Device Number (int from 1 to 999) Finale 3D reads and writes the module number from the rail address into this field. Shows addressed in Finale 3D for split-matrix boards use virtual slats to identify and separate the ranges of outputs for the split-matrix boards . For 10x10 split-matrix boards , the rail address in the Finale 3D script for each board will be of the form 1-A, where the digit is the module number and the letter (A-J) identifies the split-matrix boards.. In the Finale 3D script, the pins of each split-matrix board are 1-10, but when exported to the GS2 file, the rail address and pin address are combined and converted into the device number and output number of the parent device. For example, pin 1 of split-matrix board 2-D would be device number 2, output number 41. Field #29, Output Number (int from 1 to 999) Finale 3D reads and writes the pin number into this field. For G-Flame units, shots are represented by unique pin numbers (output numbers) beginning with 1 and increasing sequentially. Field #30, SC-ID (int) An internal GS2 row identifier. Finale 3D writes this field when exporting but ignores it when importing. See explanation below. Field #34, Part Number (string up to 80 characters) CE number. Field #36, Part Number (string up to 80 characters) UN number. Field #38, Part Number (string up to 80 characters) Net explosive weight (NEQ). Field #42, Part Number (string up to 80 characters) Finale 3D reads and writes this field. Field #44, Part Number (string up to 80 characters) Manufacturer. Field #60, VDL (string up to 80 characters) A description of the effect for the purpose of creating a simulation. Finale 3D reads and writes this field into VDL field of the script, and when importing constructs the simulation on the basis of this field, along with the Size (Field #13), Duration (Field #5), Event Time and Effect Time to calculate lift time (Field #2 and #3), the Angle (Field #23), and in the case of chains the Devices field (Field #21) for the chain count. The Category (Field #10) does not affect the constructed simulation. Like the script table, the device allocation tables in the Version 2.6 GS2 format consist of N * M fields concatenated together, where N is the number of rows in each table and M is the number of fields per row, each field terminated with the end-of-field delimiter. The tables are all fixed-size tables, with default values for unused fields. Table 5 – Specifications of device allocation tables Table Description Position Names (1000 strings; default value = blank) An array of the position names referenced by the script rows Device IDs At Positions (10000 ints; default value = 0) A table of 1000 rows corresponding to the 1000 entries in the Position Names table; each row of this table consisting of 10 fields, each field being the integer value of a device ID used at that position; or 0 for unused entries. Device IDs can be used at multiple positions, as is the case for split-matrix boards at multiple positions connected to the same parent device. Device Types Corresponding To IDs At Positions (10000 ints; default value = 0) A table of 1000 rows corresponding to the 1000 entries in the Position Names table; each row of this table consisting of 10 fields; each field representing the device type (“device name”) of the corresponding device ID in the Device IDs At Positions table; or 0 for unused entries. Integer field values correspond to the following enumerated device types: 6 = PFE Advanced - 10 Outputs 7 = PFE Advanced - 50 Outputs 8 = PFE Advanced - 100 Outputs 9 = G-Flame 10 = PFE Advanced - Split 10 11 = PFE Advanced - Split 20 16 = PFE Advanced - 20 Outputs 18 = PFE Advanced Mini - 5 Outputs 201 = PFE Adv. - 10 Outp. - Term. Outp. 1 202 = PFE Adv. - 10 Outp. - Term. Outp. 2 203 = PFE Adv. - 10 Outp. - Term. Outp. 3 204 = PFE Adv. - 10 Outp. - Term. Outp. 4 205 = PFE Adv. - 10 Outp. - Term. Outp. 5 206 = PFE Adv. - 10 Outp. - Term. Outp. 6 207 = PFE Adv. - 10 Outp. - Term. Outp. 7 208 = PFE Adv. - 10 Outp. - Term. Outp. 8 209 = PFE Adv. - 10 Outp. - Term. Outp. 9 200 = PFE Adv. - 10 Outp. - Term. Outp. 10 401 = PFE Adv. - 20 Outp. - Term. Outp. 1 402 = PFE Adv. - 20 Outp. - Term. Outp. 2 403 = PFE Adv. - 20 Outp. - Term. Outp. 3 404 = PFE Adv. - 20 Outp. - Term. Outp. 4 405 = PFE Adv. - 20 Outp. - Term. Outp. 5 406 = PFE Adv. - 20 Outp. - Term. Outp. 6 407 = PFE Adv. - 20 Outp. - Term. Outp. 7 408 = PFE Adv. - 20 Outp. - Term. Outp. 8 409 = PFE Adv. - 20 Outp. - Term. Outp. 9 400 = PFE Adv. - 20 Outp. - Term. Outp. 10 In Finale 3D, the module type selected in the addressing configuration dialog or position properties dialog and shown in the script’s Module Or Slat Type column will determine the device type in the exported GS2 file. When importing GS2 files into Finale 3D, the Module Or Slat Type Column will be determined by the device type values in this device allocation table. Hazard Zone Of Each Device ID (1000 single letter fields A-P; default value = blank) An array of hazard zones corresponding to Device IDs 1 to 1000 (i.e., the first entry in the table is Device ID 1) Position Angle In Degrees (1000 ints or blanks; default value = blank) An array of ints corresponding to the heading angle around the Up-axis of the positions in the Position Names table, in degrees. Blank is also a valid entry and is the same as 0. An angle of 0 is facing the audience, such that a right-angled effect trajectory shot from a 0-angle position will be angled right from the audience perspective. Position X Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the X-coordinates (the axis aiming right from audience perspective) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. Position Y Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the Y-coordinates (the axis aiming up) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. Position Z Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the Z-coordinates (the axis aiming forward toward the audience) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. An example script is shown below in Version 2.6 format. The script contains only three actual shots, but Finale 3D automatically adds a “Start Show” row at the start to initiate the firing hardware, bringing the total number of rows in the script table to four. In the actual GS2 file these tables are fixed length, but to make them readable each table as shown below is truncated to the number of used rows, with a comment in braces indicating the number of used rows. The comments in brackets, including the header row, are not part of the saved file. Also as shown below, the field delimiters 0x0D0A have been changed to vertical bars to make the text more readable. You can see the array of three positions, Pos-01, Pos-02, Pos-03 following the script rows. After the comment you can see the Device IDs At Positions table, then the Device Types Corresponding To IDs At Positions, and so on. {Event Time Count|Dt|Event Time|Effect Time|Delay|Duration|6|7|Step Cue|Step Delay|Category|Name|Description|Size|14|15|16|17|18|19|20|Quantity|Position|Angle|24|25|26|27|Device Number|Output Number|SC-ID|31|32|33|34|35|36|37|38|39|40|41|Part Number|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69} 1|276|0|0|0,00|0,00||||||Start Show|||||||||||||||||||10000 2|10|276|500|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-01|45dF|||||1|1|10001||||||||||||G2SH1000 3|10|286|510|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-02||||||2|1|10002||||||||||||G2SH1000 4||296|520|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-03|45dH|||||3|1|10003||||||||||||G2SH1000 {Script rows : 4} Pos-01 Pos-02 Pos-03 {Position rows : 3} 1|0|0|0|0|0|0|0|0|0 2|0|0|0|0|0|0|0|0|0 3|0|0|0|0|0|0|0|0|0 {Device IDs at position rows : 3} 7|0|0|0|0|0|0|0|0|0 7|0|0|0|0|0|0|0|0|0 8|0|0|0|0|0|0|0|0|0 {Device names at position rows : 3} A B C {Hazard zone per device rows : 3} 0 0 0 {Position rotation angle rows : 3} -50000 -37500 -25000 {Position X rows : 3} 0 0 0 {Position Y rows : 3} -8000 -8000 -8000 {Position Z rows : 3} {Remaining characters in file : 18775} Figure 3 – Example Galaxis GS2 Version 2.6 script (with comments in braces) Table 6 – Example files and downloads Download link Explanation galaxis_tiny_v2p6.gs2 Example exported file in Version 2.6 GS2 format galaxis_tiny_v2p4.gs2 Example exported file in Version 2.4 GS2 format (rename extension as gs2) galaxis_tiny.fin Example show file g_flame_galaxis_standard.fin Show file for G-Flame and pyro example g_flame_galaxis_standard.gs2 Exported GS2 file for G-Flame and pyro example User-Manual-PFC-Advanced-Standard-and-Black-Edition-V2.81-247.pdf Galaxis PFC user manual
Finale 3D can import shows directly from Show Director's native SCX file format ("File > Import > Import show..."), but not export shows to that format. For people who need to import shows into Show Director or into other software in a Show Director format, Finale 3D exports a specific "Show Director CSV" format, which is defined in this specification. If you plan to import into Show Director itself, please select the CSV file type option when choosing the filename. If you plan to import into Excel, then please select the XLSX file type (Excel notoriously imports hexadecimal Pyrodigital addresses as floating point numbers if you import TXT or CSV data and aren't careful). Finale 3D exports all XLSX cells as text cells. In Excel if you need to convert text cells to number cells, select the cells you want to be convert and click the warning icon, then choose "Convert to numbers" from the context menu. Finale 3D provides the export options shown in Figure 1. The default Show Director angle convention is "Left = 0, Up = 90" but you can choose other options from this dialog. The cue number column in Show Director can be used for multiple purposes. The default choice in Finale 3D's export dialog is simply a row count beginning with zero, but if you want rows with the same effect time to have the same cue number, then you can select that option. The frame rate choice is required to convert absolute times into the frame based representation in the Show Director CSV format. Chains are represented as a single row in Show Director CSV files, but the quantity column may contain the number 1 or the number of shells in the chain, depending on your preference. Figure 1 – Show Director export options File specification The CSV header row defines the fields, which correspond to the columns in the software’s user interface. The specification given here includes a specific subset of fields known to import successfully into Show Director Version 8. However, for clarity and for reliability of importing into various software programs including Show Director itself, the set of fields in this specification has rigid and well-defined requirements for the data formatting of the fields, and does not include all the columns supported by the Show Director user interface. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .csv ASCII * , (comma) CRLF Like Finale Generic CSV, the Show Director CSV format is an interchange format, not a format that is loaded directly into firing systems, so the rows in the script contain more information than just the firing events. Although Show Director supports multiple firing systems, its script file format is closely related to the data format downloaded to the Pyrodigital firing system. * This specification indicates ASCII encoding of the text for reliability of importing into various firing system software. However you may choose to export from Finale 3D in an alternate encoding to support non-English characters, as described in the bottom row of the table below. Table 2 – Special characteristics Special characteristics Description Time representation Effect times are represented in hours, minutes, seconds, and frames (HH, MM, SS, FF), based on 30 fps or 29.97 SMPTE DF or 25 fps or 24 fps frame rate, which cannot be determined from the file contents. When exporting from Finale 3D, which supports millisecond resolution, effect times will be rounded to nearest frame time. Prefire times are represented in the Show Director CSV file in milliseconds. Thus the event times, equaling the effect times minus the prefire times, do not necessarily fall on exact frame times. Sort order of rows Rows sorted ascending by effect time. What rows represent Each row contains a set of fields defined in the table below. Field values may be blank if data is missing at the time of export. For example, if you export a show that does not have addresses assigned, the ADDR field will be blank. Loosely speaking, a row is either a chain, or a group of identical effects fired together. 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, unless the shells are different, in which case it will be two rows. Technically, a row represents one or more effects with the same part number, fired at the same time, with the same address, from the same position. Rows do not combine multiple chains on the same row. Thus if a row represents multiple devices, those devices are all part of the same chain, or they are not part of chains. The quantity of devices represented by a row is determined by the TILT, and PAN fields, as described below, since the devices may be shot at different angles. The QTY field also specifies the number of devices, except for chains, in which case the QTY field specifies either (a) the number of chains each counting as one unit (in which case it will be “1”), or (b) the number of devices in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. Chains counting as one unit Some display companies follow the convention that one chain is one unit for stock keeping records; others follow the convention that a chain of five shells is five units. The Show Director CSV file has a QTY field that represents the number of units. The meaning of this field for chains -- whether it is the number of shells in the chain or just one per chain -- cannot be determined from the file intrinsically. When you export a Show Director CSV file from Finale 3D, you are presented with a dialog asking if “Chains count as one unit?”. Similarly, if you import a Show Director CSV file into Finale 3D, you are given the option for whether chain quantities indicate the number of chains or devices. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Special characters Following the Excel quoting conventions for handling special characters, fields containing a double-quote character (“) or comma will be enclosed in “ on both ends, and any internal double-quote characters will be doubled up. Text encoding for non-English characters This specification indicates ASCII encoding of the text, which cannot represent non-English letters with accents or orthography from languages with different alphabets. ASCII is the most widely supported character set encoding for firing system software around the world, and ASCII is known to import successfully into Show Director Version 8 and obviously Finale 3D, so it is a good choice for reliability of import. However, since ASCII cannot represent non-English characters, you may prefer using an alternate encoding, such as UTF-8, UTF-16, or CodePage 1252, to represent characters in your language. In the file selection dialog for exporting, Finale 3D gives you the option of exporting the Show Director CSV format in a wide variety of encodings, including UTF-8, UTF-16, Code Page 1252, as well as options for different line endings, field delimiters, and byte-order-marks (BOM), so whatever encoding your software supports, you likely can export in exactly that encoding from Finale 3D. Notably, if you are using Show Director and you are from a Western European or Western country, you may prefer to export in the Code Page 1252 encoding, which can represent characters with accents, as in the French word, Chrysanthème. Although Show Director Version 8 is not able to import Unicode, it is able to import Code Page 1252, which provides some support for some non-English languages. After the header, each row in the script has a number of fields separated by the comma character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description CUE (integer, up to 99999) The row number in the script, beginning with 0. HH (integer, up to 23) The hours component of the effect time. MM (integer, up to 59) The minutes component of the effect time. SS (integer, up to 59) The seconds component of the effect time. FF (integer, from 0 to 29) The frames component of the effect time, based on the frame rate (see time representation in Table 2). Event Description (text, up to 128 characters) A description pertaining to the row (not the effect itself). Finale 3D exports the Script Notes to this field. PFT (integer, up to 99999) The prefire time, in milliseconds. ADDR (text, exactly three characters, or blank) If the controller specified in CONTROL is “pyrodigital”, then the three-character, upper case, hexadecimal string comprising a two-character hexadecimal module address and one-character hexadecimal pin address; or blank if the address is missing. CONTROL (text, up to 32 characters, or blank) The type of controller for this row of data, either “pyrodigital” or some other controller like “cobra” for example. MODULE (integer from 0 to 9999, or blank) If the controller specified in CONTROL is not “pyrodigital”, then this field contains the module number for the row, if it is representable as an integer. PIN (integer from 0 to 9999, or blank) If the controller specified in CONTROL is not “pyrodigital”, then this field contains the pin number for the row, if it is representable as an integer. CGHZ (integer from 0 to 99, or blank) A numerical hazard class identifier for disabling a group of effects based on show time circumstances. POS (text, up to 10 characters) The position name. QTY (integer, up to 9999) The number of devices represented by the row, except for chains, in which case either (a) the number of chains each counting as one unit (in which case it will be “1” since a row can represent at most one chain), or (b) the number of devices in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. Since the meaning (a) versus (b) of QTY cannot be determined intrinsically from the file, it is unreliable to infer the number of devices from the QTY field itself. The TILT field, which is required in this specification, determines the quantity of devices represented by the row. CAL (integer up to 999, or blank) The size of the effect, in millimeters. TYPE (text, up to 36 characters) The type of effect, e.g., shell, comet, cake, etc. DUR (four digits, in SSFF format) The duration of the effect or chain. If the effect is a chain, the duration is the time from first to last shot in the chain. The duration is represented as seconds plus frames (see time representation in Table 2). The first two digits SS are the seconds; the second two digits FF are the frames. For example, 0115 means 1.5 seconds if 30 fps. Effect Description (text, up to 128 characters) Description of the effect, e.g., “Red Peony” REF (text, up to 50 characters) The part number of the effect. MFG (text, up to 64 characters) The manufacturer of the effect. PRICE1 (floating point number with dot character radix) The price per unit. If the row represents multiple, non-chained devices, each device is a unit. If the row represents a chain of devices, the price per unit is either (a) the price of the full chain, or (b) the price of a shell in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. CUSTOM1 (text, up to 128 characters) Finale 3D writes the Universe field from the script CUSTOM2 (text, up to 128 characters) Finale 3D writes Section field from the script. CUSTOM3 (text, up to 128 characters) Finale 3D writes the Storage Location of the effect for this field. CUSTOM4 (text, up to 128 characters) Finale 3D writes script Notes 2 for this field. CUSTOM5 (text, up to 128 characters) Finale 3D writes script Notes 3 for this field. PAN (text, up to 255 characters) The pan field represents the rotation angle of the position about the UP-axis, with PAN = 0 being the orientation in which TILT of 0 fires to the left from audience perspective, and PAN = 90 being the orientation in which TILT of 0 toward the foreground. Finale 3D currently writes blank for this field. TILT (text, up to 255 characters) The tilt field represents the lateral firing angles (left/right from audience perspective) of the devices represented by the row, 0 meaning left, 90 meaning up, and 180 meaning right. If the row represents more than one device, the angles are combined with dashes, such as 60-75-90-105-120 for a fan of five devices in 15 degree intervals. An example script is shown below. Notice the first five rows are for Pyrodigital controllers and have the ADDR field included, the next two rows are missing addresses entirely, and the next two rows are for the Cobra controllers and have the MODULE and PIN fields included but not the ADDR field. The test file also includes some Russian words (Красный Пион) and French words (Chrysanthème Crépitant) to demonstrate text encoding differences with various example text encodings: ASCII, Code Page 1252, and UTF-8-NOBOM (Unicode), and UTF-16LE-BOM (Unicode). CUE,HH,MM,SS,FF,Event Description,PFT,ADDR,CONTROL,MODULE,PIN,CGHZ,POS,QTY,CAL,TYPE,DUR,Effect Description,REF,MFG,PRICE1,CUSTOM1,CUSTOM2,CUSTOM3,CUSTOM4,CUSTOM5,PAN,TILT 0,00,00,05,00,notea,3020,010,pyrodigital,,,,Pos-01,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 1,00,00,05,00,noteb,3020,020,pyrodigital,,,,Pos-02,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 2,00,00,05,00,,3020,030,pyrodigital,,,,Pos-03,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 3,00,00,05,00,,3020,040,pyrodigital,,,,Pos-04,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 4,00,00,05,00,,3020,050,pyrodigital,,,,Pos-05,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 5,00,00,05,00,,3020,,,,,,Pos-06,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 6,00,00,05,00,,3020,,,,,,Pos-07,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 7,00,00,05,00,,3020,,cobra,0,0,,Pos-08,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 8,00,00,05,00,,3020,,cobra,1,1,3,Pos-09,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 9,00,00,12,07,notec,3020,011,pyrodigital,,,4,Pos-01,1,76,shell,0006,Salute Chain,10390,dominator,15.0,,,,,,,60-75-90-105-120 10,00,00,17,11,,3020,012,pyrodigital,,,4,Pos-01,1,76,shell,0003,Salute Chain,10390,dominator,9.0,,,,,,,60-75-90 11,00,00,17,11,,3020,013,pyrodigital,,,4,Pos-01,1,76,shell,0006,Salute Chain,10390,dominator,15.0,,,,,,,60-75-90-105-120 12,00,00,29,26,,2240,014,pyrodigital,,,,Pos-01,2,50,shell,0101,Chrysanthème Crépitant,G2SH1003,Generic,1.45,,,,,,,75-105 13,00,00,44,26,,2240,015,pyrodigital,,,,Pos-01,2,50,shell,0101,"3"" Orange Chrysanthemum",G2SH1007,Generic,1.45,,,,,,,75-105 14,00,00,44,26,,2240,015,pyrodigital,,,,Pos-01,2,50,shell,0101,"Variegated Chrys, BIG",G2SH1012,Generic,1.45,,,,,,,75-105 Figure 1 – Example Show Director CSV script Table 4 – Example files Download link Explanation test_showdirectorcsv_ascii.csv Example exported file, ASCII text encoding (CSV) test_showdirectorcsv_codepage1252.csv Example exported file, Code Page 1252 text encoding (CSV) test_showdirectorcsv_utf16le_bom.csv Example exported file, UTF-16LE with BOM Unicode text encoding (CSV) test_showdirectorcsv_utf8_nobom.csv Example exported file, UTF-8 no BOM Unicode text encoding (CSV) test_showdirectorcsv.fin Example show file
Finale 3D supports a range of timecode workflows with three main feature sets for writing, reading, and slaving to timecode: Writing soundtracks with music on one channel and timecode on the other Reading and displaying the timecode information contained in existing song files; or automatically positioning songs on the timeline with alignment based on their timecode Slaving Finale 3D's playhead and simulation to external timecode input that is streaming into the computer in real time as MIDI MTC Most likely, some of these features will be useful to you and others not, depending on whether you are the party in a production that is supplying the timecode for the production, or whether some other party is supplying timecode to you or specifying at what specific SMPTE timecode range each component of the show is required to play. This article describes the timecode features in a manner that assumes you already know what timecode is and you know what you want to accomplish. For an explanation of timecode and specific workflows, please see What is timecode?. There are a few types of timecode, including various frame rate variations of the broadcasting industry's standard SMPTE, four firing system specific formats based on an encoding scheme called Frequency Shift Keying (FSK), and the MIDI MTC timecode format that is commonly used as an interchange format and for electronic music equipment. Finale 3D supports the timecode formats of Table 1. Table 1 – Timecode formats supported by Finale 3D Timecode format Frame rate Finale 3D writes it Finale 3D reads it Finale 3D slaves to it SMPTE 24, 25, 29.97 DF, 29.97 NDF, 30 fps YES YES YES, via MIDI MTC Pyrodigital FSK 10 fps YES YES (not yet) Pyromate FSK 10 fps YES YES (not yet) FireOne FSK 1 fps YES YES (not yet) StarFire FSK 4 fps YES YES (not yet) Fire Pioneer FSK 10 fps YES YES (not yet) MIDI MTC 24, 25, 29.97, 30 fps n/a n/a YES Getting started Many of the applications involving timecode also involve scripting or communicating time with others in terms of frames, represented as HH:MM:SS:FF, so it bears mentioning at the onset of a timecode discussion that you can set the effect time format in Finale 3D to a frame based time format in the "Show > Set show information..." dialog, as shown in Figure 1. Figure 1 – Effect time formats include the four SMPTE timecode frame rates and both versions of 29.97 fps: DF and NDF When you set the effect time format to a frame based format, all of the dialogs that involve show duration or begin/end times will switch to using your chosen time format. In addition to the chosen time format, you can always express time in terms of seconds as a floating point number, like 3600.0, or in a few supported shorthand representations like "1h" or "60m". The show information dialog also includes options for setting a firing system export offset, and timecode export offset. The firing system export offset is a time that is added to exported firing system scripts. It does not affect the script window or the times shown in reports; it only applies to exported firing system scripts. Similarly, the timecode export offset is a time that is added to the timecode times in soundtracks exported with timecode. Using the firing system export offset and the timecode export offset together, you can design a show in Finale 3D relative to zero on the timeline, and export a firing system script and/or soundtrack with timecode that begin at a time agreed upon with other parties contributing to the show. It is not uncommon to designate a one-hour range of SMPTE timecode in the 24 hour timecode "day" for a show or song that is a part of a larger production. If you are producing a show that is to begin at a large hour, like 17:00:00:00, you may find it more convenient to script relative to zero on the timeline than to script in the small segment of a timeline that is more than 17 hours long. If you do set the firing system export offset to a value larger than one second, it will appear in the header of reports, as a reminder that the event times or effect times in the reports are relative to the offset. Writing soundtracks with timecode The function, "File > Export > Export soundtrack..." presents a dialog with options to include timecode on either channel, as shown in Figure 2. Figure 2 – Choose the channel for timecode, and the frame rate. The begin and end time are relative to the beginning of the show, and they obviously apply to the music and the timecode on the channels together. Reading the timecode in song files The function, "File > Tools > Analyze timecode in soundtrack file..." reads the encoded timecode of a song file and displays the timecode range of the file, in addition to other information about the quality of the timecode signal. Use this function when you want to know what timecode range a song contains. For more information, see Timecode information dialog and timecode log file. Figure 3 – The timecode information dialog Slaving Finale 3D's playhead and simulation to external timecode input When designing fireworks to accompany other elements of a production, you may find it useful in a rehearsal environment to lay down empty cues on the timeline while the production's timecode is playing into Finale 3D and advancing the playhead and simulation. Use the function, "Show > Timecode > Connect to timecode input device..." to begin listening to external timecode. When the production's timecode begins, Finale 3D will play along with the timecode. You can press the keyboard shortcut "i" at important moments of time in the production to lay down empty cues (same as the menu item, "Script > Insert empty cue"). The rehearsal environment may be physical or it may be virtual. If a production includes elements scripted in multiple software applications, such as for video, lasers, lighting or sound, you may want to link the software applications and play their simulations back together on multiple screens or multiple computers, to see the pieces of the production together (looking back and forth between the screens during playback). The ability to receive external timecode input to drive the simulation provides a way to connect Finale 3D to other applications. Figure 4 – The DOREMiDi SMPTE to MIDI box converts SMPTE to MIDI MTC for the computer's USB port. Finale 3D receives external timecode through the USB port using the MIDI MTC protocol, so to use the timecode input feature for SMPTE, you need to buy a SMPTE/LTC to MIDI MTC converter box, which costs about USD $100. An example is the DOREMiDi LTC-MTC converter available from Amazon for $90, ASIN B0BZC9VHFH (https://www.amazon.com/dp/B0BZC9VHFH). As of 2023, Finale 3D does not support timecode input as audio through the microphone jack.
The addressing sorts and constraints provide a great deal of control over the manner in which tubes are allocated to chains. Show designers usually avoid splitting chains across racks if at all possible. They usually prefer filling racks entirely with chains or singles -- one or the other -- if that’s possible. When that’s not possible, such as when the chain sizes don’t match up evenly with the rack sizes, they usually prefer filling up the extra tubes in the racks with singles. The addressing sorts and constraints can take all of these preferences into account, and can provide a clean, optimal allocation of tubes to chains automatically. Figure 1 – Example show with eight 6-shell chains. Figure 1 shows the timeline of a show with five singles, followed by eight 6-shell chains, followed by five more singles. This show will serve as an example for using addressing constraints and sorts to allocate the right tubes for the chains. There are a total of 5 + 8 * 6 + 5 = 58 shells in this show. The 3” racks in the Generic Effects collection have 10 tubes per rack, so the “Racks > Add racks for show…” function, which is used to add the minimum number of racks for the show, will add six racks to the show. We’ll start the example by assigning tubes in those six racks with the default addressing configuration. Figure 2 – Default addressing dialog, sorting by event time. The “Addressing > Address show...” menu item brings up the dialog in Figure 2, by default, which sorts the addresses in a position by event time, and doesn’t have any constraints other than preventing module wires from stretching across positions. Figure 3 – Problem! The six shells of the pin 06 chain split across racks (as do others). The default addressing configuration assigns addresses and tubes in chronological order, sorted by event time. Without anything to suggest otherwise, the assignment proceeds with the first chronological shell in the first tube of the first rack, then the second, third, and so on, until reaching the first chain (pin 06), whose shells continue to fill the first rack and spill into the second. This illustrates the problem: the chains are split across racks. Figure 4 – Add “Pin restricted to RACK” to restrict shells on the same pin to a single rack. The easiest solution to prevent chains from splitting across racks is to add the constraint that Each pin is restricted to a single RACK. By definition, a chain has one ematch, on one pin. Thus all of the chain’s shells are associated with that one pin (pin 06 in Figure 3, for example). If that pin is restricted to a single rack, then all the shells associated with that pin -- namely all the shells in the chain on that pin -- will be restricted to the same rack, which prevents the splitting. Figure 5 – Since chained shells are on the same pin, they must therefore be on the same rack. Figure 5 shows the result of the Each pin is restricted to a single RACK constraint. The first five shells chronologically continue to fill the first five tubes of the first rack. But at that point, the chain on pin 06 can’t fit in the five remaining tubes in that rack so the entire chain is allocated to the second rack. The next chain (07) can’t fit in the remaining tubes in either of the first two racks, so it spills to the third rack, and so forth. Unfortunately, with the added constraint we no longer have enough racks in the layout, so three chains remain unracked. The red pin numbers in the module diagram in the lower left are the indication that the shells on those pins are not fully racked. We’ll need to add a few more racks manually since the minimum number of racks is no longer sufficient, but first let’s rearrange the assignment order so the chains are assigned first, and the singles second. Figure 6 – Sorting chains first will allocate chains naturally and fill gaps with singles. Re-addressing the show again with the Chains First criterion added to the assignment order as shown in Figure 6 will change the assignment order to begin with the six chains, followed by the ten singles, instead of beginning with five singles that are shot earlier than the chains. Figure 7 – Each chain nicely in a rack, leftovers filling the gaps. But what about the red pins? The result of adding the Chains First criterion is a very natural rack assignment. The chains fill the racks nicely, and the singles fill the gaps leftover after assigning the chains. The only remaining problem is that two chains remain unracked, signified by the two red pins in the module diagram in the lower left. Figure 8 – When you prevent chains from splitting, you may need to add more racks! Adding two more racks from the Effect window, and re-addressing with the same configuration as in Figure 6, is the final solution. Notice that the module diagram in the lower left has no red. The rack assignments are perfect.
To make cinematic camera motion in a video, set up camera keyframes at different points in the show. The camera moves smoothly from keyframe to keyframe. A keyframe is a camera frame of reference (point of view) at a point in time. Figure 1 – Camera keyframes are the vertical bars that are not cue flags. In the figure, you can see two vertical bars on the timeline that are not cue flags, representing two keyframes. To setup a simple camera animation for a video, insert a keyframe at the beginning of the show. Then add another keyframe with the camera at a different position at the end of the show. The camera will move smoothly between them during the video. Follow these steps: Move the playhead on the timeline to 0.0 (the beginning of the show). Orient the view (camera) the way you want it to look at the beginning of the video. Do the menu item, "Camera > Add camera keyframe". Move the playhead on the timeline to the end of the show, or some time in between (example, 00:30.00). Re-orient the view the way you want it to look at this point in time. Do the menu item, "Camera > Add camera keyframe". Play the show and watch the camera move. You can turn on/off the camera movement with the menu item "Camera > Turn on camera motion".
If you are importing or modifying a Finale Inventory to use with Finale 3D while maintaining backward compatibility with Finale Business, you will need to give special consideration to three fields: Prefire, Type, and VDL. Prefire. Finale Business and Finale 3D interpret the term “prefire” for aerial cakes differently, and action is required on your part to change the prefires in your inventory to a value that works for both. The table below shows the options, but the best solution is: change the prefires of aerial cakes to blank. The default prefire for cakes in Business is 0.3 seconds. Unfortunately this value causes aerial cake shells in Finale 3D to break at 0.3 seconds on the way up, looking like a geyser or flowerpot. Please change the value to blank, or one of the other good values in the table below. Please see Cake and candle duration (and prefire) Type. Finale 3D and Finale Inventory support all the values of Finale Business, and a few more. Thus if the Type values in your inventory are from Business, they’ll work fine in 3D. But if you change them to values other than Cakes, Candles, Shells, Mines, Comets, Other, or Non-Choreographed, then they will no longer work in Business. (Type is called “Choreography Tab” in Inventory, and “Category” in Business.) Please see Why is 'Type' so important?. VDL. Finale 3D and Business both support VDL effect descriptions for simulations, but Business requires a strict form of VDL. If you type or import VDL into Finale Inventory directly, it most likely will not work for Business because it will not be in the strict form (e.g., case-sensitive). If you need backward compatible VDL then please copy/paste the VDL field from 3D after creating or editing the simulation via the dialog, which puts it into the strict form. Table 1 shows four possible prefire values for a 3” aerial cake, and indicates whether the result is good or bad in Business and 3D. You can see that 0.3 is bad, but the three other possibilities -- blank, 0.0, and the lift time of the first aerial shell in the cake -- are all good. There are slight differences, but the blank value is the best choice because it works exactly the same way as 0.3 in Business, and it also works 3D, and it is simple. Figure 1 – Aerial cakes from Finale Business with 0.3s prefire look terrible in 3D. In Figure 1, the cake on the left has 0.3 seconds prefire and normal height, rocketing the shell to its break height in a fraction of the normal lift time of about 3 seconds. The stars from the break have so much upward velocity at that point, they shoot into the sky. Clearly, the 0.3 seconds prefire value is not the right value for 3D. Table 1 – Finale 3D/Business compatibility matrix for prefires of aerial cakes like “10 Shot 5s Red Peony Cake” Prefire Finale Business Finale 3D 0.3 (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (BAD) First launch at 0.0s; timeline blip at 0.3s; break at 0.3s (looks like a geyser) (blank) (GOOD) Same as 0.3 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 0.0 (GOOD) Same as 2.8 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 2.8 (the default lift time for 3” shell in Finale Business) (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (GOOD) First launch at 0.0s; timeline blip at 2.8s; break at 2.8s (a little early)
Finale 3D supports both the traditional RJ Equipamentos firing system and the updated timecode based firing system released in 2019. The basic steps to create and export a script for both firing systems are the same. Please follow these steps: Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 2 creates the script file, which is a standard format CSV file with a "CSV" extension. The file format details are described in this section, and they differ for the traditional and updated timecode based system. Figure 1 – Traditional RJ Equipamentos module Additional instructions for the updated timecode based system The updated timecode based system supports special effects with three special pins, in addition to the standard 16 or 32 pins for pyro ignitions. The steps for designing and exporting a script with pyro and special effects are more complicated than the steps for a pyro-only show: Layout positions. Layout separate positions for the pyro and each special effect unit, as shown in Figure 2. Each special effect unit position represents a special effect device, like a CO2 jet, or a flame projector, or a stadium shot gun. The pyro position will us pyro pins on one or more modules. Each special effect unit position will use a single special effect pin -- F, C, or S -- on one specific module. After creating the positions, please select the positions, and right-click on them and do "Edit position properties..." from the right-click context menu. In the position properties dialog shown in Figure 3, select the "Firing system" and "Module type", matching the type of position. Choose "RJ Timecode 16 Pin" or "RJ Timecode 32 Pin" for the pyro positions, and choose "RJ Timecode Flame Unit" or "RJ Timecode CO2 Unit" or "RJ Timecode Stadium Unit" for the special effect positions. Set the "Start Module". Right-click on each pyro position and assign it a Start Module number for the module used by that position (or the first module if more than one). For example, if you have four positions, you might assign the positions' Start Module to 10, 20, 30, 40 in order to give each position a range of 10 modules. Next, right-click on each special effect unit position, and assign it a unique Start Module number that is 100 + the Start Module of the pyro position that is triggering the special effect if the special effect unit is a flame projector; or 200 + the Start Module if the special effect is a cryo device; and 300 + the Start Module if the special effect is a stadium shot. Although the script window will show these module numbers as greater than 100, the exported script will record module numbers modulo 100 (subtracting out the 100s). In other words, in the exported script, a module number 101, or 201, or 301 will all be recorded as just 1. Using this technique of adding a 100 or 200 or 300 to the special effect position Start Modules, you are able to separate the pyro address assignments from the special effect units while still defining what module number is actually triggering the special effects (a number less than 100). Design the show. Add pyro effects to the pyro positions; flame effects to the flame positions; cryo effects to the cryo positions, and stadium shot effects to the stadium shot positions. At the time of this writing, Finale 3D does not have effects for cryo or stadium shots, so you can just use flame effects as placeholders for those effects. Based on the effect "Type" (see Table 1 of Why is ‘Type’ so important? What depends on it?), most flame effects in Generic Effects have constant duration. Effects with Type = "flame" have constant duration defined in the effect window that the script references; effects with Type = "sfx" have variable duration that you can edit directly in the script. See Flame and special effects with variable duration for instructions. To get started, try inserting the effects GFX1001, GFX1002 if you want constant duration, or insert effects GFX1005, GFX1006, or GFX1007 if you want variable duration that you can edit in the script directly. (optional) Create your own flame or special effects.You can search in the effect window or effect palette for "flame" to find all the flames, or you can search for "sfx" to find those with variable duration. In Finale 3D, flame effects (Type = flame) have a constant duration, so if you want flame effects that have a variety of durations as separate effect buttons to click, please create copies of a flame effect and set the durations of the copies as desired. Or, if you would prefer to edit the durations directly in the script, you can use the GFX1005, GFX1006, or GFX1007 effects in Generic Effects, or change the type of any of the other flame effects to "sfx", which implies variable duration. To change an effect, select the row in the effect window, copy it (control-C), and paste it into your My Effects (control-V after switching to My Effects from the blue selector in the upper right of the effect window). Then edit the "Duration" column to any duration you want, or edit the Type column to change its Type from "flame" to "sfx". The durations shown in the script window will be recorded in the RJ Equipamentos script file. Address the show. Do the menu item, "Addressing > Address show". Notice that all the special effects in the flame, cryo, and stadium positions will be assigned pin numbers, F, C, and S, instead of numerical pin numbers. Export the script. Do the menu item, "File > Export > Export firing scripts". Figure 2 – Each special effect unit is its own position. Figure 3 – The "Module Type" position property specifies whether the position is pyro or a special effect unit. File format The traditional and updated timecode based systems have the same basic file characteristics shown in Table 1, and different CSV header rows and information, as shown in Table 3 and Table 4. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV Code Page 1252 , (comma) 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 event time. What rows represent Rows represent firing events, i.e., unique module-pin-ignition-time events. If multiple effects are triggered on the same cue, the effect names are combined in comment field, but the row is still just one row. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Special characters The characters ‘ and “ and , and ; and and tab and newline will be filtered out of any fields. Minimum separation between cues None required; millisecond resolution supported. Module size options Modules with 8, 16, and 24 pins are available. After the header, each row in the script has a number of fields separated by the vertical bar character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields -- traditional firing system Field name Description Cue The row number in the script, beginning with 1. Shot Time The event time in milliseconds, padded with zeros to seven digits. For example, 7.152s is represented as 0007152. Burst The effect time in milliseconds, formatted the same as the Shot Time. Module The module number (integers beginning with 1). Chanel The pin number (integers beginning with 1). Comment Finale 3D writes the effect name in this field, preceded by a count if the row represents more than one device. 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. Cue,Shot Time,Burst,Module,Chanel,Comment 1,0002760,0005000,1,1,Green Chrysanthemum 2,0002860,0005100,2,1,Green Chrysanthemum 3,0002960,0005200,3,1,Green Chrysanthemum 4,0003060,0005300,4,1,Green Chrysanthemum 5,0003160,0005400,5,1,Green Chrysanthemum 6,0003260,0005500,6,1,Green Chrysanthemum 7,0003360,0005600,7,1,Green Chrysanthemum 8,0003460,0005700,8,1,Green Chrysanthemum 9,0003560,0005800,8,2,Green Chrysanthemum 10,0003560,0005800,9,1,Green Chrysanthemum Figure 4 – Example RJ Equipamentos traditional script Table 4 – Specifications of script fields -- updated timecode firing system Field name Description CUE The row number in the script, beginning with 1. TIMECODE The event time in 30 fps frames, formatted HH:MM:SS:FF. MODULO The module number (integers beginning with 1). CANAL The pin number (integers beginning with 1); or F, C, or S for the three special effects pins. ABERTURA Blank for pyro channels; the duration in milliseconds for the special effect channels. The exported duration depends on the "Type" field of the effect. If the effect's Type is flame, other_effect, or not_an_effect, then the exported duration is the value in the effect's "Duration" field in the script, converted to milliseconds. If the effect Type is anything else, the exported duration is 500. If the effect's Type is other_effect or not_an_effect, then you can edit the Duration field directly in the script window. If the effect's Type is flame, then the Duration field in the script window is a reference to the Duration field of Per-show effects in the effect window (use the blue selector in the upper right to select the Per-show effects). These differences between effect types are explained here: Why is ‘Type’ so important? What depends on it?. 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. CUE,TIMECODE,MODULO,CANAL,ABERTURA 1,00:00:10:00,10,1, 2,00:00:10:03,20,1, 3,00:00:10:06,30,1, 4,00:00:15:00,10,F,110 5,00:00:15:00,20,F,110 6,00:00:15:00,30,F,110 7,00:00:20:00,10,C,410 8,00:00:20:00,20,C,410 9,00:00:20:00,30,C,410 10,00:00:25:00,10,S,410 11,00:00:25:02,20,S,410 12,00:00:25:03,30,S,410 13,00:00:30:10,10,F,110 14,00:00:30:10,20,F,110 15,00:00:30:10,30,F,110 16,00:00:35:10,10,C,410 17,00:00:35:10,20,C,410 18,00:00:35:10,30,C,410 19,00:00:40:10,10,S,410 20,00:00:40:11,20,S,410 21,00:00:40:13,30,S,410 Figure 5 – Example RJ Equipamentos updated timecode script Table 5 – Example files Download link Explanation test_rjequipamentos.csv Example exported file (CSV) test_rjequipamentos.fin Example show file test_rjtimecode01.csv Exported timecode show with special effects test_rjtimecode01.fin Example timecode show with special effects
Rack layout in Finale 3D Pro is analogous to a CAD tool like Visio for visually laying out the racks in a top-down view, except the racks are logically connected to the effects in the show and the firing system addresses. You begin by creating or customizing racks by defining their numbers of tubes, the arrangement and angles of the tubes, and constraints to control the kinds of effects that go into the racks. From the set of racks you define, Finale 3D produces an initial rack layout with the minimal number of racks to accommodate the show you’ve designed. From there, you can drag and drop the racks to organize them into pods or groups. Finale 3D’s addressing functions like “Addressing > Address show...” will assign pins and tubes to the shots in the show, taking into consideration the racks and layout so e-matches don’t need to stretch between groups of racks. If you want to fine tune the wiring, you can drag and drop individual pin assignments between tubes and modules in the rack layout window. The final output is a set of reports and diagrams for the crew to follow to setup the show. The three-step process From start to finish, scripting a show with rack layout is a three step process: Design show Add racks for show Address show Figure 1 – Three step process: 1) design, 2) add racks, 3) address show. The order of these steps is significant, because it allows you to re-address the show (step 3) after making changes to the design -- without blowing away the rack layout that you may have spent a lot of time arranging just right. It also allows you to re-use rack layouts from older shows by copying and pasting them between shows or creating a show file template with the positions and racks of a venue that you use repeatedly. Adding racks for the show Add racks for a show design using the simple menu item, "Racks > Add racks for show..." or "Racks > Delete and re-add racks for show..." A dialog like the one shown in Figure 2 will appear with a list of all the types and sizes of effects that the show contains. For each type and size of effect, you can select what kind of rack applies. Figure 2 – The "Add racks" dialog gives you choices of what racks to use for every size and type in the show. When you click the "Add" button, the function will add however many racks are required, at the proper angles for the effects. The dialog of Figure 2 does give you choices of what racks to use, and also options to ignore specific sizes or types of effects in the show. For example, if you don't use cake racks you can just click the "ignore" checkbox for the cakes in the dialog (not shown in Figure 2 because this example doesn't have any cakes). Similarly, you can ignore any particular size effects or effects that have any specific "Rack Type" property (see Using the “Rack Type” field for fan racks). In the example, the 2.5" single-shot effects are being ignored. The collection filter at the top of the dialog filters your rack choices. You can customize your own racks with the "Racks > Create rack..." function, or you can use some of the pre-defined racks in the "Generic Effects" collection. You can also use "Easy Racks" which are available no matter what collection filter you choose. If you choose Easy Racks, you can specify the number of tubes per rack for each size on the fly, right in the dialog. Notice that the Easy Rack choice for 3" mortar racks at the top of the Figure 2 dialog has a Tubes/rack field that is editable, whereas the other racks chosen for the single-shot effects have a Tubes/rack field that is not editable, as they are not Easy Racks. The dialog shows on each row how many effects the show contains, and also how many racks are required ("Racks to add") on the basis of your choice of rack. The number of tubes per rack obviously affects the number of racks required, but so do a number of other factors, like the angles of effects and the optional rack constraints that you can set up if you customize your own racks. If you have a limited number of racks in your physical inventory, you may choose to use the "Limit" field to impose a limit on the number of added racks for a size or type. The limit applies to the total number of racks of the specified size or type. If your show already has some racks and you are adding more racks after making a change, the limit takes into account both the existing racks and the racks to be added. The "Leftover effects" row at the bottom of the dialog indicates if any effects do not fit in rack choices on account of their angles. Since the "Add racks" function automatically adds racks at the proper angles, leftover effects are rare and usually regarded as an error. The field can become non-zero if you select a rack that has pre-configured angles or a rack that is defined as non-rotatable. Ignored rows in the dialog do not contribute to leftovers. Racks that you customize yourself can be made to be compatible with all effect sizes or with size ranges. If you select a fits-any-size rack for one of the rows in the Figure 2 dialog, other rows may become disabled on account of the fact that the racks added by your selected fits-any-size choice for one size will also accommodate the effects of another size. That's why the 1.5" and 2" rack rows in Figure 2 are green. The 2.5" row is green because it is ignored. Rack layout view Figure 3 shows the rack layout view after adding racks for a position. The rack layout view is a feature of the Finale 3D Pro version. The Finale 3D Hobbyist version also supports racks but does not include the ability to lay them out visually. From the rack layout view, select the position you want to work on with the selector in the upper right. The added racks appear in an initial default layout. The effects in the position without firing system addresses appear as red circles. Effects with firing system addresses would appear as pin numbers in depictions in of firing system rails in the lower left, but at this moment the example does not yet have addresses assigned. Figure 3 – Drag and drop the effects (red circles) into racks in the rack layout view (from the Window menu or shift-3). You can drag and drop effects directly into the racks, and you can also drag and drop to or from the rails at the bottom (see Figure 4). As you assign addresses by drag and drop or with the "Re-address" link or with the menu item "Addressing > Address show..." the red circles of the unaddressed effects disappear, as they are replaced by pin numbers in the rails and racks. Toggle between the "drag and drop racks" mode versus the "drag and drop pins" mode with the link in the upper left. The convenient links at the bottom of the view operate solely on the position being edited. Click "Add racks" to add any additional racks to the position, if needed. Click "Delete racks" to start over for the position. The "Add/edit rails" link brings up a dialog to specify pre-assigned rails for the position. Use this link if you know in advance what firing system hardware you are going to have at the position rather than determining the requirements based on addressing the show. Figure 4 – After clicking "Re-address" or the "Addressing > Address show..." menu item, the firing system rails and pins appear. Addressing the show, taking racks into account The “Addressing > Address show...” function assigns addresses for pins and tubes. If you haven’t added any racks, then the function just assigns addresses for pins, but if you’ve added any racks at all to the show, the function will attempt to assign pins and tubes. The “Address show...” dialog has options for addressing constraints that take into consideration the racks and rack layout. If you want to restrict each module to a single rack, add “Rack” to the modules line in the constraints section of the addressing dialog, as in Figure 5. If you want to restrict each rack to a single module, add “Module” to the racks line in the constraints section. If you add both these constraints, then the modules and racks will be assigned one-to-one, which means exactly one module per rack. Figure 5 – Adding the “Rack” constraint to modules and the “Module” constraint to racks Restricting modules to racks is just one of the possible constraints. You can also restrict modules or racks to a single “Part Number” to optimize setup time in large shows, or restrict racks to single “Chain” to prevent multiple chains from sharing a rack, or to single “Chain-Or-Not” to prevent a module or rack from being used for a combination of chains and individual shells. You can use the dozens of other constraint options in the menus, or use “Custom Part Field” or “Custom Script Field” to create your own logical constraints. The “Rack Cluster” constraint option in the modules line is particularly useful if you layout your racks into groups or pods, which Finale 3D calls “clusters”. Any racks that are snapped together in the rack layout view are considered part of the same cluster. Adding the “Rack Cluster” constraint to modules restricts each module to the same cluster of racks, which means that all of the module’s wires will be in the same cluster, avoiding problems of e-matches not stretching far enough to reach the tubes. Figure 6 shows the result of addressing a show without the “Rack Cluster” constraint. Notice the wires coming from a single rail extend to multiple rack clusters. Figure 6 – Without the “Rack Cluster” constraint, wires from module 01 serve two clusters. Figure 7 shows the “Rack Cluster” constraint in the addressing dialog, applied to modules. If your firing system has slats, you can apply this constraint at the firing system slats level instead of the module level. Figure 7 – Adding the “Rack Cluster” constraint to modules will fix the problem. Figure 8 shows result of addressing the same show with the “Rack Cluster” constraint. Notice that unlike Figure 6, each module in Figure 8 serves only one cluster of two racks. In particular, module 01, which was a problem in Figure 6, serves only the middle cluster in Figure 8. Figure 8 – With the “Rack Cluster” constraint, each module serves a single cluster. Adding constraints sometimes increases the number of racks required for the show, because some of the tubes in the racks may need to go unused. When that happens, you will notice the addressing function reports racking errors and automatically selects all the effects that didn't get racks. At this juncture you can immediately try the menu item, "Racks > Add racks for selected events" to add racks specifically for the effects that need them. Problem solving The pin numbers in the tubes, as shown in Figure 8 and other figures, are usually blank for empty or a number for a device of that pin number. The pin numbers are not necessarily unique for each tube. Chains fill multiple tubes with the same pin number to accommodate their multiple devices. Items e-matched together on the same pin also fill multiple tubes with the same pin number. The rack and pin numbers of the devices are stored in the Rack and Pin columns in the script. Thus, if you clear the Rack and Pin columns in the script window, that would clear all the rack and pin assignments, resulting in a stack of red circles on the right, as in Figure 3. If the Rack and Pin column values contain conflicts or problems, a special symbol may be displayed in the tube. Table 1 gives an explanation. Table 1 – Pin number problems Text in Tube Description Digit or letter The pin address of the item that is in the tube. No problem! Blank The tube is empty. Plus sign (+) Multiple devices with different pin numbers are assigned to the same tube. Unhide the Rack and Tube columns in the script window. Click the Rack column header to sort by Rack; then shift-click the Tube column header to set the secondary sort criterion to Tube. Scroll down and look for two rows assigned to the same rack and tube. Question mark (?) The tube is occupied by a device that doesn't have a pin number. Unhide the Rack and Tube columns in the script window, in addition to the Pin column. Find an item that has a rack and tube value but does not have a pin value.
The idea of pre-wired pins is to pre-define the pin number order of the rack's tube holders in a pattern that matches the firing system and makes it fast for the crew to set up. Look at the comparison in Figure 1. How much time would you save setting up the show if all your racks looked like the one on the right? Figure 1 – Comparison of before/after using pre-wired pins. The rack has 32 tube holders; the modules have 16 pins. For some racks like Evolved Pyrotechnics, Monetti iShot and PyroDigiT, pre-wired pins quite literally means the tube holders have built in physical wires that connect tube holders to a firing system slat. However, the idea of pre-wired pins applies to any rack, whether it actually has built in physical wires or not. If you define a rack in Finale 3D as having pre-wired pins, you can get a sequential pin number order of your choice, like the one on the right. Angles Pre-wired pins can be used for racks with fixed angle tube holders, or adjustable angle tube holders, or adjustable angle tube holders with angle range constraints. The addressing function needs to take into account the angles when assigning pin numbers. Racks with fixed angle tube holders may leave gaps in the sequence of used pins of the module if there are gaps in the angles used in the fan. If a fan rack of 13 posts is pre-wired to pins 1-13 of a module, then a show that calls for a thinner fan of just 5 posts might use pins 1, 4, 7, 10, 13 of the rack. The pins in between may remain unused or may be used for other effects outside of the rack, like cakes. Adjustable tube angle racks often have different angle ranges for the interior tube holders and the tube holders on the outside edges. The outside edge tube holders may rotate 90 degrees to fully horizontal, whereas the interior tube holders can only rotate about 50 degrees before they collide with the bases of their neighbors. Any effects at 90 degree angles can thus only be assigned to outside edge tube holders, which means they can only be assigned to the pin numbers of those outside edge tube holders. Figure 2 – For this rack with angle range constraints, only pin numbers 7 and F can be used for extreme angles to the right. Spillage The example rack of Figure 1 and Figure 2 has exactly twice as many tube holders (32) as the module has pins (16) so the modules' pin numbers fit nicely in the rack. That's not always the case. If the rack had 30 tube holders, then there would be 2 pins left over. If the rack had 25 tube holders, there would be 11 pins left over. Spillage is what you do with the leftover pins: do you use them for other effects like cakes or candles, or do you leave them fallow? Figure 3 – The second module of single-shot rack #1940 spills pins 6 through E into the cake rack. You could decide either way. If using the leftover pins allows you to reduce the number of required modules, then maybe that is a major factor in your decision. If the leftover pins don't make a material difference in the number of modules or if you have modules to spare, then you may prioritize the efficiency of setting up the show over the savings of a module. The example of Figure 3 shows leftover pins from single-shot rack #1940 (6 through E) being used for slice cakes in the cake rack #1936. These nine pins likely save a module for this position, but it does create the requirement that the module or slat serving the single-shot rack #1940 is close enough to the slice cake rack for the e-matches to reach. How to setup pre-wired pins in Finale 3D To use pre-wired pins, you need to setup two things: Configure rack definitions for pre-wired pins. If you are using racks from a supplier catalog, choose racks that are already configured for pre-wired pins in a way that matches your firing system module number of pins. If using your own rack definitions, select one of the “pre-wired pins” options in the definitions that matches your modules. For example, if a rack has 30 pins and your modules have 32 pins, you would choose a pre-wired pin pattern that runs from 1 to 30 (pins 31 and 32 unused). If your modules have 16 pins, then you would choose a half-and-half pattern that has two sequences of 1-15, one for each module (pin 16 unused). Choose the right addressing dialog options. In the addressing dialog or addressing blueprint choose the sorting criteria and constraints that fill the racks and handle leftover pin spillage the way you want. The choice of sorting criteria and constraints also depends on whether your racks have angle range constraints, and other factors. See the Table 1 below for guidance. Configuring rack definitions for pre-wired pins If you do “Racks > Create rack” or right click on a rack in your effects list or rack layout view, the dialog shown in Figure 4 presents two fields related to pre-wired pins. Figure 4 –Fields in the "Create rack" dialog related to pre-wired pins The pre-wired pins field presents the options for the pin patterns. The choices for this field are shown in Figure 5. Figure 5 –Pre-wired pins options These options define sequential pin patterns 1, 2, 3, ... that run along the rows or across them as in the Figure 6. The pin patterns are illustrated in Pre-wired pin options. The orientation of rows is explained in Rack “row” and standard orientation. A trick to interpret these options is: Hold your left arm out in front of you, wrist bent, fingers together pointing down. Your fingers are the rows, pinky finger being row #1. The option "By rows, left to right" thus starts with the first pin at the base of the pinky finger, progresses down to the finger tip, then continues at the base of the ring finger. If the rack is rotated 90° counter-clockwise to make the rows horizontal from the audience perspective, that's like rotating your hand 90° counter-clockwise. In that orientation the first row represented by your pinky finger is closest to the ground, which is equivalent to closest to the audience in the rack layout view. Choose the pin pattern that you like the most and that makes the most sense for your modules. If it takes two modules to cover all the tube holders, then choose one of the half-and-half options. If the modules have extra unused pins, such as two 16-pin modules covering a 25 or 30 tube holder rack, the extra pins can be used in other racks, which you can control with the addressing options. If the modules have fewer pins than the number of tube holders, such as an 18 pin module by itself on a 20 tube holder rack, the tube holders with out-of-range pin numbers will simply remain empty. Figure 6 –Pin patterns traverse along or across the arrows; half-and-half starts over with pin 1 half way through the traversal. After setting the pin pattern option, please set the pin loading order field (second red circle in Figure 4) to match it. Racks with multiple modules list the module numbers in the order that the pin sequences are encountered when traversing the tube holders by the loading order. Choose the right addressing dialog options Pre-wired pins require specific settings in the addressing dialog to make the addressing algorithm assign pins and racks optimally. There's not just one definition of optimal that suits everyone, so there's not just one configuration of settings that is right for everyone. Depending on whether your racks have adjustable tube holders on the ends of the rows that have different angle ranges from the interior tube holders, and depending on whether you want to allow leftover pins from one single-shot rack to be usable in other racks, there are a few configurations to choose from that work: Four. The four configurations apply to the sort order, module constraints, pin constraints, and re-arrange checkbox of the addressing dialog, identified in Figure 7. Figure 7 – The addressing dialog options relevant to pre-wired pins are: order, module constraints, pin constraints, and re-arrange. The four configurations are listed in Table 1. As written, these configuration apply only to single-shot effects (all of them ending with "-- Single-Shot" or "(If Single-Shot)" meaning they apply only to single-shots), which leaves the remaining empty fields available to you to add additional terms that apply to non-single-shot effects. For example, if you add "Rack Number" as a sort order option after the filled in fields of Table 1, the Rack Number term would apply to the order of the effects after the single-shot effects, and would also act as a tie breaker for any single-shot effects that have the same sort order priority based on the Table 1 filled in fields. Table 1 – Addressing dialog option configurations Angle ranges Leftover pins from rack's modules Addressing settings All tubes have fixed angles or the same angle ranges Usable in other non-single-shot racks All tubes have fixed angles or the same angle ranges Not used Interior tubes -50..50; end tubes -90..50 and -50..90 Usable in other non-single-shot racks Interior tubes -50..50; end tubes -90..50 and -50..90 Not used Regarding column 1 in Table 1, the only racks requiring special configuration terms are those for which adjustable tube holders at the ends of the rows have wider angle ranges than the interior tube holders that would run into their neighbors if tilted too extremely. The special configuration terms are required because the end tube holders are a limited resource. It is important to fill them with effects that require them. If the addressing algorithm wasted them on upright effects, then there may not be enough end tube holders to handle other effects at extreme angles. Regarding column 2 in Table 1, none of the configurations permit pre-wired pins to be shared across multiple single-shot racks. Leftover pins from a single-shot rack are always either left unused or applied to individual cakes and candles (or sometimes shells) that are physically near the single-shot rack or that are reachable with scab wire. You can control what racks the leftover pins are shared with by adding "Rack Cluster" to the module constraints list and moving the racks close to each other in the rack layout view, or you can add "Custom Rack Field" to the module constraints list and fill in your own "virtual rack cluster" identifiers in the Custom Rack Field column of the racks. The specific purposes of the sort order and constraint fields in the configurations are explained in Table 2 and Table 3. Table 2 – Purpose of sort criteria terms Term Explanation Position Name Almost all addressing configurations begin with Position Name to assign addresses one position after another. Nothing special about this term. Tilt > 50° -- Single-Shot This term is required for racks that have interior tube holder angle ranges of -50..50° and ranges that exceed 50° for tube holders on the ends. Since the end tube holders are a limited resource it is essential to address the effects that can only go in end tube holders first, so they don't fill up with other effects that don't require them. If your racks have interior tube angle ranges that are approximately 50° but not exactly, then pretend they have a 50° range and use the number 50 in the rack definition and the sort criteria. If the constraints are markedly different from 50° then use the actual angle in the rack definition and use "Most Horizontal Tilt -- Single-Shot" in the sort criteria before the size constraint. The "Most Horizontal Tilt-- Single-Shot" term will correctly allocate the end tube holders first, but it relegates the size constraint to being a tie breaker for same-angle effects instead of being a tie breaker for the group of effects > 50° and a tie breaker for the group of effects <= 50°. If positions contain multiple kinds of single-shot racks with different size range capacities, this sort configuration may use up holders in large effect size capacity racks on smaller angled effects that could have fit in small effect size capacity racks. Size >= 50mm -- Single-Shot If positions include multiple kinds of single-shot racks, some capable of holding 50mm+ effects and others only holding smaller effects, then it is essential to address the 50mm+ effects first so the 50mm capable racks don't fill up with smaller effects, leaving the 50mm+ effects nowhere to go. If your racks have a different size limit, use the 35mm, 40mm, 45mm, or 55mm version of this sort criterion, whichever is closest. There is no harm in including this term even if your positions don't need it. Most Horizontal Tilt -- Single-Shot Not as high a priority as the other sort terms, but "Most Horizontal Tilt -- Single-Shot" prioritizes the angles first in a balanced way left/right. Including this term results in racks that have approximately even numbers of left and right effects, which makes the racks more symmetric and aesthetically pleasing. This term relies heavily on the "Rearrange effects to avoid collisions" function. Table 3 – Purpose of constraint terms Term Explanation Module restricted to Position Module restrictions begin with Position unless modules are shared across positions, in which case all these Module constraints are usually on the Slat instead. Module restricted to One Single-Shot Rack This term restricts a module to at most one single-shot rack, but allows leftover pins from that rack to serve effects in other kinds of racks, like cakes, candles or even shells. Module restricted to Rack (If Single-Shot) This term restricts a module strictly to one rack if the module serves any single-shot effects. If any pins are left over, the pins will remain unused. Pin restricted to Event (If Single-Shot) This term restricts pins to a single event, but only for single-shots. This constraint is similar to the addressing dialog's "Max e-matches per pin" (having the value 1), except that this constraint applies only to single-shots, leaving open the possibility of setting the max e-matches per pin to a larger number that would apply to other types of effects like shells. One way or another, restricting e-matches per pin to one for single-shots is required for pre-wired pins on single-shot racks.