Total found:2360
Labels basic instructions

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  

PyroLEDA

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

CSV

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

PyroDigiT

To create and export a script for the PyroDigiT firing system, please follow these three steps: Design the show. Set the Section field for launch positions with AFC32 units (Right-click positions and edit position properties to enter the AFC32 unit number 1-99 servicing those positions, if any, into the Section field.). 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 PyroDigiT software. To compile the CSV script file from Finale 3D and download it to the PyroDigiT controller, please follow these steps: Download and install the "Finale 3D to PyroDigiT System Compiler" application (link available at the bottom of this page). Launch the compiler application and click "Select Finale 3D CSV". After selecting the file, the software reads the script contents and displays the various tracks into which the show is divided. For each track, called "Section X", enter a name and select a music file. Or, if the show is not divided into tracks, enter a name and select the music for the whole show. Click on "START>>" to compile the show. The PyroDigiT Pyroshow software is not required, the show is now ready to be downloaded to the PyroDigiT controller. Launch the PyroDigiT "Project Manager" application and download the show to the PyroDigiT controller. Figure 1 – PyroDigiT Master 999 Touch control panel   The PyroDigiT CSV is a human-readable text file that contains the essential information for the PyroDigiT Master 999 Touch to fire the show.   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: pyrodigit_slave_15 -- 15 pins pyrodigit_slave_30 -- 30 pins pyrodigit_slave_60 -- 60 pins pyrodigit_afc32_sm15 -- 15 pins pyrodigit_afc32_sm30 -- 30 pins Slave modules connect directly to PyroDigiT Master 999 Touch controllers and therefore only need a single module number XXX to identify the slave, in the Rail Address field in the exported script.   SM15 and SM30 slats  connect to AFC32 units, which connect to Master 999 Touch controllers.  Thus SM15 and SM30 slats require two fields for their addresses: XXX to identify the slat in the Rail Address field; and YY to identify the AFC32 unit, in the AFC32 Address field. (See Using AFC32 units, below.) Special characters Fields include any Unicode characters except: ' , ; " tab and newline and other control characters. Support for semi-automatic firing The Cue and Track fields support semi-automatic firing mode.  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 sequence or "macro" with a single trigger in semi-automatic mode on the firing system.  Cue numbers do not increment within a track group of effects. Start/end times for semi-automatic tracks To specify the start and end time of a track, if different from the track's first and last events' times, insert an empty event at the start time, before the track's first event, and an empty event at the end time, after the track's last event.  Empty events are events that do not have a Part Number, and therefore do not have fields like Type or Description.  Empty events do have valid Track fields, however, and the Track field must match the track of (pyro) events with which the empty cue is associated (see Empty events, below). Header The file contains a five line header, consisting of: Unique identifier (a SHA1 checksum of the file contents) Show name Music path Show date Show location Each script row has the following fields:   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. Ignition 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. 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. Delay 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 Name 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?). Angles A list of angles in degrees, separated by spaces, for the effects represented by this row in the script.  Position The name of the launch position from which the effect is fired. Module Type The type of module or slat: pyrodigit_slave_15, pyrodigit_slave_30, pyrodigit_slave_60, pyrodigit_afc32_sm15, pyrodigit_afc32_sm30. AFC32 Address For effects fired from SM15 or SM30 slats connected to AFC32 units, the Section field in the script is the AFC32 unit number, from 1-99. The addressing functions copy the Section field from the launch position into the script event's Section field at the time of addressing, so please specify the AFC32 unit for each launch position by editing the position properties prior to addressing the show.  (See Using AFC32 units, below.) Rail Address The module number XXX in the case of slave modules or slat number XXX in the case of SM15 or SM30 slats connected to AFC32 units (see Section field for identifying the AFC32 units).  Pin Address The pin number. Part Number A user-defined identifier for the effect. Manufacturer Part Number The manufacturer part number. 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-automatic 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 rail address of the AFC32 unit 15-pin slats contain two numbers to identify the AFC32 unit and the slat independently.   1234567890 My Test Show C:UserswharveyDocumentsfinale_3d_website_mediatest_pyrodigit02.mp3 NYE New York Cue Ignition Time Duration Device Count Delay Effect Name Size Category Type Angles Position Module Type AFC32 Address Rail Address Pin Address Part Number Manufacturer Part Number Track 1 00:00:02.760 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-01 pyrodigit_slave_15 001 1 G2SH1000 G2SH1000 2 00:00:05.260 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-02 pyrodigit_slave_15 002 1 G2SH1000 G2SH1000 3 00:00:07.760 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-03 pyrodigit_slave_15 003 1 G2SH1000 G2SH1000 4 00:00:10.260 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-04 pyrodigit_afc32_sm15 01 004 1 G2SH1000 G2SH1000 5 00:00:12.760 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell -30 30 Pos-05 pyrodigit_afc32_sm15 01 005 1 G2SH1000 G2SH1000 6 00:00:15.260 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell -30 30 Pos-06 pyrodigit_afc32_sm15 01 006 1 G2SH1000 G2SH1000 7 00:00:17.760 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-07 pyrodigit_afc32_sm15 01 007 1 G2SH1000 G2SH1000 8 00:00:20.260 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-08 pyrodigit_afc32_sm15 01 008 1 G2SH1000 G2SH1000 9 00:00:22.760 1.02 2 2.24 (2) Red Chrysanthemum ... 2" 2 Assorted shell 0 0 Pos-09 pyrodigit_afc32_sm15 01 009 1 G2SH1000 G2SH1000 Figure 1 – Example PyroDigiT script with slaves and AFC32 slats   Using AFC32 units As discussed above, PyroDigiT AFC32 units require two addresses for their pins, XXX to identify the slat number, and YY to identify the AFC32 unit itself.  When you address the show using Finale 3D's addressing functions, Finale 3D assigns the slat numbers XXX for all the shots, but the addressing functions do not take into consideration the AFC32 unit numbers YY for the shots.  You need to specify the AFC32 unit numbers yourself, prior to addressing the show, by setting the numbers in the "Section" field of the launch positions' position properties.   Figure 2 – Set the position properties' Section field to the AFC32 unit number   Since you may want multiple launch positions to use the same AFC32 units you can set multiple positions' Section fields to the same AFC32 unit number.  Here are two examples. In the first example, the user has four launch positions total, A, B, C, D.  Each launch position has 16 x 15-pin slats.  Thus 64 15-pin slats are required in total, which means two AFC32 units are required.  So the user sets the Section field of launch position A and B to 01 (for example), and sets the Section field of launch positions B and C to 02.  The rows in the exported script will thus include AFC32 numbers YY and slat numbers XXX of, At position A: 01-001 01-002 01-003 ... 01-016 At position B: 01-017 01-018 01-019 ... 01-032 At position C: 02-033 02-034 02-035 ... 02-048 At position D: 02-049 02-050 02-051 ... 02-064 Figure 3 – Example addresses for two launch positions A and B sharing the same AFC32, and two other launch positions C and D sharing a different AFC32   Alternatively, the user may want to put a separate AFC32 at each of the positions A, B, C, D.  That would require four AFC32 units instead of two, which is less efficient but maybe the user wants to do it anyway.  To do that, the user specifies the Section of position A is 01; the Section of position B is 02; the Section of position C is 03; the Section of position D is 04.  When the user exports the script, it will contain, At position A: 01-001 01-002 01-003 ... 01-016 At position B: 02-017 02-018 02-019 ... 02-032 At position C: 03-033 03-034 03-035 ... 03-048 At position D: 04-049 04-050 04-051 ... 04-064 Figure 4 – Example addresses for four launch positions A, B, C, and D each with its own AFC32   Since the AFC32 Address is not part of the Rail Address or the Pin Address, it is is not present in the standard label configurations.  To get the AFC32 Addresses to be included on the labels, you will need to modify an existing labels template or create a new one that has the Section field from the script window as one of the displayed fields (recall that the AFC32 Address comes from the Section field in Finale 3D.)  Instructions for configuring labels templates are, Labels basic instructions.   Empty events Empty events are used to specify the start and end time of tracks in the exported script, if different from the tracks' first and last event times themselves.  In the example shown in Figure 2, both tracks have start and end times that are 2-seconds before and after the events in the track.  To add empty events in Finale 3D, simply use the menu item, "Script > Insert empty cue". Empty events in Finale 3D are events that do not have Part Numbers.  Empty events in a show will not be included in the exported PyroDigiT script unless they have a non-empty Track field that matches a track that contains non-empty cues.  In the exported script, all fields of empty events are blank except the Ignition Time, possibly the Effect Name, and the Track.  The Effect Name will contain the Notes field from the event in Finale 3D, which can be used for comments or names of tracks in the exported script.   1230086691 C:UserswillDownloadstest-pyrodigit02.mp3 Cue Ignition Time Duration Device Count Delay Effect Name Size Category Type Angles Position Module Type AFC32 Address Rail Address Pin Address Part Number Manufacturer Part Number Track 00:00:01.000 1 1 00:00:03.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 1 G2XX1000 G2XX1000 1 1 00:00:04.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 2 G2XX1000 G2XX1000 1 1 00:00:05.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 3 G2XX1000 G2XX1000 1 1 00:00:06.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 4 G2XX1000 G2XX1000 1 1 00:00:07.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 5 G2XX1000 G2XX1000 1 1 00:00:08.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 6 G2XX1000 G2XX1000 1 1 00:00:09.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 7 G2XX1000 G2XX1000 1 1 00:00:10.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 8 G2XX1000 G2XX1000 1 1 00:00:11.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 9 G2XX1000 G2XX1000 1 1 00:00:12.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 10 G2XX1000 G2XX1000 1 00:00:14.000 1 00:00:23.000 2 2 00:00:25.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 11 G2XX1000 G2XX1000 2 2 00:00:26.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 12 G2XX1000 G2XX1000 2 2 00:00:27.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 13 G2XX1000 G2XX1000 2 2 00:00:28.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 14 G2XX1000 G2XX1000 2 2 00:00:29.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 001 15 G2XX1000 G2XX1000 2 2 00:00:30.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM15-ON-20 pyrodigit_afc32_sm15 20 002 1 G2XX1000 G2XX1000 2 2 00:00:31.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM30-ON-20 pyrodigit_afc32_sm30 20 003 1 G2XX1000 G2XX1000 2 2 00:00:32.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM30-ON-20 pyrodigit_afc32_sm30 20 003 2 G2XX1000 G2XX1000 2 2 00:00:33.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM30-ON-20 pyrodigit_afc32_sm30 20 003 3 G2XX1000 G2XX1000 2 2 00:00:34.000 2.14 1 0.0 Red Comet 2" 2 Assorted comet 0 SM30-ON-20 pyrodigit_afc32_sm30 20 003 4 G2XX1000 G2XX1000 2 00:00:36.000 2 Figure 2 – Example script with two tracks that have start/end times specified by empty events   Table 4 – Example files & tools Download link Explanation test_pyrodigit.csv Example exported file  (CSV) test_pyrodigit.fin Example show file FTP Compiler 1.1.3.exe Finale 3D to PyroDigiT System Compiler

