Total found: 303
To create and export a script for the ShangYi-TECH 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 the ShangYi-TECH software. Figure 1 – ShangYi-TECH control panel Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV UTF-8 with BOM (0xef 0xbb 0xbf) Comma CRLF The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows sorted by segment and then by effect time. What rows represent Each row represents a unique firing event, a module/pin/event-time combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row. Events at different times are necessarily different rows, even if their addresses are the same. For example, two flame projector shots at different times, triggered by the same module-pin address, will be two rows because they are at different times. Header The file contains a single header row with the column names in Chinese (域,点火时间,,地址,篇章), in the same format as the CSV data rows themselves. Multi-hit pins Non-pyro effects like flames and relays can be triggered multiple times on the same module-pin address. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them. Universes A single script file for the show may contain multiple numbered universes (01-99), each universe applying to the corresponding controller. The universe in the ShangYi-TECH script file corresponds to the Universe column of the script window in Finale 3D. For most firing systems, Finale 3D exports each universe of script events as a separate exported script file, but for the ShangYi-TECH firing system, Finale 3D will export a combined script file that includes the events for all ShangYi-TECH universes, with the universes specified in the script file in the first column (see Table 4 below). Minimum separation between cues None required; millisecond resolution supported. Module specifications Supports 100 modules (numbered 0-99), each module with 32 pins (numbered 0-31). Segments ShangYi-TECH supports dividing a show into multiple segments corresponding to songs. By default, every song file you add to your show in Finale 3D corresponds to a separate segment, beginning with zero for the first and counting up. See segments for instructions. Finale 3D provides an export option for ShangYi-TECH to export the script as a "One segment for entire show", in which case the segment number will be zero for all rows in the exported file, or as "Multiple segments", in which case the segment numbers correspond to the segment numbers of the songs. ShangYi-TECH requires that the segments begin with zero and count up consecutively -- no gaps. This requirement applies to each universe separately, based on the events in each universe. For example, if a show has three songs defining segments 0, 1, and 2, and has two universes 01 and 02, then each universe must contain events in segments consecutively, beginning with zero. It would be an error if universe 01 contained events in segments 0, 1, and 2 while universe 02 contained events only in segments 0 and 2. Timecode FSK timecode files for ShangYi-TECH contain a segment number embedded in the timecode signal along with the timing information. The segment number must correspond to the segment number in the associated script file. If you have a show with multiple songs, each song representing a segment, then you should export the show from Finale 3D using the "Multiple segments" export option, which will generate multiple script files, one for each song. To generate the associated audio files that include the song audio on one channel and the timecode on the other channel, use the function, "File > Export > Export soundtrack..." and choose "Fire Pioneer FSK (one file per segment)" for one of the tracks. That will generate multiple WAV files, one for each song, with the embedded segment numbers corresponding to the segment numbers in the script file. If you want verify any timecode file is correct or ascertain what segment number it contains, please try the function, "File > Tools > Analyze timecode in soundtrack file..." This function works on all timecode files, whether they are generated from Finale 3D or from other software. Table 3 – Export options Option name Description Segments Either "Multiple segments" or "One segment for entire show" After the header, each row in the script has a number of fields separated by the comma character. The names of these fields and their descriptions are the following: Table 4 – Specifications of script fields Field name Description 域 Universe (controller number), formatted as two digits with leading zero, from 01-99. 点火时间 Event Time, e.g., 00:02.981. <blank> Blank, reserved for future use. 地址 Firing system address, formatted as 0000, where the first two digits are rail (00-99) and the second two digits are the pin (00-31). 篇章 Segment integer from 0 to 249. An example script is shown below. 域,点火时间,,地址,篇章 02,02:07.760,,0000,3 02,02:17.760,,0001,3 02,02:27.760,,0002,3 02,02:37.760,,0003,3 01,02:47.760,,0004,3 01,02:57.760,,0005,3 01,01:37.760,,0000,5 01,01:47.760,,0001,5 01,01:57.760,,0002,5 01,02:07.760,,0003,5 Figure 1 – Example ShangYi-TECH script Table 5 – Example files Download link Explanation test-shangyi-tech.csv Example exported file (CSV) test-shangyi-tech.fin Example show file
Various firing systems have the capability of dividing a script into segments that are independently triggered or that correspond to different timecode ranges. For some firing systems like Cobra and StarFire, Finale 3D uses the Track field in the script table to define segments. For others like Fire Pioneer and ShangYi-TECH, Finale 3D uses songs or segment markers explicitly, which are the subject of this article. Songs as segments By default, every song file added to your show in Finale 3D represents a segment. If the song files correspond to the time ranges you want to be segments, then you don't have to do anything at all to define segments because they are defined automatically by the songs, starting with segment number 0 and counting up. Figure 1 – The individual song files added to your show each represent a segment, by default. To set the segment numbers manually instead of accepting the default counting order, please open the Songs window and set the segment number in the Segment column on the right, as shown in Figure 2. Figure 2 – Optionally set the segment numbers of the songs in Songs window. Beginnings and ends of song segments As you would expect, each song's segment begins at the time the song begins. But what if there are events between or after all the songs? To ensure all events in the show are associated with segments, the end of a song segment extends beyond the end of the song to the beginning of the next song or to the end of the show if there is no next segment. In the example of Figure 1, the events around 2 minutes are still associated with the first song's segment, and the events around 6:30 are associated with the second song's segment. Segment markers If the song files don't correspond to the time ranges you want to be segments, or if you have a single song file representing the sound track for the entire show, then you can use segment markers to define the segments. If the show contains segment markers, they take precedence over the songs for defining segments. Segments are defined entirely by songs or entirely by segment markers, not a mixture. Figure 3 – The "Show > Segments" menu includes functions to add or clear segment markers. The "Show > Segments" menu includes functions to add and clear segment markers. Segment markers are a type of keyframe. You can see the list of segment markers in the Keyframes window. You can edit, delete or copy/paste segment marker rows in the Keyframes window, shown in Figure 4. As with song segments, if you don't specify the segment numbers, they count up from 0 by default. Figure 4 – Segment markers are a type of keyframe, listed in the Keyframes window. Segment markers appear on the timeline as dotted vertical lines. Using segment markers, you can define the explicit beginning and end of the segment time range. Defining the end of the time range is optional. As with song segments, the time range for events associated with a segment extends beyond the end of the segment to the beginning of the next segment or end of the show. Figure 5 – The vertical blue dotted line is a segment start marker; the red dotted line is the optional segment end marker.
The process of designing a show and assigning firing system addresses for the effects in Finale 3D begins with laying out the launch positions, then dragging and dropping effects in the 3D design view, and then executing a function to assign the firing system module numbers (0-99), port letters (A, B), and output terminals (1-24), which together are called the firing system "addresses." In Finale 3D, the Happiness port letter is called the "slat". The combination of the module number and port letter together is called the "rail". For example, the rail address for module 10, port A is written "10-A". Output terminals in Finale 3D are called "pins." Users of the Happiness firing system may be accustomed to thinking of modules and launch positions as the same thing, with a position using both port A and port B if the number of terminals on a single module isn't enough. If you want to specify the modules per position in this manner in Finale 3D, please right-click on the positions and do "Edit position properties" to set the firing system type, module or slat type, and start module number for each position. There are two options for module or slat type: "Happiness 24ch Port A and B", or "Happiness 24ch Port A only". If you select the first option, then the launch position will use port B of the start module number if the number of required output terminals exceeds 24. If you select the second option, an additional module will be used (start module number + 1) if the number of required output terminals exceeds 24. To create and export a script for the Happiness firing system, please follow these steps: Set module type. Choose one module type for the full show in "Show > Set show information..." or choose different module types per-position by right clicking positions and doing "Edit position properties" from the context menu. Address show. Use the menu item "Addressing > Address show..." or any of the other addressing methods (see Addressing basic instructions). Export script. Export the script file ("File > Export > Export firing scripts..."). Choose whether you want Finale 3D to employ the Happiness script row modes that represent entire sequences of shots in a single row, as described in Table 3. Figure 1 – Happiness firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text file .csv ASCII Comma Carriage return + linefeed (0x0D0A) Table 2 – Special characteristics Special characteristics Description Time representation The Happiness script format has a time resolution of 0.1 seconds. Rows in the script employing script row modes other than Mode 0 can achieve a higher time resolution per shot by specifying an entire sequence. The duration of the entire sequence still has 0.1 second resolution, but the individual shot times within the sequence divide that duration into intervals effectively at a higher resolution. The firing system has a latency of 50 milliseconds between rows. Sort order of rows Rows sorted ascending by event time (ignition time). What rows represent Each row represents a single shot or a sequence of shots depending on the mode. Script row mode Each script row has a mode that defines whether it represents a single shot or a sequence. Finale 3D provides options when exporting the script to use the single shot mode (Mode 0) always, or to use whatever modes represent the script most efficiently. The two options are logically the same. Both options represent the show as designed. The option to use all modes is recommended since it has the highest effective time resolution. 0: Single shot on one pin of one module T: Sequential or simultaneous shots of a range of pins on one module A: Center to outside pattern of shots across a range of sequential modules, using the same pin on each module B: Forward sequence of shots across a range of sequential modules, using the same pin on each module C: Simultaneous shots across a range of sequential modules, using the same pin on each module D: Reverse sequence of shots across a range of sequential modules, using the same pin on each module E: Outside to center pattern of shots across a range of sequential modules, using the same pin on each module To take advantage of the sequence modes, the sequences in your designs need to use sequential module numbers and the same pin number in each module. If you have a front of positions, for example, with sequences from left to right, center to outside, etc., the module numbers in those positions need to be sequential from one end to the other, and each sequence needs to use the same pin number across the modules. To ensure the "Addressing > Address show..." dialog assigns the firing system addresses optimally for the sequence modes you may need to assign start modules to launch positions by right-clicking the positions and doing "Edit position properties", and you may need to assign addresses in the order of "Position > Event time" in the "Addressing > Address show..." dialog. Port A and B Each module number has an option for a port A and port B module. In Finale 3D, the port is called the "slat". Thus each module number has a possible port A and port B for that module number, written as "10-A" or "10-B" for module 10, port A or B. Finale 3D provides the option to use port A only, or to use both ports. When you export a firing script for Happiness, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3. Table 3 – Export options Option name Description Mode 0 only Useful for troubleshooting All modes (0, T, A, B, C, D, E) Recommended because it has better timing for fast sequences Table 4 – Specifications of script fields Field name Description Row number (int) The row number, beginning with zero. Mode (character) Either: 0, T, A, B, C, D, or E. See description in Table 2, above. Event time: minutes (int) The ignition time, minutes. Event time: seconds (int) The ignition time, seconds. Event time: tenths (int) The ignition time, tenths of a second. Module number start (int) The module number, or lowest module number if the row represents a sequence. Module number end (int or blank) Blank if the row represents a single shot or applies to a single module; otherwise the highest module number if the row represents a sequence across modules. Pin number (int or string) The pin number if the row represents a single shot or a sequence across a range of modules with the same-pin (Mode 0, A, B, C, D, or E); or a range of increasing pins "X->Y" for a sequence of shots on the same module (Mode T). Time interval between shots (float) The time delta in seconds between shots in the sequence, or 0.0 for single shots or simultaneous shots. Port (character) Either: A or B. See description in Table 2, above. Time interval to next row (float) The time delta in seconds to the next row. Note (string, up to 16 characters) The Script Notes field in the script table. Happiness,Firing,System,PC-PROG,,,,,,,, V3.0,,,,,,,,,,, serial number,mode,Effect time:min,Effect time:sec,Effect time:msec,start,end,fire number,time(s),port,interval(s),note 0,,0,0,0,,,,,,5.0, 1,T,0,5,0,0,,1->5,0.1,A,5.0, 2,T,0,10,0,1,,1->5,0.1,A,5.0, 3,T,0,15,0,2,,1->5,0.1,A,5.0, 4,T,0,20,0,3,,1->5,0.1,A,5.0, 5,T,0,25,0,4,,1->5,0.1,A,10.0, 6,T,0,35,0,0,,6->10,0.0,A,5.0, 7,T,0,40,0,1,,6->10,0.0,A,5.0, 8,T,0,45,0,2,,6->10,0.0,A,5.0, 9,T,0,50,0,3,,6->10,0.0,A,5.0, 10,T,0,55,0,4,,6->10,0.0,A,10.0, 11,C,1,5,0,0,4,11,0.0,A,5.0, 12,B,1,10,0,0,4,12,0.1,A,5.0, 13,D,1,15,0,0,4,13,0.1,A,5.0, 14,A,1,20,0,0,4,14,0.1,A,5.0, 15,E,1,25,0,0,4,15,0.1,A,10.0, 16,A,1,35,0,0,3,16,0.1,A,5.0, 17,E,1,40,0,0,3,17,0.3,A,0.0, Figure 2 – Example Happiness script Table 5 – Example files and downloads Download link Explanation happiness-script.csv Example exported script file happiness-show.fin Example show file
Some types of single-shot rack holders can hold multiple tubes, packed together, if the tubes are small enough to fit. In Finale 3D, single-shot racks with multi-load holders look like Figure 1. The larger text and angle graphics represent individual tubes in the holders. The smaller text and angle graphics in the quadrants of the holders represent four smaller tubes packed together. You can see in Figure 1 that a rack packed full of multi-load holders can accommodate quite a few tubes and require quite a few modules and pins. The first pin of the first module is always in the upper left hand corner, module #41, pin #01 in this example. Figure 1 – Multi-load single-shot racks can hold one or more effects in a single holder Obviously, all tubes sharing the same holder must have the same effect angle. In Finale 3D, if you manually drag-and-drop effects of different angles into the same holder, they will turn red in the rack layout view to signal the violated constraint. Tubes being too large to share a tube is another possible constraint. Figure 2 – CraigCo MinCom racks with extruded aluminum holders can fit 4 x 22mm or 1 x 50mm In Finale 3D, single-shot rack definitions can specify a minimum and maximum effect size. Multi-shot single-shot rack definitions may also specify a term called "Max. effect size in shared holder". This term limits the size of effects that can share a holder. If an effect is larger than this term but smaller than or equal to the rack's maximum effect size, then the effect can still fit in the rack but it consumes an entire holder for itself. The rack definitions in Finale 3D specify either 1X or 2X or 4X tubes per holder. Figure 1 illustrates the 4X tubes per holder option. The number of effects that can fit in each holder is either the 1X, 2X, or 4X as specified, or just 1X if the effect is larger than "Max. effect size in shared holder". Figure 3 illustrates an example single-shot rack diagram for a multi-load rack. Since the rack can hold so many items, you may need to customize the diagram template to shrink the size of the font in the information panel to get all the information to fit. Figure 3 – An example single-shot rack report for a multi-load rack Figure 4 shows the rack definition dialog ("Racks > Create rack"). The primary fields pertaining to multi-load racks are 1) the rack structure (choosing 1X, 2X, or 4X), and 2) the min and max effect size, and 3) the "Max. effect size in shared holder". Figure 4 – These three fields define the constraints for multi-load racks Differences between multi-load racks and non-multi-load racks In general, multi-load racks work the same way as non-multi-load racks. When you re-address the show or position, the effects fill into the racks and are rearranged to avoid angle conflicts. The addressing algorithm automatically ensures that all the effects in each holder have the same angle and that the size constraints are satisfied. You should choose, when you add racks for the show, whether you want the multi-load version racks or non-multi-load version. In the physical world, both versions are likely the identical equipment. In Finale 3D you choose one or the other based on whether you want to multi-load effects when possible. The multi-load versions of racks are drawn with checkerboard holders, making it easy to tell the difference. There are some differences in the addressing algorithm results between multi-load and non-multi-load racks, even if all the loaded effects are larger than the "Max. effect size in shared holder". If a non-multi-load rack uses exactly two modules, then their pin orders will start from the upper left and upper right corners, working inwards, whereas the pin order for multi-load racks will always start in the first pin of the first module in the upper left and work toward the right. If a rack has prewired pins and multi-load holders, then the addressing algorithm doesn't rearrange or reorder the effects, which means that angle collisions are possible. If the rack holders are 2-axis tiltable and multi-load, then the addressing algorithm doesn't rearrange or reorder the effects, which means that angle collisions are possible. If a rack has multi-load holders, then the loading order as shown in Figure 4 to the right of the min and max size must be one of the "Along rows" options, not the "Across rows" options.
The optional Print-Time Options dialog appears when you print a diagram or report, providing choices that you can make at that time. A diagram or report's blueprint defines whether the print-time options dialog appears, and what options it contains. As of February 2025, only the rack layout diagrams support print-time options. Figure 1 – Print-time options dialog The purpose of the print-time options dialog is to provide some degree of configurability without modifying a diagram or report's blueprint. For example, if you want to print rack layout diagrams for the warehouse crew to set up a specific type of single-shot rack in the warehouse prior to the show, you can use the default "Rack Layout Per Single-Shot Rack" diagram and enter a value for "Additional search terms or expression to filter racks" to filter the printed document to the specific type of rack you want to set up. If that type of rack contains in its description the word "Mincom" then you could add the filter description += mincom. If only that type of rack has between 10 and 20 holders, you could add the filter tubes >= 10 + tubes <= 20. Table 1 – Print-time options fields Field Description Position name filter A full text search filter applying to the position names. Whatever string of characters you type into the field must appear in the position name for the position to be included. For example, the phrase "FR" would include positions "FR" and "FR-01" and "front" but not "F-01". Additional search terms or expression to filter racks A filter applying to the set of rack instances being considered, i.e., the rows in the table at the bottom of the rack layout view. If you want to include only cake racks, for example, you could type the word cake into this field, or more specifically description += cake to limit racks to those whose Description contains the word "cake". The syntax for expressions is described in Filter / search expressions. Page range A page or page range specification. Enter a single page number, like "2", or a page range, like "2-5", or a comma separated list of pages, like, "2, 3, 10".
Rack layout diagrams show graphical instructions for setting up and wiring racks. Finale 3D provides default diagram templates for a variety of workflows, such as for the show crew to set up racks at the shoot site, or for the warehouse crew to prepare single-shot rack configurations in the warehouse in advance of the show. The diagrams are highly customizable. If you have a preference for showing certain information per page that is different from the default templates, or if you want different layout proportions or styles, there is a good chance you'll be able to configure the diagrams to be exactly what you want. Figure 1 – Rack layout per position (page 1) Most of the content displayed in a rack layout diagram comes from rack layout view of your show. The primary difference between the default templates is whether each diagram page of the printed document includes one entire launch position (Figure 1), similar to the rack layout view itself, or whether each page is more granular, such as showing one single-shot rack per page (Figure 2) or one rack cluster per page (Figure 3). Figure 2 – Rack layout per single-shot rack (page 1) The diagrams also include your company logo and information from the "Show > Set show information..." page, as well as static information and dynamic Text box variables in the information panel. Figure 3 – Rack layout per single-shot rack cluster (page 1) The Print-Time Options dialog that appears when you print a document provides some customization options on the fly, at the time you print the document. That may be all the customization you need from the default templates. If not you can copy and modify the default templates or create new templates/blueprints from scratch. The default rack layout diagram templates are available in 18-row and 32-row configurations to accommodate firing system modules that have 18 or fewer pins, or more than 18 pins, using the minimum number of extra pages rows spilling off the first page. An additional default template is available that prints in landscape orientation and includes all the rows on a separate page. All of these options are customizable from the rack layout view's blue gear menu, as shown in Figure 4. Figure 4 – Customize diagrams from the blue gear menu in the upper right of the rack layout view When you customize a default diagram template/blueprint, you will be creating a copy of it. A dialog appears asking for you to name your copy. The blueprint name is the unique identifier for your copy. The page title is what appears on the page. Figure 5 – The blueprint name is the unique identifier for the template; the page title is what appears on the page When you create a new template/blueprint or a copy of a default, the new blueprint will be saved along with the show. You can find it in the show's Blueprints window. You can also create a rack layout diagram blueprint from scratch, but it is usually easiest to begin with one of the defaults. Customizing rack layout diagrams When you create new rack layout diagram or customize one of the defaults from the blue gear menu of the rack layout window, a dialog appears with vast array of configuration options. Figure 6 – The first settings in the dialog specify what goes in the information panel on the right The "Default pathname" (see Default pathnames) and "Batch tags" (see Print batch) fields are somewhat advanced time-saving features for people who print lots of documents. The "Position name filter" and "Diagram tag" fields (see Position name filters and diagram tag filters) are generally used to create a diagram template that applies to a certain type of position, like just rooftop positions or just single-shot positions. The position name filter is most useful when you have a consistent naming convention for your show's launch positions, enabling you to choose a group of positions by filtering to a substring in the position names that is common to the group. If you leave the position name filter blank in the template, you can let the user define it at the time of printing the diagram, from the Print-Time Options dialog. This dialog is itself is configurable as described below. The diagram tags support enabling or disabling drawings based on the diagram (drawings are the circles, icons, lines, etc. that you can draw in the rack layout view by clicking "Draw mode" in the upper left). For example, you may want to have a set of drawings that appear only on diagrams you are giving the crew at the shoot site, and a different set of drawings for folks in the warehouse, but all the drawings are drawn in the same rack layout view together. You can use diagram tags to control which drawings appear on which diagrams. Text box variables and the information panel Referring back to Figures 1-3, the information panel on the right contains a variety of content. The top section, with the show name, date, and location, comes from the "Show > Set show information..." dialog automatically. The text content below that comes from "Text box 1" through "Text box 8". These text boxes can contain static text or Text box variables that expand to information from the diagram or position. "Text box 1" in Figure 6 is "{diagram_title}", which expands to the "Page title" of the blueprint (See Figure 5). "Text box 6" in Figure 6 is "{rack_counts_table}" which expands to two lines in Figure 1. The double-bars at the beginning of some of the text fields in the default diagrams (e.g., "||Racks") have to do language localization. Any text string beginning with double-bar will be translated from English into the user's chosen language if the application's language dictionary contains a translation. If there's no translation, or if the user's language is English, then the double-bars are simply elided when printing. What the diagram contains Scroll down on the configuration dialog to see the remaining settings for the rack layout diagrams. The first two settings, "Each diagram page consists of one" and "filtered to" define the basic parameters of what each "diagram page" contains. The term "diagram page" means the one or more printed pages required to print one diagram plus the associated rows in the table below the diagram, which may spill over into additional printed pages. Figure 7 – Scroll down to find the settings for what appears in the diagram, and the style choices The examples in Figures 1-3 are good illustrations of the first two settings. For the first setting, they correspond to Position, Rack, and Rack Cluster. Table 1 – Each diagram page consists of one ... Diagram content Typical use Position If you divide work up by position or if you want an overview per position, this is the right variation. The diagram page for a position includes all racks in the position; the table includes all script rows associated with the position, even unracked items. Module If you divide work up by module, use this variation to print one diagram page of information per task. The diagram for a module includes all racks served by the module; the table includes all script rows associated with the module, even unracked items. Rack If you set up single-shot racks in advance of the show (angles, wiring, or effects), use this variation to print one diagram page per single-shot rack. The diagram has only one rack; the table has only the script rows associated with that rack. Unracked items are not included in the table. Rack Cluster If in advance of the show you construct aggregate single-shot racks from rows that are represented in Finale 3D as individual racks, use this variation to print one diagram page per aggregate rack, which is a rack cluster in Finale 3D. The diagram has all the racks in the cluster (i.e., all the rows making up the aggregate rack); the table has the script rows associated with those racks. Unracked items are not included in the table. Also, if you divide work up by rack cluster or "rack pod" for groups of mortar racks that are assembled together, you can use this variation for mortar racks instead of single-shot racks. Custom Rack Field If you divide work up by groups of racks that are assembled together, and if the groups don't correspond to rack clusters in Finale 3D, you can use the Custom Rack Field in the table at the bottom of the rack layout view to define the groups that constitute a single diagram page. The diagram will include all racks having the same Custom Rack Field (and the same position); the table will include all items associated with those racks, excluding unracked items. Rack Notes Similar to Custom Rack Field, you can use this variation to define your own groups of racks. If you already use the Custom Rack Field for addressing concerns, the Rack Notes field is another option. The second setting ("filtered to" ) specifies what kind of racks to filter to: Any kind, Single-shot, Mortar, Candle, etc. Typically if the first setting is Position or Module, the second setting is Any kind; and if the first setting is Rack or Rack Cluster, the second setting is something more specific. The third setting ("Additional search terms or expressions to filter racks") also filters the content of the diagram. These search terms or expressions can select a specific type of rack that is even more specific than second setting's options. Your warehouse crew may set up only specific types of single-shot racks in the warehouse before the show, leaving other types of single-shot racks to set up at the shoot site. The third setting can filter the racks to the right set. See Filter / search expressions for instructions. Similar to "Position name filter", if you leave this field blank you can offer it to the user to define when printing the diagram, from the Print-Time Options dialog. After some general style settings that are self-explanatory, the "Table blueprint" setting is what controls the table of script rows below the diagram. This setting refers to a separate script report blueprint that you can customize or create from the blue gear menu in the upper right corner of the script window. The script report's blueprint specifies the table columns and formatting choices like zebra-striping rows, font size, conditional formatting colors, etc. Thus, to customize the table shown in rack layout diagrams, first you need to create the customized script report blueprint, and then second you need to customize the rack layout diagram blueprint to refer to your customized script report blueprint. Tube text and graphics The "Tube text top" and bottom and angle graphics options configure what information is shown in each single-shot holder or mortar tube cell of the drawn rack. These three settings in combination can be configured to match any of the tube text options in the rack layout view and many other options that are not available in the rack layout view. Figure 8 – A tube text option for printed diagrams that isn't available in the rack layout view The text top and bottom components can be: Pin, Rail, Address, Angle, Rack relative angle, or None. If you choose none for top or bottom, the other will expand to fit the area. For example, the default option in the rack layout view is equivalent to pin for top text, none for bottom text, and none for angle graphics, which gives pin number all the area for the largest font possible. The angle graphics component can be: In center, On right, On left, or None. If angle graphics are included in any manner, they will consume much of the available area, shrinking the font of the text components. Putting the angle graphics in the center (in a vertical stack) shrinks the text font the most because the stack of top text, angle graphics, and bottom text must be short enough to fit in the available height. Putting the angle graphics on the left or right generally divides the area more efficiently if you are including both top text and bottom text, but only if the tube text area is more of a wide rectangle than a square based on the physical proportions of the rack. Figure 8 shows this efficient use of space in comparison to Figure 2, which works better for racks with square tube areas. Checkbox options After the tube text selectors is a collection of checkboxes affecting the appearance of the diagrams. The checkboxes and their meanings are in Table 2. Table 2 – Checkbox options and their meaning Checkbox Meaning Show rail/pin boxes Draw the rail box graphics in the information panel, as shown in Figures 1-3. Show rack cluster colors Draw the colored bounding boxes around the rack clusters, just like when you drag a rack in the rack layout view next to another rack and they snap together in a cluster. Show rack cluster rulers Draw the dimension rulers for the rack clusters, just like when you drag a rack in the rack layout view next to another rack and they snap together in a cluster. Show tube angle colors Draw the color gradient backgrounds of the rack tube/holder cells based on the angles of their effects, just like when you are dragging and dropping pins in the rack layout view. Show drawings Draw the drawings (drawings are the circles, icons, lines, etc. that you can draw in the rack layout view by clicking “Draw mode” in the upper left). Show all rack annotations Draw all rack annotations of racks in the position, not just the rack annotations associated specifically with the racks shown in the diagram. Show outlines of excluded racks Draw gray boxes for racks in the position that are not otherwise included in the diagram, providing context for the surroundings of the racks that are included in the diagram. Move rail numbers to side if necessary Move the rail numbers that are by default drawn underneath the rack to the right side of the rack if the rack has vertical neighbors. It is usually better to turn this option OFF if each diagram includes only one rack to make better use of the available print area. Include drawings in printed area Include your drawings in the calculation of the bounding box for the printed area of the page. If you are maximizing the size of the racks in the printed area, you might be happier turning this option OFF so your drawings don't expand the bounding box and thereby shrink the size of the racks. If your drawings include important information for the diagram, then leave this option ON. Include associated rack annotations in printed area Include the rack annotations of the included racks, and of any racks in rack clusters containing included racks if Include associated rack clusters in printed area is ON, in the bounding box calculation for the printed area. If rack annotations include important information for the diagram then leave this option ON or add "{annotation}" as a text box variable to include the annotations in the information panel. Include associated rack clusters in printed area In addition to the racks in the diagram, include in the bounding box calculation for the printed area all the racks that are not themselves included in the diagram but that are in rack clusters containing other racks that are. Set this option ON for Per Rack or Per Module diagrams if Show outlines of excluded racks is ON so the outlines of the other racks in the clusters of the included racks are included in the printed area, providing useful context of the surroundings. Include all racks in printed area Include all racks, and their annotations if Include associated rack annotations in printed area is ON, in the bounding box calculation for the printed area. With this option ON, all diagram pages for the same position will have the same bounding box even if each diagram page draws only a subset of the racks. In combination with Show outlines of excluded racks, this option provides the best context for the surroundings of the drawn racks, though the drawn racks may be smaller on the printed page because of space required for the surroundings. Print-time options: Position name filter Show the Print-Time Options dialog when the user prints this diagram template, and include the Position name filter field in the dialog. If this option is ON, the user's entry in the Print-Time Options dialog will overwrite the Position name filter field of the template even if the user leaves the field blank. Print-time options: Additional search terms or expression to filter racks Show the Print-Time Options dialog when the user prints this diagram template, and include the Additional search terms or expression to filter racks field in the dialog. If this option is ON, the user's entry in the Print-Time Options dialog will overwrite the Additional search terms or expression to filter racks field of the template even if the user leaves the field blank. Print-time options: Page range Show the Print-Time Options dialog when the user prints this diagram template, and include the page range field.
Site layout and rack layout diagrams contain an optional information panel on the right of the page that displays a variety of information tailored to the purpose of the diagram, such as whether the diagram is for a client, or the authority having jurisdiction, or the display operator's crew, or the personnel who assemble single-shot racks in advance to bring to the shoot site. You choose what information to display by configuring the diagram template (blueprint), which is accessed from the blue gear menu in the upper right corner of the rack layout window. The diagram template contains eight configurable text boxes, and the text boxes can contain variables that refer to information from the diagram or the show. The site layout's "Diagram side panel text", which you set from the "Show > Set side panel text" menu or from the button in the top left of the rack layout view for site layout, also supports text box variables. The table below shows the list of variables available to you and their meaning. Table 1 – Variable meanings in site layout diagrams and rack layout diagrams Variables Meaning in site layout diagrams Meaning in rack layout diagrams {annotation} <undefined> The union of annotations of racks in rack clusters that are associated with racks that are included in the diagram page's "consists-of" specification and filter. Rack diagrams often have a single annotation per rack cluster, describing the entire cluster of racks, but the annotation itself in the user interface is associated with a specific rack. This definition of the {annotation} variable ensures that if the rack layout diagram displays any of the racks in a rack cluster, the {annotation} will include the annotation describing the cluster. {diagram_page_number}, {number_of_diagram_pages} <undefined> Rack layout diagrams contain a collection of diagram pages, such as one diagram page per position, or module, or rack. Each diagram page typically consists of a diagram and a table of information. If the table is short, it may fit on the same page as the diagram, in which case the diagram page requires just a single page of paper, but if the table doesn't fit on the same page as the diagram, the diagram page may require multiple pages of paper for the overflow. Whereas the page number in the upper right of the page counts the pages of paper, the {diagram_page_number} counts the diagram pages. {diagram_title} The title of the diagram, from the diagram template. Same as for site layout. {effect_angles_table} A table of angle counts for effects in racks in all positions passing the site layout's position name filter. A table of angle counts for effects in racks in the diagram page's position, which may include racks not in the diagram page itself for diagram configurations like per-rack-cluster which create diagram pages for subsets of the racks in a position. {effect_angles_table_per_diagram_page} <undefined> A table of angle counts for effects in racks included in the diagram page itself. {module}, {rail}, {rack_number}, {rack_cluster}, {rack_name}, {rack_manufacturer}, {rack_notes} <undefined> The union of module numbers, rail numbers, etc. of events included in the diagram page's "consists-of" specification, and if the specification is "PER MODULE" then also the diagram page's position's pre-assigned rails (or modules thereof) that match the diagram page's module, and if the specification is "PER POSITION" then also all the diagram page's position's pre-assigned rails (or modules thereof). {number_of_modules}, {number_of_rails}, {number_of_ematches}, {number_of_pins_used}, {number_of_pins_total}, {number_of_devices}, {number_of_universes} The count of modules, rails, etc. of all events in all positions passing the site layout's position name filter. The number of modules is based on used and pre-assigned rails. Total pins includes pins from pre-assigned rails. The count of modules, rails, etc. of all events in the diagram page's position, whether included in the shown racks or not. The number of modules is based on used and pre-assigned modules. Total pins includes pins from pre-assigned rails. {number_of_multi_loaded_holders} The count of individual single-shot holders that contain multiple effects, considering racks in all positions passing the site layout's position name filter. The count of individual single-shot holders that contain multiple effects, considering all racks in the diagram page's position, which may include racks not in the diagram page itself for diagram configurations like per-rack-cluster which create diagram pages for subsets of the racks in a position. Certain types of single-shot racks, such as those with the rack structure "Single-shot rack, 1-axis tiltable holders for up to 4 tubes," support multiple effects in the same holder if the sizes are sufficiently small. For such racks, if a holder contains zero or one effect, the holder does not contribute to this variable's count; if it contains two or more effects, it does contribute. In the physical world, racks of this structure may need a plug in the bottom of their holders if and only if the holders contain more than one effect. The purpose of this variable is to tell you how many plugs are required. {number_of_multi_loaded_holders_per_diagram_page} <undefined> The count individual of single-shot holders that contain multiple effects, considering all racks included in the diagram page itself. Certain types of single-shot racks, such as those with the rack structure "Single-shot rack, 1-axis tiltable holders for up to 4 tubes," support multiple effects in the same holder if the sizes are sufficiently small. For such racks, if a holder contains zero or one effect, the holder does not contribute to this variable's count; if it contains two or more effects, it does contribute. In the physical world, racks of this structure may need a plug in the bottom of their holders if and only if the holders contain more than one effect. The purpose of this variable is to tell you how many plugs are required. {position} <undefined> The name of the position containing the information shown in the diagram page. {rack_counts_table}, {rack_totals_table} A table of counts of racks in all positions passing the site layout's position name filter. The totals table includes one line per rack name and size. The counts table includes one line for each angle of each rack and size. A table of counts of all racks in the diagram page's position, which may include racks not in the diagram page itself for diagram configurations like per-rack-cluster which create diagram pages for subsets of the racks in a position. The totals table includes one line per rack name and size. The counts table includes one line for each angle of each rack and size. {rack_counts_table_per_diagram_page}, {rack_totals_table_per_diagram_page} <undefined> A table of counts of all racks included in the diagram page itself. The totals table includes one line per rack name and size. The counts table includes one line for each angle of each rack and size. {universes}, {sections} The union of universes or sections of all events in all positions passing the site layout's position name filter. The union of universes or sections of all events in the diagram page's position, whether included in the shown racks or not.
To create and export a script for the MainFX 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 JSON file that you can import into your firing system. Figure 1 – The MainFX firing system The MainFX script is a JSON text file that supports 30, 100, and 10k pin modules. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line JSON .out UTF-8 Not applicable Not applicable The script is a JSON array of objects ("rows") for 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 first by event time. What rows represent Rows represent firing events, i.e., unique module-pin-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Supported modules S-BOX 30, S-BOX 100, and Custom 10K modules are supported, with 30, 100, and 10k pins respectively. Minimum separation between cues 10ms The JSON objects include the necessary information for each ignition event, consisting of some values derived from the show data in Finale 3D and other values with hard coded, constant values. Table 3 – Specifications of script fields Field name Description action (int) The value 1 between (int) Time in milliseconds between the previous row's event time and this row's event time, or zero for the first row ch (int) Pin number delay (int) Event time in milliseconds with 10ms resolution (last digit is always zero) freeze (bool) The value false id (int) The row number, beginning with 0 position (int) The module number, beginning with 1 (not the "launch position" in Finale 3D, which is not represented in the MainFX script) time (int) The value 100 type (int) The value 2 name (string) The effect name, or effect names if the row represents multiple rows with different names size (string) The size of the first effect quantity (int) The number of devices represented by the row angle (string) ASCII graphics angle representation of all effects represented by the row, preceded by a list of angles followed by a dot character if any angles are non-zero The example script below is from a show with nine positions, illustrating rows with various combinations of effects. The first eleven rows each have a single effect. The next three rows have 2, 2, and 3 effects respectively. The first of those three has two effects of different names, which are combined in the name property separated by comma. The remaining rows have homogeneous effects, so their name properties consist of a single name. [{"action":1,"between":0,"ch":1,"delay":2760,"freeze":false,"id":0,"position":1,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":1,"delay":3260,"freeze":false,"id":1,"position":2,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":1,"delay":3760,"freeze":false,"id":2,"position":3,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":2,"delay":4260,"freeze":false,"id":3,"position":4,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":2,"delay":4760,"freeze":false,"id":4,"position":5,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":2,"delay":5260,"freeze":false,"id":5,"position":6,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":1,"delay":5760,"freeze":false,"id":6,"position":7,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":1,"delay":6260,"freeze":false,"id":7,"position":8,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":500,"ch":1,"delay":6760,"freeze":false,"id":8,"position":9,"time":100,"type":2,"name":"Red Chrysanthemum","size":"50mm","quantity":1,"angle":"|"}, {"action":1,"between":2220,"ch":1,"delay":8980,"freeze":false,"id":9,"position":4,"time":100,"type":2,"name":"Indigo Chrysanthemum","size":"3"","quantity":1,"angle":"|"}, {"action":1,"between":0,"ch":1,"delay":8980,"freeze":false,"id":10,"position":6,"time":100,"type":2,"name":"Indigo Chrysanthemum","size":"3"","quantity":1,"angle":"|"}, {"action":1,"between":3000,"ch":1,"delay":11980,"freeze":false,"id":11,"position":5,"time":100,"type":2,"name":"Indigo Chrysanthemum, Yellow Chrysanthemum","size":"3"","quantity":2,"angle":"-45 +45. \/"}, {"action":1,"between":6000,"ch":3,"delay":17980,"freeze":false,"id":12,"position":6,"time":100,"type":2,"name":"Yellow Chrysanthemum","size":"3"","quantity":2,"angle":"-45 +45. \/"}, {"action":1,"between":9000,"ch":2,"delay":26980,"freeze":false,"id":13,"position":7,"time":100,"type":2,"name":"Yellow Chrysanthemum","size":"3"","quantity":3,"angle":"|||"}] Figure 2 – Example MainFX script
To create and export a script for the IGNITE firing system, please follow these steps: Design the show. Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). This function creates an Excel XLSX file containing the rows, and it also copies the rows into the system clipboard so you can paste them into a text editor or the IGNITE designer web application. Paste the script rows into designer.ignitefiringsystems.com. Select the first row in the table on this web page, then press Ctrl+V. Figure 1 – The IGNITE firing system module The exported IGNITE script is a list of rows represented as text with tab separated fields. The method of transferring a show designed in Finale 3D to the IGNITE system is to address and export the show from Finale 3D and then paste (or copy/paste from exported XLSX file) the rows into a blank show in the IGNITE designer web application. The "Event Time" field in IGNITE corresponds to the "Effect Time" in Finale 3D, i.e., the break of a shell as opposed to the launch of a shell. The "Color" and "Cue" fields in IGNITE correspond to the "Rail" and "Pin" columns in Finale 3D. The six colors in IGNITE, beginning with red, are rail numbers 0-5 in Finale 3D. The pin and cue numbers, and the "Firework Name" and "Duration" fields have the same meaning in IGNITE and Finale 3D. The "Igniter Pre-fire" field in IGNITE corresponds to the "Prefire" field in Finale 3D. Table 1 – Clipboard format and encoding Clipboard format Extension Text encoding Field delimiter End-of-line Text XLSX UTF-8 Tab CRLF The script contains rows for the firing events, i.e., unique combinations of module, channel, 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 first by Event Time. What rows represent Rows represent firing events, i.e., unique module-channel-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Special characters The script may contain any Unicode characters except the comma character and control characters like tab or carriage return. Finale 3D automatically strips out the comma characters from exported scripts. The IGNITE script has no header, just a list of rows corresponding to the firing events. Each row has six fields, defined as follows: Table 3 – Specifications of script fields Field name Description Event Time The Effect Time (the break time, not the launch time) in the format MM:SS.D from the beginning of the show (1/10th second resolution) Color Module number, from 0-5 Cue Pin number, from 1-18 or 1-36 Firework Name The effect description (up to 62 Unicode characters, including double quote and characters from other languages but not comma) Duration Duration in seconds without fractional seconds (integer) Igniter Pre-fire Prefire as a floating point number with 1/10th second resolution The example script below has three cakes, all shot from the same module (0, or red). The first two cakes are long, at 22 and 18 seconds respectively. The third cake is an all-at-once shell cake, and therefore has an Igniter Pre-fire equal to the lift time, represented in the Igniter Pre-fire field even though the delay is in the aerial delay fuse, not the igniter. 00:05.0 0 3 Slingin' Rhymes 22 0.0 00:30.7 0 1 Green Ice 18 0.0 00:53.7 0 2 Say Again? 1 1.7 Figure 2 – Example IGNITE script as text Figure 3 – Example IGNITE script as shown in the IGNITE designer web application
The "Addressing algorithm" is the procedure the computer follows to assign modules, pins, racks and tubes to the events of the show. The basic procedure is a lot like what a human would do: Decide in what sort order you will assign addresses to effects. Take the first effect in that order, and assign it the lowest number module, pin, rack, and tube that satisfy all the constraints. After the assignment, look ahead to assign any same-time or same-chain effects to the same module and pin and the lowest number rack and tube that satisfy constraints. Repeat from step (2) until finished. Rearrange the tubes in the single-shot racks to avoid collisions between tubes with crossing angles. If you turn off step (5) rearrangement, the results of the algorithm are fully transparent and 100% determined by the sort order and the constraints specified in the addressing dialog, meaning that a human could follow these same steps to get the same result. You can fall back on this truth if you ever question the results of the addressing algorithm: follow the same steps and see if you get the same result. Sort order The sort order is a list of criteria, sorting first by criterion 1, then breaking ties by criterion 2, then breaking further ties by criterion 3, etc. Sort criteria include attributes like Position Name, Size, and Part Number. In fact it is easy to imagine assigning modules and pins sorted by those exact criteria, and many people do. Sort criteria can also include conditional terms, like "Size >= 50mm (If Single-Shot)", which sorts single-shot items of size >= 50mm first; then other single-shot items; then non-single-shot items in their original order. The purpose of conditional sort terms with phrases like "(If Single-Shot)" is to apply some criteria to some kinds of effects without affecting others. For example, it may be important to assign racks and tubes to large (>= 50mm) single-shots before others if a launch position has a limited number of racks capable of holding the larger effects, which you wouldn't want to fill with smaller effects until ensuring you have dealt with all the large effects. Sort criteria can also include derived terms like "Rack Number", which prioritize effects that fit in the next rack according to the Rack Numbers. The precise definitions and calculations of derived terms like Rack Number are often complicated. If the meaning isn't obvious or if you are trying to step through exactly what the computer is doing, you can refer to the list of terms and their definitions here: Special sort terms. Constraints Unlike the list of sort order terms, constraints come from multiple places. The addressing dialog provides lists of constraint fields applying to modules, slats, pins, and racks, and provides the constraint, "Max. e-matches per pin". The rack definition dialog for the "Create/edit rack" functions includes pre-wired pins, various size constraints, usable length of rack row constraints for Pyrolamas-like racks, and constraints related to angles. Effects have a Type property that must be compatible with the rack structure (cake racks vs. single-shot racks, etc.). Positions can have pre-wired rails. Script rows can have Rack Type values that are required to match the Rack Type properties of the racks. Like sort terms, constraint fields applying to modules, slats, pins, and racks can refer to attributes like Position, Size and Part Number, or other more complicated conditional and derived terms like "Rack (If Single-Shot)" or "Chain-Or-Not" (see Special constraints). The important characteristic of constraints is that they combine in a principled manner. The combination of constraint 1 and constraint 2 means simply that constraint 1 and constraint 2 must both be satisfied by any assignment of modules, pins, racks, and tubes. Because of this characteristic, you can configure the addressing algorithm to take into account a staggeringly large and complex set of considerations while still being able to rely on the predictability and verifiability of the result. Example sort order and constraints for single-shot racks with pre-wired pins Addressing for pre-wired pins on racks with angle range constraints requires a significant amount of sort order and constraint calculation which illustrates the complexity. The specific terms are listed in Table 1 of Racks with pre-wired pins. Figure 1 is an excerpt: Figure 1 – Example sort order and constraints for pre-wired pins. The "Tilt > 50° — Single-Shot" sort term guarantees that single-shots angled more than 50° get to allocate the tube holders on the ends of the rows that are the only holders capable of rotating to those extreme angles. Similarly, the "Size >= 50mm -- Single-Shot" sort term ensures large holder single-shot racks are allocated first to the large effects that need them. The "One Single-Shot Rack" constraint restricts a module to zero or one single-shot rack but allows pins to be shared with other non-single-shot racks. See Racks with pre-wired pins for the full explanation of the terms in this example.