Total found: 297
Manually fired shows in which the operator triggers each shot by pressing a button or connecting an electrical terminal can make use of a voice cues audio recording for timing. The voice cues track is usually a human voice counting out the buttons or pin numbers as instructions for the operator on a schedule that is defined in the design of the show. Figure 1 – A manual firing system by Hance Pyrotechnics Finale 3D supports manually fired shows with a range of options for exporting voice cues sound tracks. The options include specifications for combining the voice cues with music, with voice cues on one channel and music on the other, or a combination. The options also include choices for the vocalization. Do you want the human voice to read off the numbers only, or numbers followed by beeps? Other specifications include the lead time in milliseconds for the vocalization prior to the launch time of the effect, which you can adjust for desired reaction time of the operator. Figure 2 – Options for exporting voice cues tracks from Finale 3D Some manual firing systems like the one shown in Figure 1 have a series of banks, each with its own set of pin numbers. Others, like the pin board shown in the Pin Board section, just have single large array of electrical terminals or buttons, maybe as many as 400! If the firing system has banks, the banks may be numbered 1, 2, 3, ... or they may be named with letters, A, B, C, .... Finale 3D supports both numbers and letters for manual firing systems, but for the vocalizations in the exported voice cues track, Finale 3D will always use the vocalizations of the military alphabet (alpha, bravo, charlie, ...) to indicate the bank when it changes in the sequence of shots. For manual firing systems with numbered banks, then number 1, 2, 3... correspond to alpha, bravo, charlie, ... in sequential order. The voice cues in the exported voice cues sound track correspond to the firing system addresses of the shots. Thus it is important that the addresses of the shots are in chronological order, and that each "shot" has its own address (pin number). When you address the show for voice cues, please configure the settings in the "Addressing > Address show..." dialog to have 1) a large limit on e-matches per pin, 2) order of assignment by event time (chronological), and 3) no constraints on modules (not constrained to the same position), as shown in Figure 3, for otherwise you might have voice cues out of order or multiple voice cues at the same time. Figure 3 – Addressing settings for pin board shows must have 1) a large limit on e-matches per pin, 2) order of assignment by event time (chronological), and 3) no constraints on modules (not constrained to the same position) Since you don't need to export a firing system script for a manually fired show you can actually choose any firing system in Finale 3D for addressing a pin board show. However, Finale 3D comes with a firing system option called "Pin Board" that conveniently has pre-made "Module Type" configurations that match the common pin board pin configurations, with 32, 36, 45, 48, 50, 100, and 400 pins. The easiest way to address a pin board show is to choose the Pin Board addressing system and select the Module Type that matches the number of pins and banks in your electrical firing system. If the exact pin number configuration isn't one of the standard options, you can make a custom module variation to match whatever you need. Full documentation for the "Pin Board" firing system is here. When designing a show for voice cues, you need to take care not to make shots too close together, or the operator may get confused or not have enough time to react to the voice cues. As a rule of thumb, somewhere between 0.75 seconds and 1.5 seconds is a good minimal spacing between shots. To get a feel for whether the voice cues are too close together, you can turn on voice cues for playback in interactive mode while editing the show, with the menu item, "File > User settings > Turn voice cues ON for playback". The hot key toggles this setting if you need to switch back and forth. Figure 4 – Toggle "Turn voice cues ON for playback" if you want to hear the voice cues while designing the show. Handling non-standard pin board numbering systems The pin board firing system described in the Pin Board section has configurations for most of the standard numbering systems, but if yours isn't in the list you can create a custom module from the "Addressing > Addressing settings > Set custom module specifications" menu item, which presents the dialog shown in Figure 5. Full instructions for custom module addresses are in Custom module specifications. The example in this section is tailored toward non-standard numbering systems in pin boards. Figure 5 – Configure a custom module type if your pin board's numbering system isn't one of the standard ones. The "Rail address template" of a custom module shown in the middle of the dialog of Figure 5 defines the numbering system, which can contain modules, slats, and pins; or just modules and pins. For pin board systems, the modules and slats usually correspond to the banks of addresses on the pin board, and usually the pin board only has one set of banks so it suffices to represent the pin board simply with modules and pins (no slats), like the default settings shown in Figure 5. The rail address template Z-#100 means the "modules" (banks) are lettered A-Z; the #100 means that each module has 100 pins, starting with 1 (the # sign means start with one; if it is missing the numbers will start with zero). If your pin board numbering system is not one of the standard ones, you may be able to write a rail address template to represent it as a custom module. Consider a pin board with pins numbered in groups of eight, "A11, A12, A13, A14, A15, A16, A17, A18, A21, A22, A23, … all the way up to A88, then starting over with B11, B12, B13 … ". You can represent this numbering system using letters for the modules and numbers 1-8 for the slats, and numbers 1-8 for the pins: Z-#8-#8. With this representation the "Rail" address comprises both the letter and the first digit of the number (1-8); the "Pin" address is the second digit (1-8). In reality, the addressing banks of this firing system correspond to the letters alone, and the pins correspond to the numbers alone (both digits together), but since the pin board's numbering system doesn't have a contiguous sequence of numbers for the pins (e.g., A19 and A20 are missing in between A18 and A21), you need to represent it in Finale 3D using modules and pins and slats. Figure 6 – The operator can follow the cue sheet. The cue sheet in Figure 6 shows the result of using this custom rail address template, Z-#8-#8. Although the combination of rail and pin addresses matches the pin board, the voice cues will be slightly different for two reasons. First, for addressing systems with modules and slats, the voice cues articulate only the slats. Thus for this pin board the voice cues will ignore the modules. The reason is that articulating both the module and the slat is more information than the operator usually needs. Articulating just the slat when it changes is sufficient because the operator can see the module change coming up and doesn't need a reminder. Second, the voice cues always articulate the modules or slats using the military alphabet, and the pins using numbers. Thus for this pin board the groups of eight pins are always numbered 1-8. The reason is to prevent the operator from confusing modules and slats from pins as they are spoken. In this particular example, it isn't ideal that the voice cues articulate only the slats and that the slats are articulated in the military alphabet. The first 64 pins of this pin board system A11-A88 will be vocalized as, Alpha 1,2,3,..8, Bravo 1,2,3,..8, ... Hotel 1,2,3,...8 and then the next 64 pins B11-B88 will be vocalized exactly the same, as, Alpha 1,2,3,..8, Bravo 1,2,3,..8, ... Hotel 1,2,3,...8 The operator listens to the count of eight pins, and then hears a military alphabet letter as the indication to move to the next row of eight pins on his pin board, and so on. After the last row of pins, the operator will hear "Alpha!" again and will know to advance the bank letter of the pin board from A to B, or to whatever the next letter is. The cue sheet has the exact match of the addresses so if the operator is following along with the cue sheet, he's always got a reference in case he gets lost. One voice cue per track Ordinarily, the Track field of the script has nothing to do with voice cues, but if your firing system or manual firing method requires only one voice cue per track, you can select the "One voice cue per track" checkbox on the voice cues settings or export dialog, as shown in Figure 7. Figure 7 – If you check "One voice cue per track" then only the first event of each track will generate a voice cue. Parente Firemaster is one of the firing systems that require one voice cue per track. Although each track may contain multiple addressed events, the firing system fires the track sequence of events when triggered. The voice cue beep is the trigger for the entire track. Table 1 – Example files Download link Explanation test_pin_board.csv Example exported file (CSV) test_pin_board.fin Example show file [audio wav="https://finale3d.com/wp-content/uploads/2020/04/voice-cues-example-pin-number.wav"][/audio] Example voice cues with pin number only [audio wav="https://finale3d.com/wp-content/uploads/2020/04/voice-cues-example-pin-number-and-beep.wav"][/audio] Example voice cues with pin number and beep [audio wav="https://finale3d.com/wp-content/uploads/2020/04/voice-cues-example-pin-number-and-buzzer-with-music.wav"][/audio] Example voice cues with pin number and buzzer; music in right channel [audio wav="https://finale3d.com/wp-content/uploads/2020/04/voice-cues-example-firemaster-beep.wav"][/audio] Example voice cues with Firemaster beep
The design process in Finale 3D for a pin board show is mostly the same the design process for a computer fired show, except that you may export a voice cues track instead of a firing system script. Although you don't need a firing script, you still need reports and maybe rack layout diagrams or labels, so you still need to address the show. The section Voice cues basic instructions provides general instructions for voice cues. This section focuses on the "Pin Board" firing system option on the "Addressing > Address show..." dialog. You can choose any firing system in Finale 3D for addressing a pin board show but Finale 3D comes with a firing system option called "Pin Board" that conveniently has pre-made "Module Type" configurations that match the common pin board pin configurations, with 32, 36, 45, 48, 50, 100, and 400 pins. The easiest way to address a pin board show is to choose the Pin Board addressing system and select the Module Type that matches the number of pins in your electrical firing system. If the exact pin number configuration isn't one of the standard options, you can make a custom module variation to match whatever you need. The design process for a pin board show is, Design the show. (Optionally, turn on voice cues with "File > User settings > Set voice cues ON while editing") Address the show ("Addressing > Address show" using the "Pin Board" firing system). Export the voice cues track ("File > Export > Export voice cues track"). Step 3 creates the voice cues sound file, which is a WAV file with a human voice counting out the shots, or beeps, or both, depending on your choices when exporting. Figure 1 – An electrical "pin board" firing system Since the "Pin Board" firing system that you use for addressing the show is a firing system from the perspective of the software, it has an script format that will be exported if you choose to export a firing system script. The script format is virtually identical to the "CSV" firing system. In fact, you could just as well use the CSV firing system to address your show as the Pin Board firing system. The only difference is that the CSV firing system has standard Module Type options that are more common for do-it-yourself computer firing systems, and the Pin Board firing system has standard Module Type options that are more common for pin boards. The exported script format by the Pin Board firing system is explained in the tables below. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text CSV UTF-8 Tab CRLF The script contains five header lines, followed by a single header row with the column names of the rows, followed by the rows themselves. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows are sorted by ignition time. What rows represent Each row identifies a unique firing pin ignition (i.e., unique rail address, pin address, ignition time). Module types Rows in the script can represent multiple types of modules: pinboard_alpha_32ch -- 32 pins; modules named A-Z pinboard_alpha_45ch -- 45 pins; modules named A-Z pinboard_alpha_48ch -- 48 pins; modules named A-Z pinboard_alpha_50ch -- 50 pins; modules named A-Z pinboard_alpha_100ch -- 100 pins; modules named A-Z pinboard_num_32ch -- 32 pins; modules named 1-99 pinboard_num_45ch -- 45 pins; modules named 1-99 pinboard_num_48ch -- 48 pins; modules named 1-99 pinboard_num_50ch -- 50 pins; modules named 1-99 pinboard_num_100ch -- 100 pins; modules named 1-99 pinboard_num_400ch -- 400 pins; modules named 1-99 If you need more than 400 pins in the same bank or module, you can create a custom module. Special characters Fields include any Unicode characters except: ' , ; " tab and newline and other control characters. Each script row has the fields shown in Table 3. Table 3 – Specifications of script fields Field name Description Cue The cue count, beginning with one and incrementing at each new ignition time or at each new track group of effects. The cue count does not increment within a track group of effects even if the effects in the track group have different ignition times. Event Time The exact time of the firing system's "ignition event" (application of a voltage to a pin) that ignites e-matches or triggers a sequencer that ultimately leads to the ignition of effects. Format is HH:MM:SS.DDD. Prefire The delay from the ignition time to the perceived visual effect. This delay typically includes the lift time (for shells) plus any fuse time between the ignition time and the first launch of the effect. Format is in seconds with two digits after the decimal point. Effect Time The time of the first visual effect triggered by the firing system's ignition event, which is generally the break time for shells, and just a small delay or no delay after the event time for ground effects. Format is HH:MM:SS.DDD. Duration The duration represents the lifetime of the perceived visual effect, which is usually interpreted for shells as the time from break to dissipation of the stars. Format is in seconds with two digits after the decimal point. Device Count The number of devices (shells) represented by the row. May be more than one in the case of chains or multiple e-matches connected to the same firing system pin. Description The name of the effect. Size The device caliber. Format is either a number followed by double-quote for inches or "mm" for millimeters, or the string "NA" or blank for effects for which the caliber term is not applicable. Category A user defined string identifying the category of the effect. Type One of several pre-defined terms that have specific meaning in Finale 3D (see Why is ‘Type’ so important? What depends on it?). Position The name of the launch position. Module Type The type of module or slat, as listed in Table 1. Rail Address The module number or letter, depending on the Module Type. Pin Address The pin number. Angle An ASCII art representation of the angles of the devices on this shot, made with backslash, vertical line, and forward slash characters. Hazard A string identifying a group of effects that can be disabled by pressing the associated button on the firing system controller during the performance, due to conditions. Notes Firing notes from the script pertaining to this row. Part Number A user-defined identifier for the effect. Track A string identifying a group of effects that are to be fired as a sequence with a single trigger if the firing system is in semi-autonomous mode. The example script below shows an exported script with pairs of shots fired from different positions. Since cues are typically chronological, it is important to address the show with 1) max e-matches per pin = 99, 2) sort rows by = event time, 3) no constraints on modules or pins (i.e., do not constrain modules to the same position, which is the default addressing constraint). All three of these conditions are illustrated in the example file. If e-matches per pin were 1 (the default) then the each pair of shots would result in two cues, when obviously it should be one. If modules were constrained to the same position, then each position in the example would have its own module, instead of all the positions sharing the same pin board. Cue Event Time Prefire Effect Time Duration Device Count Description Size Category Type Position Module Type Rail Address Pin Address Angle Hazard Notes Part Number Track 1 00:00:02.760 2.24 00:00:05.000 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-01 pinboard_alpha_32ch A 1 || G2SH1000 2 00:00:05.260 2.24 00:00:07.500 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-02 pinboard_alpha_32ch A 2 || G2SH1000 3 00:00:07.760 2.24 00:00:10.000 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-03 pinboard_alpha_32ch A 3 || G2SH1000 4 00:00:10.260 2.24 00:00:12.500 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-04 pinboard_alpha_32ch A 4 || G2SH1000 5 00:00:12.760 2.24 00:00:15.000 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-05 pinboard_alpha_32ch A 5 || G2SH1000 6 00:00:15.260 2.24 00:00:17.500 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-06 pinboard_alpha_32ch A 6 || G2SH1000 7 00:00:17.760 2.24 00:00:20.000 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-07 pinboard_alpha_32ch A 7 || G2SH1000 8 00:00:20.260 2.24 00:00:22.500 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-08 pinboard_alpha_32ch A 8 || G2SH1000 Finale 8 00:00:22.760 2.24 00:00:25.000 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-09 pinboard_alpha_32ch A 9 || G2SH1000 Finale 8 00:00:48.240 2.24 00:00:50.480 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-08 pinboard_alpha_32ch A 17 || G2SH1000 Finale 8 00:00:50.740 2.24 00:00:52.980 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-09 pinboard_alpha_32ch A 18 || G2SH1000 Finale 8 00:01:15.498 2.24 00:01:17.738 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-08 pinboard_alpha_32ch A 26 || G2SH1000 Finale 8 00:01:17.998 2.24 00:01:20.238 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-09 pinboard_alpha_32ch A 27 || G2SH1000 Finale 8 00:01:43.478 2.24 00:01:45.718 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-08 pinboard_alpha_32ch B 3 || G2SH1000 Finale 8 00:01:45.978 2.24 00:01:48.218 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-09 pinboard_alpha_32ch B 4 || G2SH1000 Finale 9 00:00:30.740 2.24 00:00:32.980 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-01 pinboard_alpha_32ch A 10 || G2SH1000 10 00:00:33.240 2.24 00:00:35.480 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-02 pinboard_alpha_32ch A 11 || G2SH1000 11 00:00:35.740 2.24 00:00:37.980 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-03 pinboard_alpha_32ch A 12 || G2SH1000 12 00:00:38.240 2.24 00:00:40.480 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-04 pinboard_alpha_32ch A 13 || G2SH1000 13 00:00:40.740 2.24 00:00:42.980 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-05 pinboard_alpha_32ch A 14 || G2SH1000 14 00:00:43.240 2.24 00:00:45.480 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-06 pinboard_alpha_32ch A 15 || G2SH1000 15 00:00:45.740 2.24 00:00:47.980 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-07 pinboard_alpha_32ch A 16 || G2SH1000 16 00:00:57.998 2.24 00:01:00.238 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-01 pinboard_alpha_32ch A 19 || G2SH1000 17 00:01:00.498 2.24 00:01:02.738 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-02 pinboard_alpha_32ch A 20 || G2SH1000 18 00:01:02.998 2.24 00:01:05.238 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-03 pinboard_alpha_32ch A 21 || G2SH1000 19 00:01:05.498 2.24 00:01:07.738 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-04 pinboard_alpha_32ch A 22 || G2SH1000 20 00:01:07.998 2.24 00:01:10.238 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-05 pinboard_alpha_32ch A 23 || G2SH1000 21 00:01:10.498 2.24 00:01:12.738 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-06 pinboard_alpha_32ch A 24 || G2SH1000 22 00:01:12.998 2.24 00:01:15.238 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-07 pinboard_alpha_32ch A 25 || G2SH1000 23 00:01:25.978 2.24 00:01:28.218 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-01 pinboard_alpha_32ch A 28 || G2SH1000 24 00:01:28.478 2.24 00:01:30.718 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-02 pinboard_alpha_32ch A 29 || G2SH1000 25 00:01:30.978 2.24 00:01:33.218 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-03 pinboard_alpha_32ch A 30 || G2SH1000 26 00:01:33.478 2.24 00:01:35.718 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-04 pinboard_alpha_32ch A 31 || G2SH1000 27 00:01:35.978 2.24 00:01:38.218 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-05 pinboard_alpha_32ch A 32 || G2SH1000 28 00:01:38.478 2.24 00:01:40.718 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-06 pinboard_alpha_32ch B 1 || G2SH1000 29 00:01:40.978 2.24 00:01:43.218 1.02 2 (2) Red Chrysanthemum ... 2" 2 Assorted shell Pos-07 pinboard_alpha_32ch B 2 || G2SH1000 Figure 2 – Example Pin Board firing system script for pin board controllers Table 4 – Example files Download link Explanation test_pin_board.csv Example exported file (CSV) test_pin_board.fin Example show file
To create and export a script for the Firemaster firing system, please follow these steps: Address the show ("Addressing > Address show") and select "Firemaster6" as the module type. Firemaster6 is the most up-to-date script format and is backward compatible, so you should try this format first no matter how old your firing system is. If it doesn't work and you have old hardware, you can try the Firemaster5 and Firemaster3 module types. Export the script ("File > Export > Export firing scripts"). If you use a beep track for synchronization, export a voice cues track using the "Firemaster beep" as the vocalization ("File > Export > Export voice cues track"). Step 2 creates the script file, which has the "TXT" extension. The file format details are described in this section. Figure 1 – Firemaster firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .TXT ASCII semicolon 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 Each row represents a unique firing event, a module/pin/event-time combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row. Header The first line of the file indicates the file format, Firemaster6. The next three rows are for the name, date, and time. Finale 3D fills in the show name and date fields from the show information that you set with the menu item, "Show > Set show information..." Finale 3D fills the time with 12:00:00. Parente Firemaster has strict requirements for the format of the date: DD/MM/YYYY. If the date format in show information doesn't match, Finale 3D fills in a default date, 01/01/2000. The next row is column header row, which specifies the fields of the following data rows: Firemaster6 Finale3D Name testshow Date 05/08/2021 Time 12:00:00 Cue;Seq;Rif;Start;Delay;Address;Group;Note Time resolution The Firemaster system supports 1/100th second resolution. To accommodate fast paced events, the file format includes named sequences that require a single trigger for the entire sequence, rather than a trigger for each event in the sequence, thereby limiting the network bandwidth and precision required to control the script reliably in real time. By default, the Finale 3D exporter will automatically combine events that are closer together than 1.0 second into a sequence, and will give the sequence a name (an integer) that does not conflict with any sequences manually defined by the user in Finale 3D using the "Track" field. Optionally, a user can change the minimum Separation Time from 1.0 seconds to other choices in the script export options (See Table 3). Aside from accommodating fast paced sequences of events, the sequences in the script can be used to combine effects together into a group with a single trigger for semi-automatic or manual fire (see below). Semi-automatic fire and manual fire The Firemaster script format supports semi-automatic and manual fire with sequences. The script contains cue numbers (Cue) and sequences names (Seq) as described in Table 4. The cue number is the progressive count of sequences, in chronological order starting with 1. The sequence name is the unique name (an integer) of a sequence of effects with same start time and various delay times relative to the start. Sequence names may be the same as the cue numbers, or they may be different. The user can define and name sequences using the Track field in Finale 3D, by simply selecting range of effects on the timeline, and assigning them the same Track number, which is taken to be the sequence name. In this case, the sequence names can be any number > 0 and do not need to be the same as the cue numbers. Sequences that are automatically generated by the Finale 3D exporter to accommodate fast paced events will have automatically generated sequence numbers beginning at 1 + the largest Track number, or just 1 if there are no Track numbers specified in the show. Pyromusicals and other full shows that are not fired with semi-automatic firing or a beep track generally do not have any user-defined Track numbers, because there is no reason for them. Tracks are required for beep tracks (see next paragraph). Optionally, a user can add an offset to the automatic sequence numbers by specifying a Sequence Number Offset in the export options (See Table 3). This offset will be added to automatically generated sequence numbers, not to the sequence numbers defined by Tracks. Beep tracks If you use a beep track for synchronization, export a voice cues track using the "Firemaster beep" as the vocalization ("File > Export > Export voice cues track"). Since Firemaster needs only one beep trigger per sequence, you must turn ON the checkbox, "One voice cue per track" on the voice cues dialog, and you must explicitly make any fast paced sequence of events a track using the Track field in the script window. Although the Finale 3D exporter for Firemaster will automatically create implicit sequences for fast paced sequences of events that need them, the "One voice cue per track" setting is based only on the explicit tracks in the Script window's Track column. When you export a firing script for Firemaster, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3. Table 3 – Export options Option name Description Version Choose version V3, V5, or V6. Separation Time Choose the minimum separation time between shots, as described in the "Time resolution" row of Table 2. The default value is 1 secoond. Sequence Number Offset If you want the automatic sequence numbers to begin at an offset, specify the offset with the option. The default value is zero. Each row in the script has a number of fields separated by the semicolon character. The names of the fields and their descriptions are in following table. The old Firemaster 3 format contains a subset of the Firemaster 5 fields and in a different order, but the Firemaster 5 format is backward compatible so there is no reason to use the old format. The header in Table 2 indicates what columns are present in each format, and in what order. Table 4 – Specifications of script Firemaster 5 fields Field name Description Cue The cue number is the progressive count of sequences or individual events, in chronological order of their earliest event time, starting with 1. Rows of the same sequence have the same cue number. Rows are sorted by cue number, then event time, then delay (for rows in a sequence). Rows of all sequences are thus listed contiguously in the exported script, even if sequences have overlapping time ranges. Seq The sequence name is the unique name (an integer) of a sequence of events with same start time and various delay times relative to the starting event time. An individual event is considered to be a sequence of one event, and thus all rows in the script must have defined sequence names. Sequence names may be the same as the cue numbers, or they may be different, but all rows of the same sequence have the same sequence names and the same cue numbers. Rif An auxiliary identifier for the effect. Finale 3D leaves this field blank. Start The start time of the sequence, in the format HH.MM.SS,XX. Delay The delay from the start time of the row in its sequence, in the format HH.MM.SS,XX. Address The combined Unit and Term address, as an integer: (Unit - 1 ) * 24 + Term. Unit is the module number starting with 1; Term is the pin number starting with 1. Group The hazard lockout number, from 0-9. The default value is 0. The values 1-9 indicate groups that can be disabled on the fly by the Firemaster system. The group number comes from the "Hazard" field in Finale 3D. Note The name of the effect. The example script shown in Figure 1 includes both automatically defined sequences and sequences defined by the user with the Track field. The rows with cue numbers 3 and 4 represent two sequences named 101 and 102. The sequence names were defined in the Finale 3D show using the Track field. The rows with cue numbers 1 and 2 do not have any Track number in the Finale 3D show, but they represent two fast paced sequences of events with just 0.1 seconds separating the events. To accommodate the face paced events, Finale 3D automatically combines the events into sequences and gives them names. Ordinarily, if there were no user-defined Tracks, the sequence names would begin at 1, just like the cue numbers, and would advance in the script along with the cue numbers, identically, each row having the same value for its first two fields. This show contains Track values 101 and 102, so the automatically generated sequence names begin at 1 + the largest Track value, which is 103. Firemaster6 Finale3D Name testshow Date 05/08/2021 Time 12:00:00 Cue;Seq;Rif;Start;Delay;Address;Group;Note 1;1;;00.00.02,76;00.00.00,00;1;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.00,57;25;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.01,14;49;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.01,70;73;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.02,27;97;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.02,84;121;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.03,41;145;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.03,98;169;0;Red Chrysanthemum 1;1;;00.00.02,76;00.00.04,54;193;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.00,00;2;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.00,57;26;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.01,14;50;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.01,71;74;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.02,28;98;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.02,84;122;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.03,41;146;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.03,98;170;0;Red Chrysanthemum 2;2;;00.00.10,32;00.00.04,55;194;0;Red Chrysanthemum Figure 2 – Example Firemaster 6 script Table 5 – Downloads Download link Explanation test_firemaster.fin Example show file test_firemaster.txt Example exported file (TXT) MANUAL_FIR5-ENG_v201120.pdf Firemaster manual [audio wav="https://finale3d.com/wp-content/uploads/2020/04/voice-cues-example-firemaster-beep.wav"][/audio] Firemaster beep track
Racks like the Craig Co Rack shown in Figure 1 have tube holder angles that fan out within each row. This rack structure contrasts with Tiltable row racks in which the rows themselves tilt sideways to make fans. Figure 1 – Fan row racks are usually rotated 90° in the rack layout so holders can fan out left/right from the audience perspective. In Finale 3D there are two kinds of fan row racks -- Pre-configured fan row racks, and Adjustable fan row racks. In the real world, the two kinds of fan row racks are usually the same physical hardware. The difference is in the design and planning phase. Do you want to pre-define the angles of your rack tube holders and design the show to fit in racks so configured, or do you want to let your show design dictate the angles of the tube holders in your racks? Pre-configured fan row racks The effects window contains various collections of effects like My Effects, Generic Effects, supplier catalogs, and possibly your company inventory in a single collection or spread out into multiple effects files (FDB files). You choose between different collections with the blue selector in the upper right of the effects window. The effects collections can contain racks, along with shells and other pyrotechnic devices. Every item in the effects list has a unique part number, which is the reference used when the effect is inserted into the show or when the rack is inserted into the rack layout. When you make a rack configuration of one of your racks to add to the show as a pre-configured rack, you need to add the new rack definition representing the pre-configured rack as as item in one of your effects collections. That means you need to assign it a unique part number. Let's say you use racks like the one shown in Figure 1. If you use 10 different configurations of this rack, then you would have 10 different items in your effects collection, representing the variations. Each one would need its own part number, but they are related since they are all configurations of the same physical hardware, so you might make a part number scheme for your variations that has a common stem, like PLS30-A, PLS30-B, PLS30-C, for three different configurations of PyroDigiT racks, or maybe PLS30-FAN, PLS-30-STRAIGHT, PLS-30-ANGLES, if part numbers like that are more recognizable. Figure 2 shows a possible configuration of a PyroDigiT fan row rack that requires pre-wired pins. Figure 2 – Six row example in which all the tube holders in each row aim the same direction instead of fanning out. The corresponding rack configuration in Finale 3D is shown in Figure 3. You can invoke this dialog with the command "Racks > Create rack...". The salient input fields are circled in red. The first indicated field defines the rack structure -- "Single-shot rack, fixed tube angles". The reason this is the correct selection, rather than any of the adjustable tube holder options, is that you are "pre-configuring" the rack. From the perspective of Finale 3D, none of the angles are adjustable. Figure 3 – Rack definition corresponding to the pre-configure tube holder angle specifications of Figure 2. The diagram of Figure 2 also specifies the pin numbers ("Ch" in the diagram) for all the tube holders, as is common for PyroDigiT racks with built in firing system rails. You will need to specify the pre-wired pin order in the second red circle of Figure 3 in your rack definition. The pre-wired pins option applies equally to pre-configured fan row racks and adjustable fan row racks. Adjustable fan row racks Adjustable fan row racks are usually the same hardware as pre-configured fan row racks, so Figure 1 could represent either. In Finale 3D, you define an adjustable fan row rack by setting the rack structure selector in the first red circle of Figure 3 to, "Single-shot rack, adjustable fan angle tubes in each row". Having declared that the tube holder angles are adjustable, you obviously shouldn't specify the angles within the rows, so the circled area on the right side of Figure 3 should be blank or should contain angle ranges instead of specific angles. For most fan row racks, the tube holders at the ends of the rows can rotate significantly wider than the interior tube holders because the interior tube holders run into their neighbors when they lean far enough. You can represent the angle ranges in the rack definition following the instructions in Tube angle range constraints. The Addressing algorithm that assigns firing system modules and pins to the effects also assign the racks and tube holders to the effects. The tube holder angles of adjustable fan row racks are undefined until effects are assigned to them, at which point the tube holder angles take on the angles of their effects. In this manner it can be said that the addressing algorithm chooses the tube holder angles of the adjustable fan row racks.
Fan racks and other racks with fixed angle tubes are easier to wire up if the pin numbers correspond to tubes in an understandable pattern. Circle racks, like the PyroDigiT CLS30 rack shown in Figure 1 and the monstrous 28 x 4 rack shown in Figure 3 are good examples. Racks like these make use of a the "pre-wired pins" options discussed in Racks with pre-wired pins. PyroDigiT CLS30 You can see in Figure 1 that the module pins in the center of the rack are laid out with an obvious correspondence to the rack tubes, 15 on the left half of the circle and 15 on the right half of the circle. Although, strictly speaking, these tubes aren't pre-wired to specific pin numbers, it would certainly make things easier on the crew if the pin numbers corresponded to the tubes in a natural way. The "pre-wired pins" options for racks in Finale 3D can guarantee that is the case. Figure 1 – PyroDigiT CLS30 circle rack is well suited for using pre-wired in Finale 3D. To create a rack with pre-wired pins, do “Racks > Create rack...” to bring up the rack configuration dialog. Figure 2 shows the configuration for the PyroDigiT CLS30. The three circled areas on the dialog are the salient input fields. Since the rack houses single-shots at fixed angles, the rack structure is "Single-shot rack, fixed angle tubes". The "Pre-wired pins" selector in the second red circle specifies the required correspondence between the rack tubes and pin numbers. To understand this field, you need to look first at the specifications of this rack's tubes. This rack has a total of 30 tubes. If we weren't concerned with the wiring, we could represent this rack as one row with 30 tubes in it, and we could specify the angles of all the tubes starting at 0 degrees (up) and rotating around. But the wiring concerns for this particular rack and module type complicate matters. You can't really see it in the picture, but the two module rails of 15 pins are oriented with their pins running in opposite directions. The rail on the left half of the circle begins with pin number 1 at the bottom, incrementing upward to 15 at the top. The rail on the right half of the circle begins with pin number 1 at the top, incrementing downward. Let's call the rail on the left the first rail, and the rail on the right the second rail. We can now define specifically what correspondence we would like between the tubes and the pin numbers. There's no hard lined requirement forcing us to use a specific correspondence because the rail pins aren't actually pre-wired to the tubes in the physical world. It would be possible to extend a wire from any one of the pins to any one of the tubes. But let's set this up to make it easy on the crew. Let's define that the tube aiming straight down is wired to pin 1 of the first (left-side) rail. The tube aiming a little more to the left, rotating around the circle clockwise, is pin 2 of the first rail, and so on, up to the slightly left of vertical tube being pin 15 of the first rail. Keeping in mind the orientation of the second rail, we will define the tube aiming straight up to be pin 1 of the second (right-side) rail; the next tube aiming slightly to the right, continuing clockwise, is pin 2, and so on, down to the nearly straight down tube being pin 15 of the second rail. Figure 2 – Pre-wired pins rack configuration for the PyroDigiT CLS30 rack You can see now in the third circle of Figure 2 how this configuration defines the tube angles of the rack. The rack is defined as two rows of 15 tubes each. The first row, representing the left side of the circle, begins with the tube angled at 180 degrees, straight down! The next tube in this row is at angle 192 degrees, with rotates it a little to the left, clockwise. Although you can't see the full list of 15 angles in the first row of the red circle, the last number is 348, representing the tube angle slightly to the left of straight up. The second row of the rack is also 15 tubes. It begins with the tube angle 0, straight up, and continues with additional tubes spaced out in 12 degree intervals. The last number in the tube angles of row 2 is 168, angling just right of straight down. Having defined the tube angles in the row specifications, we can now return to the second red circle, which specifies the correspondence between the pins and the tubes. The option "Sequential by rows, left to right, half and half" means that, Sequential by rows. The tubes are sorted sequentially by rows, meaning the first row would have tubes 1..N, and the next row would have tubes N+1..2N, etc. Left to right. The rows are sorted left to right. The "rows" that the rack configuration dialog refers to are actually vertical if you are looking at the rack in a top-down view as in the rack diagrams. The reason for this is that a simple wooden rack with one "row" is naturally oriented vertically in the top-down view, so if a rack definition had multiple rows, the additional rows would also be vertically oriented, stacking to right like a picket fence in the top-down view. Thus "left to right" in the specification just means that row 1 (our left half of the circle) has tubes 1..N, and row 2 (our right half of the circle) has tubes N+1..2N. Half and half. Instead of the tube numbers corresponding to pins of exactly the same numbers, the tube numbers are divided half and half into two groups, and both groups correspond to the same pin numbers. Thus in our example of 2N tubes (N = 15), the first 15 tubes correspond to the first 15 pins of a firing module (pins 1-15) and the second 15 tubes also correspond to the first 15 pins of a firing module (pins 1-15, the same). These "pre-wired pins" restrictions force the tubes of the PyroDigiT 30CLS to correspond naturally to the pins in the two rails mounted in the rack. If you define your racks with this configuration, then your crews can know when setting up the show that pin 1 of the first rail is always the straight down tube, and the next pins continue around the circle clockwise. This correspondence is 100% independent of the firing order of the shots or addressing order of assignment. No matter what the firing pattern looks like in the show, the setup is the same. 28 x 4 circle rack using 4 modules If your modules have at least 28 pins, then the 28 x 4 rack shown in Figure 3 may be easiest to setup with four modules, each module serving one complete circle of 28 tubes (leaving 4 pins left over if your modules have 32 pins, for example). The obvious advantage of this setup is that each cluster of 4 tubes could use the same pin numbers on its 4 modules. All the pin 1s could go to the first cluster of 4 tubes; all the pin 2s could go to the second cluster; and so forth. Using "Pre-wired pins" in the definition of this rack in Finale 3D can guarantee this regularity no matter what the firing pattern or addressing order of assignment is. Figure 3 – A 28 x 4 point circle rack is much easier to setup using the "pre-wired" pins option in Finale 3D. The rack configuration for this 28 x 4 rack is shown in Figure 4. Like the PyroDigiT rack, this rack configuration is a single-shot rack with fixed angle tubes. However, unlike the PyroDigiT rack, the natural way to model this rack is with four rows of 28 tubes each. The "Pre-wired pins" constraint is "Sequential for each row", meaning that each row has sequentially ordered tubes corresponding to the first N pins of a module. Figure 4 – The 28 x 4 point rack can be represented as four rows of 28 tubes each. After creating the rack and and addressing the show with "Addressing > Address show..." using any order of assignment, the pin numbers fill into the tubes regularly for the four modules as shown in Figure 5. The example show illustrated in Figure 5 consists of four completely different firing orders for four sequences of shots around the circle, but the pin numbers are the same for all of them because of the "Pre-wired pins" constraint. Figure 5 – The large 28 x 4 rectangle represents the circle rack with 28 angles, 4 tubes each in the rack layout screen. Angle problems with circle racks It is important that the tube angles of the rack align exactly to the shot angles in the show design. Sometimes that requires some extra work. Take for example the 28 x 4 circle rack. The number 28 does not divide evenly into 360 degrees, so the angle intervals between the tubes in the real world are fractional numbers (360 / 28 = 12.857 degrees). To make the circle fan in the show design, add 28 shots to the show and select all of them. Then do the command "Script > Angles > Make into fan..." and choose 12.857 as the angle interval, having calculated that number with a calculator as 360 / 28. For a circle fan you can't simply set the total angle in the fan dialog to 360 because that would create two coincident shots at angles 0 and 360, which are the same angle. Circle fans have one more angle gap than regular fans for the same number of shots. Figure 6 – The angle intervals of a 28 point circle rack are fractional numbers since 360 / 28 = 12.857 degrees. Once you have created your circle fan of shots, you need to create a rack with identical angles. Since the angles are all fractional, it is easiest to create the rack tube angles using cut and paste. In the script window, drag a tall, skinny selection rectangle over the 28 cells in the "Tilt" column of your circle fan of shots. Copy with control-C and paste these 28 angles into a text editor. Then combine the list of angles into a single line, separated by commas. Copy/paste that list of numbers into tube angles fields in the rack configuration dialog shown in Figure 4. Since these angles are copied from the actual shot angles, they are guaranteed to match exactly.
The term "prefire" means the time from firing system ignition to the effect time that is synchronized to the music. For aerial shells, the prefire is usually associated with the lift time. In fact, the association is so close that people often use the terms interchangeably. VDL supports this common usage with the special rules, Prefire < 0.5 defines delay before simulation; Prefire >= 0.5 defines aerial shell lift time In other words, if the prefire is a small fraction of a second, then it refers to the latency introduced by the firing system or the time it takes for the effect to get started. If the prefire is in the range that it could be a lift time, then that's what it is. These rules work almost all the time, so you usually don't need to give much thought to it. The rules even work for combination effects like RED PEONY w/ BLUE MINE, or BLUE MINE w/ RED BOMBETTES. If you want to synchronize the launch of the mine to the music, specify a small prefire < 0.5. If you want to synchronize the break of the shell to the music, specify a larger prefire, being the lift time of the shell. The prefire can be specified in the effect window table in the "Prefire" column explicitly, or it can be included in the VDL using the term PFT (see VDL timing adjustment terms). If the prefire is specified in both places, the value in the window table prevails. LFT and DLY In circumstances for which the prefire rules are insufficient, the LFT and DLY terms in VDL specify the lift time and delay before simulation, taking precedence over whatever the default lift time would be or whatever the prefire implies. Consider the case of a bombette roman candle with a 1.0 second fuse prior to the first launch, and then 2.0 seconds between the shots, and finally 3.0 seconds lift time in each of the bombettes. You can define this effect in VDL as, 50mm 21.0s 4.0 PFT 10 Shot RC 1.0 DLY Pink Peony w/ Green Mine 3.0 LFT Breaking this phrase apart, you can see the 3.0 LFT time at the end, defining the lift time. The 1.0 DLY is the delay before simulation, representing the delay before the first launch as the visco fuse works its way down into the roman candle tube to the first shell. The 4.0 PFT aligns the prefire with the first break, which occurs at 1.0 seconds + 3.0 seconds = 4.0 seconds after the firing system ignition. The overall duration of 21 seconds measures first launch to last break (see Cake and candle duration), so that's 18 seconds between the first launch and the last launch, accounting for the 3 second lift time to the last break. There are 9 gaps between 10 shots, so 18/9 = 2 seconds between shots. Editable fuse delay If you need to represent a long fuse in front of the device, like a Pyro-Clock fuse or a Visco fuse on a cake, then the “Delay Default” field in Finale 3D may be better suited to your purpose than “Prefire“. The Delay Default field in Finale 3D is an external delay between the firing system ignition and the ignition of the effect. The column is normally hidden in the effects window and the script, so click the blue gear menu in the upper right of those windows to unhide it. In the effects window, the column is called “Delay Default” whereas in the script window it is called “Delay”. The reason it is called “Delay Default” in the effects view is that when you insert an effect the “Delay Default” is copied by value into the script’s “Delay” field. Once it is copied into the script, you can edit the Delay in the script on a row-by-row basis, as you might need to do if you were adjusting the length of the delay fuses on an item by item basis in the physical world. Thus the “Delay” in the script can be different for different occurrences of the same effect., Measuring prefire The prefire values in your effects list can come from a variety of sources. If you measure your effects' prefire times yourself in the real world using photography or a stopwatch -- from firing system ignition to break -- then the times will incorporate any latency from your firing system into the prefire times. Thus, Measured prefire = delay before launch + lift delay It works fine to use these prefire times directly in Finale 3D. Here's why: Finale 3D will interpret them for shells as just the lift delay, following the rules described above. Thus the simulated launches will leave a little early and the breaks will linger compensatingly long to make them hit exactly at the prefire. But this slight inaccuracy is okay because small changes to the shape of the trajectory are virtually imperceptible, and if you are entering prefires >= 0.5 to synchronize the breaks to the music, then you probably don't care if the launch begins a little early. If the shell includes a bouquet of mine stars as part of the effect, then you probably would be synchronizing the music to the mine launch with a prefire < 0.5 and wouldn't care about a slight inaccuracy in the shell breaks. If you have any objection to the approximations, you can fix them with LFT and DLY. Using lift times from suppliers as prefire As an alternative to measuring your own prefire times, you may use the prefires or lift delays provided by your suppliers. These times obviously wouldn't take into consideration any delays introduced by your firing system. Thus, Prefire from supplier = lift delay If the delays introduced by your firing system are enough to pay attention to, you have two choices. You can add them to the prefire times from the supplier, modifying the effects lists, or you can set the "Firing system export offset" in the "Show > Show settings..." dialog in Finale 3D. To compensate for a positive delay enter a negative number as the export offset, e.g., -0.1 if your firing system adds a latency of a tenth of a second. An advantage to the using the export offset for firing system latency instead of folding firing system latency into the prefires is that your prefire values are then not firing system dependent. You could re-purpose an existing show from one firing system to another by simply changing the export offset.
If you ever need to make a backup of your My Effects collection or your Finale Inventory products list, you can copy and paste from the effects window to an Excel XLSX file, or you can save your effects as a Finale 3D FDB effects database file. Both methods are easy to do, and you will not lose any data. If you backup your effects to an Excel spreadsheet, you can copy and paste your effects back into a Finale 3D anytime. If you backup your effects using an (.fdb) effects file, the collection will automatically be loaded into the effects window each time you launch Finale 3D. Please note: if you are having trouble syncing with the network (e.g. due to an internet connection issue or some other error), it's critical that you make a backup before closing Finale 3D. If you don't make a backup and Finale 3D is closed without successfully syncing, any unsaved changes to your effects will be lost. Procedure to save effects list as Excel XLSX file (Lite, Hobbyist, Pro) In the effects window, view the collection you would like to backup. Press Ctrl+A to select all (your entire effects collection should now be highlighted yellow). Press Ctrl+C to copy the effect collection. Open a blank Excel spreadsheet and press Ctrl+V to paste. Save the spreadsheet. To restore your effects later on: Open the Excel spreadsheet with your effects, press Ctrl+A to select all, then Ctrl+C to copy. Go back to the effects window in Finale 3D, press Ctrl+A to select all, then press Delete on your keyboard to delete everything. Finally, press Ctrl+V to paste the backup you copied from Excel into the effects window. If you are restoring My Effects or another online effect collection, be sure to do File > Sync with network to save. Procedure to save effects list as an FDB file (Hobbyist, Pro) In the effects window, view the collection you would like to backup. Press Ctrl+A to select all (your entire effects collection should now be highlighted yellow). Press Ctrl+C to copy the effect collection. Go to File > Effects files > New effects file, to add a new 'Unnamed effects file' to the effects window. Looking at the empty/new effects file in the effects window, press Ctrl+V to paste. Go to File > Effects files > Save (fdb format), to save the effects file on your computer. Unless you move the (.fdb) file to another location on your computer, it will automatically be loaded each time you launch Finale 3D. Later on, you can restore from the backup by viewing the contents of the (.fdb) file in the effects window, pressing Ctrl+A to select all, then Ctrl+C to copy, then switch to view the effects collection you want to paste into, then go to Effects > Paste clipboard into effects window, add or update.
Since almost everyone in pyrotechnics has a different preference for labels, it is important that a labels engine is customizable. In Finale 3D Pro, you can customize what information is in the labels, how it is formatted, the colors, the field sizes, and text sizes and padding. You can customize the page format to match the format of stickers on a sheet, such as Avery 5260, or to match the format of a roll printer, like Dymo 30252. You can customize the padding around the edges of the labels to accommodate for slight misalignment. You can customize the sort order of the labels, and whether they print out in columns or rows. You can print out one label per chain or one label per shell in the chain. You can define the criteria for page breaks. You can filter to arbitrary positions or product types or any other characteristic. In short, the labels in Finale 3D have a terrific amount of customization flexibility. Figure 1 – Example labels printout What labels can contain Figure 1 shows part of a labels printout, to illustrate some of the content that can be in the labels. In this template, the upper left is the part number of the item. Below it in two colors is the firing system address. The top right is the launch position, and below that is the mortar angle. Notice that the mortar angle is color coded and contains both a number and angled line. If the label represents multiple shells, such as a chain, the mortar angle graphics show lines for all the shells. Below the address on the left is the name of the effect. Below the angle on the right is a red "e-match hint" that tells the crew if multiple e-matches are connected to the same firing system pin, or if the label represents a chain. The middle two labels on the right are a V-pair of shells on the same firing system pin. Notice the firing system address field has inverted colors on a black background for only these two labels. That is an extra bit of formatting finesse to call attention to the fact that these two items are e-matched together on the same pin. The bottom row in black includes the show date and name on the left, and a duplicate of firing system address on the right. The reason for duplicating the firing system address is to support folding the label in half, so either side you look at has the address on it (as well as being a backup in case one side of the label gets smudged or torn). On the subject of folding the labels, the thin lines in the corners and the tiny vertical lines in the center are there to help you ensure your labels are aligned to the sticker, and as guidelines for where to fold if you are folding them in half. These lines are also optional in the customizations. Choosing a pre-defined labels template The Finale 3D software includes a set of pre-defined labels templates that may be just what you need, or are at least a good starting point if you want to customize them further. In the main "File" menu, the labels menu is divided into five sections. The first four sections are sorted in different orders. The fifth is a set of labels specifically for chains. Each of the sections has a submenu of different pre-defined labels templates corresponding to formats commonly used in the pyrotechnics industry. If you use one of these format, then try printing out labels for your show and see if the result happens to be what you need! All of the pre-defined labels templates other than the chains labels are configured to print out a single label per chain. The chain labels templates, by contrast, print out one label per shell or other item in the chain, and only print out labels for these items in chains. Thus if you want to print out labels for your entire show, including one label per item in the chain, then you can print out two batches of labels: a first batch with one label per chain, using any of the sort options; and a second batch of just the chains with one label per shell in the chains, using one of the chain labels options. Figure 2 – Five different labels arrangements, each with many options for different sticker formats. Customizing a labels template or creating a new one The blue gear menu in the upper right of the script window has a menu item, "Create or edit labels template" (See Figure 3). This menu item opens the dialog of Figure 4, which edits the selected labels template or begins a new one. Labels templates are stored as blueprints, so when you edit an existing template or create a new one, the resulting blueprint will be one of the rows in the blueprints window. You can see all the pre-defined labels templates and any additional templates you create by selecting the menu item, "Window > Blueprints window" and scrolling through the rows. You can also copy/paste blueprints from one show to another as described in Copying report and labels templates between shows. One thing to note is that the blueprints window contains other types of blueprints as well, like report templates and addressing blueprints. The leftmost column in the blueprints window, "Type", indicates what kind of template each blueprint is. Figure 3 – The blue gear menu in the upper right of the script window has a menu option for creating a custom label, at the bottom of the menu. Filtering rows The dialog of Figure 4 includes all the customization fields for the labels template, beginning with the name, which is what identifies the blueprint, the title, which is what is printed at the top of the page if there is room, and the filter, which optionally filters the set of script rows used to generate the labels. For most applications the filter is blank because the most common need is to print labels for all the rows in the script, possibly combining chain rows into the same label. The filter can be used for special purposes, like excluding cakes or printing out labels only for a set of launch positions. Any filter expression that you can type in the script window's search box is also valid in the labels template filter field. You can exclude cakes by typing "parttype != cake". You can print labels only for positions containing the word "front" by typing, "position += front". A pre-defined template that makes use of the filter field is the chain labels template. Its filter field contains "chainref != """ to exclude any row that does not have a chainref value (shown in the Chain column in the script). Figure 4 – The labels customization dialog controls the label's format, its page layout, and what's in it. Combining rows Section 1 of the dialog lists the fields for sorting the labels. Section 2 combines consecutive rows that agree on all the specified terms (if any terms are specified). If you wanted to print out one label per module, for example, you could sort the labels by module number and then combine consecutive rows that agree on the module number. The labels will be generated from the combined rows. Some of the script fields have special formatting functions that handle combined rows. In fact, an example of these special formatting functions is prominent in Figure 1 at the top of this article: the angle field shows line graphics depicting the angles of all of the rows combined together into the row that generates the labels. That is the mechanism by which the three labels depicting chains in Figure 1 have five green lines in the angle field. Section 2 also has checkboxes to combine rows that are part of the same chain, or part of the same group. These checkboxes are independent of the specified combining terms, and they can be used together. Combining by chains is quite common, because users more often prefer one label per chain to one label per shell in the chain. All the pre-defined labels templates except the chain labels templates have the combine-by-chain checkbox turned on. Label measurements Section 4 specifies the layout of labels on the page. With the controls in this section, you define the number of rows and column that fit within the sheet of paper. You also select the size of the sheet of paper (letter or A4) or in that same selector you can choose options for one-label-per-sheet, which is what is used for printing rolls of labels. Label manufacturers provide template specifications for their label sheets, which you can use to fill out the fields in Section 4. After specifying the number of rows and columns and dimensions of the labels themselves, you need to specify the page margins surrounding the matrix of labels (sides, top, and bottom) in millimeters. This collection of information uniquely defines the dimensions of the gutters in between the labels, so even if your template specifications from the label manufacturer provide measurements for the gutters, you do not need to enter that information in Section 4 because it is redundant. The last three fields in Section 4 specify the interior margins within the labels. These margins have nothing to do with the specifications from the label manufacturer. Their function is to contract the information displayed in the label to pull it away from the edges, making your printed labels more tolerant of minor alignment errors that arise during the printing process. The more you increase your interior margins, the less likely it is that information near the edges might get cut off. There's a cost of safety, though. The larger your interior margins, the smaller the text in the labels, which may make them harder to read. Section 3 also pertains to the format of labels on the page. You can insert page breaks by specifying the page break fields. With the rows in sorted order, whenever two consecutive rows differ in any of the page break fields, a page break will be inserted. The "Shift interiors away from zero-margin page edges" checkbox enables special formatting for label templates in which labels are flush against the edges of the page, like the "Austab CL33 A4 25.4mm x 70mm" label template. Most printers have unprintable area near the edges. You can enlarge the label interior margin parameters to move the label's text away from the label edges to avoid the unprintable area of the page, but that results in wasted space since the labels on the right edge of the page do not need extra space on their left side, and the labels on the left do not need extra space on their right side. The labels in the center of the page don't need any extra space at all because they are miles away from the unprintable area. The "Shift interiors" special formatting applies only to the labels adjacent to the edges of the page, moving their interiors toward the center. If your labels template has labels flush against edges, this formatting option will give you more area in your labels for text. Dividing the label content into boxes Section 5 of the labels dialog contains the fields that control what is displayed in the label, and how it is formatted. The label content is divided into eight boxes, as illustrated in Figure 5. The boxes are referred to as rows -- top, center, bottom, extra -- each row with a left and right side. Figure 5 – The label content is divided into eight boxes (four rows, each with left and right boxes). The heights of the four rows are all relative to the interior height of the label, inside the interior margins. In Figure 5, the interior margins account for the fact that the red outlined boxes do not cover the complete area inside the four corners reflecting the actual dimensions of the label. The heights of the four rows should add up to 1.0. If you only want three rows in your labels, you can make the first three rows' heights add to 1.0 and give the last row a height of zero to shrink it out of existence. Each row has a "split" parameter that divides the row into left and right sides. The split parameter should also be a value from 0 to 1.0, with the value 0.5 indicating the left and right sides are split evenly. The "Vertical padding" field for each row controls the amount of spacing above and below the text within the row's boxes. The padding number is from 0 to 0.5, indicating what fraction of the row's total height is used for spacing. The padding value is usually around 0.1 or 0.2. The value 0.0 makes the text expand maximally in the box. The value of 0.5 allocates all the area of the row to the whitespace, shrinking the text out of existence. The "Horizontal padding" field for each row controls the spacing inside the left and right edges of the row's boxes. The horizontal padding number is also a fraction of the row's total height, except it isn't limited to 0.5 since it isn't limited to the height of the row. Section 5 of the labels dialog has two selectors for each box, defining what data the box displays, and how the data is formatted. The options are explained in the next paragraphs. Selecting what is displayed in the boxes The first selector for each box specifies what goes into the box. The options include all the columns from the script window, in addition to special fields shown in Table 1. Table 1 – Field values Field Value Explanation Part Number, Size, Type, Duration, etc. (the columns in the script window) Same as in script window, with the exception of Angles* and Address Angles* Displays ASCII angle graphics characters (|/), one per device, followed by the numerical angle if and only if all devices represented by the label are shot from the same angle. For example a "V" shaped pair of shells is written as "/" without any numerical angle, whereas a pair of shells both at 30 degrees to the left is written as "\ 30°" (but not "\ 30° 30°", as it is shown in the script table). Address Similar to display in script window, except removes leading zeros on the pin numbers while continuing to sort by their numerical value (2 before 10 without requiring 02). If the label represents multiple (and different) addresses, then the Address field will be blank. Pin Same as in script window. If the label represents multiple addresses, then the pin numbers will be printed in ranges as efficiently as possible using ".." for ranges. For example, if pins 01..05 and 95..99 are all represented by the label, then Pin field will contain, "01..05 95..99". Module Same as in script window. If the label represents multiple addresses, then the module numbers will be printed in ranges as efficiently as possible using ".." for ranges. For example, if modules 01..05 and 95..99 are all represented by the label, then Module field will contain, "01..05 95..99". Rack Angle, Rack Annotation, Rack Description, Rack Number, Rack Part Number, Rack Size Properties of the rack containing the effect. For example, the Rack Angle is the angle of the rack, not necessarily the angle of script event from which the label is generated since racks may have angled tubes or adjustable angle tubes within the rack. Similarly, the Rack Part Number and the Rack Size are properties of the rack, not the effect. These fields are more often used for rack labels than effect labels. Rack Cluster Annotation The Rack Cluster Annotation is similar to the Rack Annotation field except that the annotation is actually the first non-empty annotation of any of the racks in the rack cluster containing the rack that contains the effect of the script event from which the label is generated. When racks are arranged in clusters, it is common that only one of the racks in the cluster will have an annotation, which the user centers under the cluster to represent the whole cluster. Rack labels for such arrangements should identify the cluster that the rack is part of, to help the crew. If only one of the racks in each cluster has its own annotation, then the Rack Annotation field will be blank for all the other racks, whereas the Rack Cluster Annotation field will apply to all the racks in the cluster. Rack Part Number And Description, Rack Size And Description Combinations of two values, to fit more information into a single box on the label without requiring two boxes. Show Name, Show Date, Show Location, Show Field #1, Show Field #2 Show properties from the menu "Show > Set show information" Show Date And Name, Part Number And Description, Size And Description Combinations of two values, to fit more information into a single box on the label without requiring two boxes E-Match/Chain Verbose Hint A short hint about the e-match, chain timing, and/or delay fuses relating to the label (see Table 2) E-Match/Chain Concise Hint An alternative, more concise hint about the e-match, chain timing, and/or delay fuses relating to the label (see Table 2) Pin Absolute The pin address relative to the module, as opposed to the pin address relative to the slat, but otherwise the same as the Pin field described above. This value is useful for firing systems with slats or splitter boxes or virtual slats that use an absolute numbering system for the pin addresses. Module/Pin Address A combination of the Module and Pin Absolute fields, analogous to the Address field but converting the three part addresses from Module-Slat-Pin into two-part addresses with absolute pin numbering relative to the module itself, as in Module-Pin. If the label represents multiple addresses, the formatted output consists of the range of modules, then dash ("-"), then the range of mins. There is no way to know which pins belong with which modules. For example, if the label represents module 01, pins 95..99, and module 02, pins 01..05, the printed output will be "01..02-01..05 95..99". Module The module number, by itself; same as the Rail if the firing system does not use slats. This field is useful in combination with the Pin Absolute field, for firing systems with slats or splitter boxes or virtual slats that use an absolute numbering system for the pin addresses. DMX Channel Base, DMX Channel Range, DMX Universe, DMX Fixture Angle, DMX Fixture Name, DMX Fixture Nickname Properties of the DMX fixture (i.e., launch position configured as fixture). To print one label for each DMX fixture in the show, create a blueprint as follows: 1) filter events by Part Type in the blueprint's filter field with the text: parttype="light" || parttype="sfx" || parttype="flame"; 2) sort events by position name; 3) combine rows having the same position; and 4) configure the label content with the desired DMX information fields, which refer to properties of the position and the fixture that the position is configured with. Most of the DMX information fields match the columns of the positions table. The DMX Fixture Angle field is "Pan 180" if the position is configured with the "Pan 180 (mirror)" option to turn it around. With regard to the Pin Absolute, Module/Pin Address, and Module fields, use these field to print labels with addresses based on module and pin (no slat). For example, if you use virtual slats (see Slats, virtual slats, and splitter boxes) to divide 32-pin FireOne modules into 4 slats of 8 pins each with addresses XXX-A-1, XXX-A-2, ..., XXX-A-8, XXX-B-1, ... then the corresponding module and absolute pin addresses are XXX-1, XXX-2, ..., XXX-8, XXX-9, ... E-match/chain hints in the labels The "E-Match/Chain Verbose/Concise Hint" field is a short phrase indicating the number of e-matches, or shells in a chain, or delays. The "Verbose" messages provide a hint for almost everything, including "1/1 e-match" for a single effect in non-exceptional circumstances. The "Concise" messages shorten the text a little, and ignore the common case of "1/1 e-match", which makes the hints coincide with only the notable, non-common cases. The choice between verbose an concise hints is a personal preference. Table 2 shows the possible messages, which can be combined. Table 2 – E-match/chain hints What Label Represents E-Match/Chain Message Chain of 5 shells with short delays or irregular delays between shells Chain of 5 Chain of 5 shells with same delays between all shells of 2.0 seconds Chain of 5 x 2.0s Chain of 5 shells with 2.0 second delay in front of chain Chain of 5; 2.0s Third shell in chain of 5, the shell separated from the previous shell by 2.0 second delay 3/5 in chain; 2.0s First e-match of three on same pin 1/3 e-matches 2.2 second delay fuse before effect 2.2s delay One of the pre-defined labels formats ("Chain labels") prints one one label per shell in chains, and is filtered to chains only. The label format includes a verbose e-match/chain hint that specifies the delay before shell for each shell in the chain. Thus the information on these labels is exactly the information required to build arbitrary chains. You can use this labels format or one like it as an alternative to a chain building report printed as a table, if you like the idea of having a label for each shell in the chain that includes the delay in front the shell. Selecting how the information in the boxes is displayed The second selector for each box specifies the format or style of display in the box. The simple examples are just the color of the text and the color of the background, or outlining the box. Other styles, denoted as "Fancy", do special formatting depending on the field value, such as changing the color based on the size. The options are shown in Table 3. Table 3 – Field styles Field Style Explanation Black text on white, Red text on white, etc. Colors of text and background Bold black text on white, Bold red text on white, etc. Colors of text and background, with bold font Black outline on white, Black outline on red, etc. Outline around the box Fancy angle colors Color is green if left-aiming, black if up, red if right-aiming, blue if upward but turned around 180 degrees Fancy size colors Color depends on size of effect, e.g., 3" is different color from 4" Fancy address colors Two colors, black for the first part of the address and red for the second part, to distinguish the module from pin numbers visually; also color of text and background will invert (white text on black background) if multiple e-matches on same firing system pin, to call attention to that fact Text justification in the label boxes Paragraph 5 of the labels customization dialog (see Figure 6) gives you options for justifying the text in any of the boxes to the left edge, right edge, center. The default is "smart", which will automatically be left justification for the left boxes; and which will be right justification for the right boxes -- unless the right boxes are wider than 50% (i.e., split < .5), in which case they will have left justification. Figure 6 – Any of the fields can have left, right, or center text justification. Some labels uses like that shown in Figure 7 require center justification within the label. It is easiest to use only the left boxes by making the row splits 1.0 (100% left, 0% right), and setting the text justification for the left cells to "Left". Figure 7 – Set the split to 1.0 and use the left boxes if your labels require center justification. Text wrapping The text wrapping checkboxes in Figure 6 apply to the eight content boxes of the label independently. If text wrapping is on, the text of the field will wrap into multiple lines of the same height (i.e., same font size) instead of being one line that clips on right edge of the box. Multiple lines obviously consume more vertical space in the content box than a single line, so if you expect text to wrap into multiple lines you need to specify enough vertical padding to accommodate the extra lines. The content box itself will remain the same height. Figure 8 – Text wrapping example of four labels -- the blue box has enough padding to accommodate three lines of wrapped text. You can calculate the amount of padding required based on how many lines of text you want to allow for. If the content box contains a single line of text, the height of that line of text as a fraction of the interior height of the label is: Text height = Row height - (2 * Vertical padding) This line height equation is easy to visualize. The line height, which is also the font size, is sandwiched between two equal amounts of vertical padding. The two slices of vertical padding plus the line height add up to the full height of the row. Thus the greater the vertical padding, the smaller the line height and thus the smaller the font size. If you make the vertical padding 0.5, then there's no room left for the line of text, which has zero height according to the equation. The value 0.5 is thus the maximum value for vertical padding. If the content box contains multiple lines of text, the lines of text each have the same height as would a single line of text. The same line height equation applies no matter how many lines of text result from wrapping. Consequently, if there are multiple lines of text they will overwrite the padding above and below until there is no more padding, at which point the top line will remain clamped flush with the top of the content box and the lines extending below the bottom of the content box will be clipped. To calculate the approximate amount of vertical padding required for N lines of text, the vertical padding should be: Vertical padding = (1 - 1 / N ) / 2 Following this vertical padding equation, if you want enough room for two lines of text (N=2), you need (1 - 1/2)/2 = 0.25 vertical padding. If you want three lines of text (N=3), you need (1 - 1/3)/2 = 0.333 vertical padding. The sandwich visualization makes these examples obvious. Vertical padding of 0.25 above and below a single line means the line height must be 0.5, since 0.25 + 0.5 + 0.25 = 1.0; if the height of one line is 0.5, then one more line will consume an additional 0.5 which equals the sum of the two 0.25 vertical padding slices exactly. Similarly vertical padding of 0.333 results in a line height also equal to 0.333, and thus the two slices of padding will accommodate two additional lines. After calculating the approximate amount of vertical padding, if you are aiming for an exact fit you will need to add a tiny amount to the calculated value to offset a tiny, one point adjustment that Finale 3D applies to the final result. It tends to look better to have a tiny but non-zero minimum amount of whitespace (one point) above the text lines even in the cases that they are consuming the entire vertical padding space or more. In light of that, Finale 3D protects a one point sliver of the vertical padding above the text lines from being overwritten, which therefore requires an extra one point of padding below to accommodate the shift. It is possible to calculate the precise adjustment required, but generally it is easier to fine tune the proportions by eye, starting with the approximate calculated values. Table 4 – Template file provided by Avery for debugging printer scaling problems; and example labels files Download link Explanation avery-5260-template.pdf Avery template for 5260 labels example_labels_label_per_chain.pdf Example labels printout with one label per chain example_labels_label_per_shell.png Example labels printout with one label per shell
To create and export a script for the PyroLEDA firing system, please follow these three steps: Design the show. Address the show ("Addressing > Address show") and select your firing unit type, F3 or SQ3. Export the script ("File > Export > Export firing scripts"). Step 3 creates a single SHW script file for F3 controllers or multiple CSV script files, one for each SQ3 unit, whichever you select. Figure 1 – PyroLEDA F3 control panel The PyroLEDA SHW and CSV files are human-readable text files that contain the essential information for the PyroLEDA firing system units to fire the show, and nothing more. Table 1 – File format and encoding Firing system unit File format Extension Text encoding Field delimiter End-of-line F3 Text SHW ASCII Comma CRLF SQ3 Text -XXX.CSV (XXX = module number) ASCII Semicolon CRLF The F3 script contains five header lines, followed by the firing rows, one per ignition. The SQ3 script is exported as multiple files containing only firing rows, one file per SQ3 module. Each SQ3 filename ends in three digits identifying the module number. The special characteristics of the scripts are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows F3 and SQ3 rows are sorted by ignition time. What rows represent Each row identifies a unique firing pin ignition (i.e., unique rail address, pin address, ignition time). Multiple files for SQ3 The SQ3 script is represented as multiple files, one per SQ3 module. Each SQ3 filename ends in three digits identifying the module number, e.g., myscript-001.csv, myscript-002.scv, etc.. Multi-hit pins for F3 The F3 script supports re-triggering a firing system pin at multiple event times, which is typically for the purpose of triggering a special effect fixture, or flame fixture, or sequencer. Module types The F3 module has a 32-pin version and a 2 x 16 pin slat version. Finale 3D supports both F3 options, and the SQ3 module type PyroLEDA F3 32 Pins PyroLEDA F3 16 Pin Slat PyroLEDA SQ3 32 Pins Finale 3D represents the 2 x 16 pin slats with three part addresses, such as 01-B-16, for module = 01, slat = second slat, pin = 16th pin of second slat = 32nd pin overall. In the exported F3 script the three-part addresses are converted to two-part addresses with pins from 1-32. Special characters Non-ASCII characters are replaced by '?' characters in the exported file. Support for semi-autonomous firing The TRIGGER_TYPE field of the F3 script contains the value SLV, MAN, or AUTO, selecting one of three firing processes. Finale 3D determines the value for this field from the Custom Script Field column in the script table, which you can unhide from the blue gear menu in the upper right of the window. You can manually enter SLV, MAN, or AUTO into the Custom Script Field cells in the script table, to set the TRIGGER_TYPE value in the exported script. The default value is AUTO. Header The F3 script file contains a five line header, consisting of: Pyroleda F3 script generated by Finale3D Created on: 2017-07-12T12:00:00Z Time Format: 1ms (followed by two blank lines) End of file marker The F3 script file contains a special firing row at the end to indicate the end of the file: @END The following figure shows the translation of the 2 x 16 pin slat addresses to the full 32 pin range. The script window on the right shows the three-part addresses at the end of the first slat (A) and beginning of the second slat (B). The exported script on the left shows the corresponding pin numbers for that same range of rows. By representing slats explicitly in the addresses, Finale 3D makes it possible for you to add explicit constraints in the addressing dialog to control the use of slats. For example, you can write constraints that allow a module's 16 pin slats to be located at different firing positions, or to be attached to different racks or rack clusters while still preventing multiple pins from the same slat to ignite effects in different firing positions or in different racks or rack clusters. Figure 2 – Three-part addresses for slats in the design software translate to two-part addresses in the exported script. The firing rows in the F3 and SQ3 scripts have the fields shown in Table 3 and Table 4: Table 3 – Specifications of F3 script fields Field name Description CUE_NUMBER The cue count, beginning with one and incrementing at each new ignition time. The format is the @-sign, followed by the integer, as in @1. CUE_TIME The time of the firing system's "ignition event" (application of a voltage to a pin), in milliseconds. TRIGGER_TYPE Either SLV, MAN, or AUTO, selecting one of three firing processes (see instructions, above). GROUP An optional group number, from 1-5. Finale 3D determines the value for this field from the Track column in the script table, which you can unhide from the blue gear menu in the upper right of the window. You can manually enter a number 1-5 into the Track cells in the script table, to set the GROUP value in the exported script. The default value is 1. MODULE The module number, beginning with 1. PIN The pin number from 1-32. LAUNCH_POSITION_AND_EFFECT_NAME The effect description, preceded by the launch position name in parentheses, as in: (Pos-01) Red Chrysanthemum Table 4 – Specifications of SQ3 script fields Field name Description PIN The pin number from 1-32. ZERO A constant value, 0. HOURS The hours component of the event time, as an integer. MINUTES The minutes component of the event time, as an integer. SECONDS The seconds component of the event time, as an integer. MILLISECONDS The milliseconds component of the event time, as an integer. The example script below shows an exported script with all three TRIGGER_TYPEs, and with two GROUPs 1 or 2. In the design software, the script uses virtual 16-pin slats and three-part addresses like 01-B-01, which are translated to two-part addresses in the exported script. The virtual slat address 01-B-01 translates to 01-17 because B is the second 16-pin slat, which corresponds to the pin range 17-32. Pyroleda F3 script generated by Finale3D Created on: 2017-07-12T12:00:00Z Time Format: 1ms @1,2760,SLV,1,1,1,(Pos-01) Red Chrysanthemum @2,2860,SLV,1,4,1,(Pos-02) Red Chrysanthemum @3,2960,SLV,1,5,1,(Pos-03) Red Chrysanthemum @4,3060,SLV,1,6,1,(Pos-04) Red Chrysanthemum @5,3160,MAN,1,7,1,(Pos-05) Red Chrysanthemum @6,3260,MAN,1,8,1,(Pos-06) Red Chrysanthemum @7,3360,AUTO,1,9,1,(Pos-07) Red Chrysanthemum @8,3460,AUTO,1,10,1,(Pos-08) Red Chrysanthemum @9,3560,AUTO,1,11,1,(Pos-09) Red Chrysanthemum @10,6878,AUTO,2,1,2,(Pos-01) White Chrysanthemum @11,6978,AUTO,2,1,3,(Pos-01) White Chrysanthemum @12,7078,AUTO,2,1,4,(Pos-01) White Chrysanthemum @13,7178,AUTO,2,1,5,(Pos-01) White Chrysanthemum @14,7278,AUTO,2,1,6,(Pos-01) White Chrysanthemum @15,7378,AUTO,2,1,7,(Pos-01) White Chrysanthemum @16,7478,AUTO,2,1,8,(Pos-01) White Chrysanthemum @17,7578,AUTO,2,1,9,(Pos-01) White Chrysanthemum @18,7678,AUTO,1,1,10,(Pos-01) White Chrysanthemum @19,7778,AUTO,1,1,11,(Pos-01) White Chrysanthemum @20,7878,AUTO,1,1,12,(Pos-01) White Chrysanthemum @21,7978,AUTO,1,1,13,(Pos-01) White Chrysanthemum @22,8078,AUTO,1,1,14,(Pos-01) White Chrysanthemum @23,8178,AUTO,1,1,15,(Pos-01) White Chrysanthemum @24,8278,AUTO,1,1,16,(Pos-01) White Chrysanthemum @25,8378,AUTO,1,1,17,(Pos-01) White Chrysanthemum @26,8478,AUTO,1,1,18,(Pos-01) White Chrysanthemum @27,8578,AUTO,1,1,19,(Pos-01) White Chrysanthemum @28,8678,AUTO,1,1,20,(Pos-01) White Chrysanthemum @29,8778,AUTO,1,1,21,(Pos-01) White Chrysanthemum @30,8878,AUTO,1,1,22,(Pos-01) White Chrysanthemum @31,8978,AUTO,1,1,23,(Pos-01) White Chrysanthemum @32,9078,AUTO,1,1,24,(Pos-01) White Chrysanthemum @33,9178,AUTO,1,1,25,(Pos-01) White Chrysanthemum @34,9278,AUTO,1,1,26,(Pos-01) White Chrysanthemum @35,9378,AUTO,1,1,27,(Pos-01) White Chrysanthemum @36,9478,AUTO,1,1,28,(Pos-01) White Chrysanthemum @37,9578,AUTO,1,1,29,(Pos-01) White Chrysanthemum @38,9678,AUTO,1,1,30,(Pos-01) White Chrysanthemum @39,9778,AUTO,1,1,31,(Pos-01) White Chrysanthemum @40,9878,AUTO,1,1,32,(Pos-01) White Chrysanthemum @41,9978,AUTO,1,2,1,(Pos-01) White Chrysanthemum @42,10078,AUTO,1,2,2,(Pos-01) White Chrysanthemum @43,10178,AUTO,1,2,3,(Pos-01) White Chrysanthemum @44,10278,AUTO,1,2,4,(Pos-01) White Chrysanthemum @45,10378,AUTO,1,2,5,(Pos-01) White Chrysanthemum @46,10478,AUTO,1,2,6,(Pos-01) White Chrysanthemum @47,10578,AUTO,1,2,7,(Pos-01) White Chrysanthemum @48,10678,AUTO,1,2,8,(Pos-01) White Chrysanthemum @49,10778,AUTO,1,2,9,(Pos-01) White Chrysanthemum @50,10878,AUTO,1,2,10,(Pos-01) White Chrysanthemum @51,10978,AUTO,1,2,11,(Pos-01) White Chrysanthemum @52,11078,AUTO,1,2,12,(Pos-01) White Chrysanthemum @53,11178,AUTO,1,2,13,(Pos-01) White Chrysanthemum @54,11278,AUTO,1,2,14,(Pos-01) White Chrysanthemum @55,11378,AUTO,1,2,15,(Pos-01) White Chrysanthemum @56,11478,AUTO,1,2,16,(Pos-01) White Chrysanthemum @57,11578,AUTO,1,2,17,(Pos-01) White Chrysanthemum @58,11678,AUTO,1,2,18,(Pos-01) White Chrysanthemum @59,11778,AUTO,1,2,19,(Pos-01) White Chrysanthemum @60,11878,AUTO,1,2,20,(Pos-01) White Chrysanthemum @61,11978,AUTO,1,2,21,(Pos-01) White Chrysanthemum @62,12078,AUTO,1,2,22,(Pos-01) White Chrysanthemum @63,12178,AUTO,1,2,23,(Pos-01) White Chrysanthemum @64,12278,AUTO,1,2,24,(Pos-01) White Chrysanthemum @65,12378,AUTO,1,2,25,(Pos-01) White Chrysanthemum @66,12478,AUTO,1,2,26,(Pos-01) White Chrysanthemum @67,12578,AUTO,1,2,27,(Pos-01) White Chrysanthemum @68,12678,AUTO,1,2,28,(Pos-01) White Chrysanthemum @69,12778,AUTO,1,2,29,(Pos-01) White Chrysanthemum @70,12878,AUTO,1,2,30,(Pos-01) White Chrysanthemum @71,12978,AUTO,1,2,31,(Pos-01) White Chrysanthemum @72,13078,AUTO,1,2,32,(Pos-01) White Chrysanthemum @73,13178,AUTO,1,3,1,(Pos-01) White Chrysanthemum @END Figure 3 – Example PyroLEDA F3 script The second example script is an SQ3 script CSV file for module 001. 1;0;0;0;2;760 2;0;0;0;6;878 3;0;0;0;6;978 4;0;0;0;7;78 5;0;0;0;7;178 6;0;0;0;7;278 7;0;0;0;7;378 8;0;0;0;7;478 9;0;0;0;7;578 10;0;0;0;7;678 11;0;0;0;7;778 12;0;0;0;7;878 13;0;0;0;7;978 14;0;0;0;8;78 15;0;0;0;8;178 16;0;0;0;8;278 17;0;0;0;8;378 18;0;0;0;8;478 19;0;0;0;8;578 20;0;0;0;8;678 21;0;0;0;8;778 22;0;0;0;8;878 23;0;0;0;8;978 24;0;0;0;9;78 25;0;0;0;9;178 26;0;0;0;9;278 27;0;0;0;9;378 28;0;0;0;9;478 29;0;0;0;9;578 30;0;0;0;9;678 31;0;0;0;9;778 32;0;0;0;9;878 Figure 4 – Example PyroLEDA SQ3 script Table 5 – Example files Download link Explanation test_pyroleda_f3.shw Example F3 exported file (SHW) test_pyroleda_sq3-001.csv Example SQ3 exported file for module 001 (CSV) test_pyroleda_sq3-002.csv Example SQ3 exported file for module 002 (CSV) test_pyroleda_f3.fin Example F3 show file test_pyroleda_sq3.fin Example SQ3 show file
To create and export a script as a CSV for a do-it-yourself firing system, please follow these three steps: Design the show. Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 3 creates the script file, which is a CSV file that you can import into your firing system software, or Excel. Figure 1 – A do-it-yourself firing system that could use CSV scripts The CSV is a human-readable text file that contains the essential information for a firing system controller to fire the show. You may be wondering about the difference between exporting the script for the "CSV firing system" versus exporting the show in the Finale Generic CSV format. Both formats are CSV files, and they have some similar fields. The difference is that the Finale Generic CSV format is an interchange format for the full show that is not firing system specific. You can address your show for any firing system or multiple firing systems, and then export the entire show as a Finale Generic CSV file. The interchange format also contains more information than is generally needed to fire the show, such as the coordinates of launch positions, or inventory locations of product, etc., which you might need if you were importing the show into other software, such as an inventory management system, or label printer. The full show interchange format also includes multiple rows for chains or flights of shells shot at the same time, so little or no information is lost in the export process. You can export a show in the Finale Generic CSV format from Finale 3D and then import it again and end up with almost the same show, other than the sound track, background image, custom settings and whatnot. By contrast, the CSV firing system export contains just enough information for a firing system to fire the show and for a human to be able to read it an follow along. Each line in the CSV firing system export represents a unique ignition of a firing system pin, including all of the effects triggered by that ignition. Since multiple kinds of effects at multiple angles could be triggered by the same ignition, the file format is necessarily does not contain all the information in the show. The effect name field, for example, may be "(3) Red Peony, ..." to indicate three different kinds of effects including a Red Peony, without indicating what the other two effects might be. The advantage of the layout of information in the CSV firing system export format is that it is easy for a firing system to interpret the information in the file without needing to lookahead or do much manipulation of the text. Additionally the features of Finale 3D that enable you to use multiple kinds of firing systems in the same show will support using the CSV firing system along with other firing systems. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text CSV UTF-8 Tab CRLF The script contains five header lines, followed by a single header row with the column names of the rows, followed by the rows themselves. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows are sorted by ignition time if they do not have Track values. If rows have Track values (see below), they are sorted by ignition time within their track groups, and the track groups are sorted along with any non-grouped rows relative to each other by comparison of their earliest ignition times. What rows represent Each row identifies a unique firing pin ignition (i.e., unique rail address, pin address, ignition time). Module types Rows in the script can represent multiple types of modules: csv_8ch -- 8 pins csv_16ch -- 16 pins csv_32ch -- 32 pins csv_100ch -- 100 pins csv_1000ch -- 1000 pins csv_8ch_slats -- 4 slats of 8 pins each csv_16ch_slats -- 4 slats of 16 pins each csv_32ch_slats -- 4 slats of 32 pins each csv_100ch_slats -- 4 slats of 100 pins each csv_1000ch_slats -- 4 slats of 1000 pins each Modules without slats need only need a single number XXX to identify the module. Modules with slats require two-part addresses XXX-YYY to identify both the module and the slat. The script format supports both syntaxes for rail addresses, XXX and XXX-YYY, as described below. If your do-it-yourself firing system has a configuration that is similar to one of these options but not exactly the same, you can make a custom module type based on one of these, from the options in the "Addressing" menu. Special characters Fields include any Unicode characters except: ' , ; " tab and newline and other control characters. Support for semi-autonomous firing The Cue and Track fields support semi-autonomous firing modes. Cue numbers begin at one and increment with each new ignition time or each new track group of effects. The Track is an optional identifier associating a collection of rows that are to be fired together as a "step" in a sequence of steps or as a "macro" triggered by an associated button on the firing system. Cue numbers do not increment within a track group of effects. Each script row has the fields shown in Table 3. Table 3 – Specifications of script fields Field name Description Cue The cue count, beginning with one and incrementing at each new ignition time or at each new track group of effects. The cue count does not increment within a track group of effects even if the effects in the track group have different ignition times. Event Time The exact time of the firing system's "ignition event" (application of a voltage to a pin) that ignites e-matches or triggers a sequencer that ultimately leads to the ignition of effects. Format is HH:MM:SS.DDD. Prefire The delay from the ignition time to the perceived visual effect. This delay typically includes the lift time (for shells) plus any fuse time between the ignition time and the first launch of the effect. Format is in seconds with two digits after the decimal point. Effect Time The time of the first visual effect triggered by the firing system's ignition event, which is generally the break time for shells, and just a small delay or no delay after the event time for ground effects. Format is HH:MM:SS.DDD. Duration The duration represents the lifetime of the perceived visual effect, which is usually interpreted for shells as the time from break to dissipation of the stars. Format is in seconds with two digits after the decimal point. Device Count The number of devices (shells) represented by the row. May be more than one in the case of chains or multiple e-matches connected to the same firing system pin. Description The name of the effect. Size The device caliber. Format is either a number followed by double-quote for inches or "mm" for millimeters, or the string "NA" or blank for effects for which the caliber term is not applicable. Category A user defined string identifying the category of the effect. Type One of several pre-defined terms that have specific meaning in Finale 3D (see Why is ‘Type’ so important? What depends on it?). Position The name of the launch position. Module Type The type of module or slat: csv_8ch, csv_16ch, csv_32ch, csv_100ch, csv_1000ch, csv_8ch_slats, csv_16ch_slats, csv_32ch_slats, csv_100ch_slats, csv_1000ch_slats. Rail Address The module number XXX in the case of modules without slats, or a two-part module-slat combination XXX-YYY in the case of modules with slats, where XXX identifies the module and YYY identifies the slat. Pin Address The pin number. Angle An ASCII art representation of the angles of the devices on this shot, made with backslash, vertical line, and forward slash characters. Hazard A string identifying a group of effects that can be disabled by pressing the associated button on the firing system controller during the performance, due to conditions. Notes Firing notes from the script pertaining to this row. Part Number A user-defined identifier for the effect. Track A string identifying a group of effects that are to be fired as a sequence with a single trigger if the firing system is in semi-autonomous mode. The example script below shows an exported script with nine pairs of shots and two different types of modules. The cue numbers are the same for both effects in each pair. The last four rows of the script have the same track number/identifier ("Finale"), which causes them to share the same cue number (8). If a firing system were shooting in semi-automatic mode, the rows with cue number 8 would be triggered as a sequence/macro by a single trigger. The rail address of the csv_8ch_slats module type rows contain two numbers to identify the module and the slat independently. The slat is identified by a letter, to make it easy to read. Cue Event Time Prefire Effect Time Duration Device Count Description Size Category Type Position Module Type Rail Address Pin Address Angle Hazard Notes Part Number Track 1 00:00:02.760 2.24 00:00:05.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-01 csv_16ch 01 1 | G2SH1000 1 00:00:02.760 2.24 00:00:05.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-01 csv_16ch 01 2 | G2SH1000 2 00:00:05.260 2.24 00:00:07.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-02 csv_16ch 02 1 | G2SH1000 2 00:00:05.260 2.24 00:00:07.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-02 csv_16ch 02 2 | G2SH1000 3 00:00:07.760 2.24 00:00:10.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-03 csv_16ch 03 1 | G2SH1000 3 00:00:07.760 2.24 00:00:10.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-03 csv_16ch 03 2 | G2SH1000 4 00:00:10.260 2.24 00:00:12.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-04 csv_8ch_slats 04-A 1 | G2SH1000 4 00:00:10.260 2.24 00:00:12.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-04 csv_8ch_slats 04-A 2 | G2SH1000 5 00:00:12.760 2.24 00:00:15.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-05 csv_8ch_slats 04-B 1 | G2SH1000 5 00:00:12.760 2.24 00:00:15.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-05 csv_8ch_slats 04-B 2 | G2SH1000 6 00:00:15.260 2.24 00:00:17.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-06 csv_8ch_slats 04-C 1 | G2SH1000 6 00:00:15.260 2.24 00:00:17.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-06 csv_8ch_slats 04-C 2 | G2SH1000 7 00:00:17.760 2.24 00:00:20.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-07 csv_8ch_slats 04-D 1 | G2SH1000 7 00:00:17.760 2.24 00:00:20.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-07 csv_8ch_slats 04-D 2 | G2SH1000 8 00:00:20.260 2.24 00:00:22.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-08 csv_8ch_slats 05-A 1 | G2SH1000 Finale 8 00:00:20.260 2.24 00:00:22.500 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-08 csv_8ch_slats 05-A 2 | G2SH1000 Finale 8 00:00:22.760 2.24 00:00:25.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-09 csv_8ch_slats 05-B 1 | G2SH1000 Finale 8 00:00:22.760 2.24 00:00:25.000 1.02 1 Red Chrysanthemum 2" 2 Assorted shell Pos-09 csv_8ch_slats 05-B 2 | G2SH1000 Finale Figure 2 – Example CSV firing system script for do-it-yourself controllers Table 4 – Example files Download link Explanation test_csv.csv Example exported file (CSV) test_csv.fin Example show file