Licensing FAQ

[vc_row][vc_column][vc_column_text]The licensing options for Finale 3D are designed to accommodate individuals and companies, enthusiasts and industry leading professionals. To accomplish this goal, there are three licensed versions of Finale 3D: Lite, Hobbyist, and Pro. Additionally, there are discounted licenses for individuals with multiple computers, and companies with multi-user design teams. This article includes answers to licensing questions and examples to help you select and manage the licenses that are best for your situation. [/vc_column_text][rs_space lg_device="50" md_device="" sm_device="" xs_device=""][vc_column_text] For everyone: [/vc_column_text][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][vc_toggle title="Where do I start?" style="simple"]Finale 3D is completely free to try, so start by installing the software on your computer. Go to the Download page to begin. All versions of Finale 3D are contained in the same download package. There is no need to worry about the different license types when you are downloading and installing the software. When you run Finale 3D without a license, you will be in demo mode. This mode gives you access to all the features of the “Lite” version, but saving an exporting are disabled.[/vc_toggle][vc_toggle title="What are the system requirements for Finale 3D?" style="simple"]If you have a PC, or a Mac that is set up to run Windows, chances are good that Finale 3D will run on your computer. The best way to find out is to give it a try. For more details, see System Requirements.[/vc_toggle][vc_toggle title="How can I try all the features?" style="simple"]To request a free 14-day trial of Lite, Hobbyist, or Pro, use the button at the top of the Pricing page.[/vc_toggle][vc_toggle title="What is the difference between Lite, Hobbyist and Pro?" style="simple"]The key features in each version of Finale 3D are listed near the top of the Pricing page. Scroll down on the same page to see a complete Feature Comparison. Also watch the Feature Comparison Video.[/vc_toggle][vc_toggle title="What is the renewal price for my license?" style="simple"]The renewal price for all Finale 3D licenses is the same as the original purchase price. For example, if your purchase a Pro license for $1049, the license is good for 1 year and the renewal price is $1049 to extend the license for another year.[/vc_toggle][vc_toggle title="Can I purchase Finale 3D as a monthly subscription or buy a lifetime license?" style="simple"]Finale 3D is only available as an annual license subscription. This enables us to continuously make improvements, add new features, and provide high quality customer service and support.[/vc_toggle][vc_toggle title="What happens if I don’t renew my Finale 3D license?" style="simple"]Finale 3D is only available as an annual license subscription. If you purchase a license and choose not to renew it, then the software will revert to demo mode. In this mode, you will not be able to save or export your work.[/vc_toggle][vc_toggle title="Can I install Finale 3D on multiple computers?" style="simple"]Each Finale 3D license is for one user and can only be activated on one computer at a time. You can unlink your license and move it to another computer up to 12 times per year. If you have a Hobbyist or Pro license and you need to have two computers activated at the same time, you can purchase an Extra Machine license.[/vc_toggle][vc_toggle title="How do I move my Finale 3D license to a new computer?" style="simple"]To move your license, install Finale 3D on your new computer, login, and follow the instructions onscreen. You can move your license up to 12 times per year.[/vc_toggle][vc_toggle title="What is an Extra Machine license?" style="simple"]Each Finale 3D license is for one user and can only be activated on one computer at a time. An Extra Machine license allows a user with a Hobbyist or Pro license to activate Finale 3D on another computer. For example, if you have a computer at your office, and a computer at home, an Extra Machine license will allow you to have Finale 3D activated on both computers. If your primary license is Pro, then the Extra Machine license will allow you to activate Pro on a second computer. If you have Hobbyist, the Extra Machine license will allow you to activate Hobbyist on a second computer. If you only purchase Extra Machine and don’t have a Hobbyist or Pro license, the Extra Machine license will do nothing.[/vc_toggle][vc_toggle title="How can I upgrade my Finale 3D license?" style="simple"]You can upgrade your license at any time by contacting support@finale3d.com.[/vc_toggle][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][vc_column_text] For individuals: [/vc_column_text][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][vc_toggle title="I am an individual, how do I purchase a Finale 3D license?" style="simple"]Go to the Pricing page, add the version of Finale 3D you would like to purchase to your shopping cart and complete the online checkout. Your license will be activated automatically within 1 to 2 minutes. There are no license keys to enter, simply login to Finale 3D to begin using your license.[/vc_toggle][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][vc_column_text] For teams: [/vc_column_text][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][vc_toggle title="I represent company, how do we purchase Finale 3D licenses?" style="simple"]Licenses for users within a company can be purchased on the Pricing page. To leverage the multi-user discounts, all licenses for an company must be purchased using the same Finale 3D account. This account can belong to a member of the company who will use Finale 3D, or it can belong to someone who is only serving the role of license administrator. The person designated for this role within your company will be responsible for purchasing new licenses, assigning the licenses users, and managing annual license renewals. Please be sure to select someone who is authorized to make payments on behalf of your company.[/vc_toggle][vc_toggle title="My company has multiple users, which kinds of licenses should I buy?" style="simple"]For your first user, you will need a standard (i.e., full price) Hobbyist or Pro license. You can add more users at a discount by purchasing Additional Hobbyist or Additional Pro licenses. Examples of various licensing scenarios are shown in Table 1. All types of licenses can be purchased on the Pricing page.[/vc_toggle][vc_toggle title="What is an “Additional Hobbyist” or “Additional Pro” license?" style="simple"]After purchasing a Hobbyist or Pro license, you can add more users by purchasing discounted Additional Hobbyist or Additional Pro licenses. If you are an individual or a company with a single user, these license types don’t apply to you. The discounted Additional Hobbyist and Additional Pro licenses only function if you also own a standard Hobbyist or Pro license. Examples of various licensing scenarios are shown in Table 1.[/vc_toggle][vc_toggle title="How do I assign a license to someone in my company?" style="simple"]After purchasing licenses for your team, assign them by going to "finale3d.com > Login > My Account > Assign Licenses to Other People".[/vc_toggle][vc_toggle title="Can I purchase an Extra Machine license to allow another person in my company to use Finale 3D?" style="simple"]No. An Extra Machine license does nothing unless the same person is also assigned a Hobbyist or Pro license. To add users to your team, please purchase a discounted Additional Hobbyist or Additional Pro licenses.[/vc_toggle][vc_toggle title="I assigned an Extra Machine license to a user in my company, but the user is still in Demo Mode, why?" style="simple"]An Extra Machine license allows a user who is assigned a Hobbyist or Pro license to activate Finale 3D on another computer. If the user is not assigned a Hobbyist or Pro license, the Extra Machine license does nothing. To add users to your team, please purchase a discounted Additional Hobbyist or Additional Pro licenses.[/vc_toggle][rs_space lg_device="25" md_device="" sm_device="" xs_device=""][/vc_column][/vc_row][vc_row][vc_column][vc_column_text] Table 1 – License examples Scenario License needs Individual with one computer (1) Lite, Hobbyist, or Pro Individual with two computers (1) Hobbyist or Pro + (1) Extra Machine Company with one user, one computer (1) Lite, Hobbyist, or Pro Company with one user, two computers (1) Hobbyist or Pro + (1) Extra Machine Company with two Pro users, one computer each (1) Pro + (1) Additional Pro Company with two Hobbyist users, one computer each (1) Hobbyist + (1) Additional Hobbyist Company with two Pro users, two computers each (1) Pro + (1) Additional Pro + (2) Extra Machine Company with two Hobbyist users, two computers each (1) Hobbyist + (1) Additional Hobbyist + (2) Extra Machine Company with one Pro and one Hobbyist user, one computer each (1) Pro + (1) Additional Hobbyist Company with one Pro and one Hobbyist user, two computers each (1) Pro + (1) Additional Hobbyist + (2) Extra Machine [/vc_column_text][/vc_column][/vc_row]

Updating prices or other fields in a Finale 3D effects database from Excel or a CSV

Fireworks companies that keep inventory records in an external inventory management system or in Excel can import their inventory records into Finale 3D as described here but they then face a puzzle when their inventory records are revised in their inventory management system: how can they update the inventory stored Finale 3D with up-to-date information from their inventory system without overwriting any fine tuning to simulations they may have made directly to the records stored in Finale 3D. The most common fields to update regularly are "Price," "Description," and "Available".  The Available field is the item quantity available for scripting, which companies usually calculate as the Quantity On Hand minus Quantity Reserved plus (maybe) Quantity On Order.  You can use any calculation you want.  From the perspective of Finale 3D, if you are using an external inventory management system the Available field is just a number.  You may notice Finale 3D also has a "Quantity On Hand" column, but that column is reserved for the Finale Inventory integration available from our sister company, finaleinventory.com.   Figure 1 – Importing effects into an effects database will overwrite any matching effects entirely, including any adjustments you may have made to their simulations   One other quantity column that is available for you to use is the "Quota" column.  Like the Available column, the Quota can be used to filter the effects lists to items that have Quota > 0, as well as other filtering criteria.  Also like the Available column, you can import any quantities you want into the Quota column, by whatever calculation you want, including for example, if you wanted to use the Quota column to hold the Quantity On Hand or Available or Reserved or other item quantity calculation from your external inventory system.  There is one significant difference, though, between the Quota column and the Available column: the Quota column is saved as part of the show file, whereas the Available column is saved as part of the effect database.  The intended meaning of Quota is "the item quantity target for a particular show," which explains why the Quota is saved in the show file, not in the effects database.  You can import the Quota from the menu item, "File > Import > Import quotas..."  The import operation will have no effect on the effect database or on any other fields.  It therefore will not affect any simulations you may have modified in your effect database.   Figure 2 – Imported quotas are saved with the show; importing does not affect the effects database.   So, if the only field you need to update is a quantity field, and if you don't mind importing it as part of every new show, then the Quota column may be an easy solution for you.  If you need to update prices or any other fields, then we still need to solve the puzzle of importing the revisions without blowing away any updates to simulations you may have done in Finale 3D. The "File > Import > Import effects file..." is an all-or-nothing proposition for each row.   If the row has part number that matches a part number in the effects database you are importing into, the row will overwrite all fields in the effect database, including the VDL fields or any other fields that you may have customized in Finale 3D to fine tune the simulation.  Consequently, re-importing your external inventory into an existing effects database in Finale 3D is not a great option if your effects database in Finale 3D has any information in it that you don't want to overwrite. To update a specific field without overwriting other fields, the best option is to lean on the copy/paste functionality in Finale 3D, and its compatibility with Excel.  The instructions are, Open your external inventory records file in Excel. Sort by part number. Select the column of data cells in Excel that you want to copy into Finale 3D, e.g., Price, Description, Available, etc., by clicking on the top cell and dragging down.  Do not include the column header cell in the selection.  Press control-C to copy. Turn your attention to the effects window in Finale 3D, and select your effects database from the blue selector in the upper right. Sort your effects database by part number in Finale 3D by right clicking the part number column and selecting "Sort by this column." Select the column in Finale 3D that you want to replace by right clicking on the column header and doing "Select this column." Press control-V to paste.  As a result, all the rows will turn fully yellow to indicate they were modified, and the pasted values should appear in the column that had been selected. Confirm that you have the same number of rows in Excel and in your effects database in Finale 3D, and confirm the sorts are the same.  Note that Finale 3D sorting is case-sensitive.  Excel's sorting is generally not case-sensitive, so if you have upper and lower case letters in your part numbers, you may need to sort by another column to ensure consistency. You could use the "Custom Part Field", for example.  

Randomize

The first time someone asked me to add a randomize function to Finale 3D, I didn't believe it was a serious request.  How could a randomize function be at all useful in a scripted show?  It would take two or three other people requesting the same thing before I finally added the function.  Only after I added the function did I understand how useful and beautiful randomization can be.   Figure 1 shows a snapshot of the moment I understood its purpose:   Figure 1 – A wall of comets as a randomized sequence   The wall of comets created by a randomized sequence was one of the most beautiful choreography motifs I'd seen.  You can make such a pattern with just a few steps: Select a set of positions in line or circle. Click in the effect palette to add a comet effect to all of them. Press control-D a few times to duplicate each comet at each position into eight comets. Press the "S" key to put them into a sequence, with 0.1 seconds or so intervals. Do the menu item, "Script > Reorder > Randomize". Literally, it only takes half a dozen key presses or clicks to create this beautiful pattern.  The way it works is that the randomize function reorders the selected set of effects into a random permutation.  The only requirement for the randomize function is that you select multiple events and they are at different times (otherwise reordering them wouldn't do anything).   Randomizing effect types and angles The wall of comets example is a random permutation of events shooting from a line of positions.  The randomize function can also randomize a sequence of various effect types shooting from the same position, or a sequence of various angles of the same effect type at the same position.  Thus, you can create a randomized fan of comets with similar appearance to the randomized wall.  You can also insert a large batch of effects at a single position without concern over their order, then put them into a sequence and randomize the sequence to convert the batch of effects into a pleasingly random "bucket toss show". Figure 2 shows an example of inserting a batch of four colors of comets, and then putting them into a sequence and then a fan.   Figure 2 – A batch of four colors without randomization.   Figure 3 shows the result of applying the randomize function after putting the batch into a sequence.   Figure 3 – The batch after applying the randomize function.   Do you notice anything unusual about Figure 3?  The sequence of colors looks random, but poker players and mathematicians may recognize something is awry.  It turns out there is a difference between sequences that look random and sequences that actually are random.  If you are curious, look at Figure 4 and read on to see what the randomize function is actually doing.   Technical note Soon after adding the randomize function to Finale 3D I got feedback that the function had a bug: it wasn't producing random sequences.  I couldn't understand the complaint because I was certain that the function was correct.  Eventually someone showed me what he meant.  He showed me a randomized wall like that in Figure 1, and he pointed out that at various points in the randomized sequence, two or three comets in a row would come from the same position.  And that didn't look random.   Figure 4 – Truly random permutations have runs of the same color, but people say that doesn't "look" random.   That's when I learned the difference between "truly random" and "looking random".  Truly random sequences of shots from a set of positions often do have small runs of multiple shots in a row from the same position, but I can't argue with the complaint.   The runs don't look random.  The objection is not so apparent in a still image like Figure 4, but it looks a lot worse when you watch a sequence like the wall of comets. The current randomize function in Finale 3D is substantially more complicated than just rolling the dice to produce a random sequence.  It produces sequences that "look random" even though mathematically they are not.  For the choreographer, they are better than random. The aesthetic quality of the result depends on the number of events being randomized and, roughly speaking, the number of positions they shoot from (or effect types or angles).   If there are no "good permutations" of events without runs, then the input can be said to be overconstrained.  In these cases, the randomize function does the best it can, but the result will have runs for sure.  The degree to which the input is underconstrained is the ratio of good permutations to all permutations.  The randomize algorithm guarantees no repeats for all underconstrained inputs. It is likely to produce desirably random looking distributions for highly underconstrained inputs, but it can produce undesirable distributions for overconstrained or marginally underconstrained inputs.  In most practical circumstances, though, the randomize algorithm will produce a result that is not worse than true randomization.   Random seed The randomize function produces deterministic results based on a random seed calculated from 1) the ordered list of times being randomized, 2) the ordered list of positions, part numbers, or angles of the effects being randomized, and 3) the size of the undo buffer.   Thus if you do the randomization operation, then undo, then do it again, you will get the identical result; but if you randomize repeatedly you will get a new result each time because you are increasing the size of the undo buffer with each operation.

Sky dome, trompe l’oeil, and ground images

Sky dome images are background images in the 3D scene that depict what you see at the farthest distance.  Everything in the simulation will appear in front of the sky dome image, either a default image or one you've chosen.   You can also use a "backdrop" background image with transparency to depict nearer objects in the scene like buildings, and you can position fireworks in front of the backdrop image or between the backdrop image and the sky dome in the distance. If you have a day time photograph of the shoot site, you can import it as a sky dome image in Finale 3D and apply darkening gradients to make it look like night.  By arranging the launch positions, you can make it look like the fireworks are coming from the buildings or other structures in the background image.  The technique is called trompe l'oeil, and it is often the easiest way to create a simulation video with minimal effort. You can also import a background image of the terrain if you have an aerial image or a screen shot from Google Earth.   In fact to make it easy, Finale 3D has a feature to import Google Map satellite imagery directly from Google.  For large shoot sites, the size of the ground image can be an issue.  If your shoot site area is 10 km by 10 km, for example, and if you want a resolution of one pixel per square meter, that would be 100,000,000 pixels, which is probably too large for your computer to handle.   When Finale 3D imports a background image of the ground, it gives you the option of downsampling the resolution in the distance to keep the resolution higher in the center of the shoot site, which would figure prominently in your simulation video, while lower in the distance where it doesn't matter as much.   Importing a sky dome In Finale 3D, the word "sky dome" means an image projected onto a backdrop in the shape of a dome covering everything you see, like the inside surface of a snow globe with you inside.  When you import a sky dome image, the dimensions of the photograph and the field of view of the original camera that took the photograph determine the height and wrap around width of the projection of the photograph on the dome.  As shown in Figure 1, the "Set sky dome image adjustments" dialog that is in the "Background images" menu and presented when you import a sky dome image includes an input field to specify the field of view.  Most cameras have a field of view of about 70 degrees.  Try that and adjust if the image looks skewed. Figure 1 – The Sky Dome Image Adjustments dialog adjusts the field of view, horizon, and darkening.   The dialog also includes an input field to specify the horizon height in the image.  The horizon height adjusts the projection of the image up and down vertically on the inside surface of the dome.  You should set the horizon field such that the horizon in the image is just above the plane of the ground in the 3D view.   Backdrop photographs of buildings and landscapes typically have a horizon about 25% up from the bottom of the photography.  The photograph shown in Figure 1 is an exception.  As you can see, its horizon is nearly 50% of the way up (although it is a little hard to tell where the true horizon is since the hills are blocking a view of the distance).  When you import a sky dome image photograph, whether it is a building or landscape or anything else, the first two adjustments to get right are the field of view and the horizon height.   Darkening the edges The optional darkening fields in the Sky Dome Image Adjustments dialog apply gradients to the top, bottom, and edges in order to make the image look like night time and to make the edges blend smoothly to black.  Figure 2 shows the result of setting the horizon to 45% and the darkening fields to 100, 50, 100, and 25.   The picturesque night time image of Figure 2 is the same photograph as in Figure 1, with these adjustments applied.   Figure 2 – The darkening parameters can make a day time image look like night.   The specific settings for the night time image in Figure 2 are shown in Figure 3.  Notice the bottom setting, "Turn off ground", is checked.  That setting turns off the ground image, making the ground transparent so the bottom of the photograph, below the horizon line, will show through.   Figure 3 – Example of darkening settings that look good.   Turning off ground is the way to go if you are creating a simulation video that is mainly front view and if the imported photograph looks good by itself, but there are a few circumstances in which you may want to leave ground turned on.  You can turn on the simulated, reflective water, for example, with the menu item "Scenery > Landscape and water > Set to water everywhere".   The combination of simulated water and an imported sky dome image photograph makes for an extremely believable scene as shown in Figure 4 -- especially when you see the reflections of the fireworks in the water!   Figure 4 – Combining a sky image with simulated water is stunning!   Another circumstance for turning on ground is if you have an imported ground image or if you select ground imagery from Google Maps using "Scenery > Background images > Set background image to Google Map..."  If you are making a video from the front view, then the sky dome image is usually the center of attention, and the ground is either turned off or is set to water.  If you are making a video from more of a top down, aerial point of view, such as if shot from a drone, then the ground image is usually the center of attention, and the ground is turned on.  In that case, the sky dome image is often just a distant sky line or a generic backdrop.   Trompe l'oeil By arranging the launch positions, you can make it look like the fireworks are coming from the buildings or other structures in the background image.  Take for example the photograph shown in Figure 5.  After importing this photograph as a sky dome image, setting the ground to water everywhere, and arranging launch positions so they look like they are on the bridge, you can generate a simulated scene like that of Figure 6.   Figure 5 – The trompe l'oeil technique can make it look like fireworks are coming from the bridge in this photograph.   Of course, the launch positions aren't actually on the bridge.  They can't be, because the bridge is just a projected image in the background, but they can appear to be on the bridge if you align them perfectly for a particular point of view.   Figure 6 – After importing the photograph as a sky dome image and arranging the positions, the scene is ready for fireworks.   The positions in Figure 6 are arranged to look like they are on the bridge.  In fact, in this example the positions on the lower section of the bridge are oriented facing out (notice the yellow circles are seemingly facing outward, away from the side of the bridge), and the positions on the upper truss shooting red mines are oriented facing up.  In both cases the actual coordinates of the positions are somewhat realistic.  Those positions farther away on the bridge are actually farther away in the 3D view, which makes the fireworks from them foreshortened realistically. For images like the front of a building in which all the positions are about the same distance away from the viewer, you don't need to try very hard to get the positions to align with the building.  All you need to do is click the yellow padlock in the lower right to unlock the positions, and then while viewing from the desired point of view drag the positions to the right spot relative to the picture.  That's it.  You could even do the same for the Sydney Bridge example of Figure 6, but the simulation would be a little less accurate because the positions at the distant end of the bridge should be farther away from the viewer in order that the fireworks appear smaller. The trompe l'oeil technique only works for a particular point of view and aspect ratio.  If you arrange the positions to align perfectly with the image, and then subsequently rotate or move the point of view even slightly or resize the window, all the positions will shift against the image and will no longer be in the correct spots.  Thus even before arranging the positions you'll need to follow a few steps: In the "File > Render settings..." dialog, set the screen to the standard aspect ratio (letterbox mode).  This mode will always render the screen in a 16:9 aspect ratio, which is the same aspect ratio as the simulation videos. Choose your point of view and create a camera shortcut for it (unless you are using the "front' camera shortcut which exists by default).  To create your own camera shortcut, orient the point of view with the blue navigation buttons at the bottom of the screen, and then click on the green plus sign on the right side of the screen.  That creates the new camera icon.  Then click on the name of the new camera icon, and rename it to whatever you want. Drag the positions so they align with the image.  Right clicking positions and selecting "Move on axis" from the context menu is a good way to fine tune the coordinates by dragging three colored arrows pointing along the axes in the positions' orientation.  The "Rotate" options in the context menu are a good way to adjust the orientations. For reference, step 1 of this process involves the checkbox at the bottom of the "File > Render settings..." dialog, as shown in Figure 7.  These three steps are all that is required to make a simulation video with fireworks appearing to come from objects in a background image. Figure 7 – The "File > Render settings..." dialog   Ground images Google maps and imported ground images are simpler than the sky dome images if you aren't trying to do trompe l'oeil because there's nothing to align and there aren't any visual adjustments other than possibly adjusting the brightness of the terrain in the "File > Render settings..." dialog.  The only settings required for importing a ground image are shown in Figure 8, which is presented after importing an image from "Scenery > Background images > Set ground image > Add image..."   Figure 8 – The settings for importing ground images   The width and height fields in the ground image settings will determine the size of the image on the ground.  You can type the dimensions in feet in this dialog if you prefer, by adding "ft" or single-quote after the number to indicate the unit of measure is feet instead of meters.  The downsampling rings reduce the resolution in the distance to compress the image so it doesn't use as much memory on your computer.  A very large image might use too much memory and cause your computer to crash.  If your image is larger than 2000 pixels wide, you may need to use downsampling, depending on your computer's specifications.  For very large images, like 8000 pixels by 8000 pixels, you will definitely need downsampling.   Table 1 – Example files Download link Explanation trompe-l-oeil-sydney-bridge.fin Example show  

Starting with module 1 instead of module 0

Every firing system on Earth that uses numerical module numbers begins with module number zero or one.  When you assign firing system addresses using Finale 3D, the module numbers naturally will begin by default with the firing system's starting module number.  You can change that, however, if you have reason to. If your firing system starts with module number zero and you would prefer to start with module number one, you can change that in Finale 3D by making a custom module specification for the firing system, and addressing the show with your custom module specification.  The menu item, "Addressing > Addressing settings > Set custom module specification..." is the first step. Figure 1 – The pound sign indicates the numbers will start counting at one.   The "Rail Address Template" field of the custom module specification dialog specifies the address format for the custom module.  For a simple firing system address scheme like Cobra, the Rail Address Template field has two components, indicating the format of the module and the pin.  The pound sign indicates the numbers start counting at one.  If there's no pound sign, then the numbers start counting at zero.  So you can see with the default Rail Address Template for Cobra in Figure 1, the modules start counting at zero (no pound sign), and the pins start counting at one (pound sign).  If you want the module numbers to start counting at one, just add a pound sign in front, as in Figure 2.   Figure 2 – Add a pound sign to the module number format to make the Cobra module numbers start counting at one.   If you want the module numbers to start with some other number, then you can set the "Start Module" number of the launch positions by right clicking on the positions and doing "Edit position properties..." from the context menu, or opening the "Positions" window from the "Window" menu and editing the Start Module fields in the table for any or all of the positions. If you set all the positions' Start Module numbers to the same number, then the addressing functions will operate uniformly except beginning with your chosen Start Module number.  If you set different Start Module numbers for different positions, then the addressing functions will assign module numbers counting upward from the each unique Start Module number.   It is imperative that these sequences of module numbers don't overlap.  If you assign the Start Module number 10, for example, to some positions, and 15 to other positions, then make sure that all the shots at the positions with Start Module number 10 can be accommodated by 5 modules, so the sequence of module numbers beginning at 10 doesn't overlap the sequence beginning at 15.  You will get addressing errors in the addressing function if the sequences do overlap. For more instructions, see Specifying module numbers for each position A third option for assigning addresses beginning at arbitrary start numbers is to assign firing system addresses by selecting rows and filling down, using the fill down technique described in, Addressing basic instructions.  

Example: Explo X2 Wave Flamer with Pyromac firing system

This example illustrates the steps to setup and design a flame show for the Explo X2 Wave Flamer using the Pyromac firing system.  The example includes the use of, Explo X2 Wave Flamer pre-defined macros/programs Explo X2 Wave Flamer non-macro shots with user-defined angles Pyro effects used in the same show as the flames Safety channels turned on for the flame units for the flame part of the show A Pyromac script that contains both DMX and firing system outputs The example show is 30 seconds long.  It contains five flame positions, one per flame unit; and three pyro launch positions.  It also contains five "safety" positions to hold the safety channel effects for the corresponding five flame units.   The safety positions don't exist in the real world; they just hold the safety channel effects in Finale 3D. Since Explo X2 Wave Flamer fixtures incorporate the safety channel in the DMX personality of the fixture at a defined offset it is not necessary to use safety positions for Explo shows -- you can just add the "DMX safety channel" effects directly to the Explo X2 Wave Flamer fixture positions.  This example uses safety positions to explain the concept, since they are required for other types of flame systems (G-Flame, Flamaniac) for which safety channels are configured to their own DMX channels (not at pre-defined offsets relative to a Start Address). From the front view when designing the show in Finale 3D, the show looks like Figure 1:   Figure 1 – An Explo X2 Wave Flamer macro shot in parallel from five positions   Setting up the show Switch to top view in Finale 3D by clicking on the camera icon on the right side of the screen. Figure 2 shows the site layout from the top view perspective. When designing the show it is easiest to create a safety channel position for each DMX safety channel the show requires. The Explo X2 Wave Flamer flame units require a separate safety channel for each independent flame unit. The show contains five independent flame units, thus it requires five safety channels. By comparison, if the flame units were listening to the same DMX channel range (firing in parallel) then the show would only need one safety channel.  The flame units in this show are independent ,though, so they will be configured for different DMX channel ranges.  Some other types of flame systems have independently configurable safety channel addresses that can be shared by flame units listening to different DMX channel ranges, but with the Explo X2 Wave Flamer system each DMX channel range has its own safety channel as part of the range.   Figure 2 – Create separate positions for flame and pyro and safety (for Explo DMX flames, one safety per flame position).   As explained in Exporting a firing system script for flame systems, there are two ways to setup a DMX flame show, either: 1) each flame unit has its own DMX universe, or 2) each flame has its own range of DMX channels in a shared DMX universe.  The Pyromac firing system is designed to support a single DMX universe that is shared by all the modules, and thus by all the flame units.  So that makes the choice easy for this show: (2) is the only option. After designing the show, you will do the menu item, "Addressing > Address show" to assign firing system addresses and DMX parameters to all the effects in the show; and then you'll do the final step, "File > Export > Export firing system script(s)..." to export a script for your Pyromac firing system.  The addressing functions depend on position DMX properties, which you can edit by right-clicking the positions and selecting "Configure as DMX fixture..." from the context menu.   This menu item is also what will turn the yellow disk (pyro) positions into blue square DMX fixtures, as shown in the Figure 1 and Figure 2.  The menu item brings up the dialog shown in Figure 3.   Figure 3 – Right-click positions and "Configure as DMX fixture..." to set up the flame and safety positions.   From this dialog, you will configure the flame and safety positions in the show as DMX fixtures, following the instructions in Table 1.   Table 1 – Configuration for DMX Fixture positions (flame and safety) Property Instructions Position Type Set to "DMX Fixture (Master)". DMX Universe Set to 1 for Pyromac, though it doesn't really matter what number you set it to because it isn't represented in Pyromac scripts. DMX Channel Base For each flame position, set the DMX Channel Base to whatever the flame unit's physical "Start Address" will be in the real world (previous versions of Finale 3D required subtracting 1, which is no longer correct); set each safety position's DMX Channel Base to be the same as its corresponding flame position (e.g., position flame-01 should have the same DMX Channel Base as safety-01).  In the example show, the DMX Channel Bases are 1,7,13,19,25.  Pyromac only supports channels up to 50, and each Explo X2 Wave Flamer DMX channel range consists of six channels, so the channel bases of 1,7,13,19,25 pack the ranges together back to back. DMX Fixture Type Choose "Explo [001] Wave Flamer". DMX Effect Filter This field fills in automatically when you select the DMX Fixture Type, though you can change it if you want.  The purpose of this field is to support the position's right-click context menu item, "Add compatible DMX effect".  You obviously only want to add Explo effects to an Explo flame projector.  The DMX Effect Filter reduces the list of effects shown in the context menu to those whose descriptions contain DMX Effect Filter text.   Except for the DMX Channel Base field, the fields are the same for all the DMX fixture positions, so you can select all the DMX fixture positions and then right-click on one of them to configure them all as DMX fixtures at the same time.  Then you can open the Positions window and manually type in the DMX Channel Base numbers for the relevant rows, Excel-style, as shown in Figure 4.  Some columns in Figure 4 are hidden (use the blue gear menu in the upper right) to save space.   Figure 4 – It is easiest to set the DMX Channel Base numbers directly in the Positions window by typing them in, Excel-style.   Designing the show To design this example show or other shows with Explo X2 Wave Flamer units, please follow these steps: Add flame effects.  Right-click on the flame positions and do "Add compatible DMX effect" to add effects.  If you insert "Explo DMX X2 Rotatable Flame Shot" effects, you can drag the tops of their trajectories in the 3D view to set their angle, and you can select groups of them and do functions like "Fan" to create interesting patterns. The first four seconds of the example show use only the Explo macro effects.  The remaining flame effects in the show between seconds 5 and 10 are all "Explo DMX X2 Rotatable Flame Shot" effects.  You can use the timing design functions like "Sequence" for any of the effects, but please only drag the trajectory tops to adjust the angles of the "Explo DMX X2 Rotatable Flame Shot" effects. Add pyro effects.  Select the pyro positions you want to add effects to, and then click on the effect icons in the effects window to add effects.  All the scripting functions like "Fan" and "Sequence" are available. Add safety channel effects.  Right-click on the safety positions and do "Add compatible DMX effect" to add "Explo DMX Safety Channel" effects.  Adjust their durations in the script window to cover the spans of time for which you want to arm the flame units.  To see the duration column in the script window, go to the blue gear menu in the upper right of the script window and select the menu item, "Hide or unhide columns > Duration".  In the example show, the flames only last from the beginning of the show to about 9.5 seconds, so the safety channel durations are set to 9.5 in the script to cover that period of time.   Addressing and exporting the script After designing the show, follow these steps to export a script for your Pyromac firing system: Address the show.  The menu item, "Addressing > Address show..." brings up the dialog shown in Figure 5.  In this example you don't need to change much in the dialog at all.  Just select the Pyromac firing system, and choose the module type.  If you want, you can change the assignment order or the constraints, but none of those decisions will affect the DMX fixture positions or the DMX parts of the script.  The configuration from Table 1 is all that matters for DMX. Export the script.  Do the menu item, "File > Export > Export firing system script(s)..."  to generate the script file for your firing system.   Figure 5 – Address the show with "Addressing > Address show..." just as you would for a pyro-only show.     Table 2 – Example files Download link Explanation demo_explo_pyromac_macros_and_rotatable_dmx.fin Example show file demo_explo_pyromac_macros_and_rotatable_dmx.txt Example exported Pyromac DMX script demo_explo_pyromac_plays_on_browser.mp4 Video   Video 1 – Render with water and camera motion [video width="1920" height="1080" mp4="https://finale3d.com/wp-content/uploads/2019/11/demo_explo_pyromac_plays_on_browser.mp4"][/video]