Total found:2354
You can import a new inventory file or convert your inventory from our old software Finale Business by doing Option A, B, or C, and then right clicking on the imported items in the effects window and doing "Edit this effect simulation or rack" from the context menu to fix up the simulations one by one. To see a preview of a simulation, hover the cursor over the white border of the black effect icon Option A) If you want to convert your My Fireworks from Finale Business to Finale 3D, then please create a show in Finale Business containing one of each effect from your My Fireworks, spaced out one at a time with a few seconds in between each effect. Save the show as an HBS file, launch Finale 3D, and do the menu item, "File > Import > Import Effects from HBS file..." Option B) If you already have a Finale Inventory / Master Inventory account, then you don't need to re-import it. You can just connect to it with the menu item, “File > Finale Inventory > Configure Finale Inventory connection” or the web page "finale3d.com > My Account > Connect to Finale Inventory". Option C) If you have a list of products from your own inventory or a price list from a supplier in an Excel file or a CSV/TEXT file, or in the inventory file format from other major scripting software (EFX, MDB), you can import the list into Finale 3D to use those products for scripting shows. Finale 3D will create simulations for the effects automatically from the descriptions and other information in your product list file, even if the descriptions are in a non-English language. For Option A and Option B, that's all there is to it. You don't need to read any further. For Option C, there are additional details. The rest of this article covers these details and provides a technical explanations of what is going on. The detailed steps for Option C are: Prepare the inventory file to import. You need to convert the file to a format that Finale 3D can import. If your original file happens to be an EFX file from Show Director or MDB effect database from ScriptMaker, then the file is okay as is; skip to the next step. Otherwise please import your file into Excel and edit the file so that it has a single header row with only the supported fields and one data row per item. From Excel, export the file in "Unicode Text (*.txt)" format, which produces the file that can be imported into Finale 3D. Please refer to the import template Excel file at the bottom of this page for the list of supported fields. Finale 3D supports importing inventory files in the TXT or CSV formats with comma or tab delimiters, encoded as ASCII, UTF-8, or UTF-16; but the "Unicode Text (*.txt)" option from Excel is the most reliable. If your Excel file contains any line breaks or tab characters embedded in cell text, you need to remove them before exporting the CSV or TXT file. The easiest way is to create a second sheet in Excel that references the original sheet with the Excel formula =CLEAN() for each cell, and then copy/paste the clean sheet using "Paste special > Values". Import the file. Launch Finale 3D. Do "File > Import > Import effects file..." then choose the location for the effects. The most common locations for importing are "My effects" or an effect database file (FDB file). Upon import, Finale 3D will examine the file and present a dialog telling you how many products it contains, and indicating if any column headers were mis-labelled. You also will have the option to select the units of measure for duration and prefire explicitly, or leave Finale 3D to guess based on the values (it usually guesses correctly). Click okay to import the file. Save the inventory file. Once you are satisfied with the imported file, you will need to save the imported effects. The steps to save depend on the location you chose to import your effects. If you imported into your online "My effects" collection, then save by going to "File > Sync with network" to upload your effects to the cloud. If you imported your effects into an exiting FDB effects file, or created a new FDB effects file with the imported effects, then save by going to "File > Effects files > Save (fdb format)". The FDB file is saved locally on your computer, you can copy, email, or transfer to other computers to share it or create backups. Optionally copy to your Finale Inventory account. If you are using the Finale Inventory web-based inventory management software (www.finaleinventory.com) or if you have a Master Inventory from Finale Business, then you can copy the effects to your account as by simply selecting the rows to copy, then Ctrl+C, then switching to your Finale Inventory account from the blue selector in the upper right of the effect window, then Ctrl+V to paste. If your Finale Inventory account doesn’t appear in the blue selector’s context menu, then you need to configure Finale 3D for your inventory account by going to “File > Finale Inventory > Configure Finale Inventory connection”. Step (1) mentions “fixing” the format of your product list or inventory file or making the column headers match “what Finale 3D expects”. The basic idea is that if you make your CSV file match the column headers displayed at the top of the effects window, then those columns of data will be imported from your file into the “matching” columns in the window. The full explanation is a little more complicated because Finale 3D relies on some columns of data that your imported file may not include, such as the Duration column, the Height Meters column, and the Type column. When you import your file, Finale 3D will calculate default values for these properties of the columns are not in your file or if the cells are blank in of the effects in the file. Thus, even though these columns are required in the effects window, it is okay if your original imported file does not contain them. So what columns do you actually need, and what columns are optional? At a minimum, you need these two columns in your imported file: Table 1 – Required columns for imported inventory files Part Number The unique identifier for the effect, like P10001 or 3LD253CK. Description A description of the effect, like “30mm Red Peony” or “Bomba Roja Con Aro Azul” or “Синяя в красную хризантему”. Based on this information alone, Finale 3D can fill in the other columns, like Size (extracted from the Description field if present) and Duration and Height. Finale 3D uses machine translation algorithms to translate the description from the original language into a standard pyrotechnics terminology called VDL (Visual Description Language), which consists of approximately 300 mostly English words. After importing your file, the VDL column in the effects window shows the translation. Usually, imported inventory files contain more than just the two columns in Table 1. It is very common for the inventory file to contain its own Size column or Duration column, for example, as well as other properties like Price or Category. To import these other columns, just make your column header match the Finale 3D column header in the effect window, exactly. For example, the Finale 3D column header for height is actually “Height Meters” so please make your column header be exactly “Height Meters”, not just “Height”. You can unhide all the columns in the effects window from the gear menu on the right. By default, most of the columns are hidden. The column headers in Finale 3D may change depending on what language setting you are using. If you match the column headers that you are looking at, exactly, the import process will work. But if you want the import process not to depend on the language setting, you can also change the column headers in the file that you are importing the Finale 3D’s Internal Column Name, which is an English word or phrase with no spaces. The full list of possible columns, along with their Internal Column Names and explanations, is shown in Table 2. Table 2 – Full list of columns that can be imported Column Name Internal Column Name Explanation Part Number partNumber The unique identifier for the effect, like CF10001 or 3LD253CK. This field is called the “Product ID” in Finale Inventory. Description description A description of the effect, like “30mm Red Peony 75m” or “Bomba Roja Con Aro Azul” or “Синяя в красную хризантему”. The description can be in any language, and can contain the size and height if that information is not in other columns. This field has a counterpart in Finale Inventory (Description). Type partType One of these predefined English terms (exactly): cake, candle, single_shot, shell, ground, rocket, mine, comet, flame, other_effect, not_an_effect, rack, sfx, or light. If the "Type" column is not present in the imported file or if the field is blank, Finale 3D will guess the type based on the description. The counterpart for this field in Finale Inventory is the “Choreography Tab”; and (regrettably) the counterpart in Finale Business and Finale Generic CSV is the “Category” field. To handle these naming discrepancies, if the Type column is missing in the imported file and a Category or Choreography Tab column is present, the Category or Choreography Tab column will be imported as the Category. If you are using Finale Inventory, please note: Finale Inventory’s Choreography Tab values are slightly different from Finale 3D’s Type values. When 3D connects to Finale Inventory, it translates between the names automatically. The corresponding names in Finale Inventory are Cakes, Candles, Single Shot, Shells, Ground, Rocket, Mines, Comets, Flame, Other, Not An Effect, Rack, Sfx, and Light. The special value Non-Choreographed in Finale Inventory causes the item not to be downloaded to 3D. Please see Why is 'Type' so important? for an explanation of why this field is so important. Size size The caliber of the effect, in inches or millimeters, e.g., 3” or 75mm. This field determines the size of the visual simulation. If the Size column is not present in the imported file or if the field is blank, Finale 3D will extract the size from the Description field, if present. This field has a counterpart in Finale Inventory (Caliber). Prefire internalDelay The lift time, for shells, or the lift time of the first effect of a cake if it is a shell. This field is not the visco fuse delay on a cake. This field applies to the visual simulation. If the column or field is not present in the imported file, Finale 3D will calculate a good default value based on the size and description. Please see Cake and candle duration (and prefire). It is easiest to leave this field blank or zero for cakes and candles because the automatic default values are good. This field has a counterpart in Finale Inventory (Prefire Time). Please see the compatibility notes below if you are importing a Finale Inventory and need to maintain compatibility with Finale Business. Duration duration The lifetime of the stars, for aerial shells, or the duration of the continuous effect for gerbs or flares, or the duration from first launch to last break for cakes. This field applies to the visual simulation. If the column or field is not present in the imported file, Finale 3D will calculate a good default value based on the size and description. Please see Cake and candle duration (and prefire). This field has a counterpart in Finale Inventory (Duration). Height Meters height The height in meters of the trajectory apex of an aerial shell, or of the spark plume for fountains and gerbs. This field determines the height of the visual simulation. If the column or field is not present in the imported file, Finale 3D will calculate a good default value based on the size and description. This field has a counterpart in Finale Inventory (Effect Height). Color color A user-defined field for the user’s convenience in searching or filtering the rows in the effect window. If the column or field is not present in the imported file, Finale 3D will extract colors from the description. This field has a counterpart in Finale Inventory (Effect Color). Subtype subtype Like Color, Subtype is a user-defined field for the user’s convenience. If the column or field is not present in the imported file, Finale 3D will extract subtypes from the description. This field has a counterpart in Finale Inventory (Effect Subtype). VDL vdl The description of the effect in standard pyrotechnics terminology (Visual Description Language). If the column or field is not present in the imported file, Finale 3D will calculate a good default value based on the description. This field defines the visual simulation of the effect, along with a few other specifications like Size, Height Meters, and Duration. This field has a counterpart in Finale Inventory (VDL Description). Please see the compatibility notes below if you are importing a Finale Inventory and need to maintain compatibility with Finale Business. Manufacturer Part Number manufacturerPartNumber This optional part number is available for your own convenience, and also to facilitate updating the VDL in your own effects files or Finale Inventory account by cross-referencing manufacturer effects lists with up-to-date VDL maintained and approved by the manufacturer. This field has a counterpart in Finale Inventory (Mfg Product Id). Manufacturer manufacturer A user-defined field for the user’s convenience in searching or filtering the rows in the effect window. This field has a counterpart in Finale Inventory (Manufacturer). Price stdPrice The price per-device of the item. Finale 3D will display the price of a show based on these values in the lower right of the simulation view, and in the timeline if you select a time range of effects. This field has an “Item Price” counterpart in Finale Inventory. Storage Location stdLocation An optional fixed stock location for the effect in the picking facility or warehouse, such as a bin number. This field can be used as a sort criterion in reports and labels. This field has a counterpart in Finale Inventory: Std Bin ID. Hazard Default lockoutDefault An identifier used by various firing systems and exported in the firing system scripts for those systems, which allows the show operator to disable a section of the show based on real time conditions. Since the hazard value may depend on an item’s placement in the shoot size, the value in the effect list is the “Default” value that is copied to the script when the item is inserted into the script. The user can subsequently change the value in the script, but since the value was copied and is not a reference, changing the value in the effect window will not affect existing effects in the show. This field has a counterpart in Finale Inventory (Hazard Default. Tubes numTubes This term applies to racks, not effects. It is the number of tubes in the rack. This field has a counterpart in Finale Inventory (Rack Tubes). Category category A user-defined field for the user’s convenience in searching or filtering the rows in the effect window. Unlike the Type field, the category can be anything the user wants. This field is has an exact counterpart in Finale Inventory, by the same name, and is used for stock reports and and DSMT reports for stock management. However, in Finale Inventory the field can only contain specific, pre-defined enumerated values. As of Jan 17, 2020, this field is synchronized from Finale Inventory to Finale 3D but not in the other direction. Custom Part Field customPartField A user-defined field for the user’s convenience. This field has a counterpart in Finale Inventory (Custom Part Field). Rack Type Default rackType This term applies both to racks and to effects. It is a user-defined matching criterion between racks and the effects that are compatible with the racks. For example, if the user has two types of single-shot racks for different caliber ranges, the user could assign LargeSS and SmallSS rack types to the effects and racks to cause them to match correctly. Like Hazard Default, this field is copied to the script events when they are inserted into the show, not referenced, so you can change values of the items in the script according to circumstance (e.g., putting a fan of effects into a wagonwheel rack specifically even though other racks are also compatible). Since the value is copied and is not a reference, changing the value in the effect window will not affect existing effects in the show. This field has a counterpart in Finale Inventory (Rack Type Default). Notes partNotes A user-defined field for the user’s convenience. This field is sometimes used in report, but other times the script notes field is used in the reports instead, depending on whether the notes apply intrinsically to the effect or apply contextually to the usage of the effect in the show. This field has a counterpart in Finale Inventory (Notes). DMX Patch dmxPatch This field holds a small program or “patch” for controlling the DMX values associated with a special effect like a flame projector or moving stage light. This field has a counterpart in Finale Inventory (DMX Patch). EX Number exNumber A field for the user’s convenience. This field is has an exact counterpart in Finale Inventory (EX Number) and is used in Finale Inventory for shipping documents. This list can include a single EX number, or a comma separated list. As of Jan 17, 2020, this field is synchronized from Finale Inventory to Finale 3D but not in the other direction. CE Number ceNumber A field for the user’s convenience. This field is has an exact counterpart in Finale Inventory (CE Number) and is used in Finale Inventory for shipping documents. As of Jan 17, 2020, this field is synchronized from Finale Inventory to Finale 3D but not in the other direction. UN Number unNumber A field for the user’s convenience. This field is has an exact counterpart in Finale Inventory (Hazardous Material) and is used in Finale Inventory for shipping documents. This number must be in the format: UNXXXX, where XXXX is a four digit number like 0336 or 0337. Example: UN0337. As of Jan 17, 2020, this field is synchronized from Finale Inventory to Finale 3D but not in the other direction. Cost stdCost A field for the user’s convenience. This field can be used in reports. This field has a “Standard Accounting Cost” counterpart in Finale Inventory. Safety Distance Meters safetyDistance A field for the user’s convenience. It may also be used by site layout safety report features in Finale 3D available in the future. This field has a counterpart in Finale Inventory (Safety Distance). Fuse Delay fuseDelay The visco fuse delay between the ignition of the device’s fuse and the first launch. When an effect is inserted into the show, the fuse delay is copied to the the Delay field in the script. Since the value is copied, not referenced, subsequent changes to the fuse delay in the effect window will not affect existing effects in the show. This field has a counterpart in Finale Inventory (Fuse Delay). Devices numDevices The number of devices in the chain, or 1 if the item is not a chain. This field has a counterpart in Finale Inventory (Chain Number Of Devices). Available available The number of devices on hand in the stock facilities at any of the selected locations, minus those reserved for sales orders (shows), plus those on order but not yet received from suppliers. Use the menu item “File > Finale Inventory > Selected locations” to choose what facility locations apply. Weight weight The weight of one device (shell, cake, etc.). The "Basic Product List" report and other similar reports in Finale 3D will show the total weight for all items in the show. NEQ neq The net explosive quantity of one device (shell, cake, etc.). The "Basic Product List" report and other similar reports in Finale 3D will show the total NEQ for all items in the show. The effects window also displays some special columns that are not intrinsic properties of the products. These special columns, shown in Table 3, cannot be imported as part of the import inventory process. Table 3 – Quantity columns that cannot be imported as part of importing inventory Column Name Internal Column Name Explanation Used used A dynamic count of the number of devices used in the show. Quota quota A static count of the number of devices allocated by the designer for use in the show. The quotas can be imported with the menu item, “File > Import quotas”. Though the quota appears as a column in any collection selected into the effect window (Per-show effects, Generic effects, your Finale Inventory account, etc.), the values are actually stored in the quota column in the Per-show effects, and are therefore associated with and saved along with the show to which they apply. On Hand qoh The number of devices on hand in the stock facilities at any of the selected locations (use the menu item “File > Finale Inventory > Select locations” to choose what facility locations apply). Remaining Quota remainingQuota The calculated value: Quota - Used. This field can be used as a filter condition. Please explore the table layout blueprints available in the effects window from the gear menu. Remaining On Hand remainingQoh The calculated value: OnHand - Used. This field can be used as a filter condition. Please explore the table layout blueprints available in the effects window from the gear menu. Remaining Available remainingAvailable The calculated value: Available - Used. This field can be used as a filter condition. Please explore the table layout blueprints available in the effects window from the gear menu. If you are importing or modifying a Finale Inventory to use with Finale 3D while maintaining backward compatibility with Finale Business, you will need to give special consideration to three fields: Prefire, Type, and VDL. Prefire. Finale Business and Finale 3D interpret the term “prefire” for aerial cakes differently, and action is required on your part to change the prefires in your inventory to a value that works for both. The table below shows the options, but the best solution is: change the prefires of aerial cakes to blank. The default prefire for cakes in Business is 0.3 seconds. Unfortunately this value causes aerial cake shells in Finale 3D to break at 0.3 seconds on the way up, looking like a geyser or flowerpot. Please change the value to blank, or one of the other good values in the table below. Please see Cake and candle duration (and prefire) Type. Finale 3D and Finale Inventory support all the values of Finale Business, and a few more. Thus if the Type values in your inventory are from Business, they’ll work fine in 3D. But if you change them to values other than Cakes, Candles, Shells, Mines, Comets, Other, or Non-Choreographed, then they will no longer work in Business. (Type is called “Choreography Tab” in Inventory, and “Category” in Business.) Please see Why is 'Type' so important?. VDL. Finale 3D and Business both support VDL effect descriptions for simulations, but Business requires a strict form of VDL. If you type or import VDL into Finale Inventory directly, it most likely will not work for Business because it will not be in the strict form (e.g., case-sensitive). If you need backward compatible VDL then please copy/paste the VDL field from 3D after creating or editing the simulation via the dialog, which puts it into the strict form. Table 4 shows four possible prefire values for a 3” aerial cake, and indicates whether the result is good or bad in Business and 3D. You can see that 0.3 is bad, but the three other possibilities -- blank, 0.0, and the lift time of the first aerial shell in the cake -- are all good. There are slight differences, but the blank value is the best choice because it works exactly the same way as 0.3 in Business, and it also works 3D, and it is simple. Table 4 – Finale 3D/Business compatibility matrix for prefires of aerial cakes like “10 Shot 5s Red Peony Cake” Prefire Finale Business Finale 3D 0.3 (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (BAD) First launch at 0.0s; timeline blip at 0.3s; break at 0.3s (looks like a geyser) (blank) (GOOD) Same as 0.3 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 0.0 (GOOD) Same as 2.8 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 2.8 (the default lift time for 3” shell in Finale Business) (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (GOOD) First launch at 0.0s; timeline blip at 2.8s; break at 2.8s (a little early) Table 5 – Template files Download link Explanation import_inventory_to_finale_3d_template.xlsx Template for importing into 3D (Excel) import_inventory_to_finale_3d_template.txt Template for importing into 3D (UTF-16 text, saved from Excel)
For purposes of designing a show, inventory management means keeping track of quantities of items and adjusting quantities based on what is used in the show. A single number isn't enough to tell the story for a particular item, however. Finale 3D displays four quantities for every item: Available, Quota, On Hand, and Used. The meanings of these terms, and whether they are supported in your software configuration, are described in Table 1. Table 1 – The four quantities used in inventory management when designing a show Quantity Term Meaning Collections That Support It Where The Data Is Stored Available The quantity available to use in the show, taking into consideration reservations for other shows and purchase orders not yet received from your suppliers. Supported in My Effects, FDB effects files, and the paid version of Finale Inventory; Not supported in the read-only collections like Generic Effects and supplier catalogs, and not supported in the shared company effects list feature (also called Master Inventory). For FDB effects files, in the file; for Per-Show Effects, in the FIN show file; for My Effects and other network inventories, in the cloud. Quota The quantity you've earmarked to use in this show; comes automatically from sales orders in the paid version of Finale Inventory; also can be imported from a packing list CSV. Alternatively, since you can import any quantities you want into the Quota column, you can use the Quota column as a substitute for the Available column if the Available column is not supported by the collection you are using. Supported in all collections. These quantities are actually stored in the Per-Show Effects collection since they are saved with the show, but the Quota column displays the quantities from the Per-Show Effects collection no matter what collection you are looking at in the effects window, matching by part number. In the FIN show file (editable in the show's Per-Show Effects). On Hand The quantity physically present at the storage location. Supported only in the paid version of Finale Inventory only. In the cloud. Used The quantity used by your show design. Supported in all collections. The Used quantities aren't actually stored in any of the collections. The quantities are derived in real time from your show design, and displayed in whatever effects collection you are looking at. Not stored. The effects window in Finale 3D displays a choice of collections of effects: Generic Effects, Per-Show Effects, My Effects, various supplier catalogs, and optionally your own company's shared effects list (called "Master Inventory" in the old scripting software, Finale Business), or a view into your own company's live inventory if you are using the paid version of Finale Inventory to manage your stock. Some of these collections are read-only, such as the Generic Effects and the supplier catalogs. Others, like Per-Show Effects and My Effects, are read/write. Loosely speaking, if you are keeping track of quantities of items in a collection, we call the collection an "inventory"; otherwise we just call the collection an "effects list". The blue collections selector on the effects window has some options that can be inventories, and others that can only be effects lists. Some of the quantities in Table 1 therefore make sense for only some of the collections. If your inventory management needs are simple, you can keep track of stock levels in the “Available” column in My effects and in effects files saved in the FDB format. If you are using the paid version of Finale Inventory, then the Available column information is coming from your Finale Inventory account. The Available column isn't supported by the free shared effects list (Master Inventory), so if you are using the shared effects list, you'll need to make do with the other columns of information, like Quota, to keep track of your inventory. While scripting your show, you can filter the effects window to display only the effects you have remaining available, or you can filter to show when remaining available goes negative if you want to see overuse (effects window gear menu > “Select layout template > Available positive” for example. After scripting the show, you can do the menu item “Effects > Subtract used quantities from available,” which does just that. Then you can synch to network to save you updated available quantities to My Fireworks, or you can save the updated effects file from the blue selector “Effects files > Save (FDB format)”. When you go to script your next show, your available quantities will take into account the items you used up. The “Quota” column is also useful for basic inventory management. The Quota column shows the quantities that you have decided to allocated to the show before scripting it. Display companies sometimes decide what product they want to use in the show before scripting it, so the Quota column would be the place to record that information. In other circumstances, display operators need to script a show using the pack list of products that have been shipped to him. The Quota column is exactly the place to import the pack list quantities (“File > Import > Import quotas…”). With the Quota column showing your allocation, you can filter the effects window to show “All effects having quota” or “All effects used or having quota” or three other options that take into account what you’ve used in the show so far are “Quota negative” and “Quota not-zero” and “Quota positive” (effects window gear menu > “Select layout template”). The quotas are saved with the show. Even though they are shown in whatever collection you are displaying in the effects window -- My effects, Generic effects, Finale Inventory, your own effects file, etc. -- they are stored in the Per-show effects collection that is saved with the show. Thus your show can have quotas for effects in any collection. The “On Hand” column (meaning “Quantity on hand”) is an inventory quantity that is used in more comprehensive inventory management applications available through integration with Finale Inventory. If you integrate with Finale Inventory, the Finale Inventory application will keep track of your open sales orders (shows that you’ve sold but haven’t shipped yet) and your purchase orders (for products that you’ve purchased and haven’t received yet). The available count in Finale Inventory takes into account “reservations” from unshipped shows and “on order” quantities from purchase orders, whereas the “quantity on hand” quantities reflect only what is physically present at your warehouse or facility. In some circumstances, it can be useful to know while scripting a show what “available” and also what is “on hand”. Finale Inventory keeps track of the "Location" (street address) and "Sublocation" (bunker or container) at which your items are stored, and items can obviously be stored in multiple places such as overstock locations and picking locations. The Available and On Hand quantities sent from Finale Inventory to Finale 3D represent all Sublocations at one or more Locations. You can filter to specific Locations with the Finale 3D menu item, "File > Finale Inventory > Select locations". Sublocations are not visible in Finale 3D, but the "Std Bin ID" property of products in Finale Inventory is shown in Finale 3D as the "Storage Location", which may be useful for picking reports generated on the Finale 3D side (see Table 1 of Effects basic instructions). These advanced inventory management features for On Hand stock counts are only available with Finale Inventory, though. Basic inventory management in Finale 3D just uses the Available column to record your quantities, and doesn't have any concept of item storage at multiple locations; you need to take into account reservations or or shipments manually. Thus for basic inventory management, please leave the On Hand column blank. When you use the Available or Quota column, the quantities displayed in the effects window will change color to green or red, depending on whether you have more remaining to use or whether you’ve used too many!
To create and export a script for the Pirotex 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. Figure 1 – The Pirotex firing system The Pirotex script is a text file that supports 32, 64, 128, and 256-pin modules, and 10-pin slats (AKM-10). The pins on the modules themselves are triggered by the channel number associated with the pin, which is just the pin number. The pins on the slats fire in order from first to last, triggered by successive triggers of the channel number on the module associated with the slat. Each row of the script specifies only a module number and channel number as the firing address. If a slat is attached to the channel number, then the row triggers the next unfired pin on the slat. If no slat is attached to the channel number, then the row triggers any effects that are wired directly to the pin on the module. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .txt UTF-8 Tab CRLF The script contains rows for the firing events, i.e., unique combinations of module, channel, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows sorted ascending first by Event Time. What rows represent Rows represent firing events, i.e., unique module-channel-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Special characters If a field contains a double-quote character (“), then the field will be enclosed in “ on both ends, and any internal “ characters will be doubled up, following the Excel quoting convention. Minimum separation between cues None Multi-hit pins Supported in the script format and with manual addressing in Finale 3D, for non-pyro effects like flames and relays that can be triggered multiple times. Finale 3D handles multi-hit pins in the Pirotex exporter the same as it handles single-hit pins -- whatever pin address is in the script row in Finale 3D will be copied to the exported script row for Pirotex, whether or not the pin address is unique. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them. Slats The pins on the Pirotex AKM-10 slats fire in order from first to last, triggered by successive triggers of the channel number on the module associated with the slat. Each row of the script specifies only a module number and channel number as the firing address. If a slat is attached to the channel number, then the row triggers the next unfired pin on the slat. If no slat is attached to the channel number, then the row triggers any effects that are wired directly to the pin on the module. It is easy to assign firing system addresses automatically in Finale 3D for a Pirotex show that uses only pins on the modules, or a show that uses only pins on the slats. It is also not so hard to assign addresses automatically for a show that uses pins on both modules and slats, but only if the slats are connected to different modules. If the show uses pins on modules and on slats connected to the same modules, then you have to assign firing system addresses manually. If your show uses only the pins on the modules themselves, no slats, then simply address the show using any of Finale 3D’s addressing functions, and choose the “Pirotex 32 Pin Module” module type to be used throughout (or choose 64 or 128 or 256 pin). If your show uses only the pins on the slats, ignoring the pins on the modules, then simply address the show using any of the Finale 3D’s addressing functions, and choose “Pirotex AKM-10” module type (slats). If your show uses the pins on the modules at some positions, and uses AKM-10 slats at other positions but does not use any pins on modules to which the slats are attached, then select the positions at which you want to use the modules’ pins, right click on them and do “Edit Properties”. Set their module type to “Pirotex 32 Pin Module” (or other 64 or 128 or 256). Select the other positions, right click on them and set their module type to “Pirotex AKM-10”. Then address the show using any of the addressing functions. Slats connected in series AKM-10 slats connected in series act as a single slat with all the pins combined (gaps from unused pins are ignored). The pins are triggered by a single channel for the whole series, which means the slat numbers assigned to the individual slats by the addressing function are NOT the channel numbers for series. The Custom Position Field, which you can set by editing position properties, is a "channel override" for the Pirotex exporter. It enables you to specify a single channel number to use for all firing rows at the position: whatever channel would have been exported (the pin number for pins on the module, or the slat number for pins on the slat) will be overwritten by the value of Custom Position Field. EXAMPLE: Consider three positions with 16 shots per position, addressed for AKM-10 slats in position order. The first position would have slat 1 and 2; the second would have 3 and 4; the third would have 5 and 6. If the user wants to attach 1 and 2 in series and assign them to channel 1, the user sets the Custom Position Field for position 1 to 1. Similarly, he sets the Custom Position Field for position 2 to 2; and 3 to 3. RULE: For any positions with AKM-10s (in series or not), you must sort shots at the positions first by event time (e.g., sorting by "Position then Event Time"). If the AKM-10s are in series you must also avoid any slat constraints that could result in pin numbers across the series being non-chronological. The rule for slat constraints on positions with AKM-10s in series is tricky. In general you cannot safely constrain slats to any effect property (size, part number, etc.) with AKM-10s in series, because that could result in non-chronological shots between the slats. You can constrain slats to the same rack or rack cluster if all the racks at the position are equivalently compatible with the shots at the position (e.g., all tubes are the same size). This constraint, which is useful to avoid e-matches running between racks or rack clusters, is the only slat constraint that is prudent to use with AKM-10s in series if you use the automatic addressing functions. If you use the fill-down addressing method, you can use all constraints if you uncheck the "Backfilling allowed" box in the fill-down dialog. The Pirotex script has no header, just a list of rows corresponding to the firing events. Each row has four fields, defined as follows: Table 3 – Specifications of script fields Field name Description Event Time Time in the format H:MM:SS:FFF from the beginning of the show (millisecond resolution) Module Number Module number, beginning with 1. Channel Number If the row refers to a terminal on a module, then this field is the pin number, beginning with 1, up to 32, 64, 128, or 256, depending on the module type. If the row refers to a terminal on a slat (i.e., the AKM-10 slat), then this field is the channel number of the slat or slats connected in series. The pins on a slat are triggered in sequence by successive triggers of the slat’s channel number. Effect Name The effect name. The example script below is from a show with two positions. One position has 16 shots, a tenth second apart, shot from two AKM-10 slats on channel 1 and 2 of module 10. The first 10 sequential shots all have module 10, channel 1 in the script; the next 6 sequential shots all have module 10, channel 2. These are the first 16 rows in the script. The second position has 2 shots, a tenth second apart, shot using the pins directly on module 20. In the script, these two rows have module 20, and channel 1 and 2 corresponding to pins 1 and 2 on the module itself. 0:00:02.800 10 1 Red Chrysanthemum 0:00:02.900 10 1 Red Chrysanthemum 0:00:03.000 10 1 Red Chrysanthemum 0:00:03.100 10 1 Red Chrysanthemum 0:00:03.200 10 1 Red Chrysanthemum 0:00:03.300 10 1 Red Chrysanthemum 0:00:03.400 10 1 Red Chrysanthemum 0:00:03.500 10 1 Red Chrysanthemum 0:00:03.600 10 1 Red Chrysanthemum 0:00:03.700 10 1 Red Chrysanthemum 0:00:03.800 10 2 Red Chrysanthemum 0:00:03.900 10 2 Red Chrysanthemum 0:00:04.000 10 2 Red Chrysanthemum 0:00:04.100 10 2 Red Chrysanthemum 0:00:04.200 10 2 Red Chrysanthemum 0:00:04.300 10 2 Red Chrysanthemum 0:00:16.116 20 1 Blue Chrysanthemum 0:00:16.216 20 2 Blue Chrysanthemum Figure 1 – Example Pirotex script
To create and export a script for the COBRA firing system, please follow these three steps: Address the show ("Addressing > Address show"). Export the script to a USB thumb drive ("File > Export > Export firing system script file..."). Load the script by inserting the USB thumb drive into the 18R2 remote. Step 2 creates the script file, which is a standard format CSV file with a "CSV" extension. The file format details are described below in this section. Figure 1 – Cobra firing system Cobra modules have 6, 18, 36, or 72 pins (cues), but as far as addresses are concerned the modules with more than 18 pins are just two or four 18-pin modules combined, with each of the 18-pin modules having a separately assignable module number (channel number). If you use 36 or 72 pin modules, simply treat them as multiple 18-pin modules stuck together, and assign their separate module numbers to whatever is needed at their physical locations. If you use 6-pin modules, take care to avoid assigning pins above 6 or create a custom module with a 6-pin limit. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .csv ASCII Comma CRLF The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Script formats for different Cobra firmware versions Finale 3D can export script files formatted for the following COBRA firmware versions: v3.X v4.X, v5.0.X v5.1.X v6.X v7.X COBRA v3.0 and v4.0 scripts have 1/10th of a second resolution; later versions have 1/100th of a second resolution. Beginning with COBRA v6.0, the script supports launch position coordinates, definable pulse time and embedded part numbers. COBRA v7.0 scripts introduce track labels (see below), disable groups (see below), and the "DMX Ramp-To Value" field. Sort order of rows Event rows in each section of the script are sorted ascending first by Event Time. What rows represent Rows represent firing events, i.e., unique module-pin-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Structure of script file The script file begins with a header with position coordinates, followed by one or more sections (one for non-semi-automatic) of event rows, each section with its own two-row header, followed by “end” as a row by itself. Script comments Empty cues in Finale 3D that have text in the Note field are included in exported Cobra scripts as script comment rows. The format of the script comment rows for Version 6 or later includes the Event Time field and the Name field only, as shown in the middle line of this example: 0,1,,0,audiobox.mp3,cobra,,,, 00:00:02.16s,,,THIS IS A SCRIPT COMMENT,,,,,,, 00:00:02.76s,channel 1,cue 1,Red Chrysanthemum,,,,,,, Script comment rows for Version 5 and earlier are simply pound-sign comment rows, as in: 0,1,,0,audiobox.mp3,cobra,,,, #THIS IS A SCRIPT COMMENT 00:00:02.76s,channel 1,cue 1,Red Chrysanthemum Script comment rows in the Version 6 format will appear in Cobra Show Creator and in the Cobra Control Panel. Semi-automatic firing options Cobra firing systems support three types of semi-automatic and step firing methods: 1) "Separate Scripts By Tracks" 2) "Step By Tracks" 3) "Step By Events" In Finale 3D, you can specify one of these three semi-auto script types or choose "Standard Script" (to generate a fully-automatic script) in the Export Options dialog that is presented when you export the script. The Separate Scripts By Tracks method splits the script into multiple scripts that are triggered on demand by pressing the corresponding cue button on the Cobra controller. The Step By Tracks method is similar, but advances through the tracks of the show sequentially with the step button on the controller, instead of by random access. The Step By Events method advances one event at a time sequentially with the step button. Examples of all four script formats are provided in Table 4.See semi-automatic-firing for further instructions. Step By Events "Step By Event" scripts advance through the "Step Cues" manually as you press the STEP button. Each Step Cue consists of one or more events that are logically triggered together. For example, a pair of shells ignited at the same time are logically triggered together even if they are ignited by different pins or modules. A stack of different size shells ignited at the same time -- and thus generally breaking at different times -- are also part of the Step Cue. The concept of events being logically triggered together also extends to events with the same effect times. A stack of different size shells ignited at different times but breaking at the same time are also part of the same Step Cue, because that is what you would expect. If events in a Step Cue have different ignition times, the Step Cue triggers the first immediately and incorporates a delay in the later events to preserve their relative ignition times. A stack of different size shells breaking at the same time thus generally fires the largest shell immediately and the smaller shells after delays that cause them to break at the same time. DMX events may also be included in Step Cues, on their own or combined with pyro events. Since a DMX effect represented by one row in the script table may require multiple DMX events in the exported script to control multiple DMX channels, all the DMX events associated with a row of the script table are necessarily part of the same Step Cue. In some cases, such as a DMX fixture with a color wheel or moving head, some of the DMX events associated with the effect must occur in advance of the visual appearance in order to turn the color wheel or move the head to the correct angle before turning on the fixture effect. Since the wheel turning or head moving can't begin until the Step Cue has been triggered, the fixture effect may not be ready to turn on immediately, which manifests in a delay between when you press the STEP button and when the effect visually appears. Please see DMX setup events — preparing channels before the effect begins for more details. Tracks The "Separate Scripts By Tracks" and "Step By Tracks" firing methods use the Track property in Finale 3D script rows to indicate the section of the show to which the row belongs. For Separate Scripts By Tracks the Track also indicates the button on the Cobra controller that triggers the section, which is in the Track value itself, a number 1-18 (please unhide the Track property in the script to use this feature). In Finale 3D, the Track field in the script table is hidden by default; unhide it from the blue gear menu. In the Cobra script file, sections are listed sequentially with a comment row and header row above the event rows, e.g., #Track 1,,,,,,,,,, 0,1,,0,audiobox.mp3,Opening,,,,timecode1, The number in the Track field in the Finale 3D script is the number in the #Track comment row, and also the second field (Trigger Button) in the header row. The sixth field in the header row for the script ("Opening" in the example above), is a track label. The rows in each section of a semi-automatic script have time values relative to the first event in the section, which is always time zero. In the Finale 3D script, please arrange the track sections in order, with no interwoven or overlapping events. Separate tracks in DMX scripts therefore need separate safety channels. Track labels Track labels were introduced in COBRA firmware V7.0 for "Separate Scripts By Tracks" shows to provide a readable label or note on the remote for the track/script. In Finale 3D, the Track field holds the track number and the track label together, as in "01 Opening" or "02 Middle Section". The track number is the first number contained in the string, e.g., the number 1 in "01 Opening" or "Opening 01". The track label is the string itself after skipping over any leading number in the string and trimming whitespace. For example, the track label of "01 Opening" is "Opening"; the track label of "Opening 01" is the same "Opening 01" because the string doesn't begin with the number. The best practice for representing track numbers and labels in the Track field in Finale 3D is to use a two digit number padded with a leading zero if necessary, followed by the track label. The reason for the two digits and for putting the number first is to make it possible to sort the script window in Finale 3D by the Track column numerically. Special characters To avoid the need for an escaping convention, Finale 3D filters out comma, semicolon, double-quote, backslash, and all control characters from the exported script. The Cobra controller implements the Excel escaping convention, but Finale 3D filters the characters anyway to avoid types of errors that are common when users import and export from Excel and text editors. Minimum separation between cues None Alternates Cobra scripts provide for listing "Alternate1" and "Alternate2" events at the end of the script, and binding the events to buttons that can be pressed to trigger the events during or after the script. To use this function in Finale 3D, unhide the "Alternate" column in the script table window, and put the value "1" into script rows that you want to be "Alternate1" events; and the value "2" into script rows that you want to be "Alternate2" events. Finale 3D will include these events at the end of the exported script, and optionally double-list them in the body of the script depending on your choices in the Export Options dialog (See Table 3). Disable groups COBRA v7.0 and higher firmware recognizes the "Hazard" field of Finale 3D, which is exported as a text field identifying a class of events that can be disabled on the fly based on conditions during the show. Pulse Time COBRA v6.0 and higher firmware supports a user-defined pulse duration for which cue is to be energized. The pulse duration values in the exported script come from the durations of flames, lights, and other special effects. For more details on pulse duration, see Why is ‘Type’ so important? What depends on it? Multi-hit pins Used for non-pyro effects like flames and relays that can be triggered multiple times. Finale 3D handles multi-hit pins in the Cobra exporter the same as it handles single-hit pins -- whatever pin address is in the script row in Finale 3D will be copied to the exported script row for Cobra, whether or not the pin address is unique. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them. DMX COBRA v6.0 and higher firmware with 36M and 72M modules supports DMX output for separate or shared DMX universes on each module. DMX Ramp-To Value COBRA v7.0 and above support the "DMX Ramp-To Value" field which specifies the interpolation end-value for a DMX channel. This feature supports fades and color blends for light fixtures, and more controllable movement for moving head fixtures. When you export a firing script for Cobra, Finale 3D presents an "Export Options" dialog with options that go into the header of the exported script or affect the format. The choices are shown in Table 3. Table 3 – Export options Option name Description Version Choose the script format that matches your firmware version, v3.X - v7.X. The version affects the number of columns in the exported script, the time resolution, and various capabilities. Version v6.0 is the first version to support DMX. Script Type Choose one of the four script types: Standard Script, Step By Events, Separate Scripts By Tracks, and Step By Tracks. Use Cobra Audio Box Select 'Yes' if you plan to shoot your show using the Cobra Audio Box, otherwise select 'No'. Audio Box Filename This corresponds to the filename of the MP3 soundtrack that you plan to load into the Cobra Audio Box. The name that you specify here will be added to the header in the script file and must match exactly to the filename of the soundtrack that you load into the Audio Box. For example, if you specify "audiobox.mp3" in the script export options dialog, then the filename of the soundtrack that you load into the Audio Box must be "audiobox.mp3". If the Audio Box filename in your script and your soundtrack filename don't match, your show will not fire. In COBRA firmware v3.X and 4.X, the Audio Box filename must be "audiobox.mp3" and is not editable. In COBRA firmware v5.0.X, the Audio Box filename can be custom, but must be 12 characters or less including the .mp3 file extension. In COBRA firmware v5.1.X and v6.X, the Audio Box filename can be custom, but must be 31 characters or less including the .mp3 file extension. Note: The Audio Box filename may contain lowercase letters a-z, uppercase letters A-Z, numbers 0-9, hyphens '-', underscores '_', and spaces. No other characters are permitted. The filename of the music soundtrack that you place on your USB drive and insert into the COBRA Audio Box must be identical to the filename you enter here. SMPTE Timecode (COBRA v5.1 and higher) Select among three timecode choices: None, Timecode 1, and Timecode 2. This choice merely fills into the header of the exported script. The choice does not affect any other timecode related features, including the exported soundtrack. Timecode 1 - The 18R2 will continue to fire even if the timecode is lost or the quality is too poor. Timecode 2 - The 18R2 will stop firing if the timecode is lost or the quality is too poor. If the timecode stops, fast forwards, or is rewound, the 18R2 will keep in sync with the timing. Trigger Channel Choose the channel that the 18R2 remote needs to be on as a precondition for the user to initiate this script: 0-99, or the option "None". The option "None" indicates no specific channel is required as a precondition for initiating this script. Return Channel Choose the channel that the 18R2 remote returns to automatically upon completion of the script, 1-18 or "None". Trigger Button Subject to the Trigger Channel precondition, the Trigger Button is the button on the 18R2 remote that triggers the script, 1-18, or the STEP button, or the AUTOFIRE button. If you choose the script type Separate Scripts By Tracks, then the Track field in Finale 3D that groups together sections of the show into separately triggered scripts on the 18R2 also specifies the Trigger Buttons for the separate scripts as being the Track numbers. Deadman Button / Trigger Confirmation Button Choose "None" or optionally a button 1-18 or "Deadman" as a confirmation button for triggering the script. The choice cannot be the same as the Trigger Button. Disable Firing Button Choose "None" or optionally a button 1-18 to disable firing during a show. Alternate 1 Button Choose the button associated with "Alternate 1" script events (see "Alternates" in Table 2). Alternate 2 Button Choose the button associated with "Alternate 2" script events (see "Alternates" in Table 2). Exclude alternates from script body Choose whether alternates are double listed in the body of the script (see "Alternates" in Table 2). First event of Step By Events scripts fires when script starts Choose whether Step By Events scripts, when triggered, require pressing the STEP button for the first event or whether the first event fires immediately when the script is triggered. This option is typically not checked unless if you choose the STEP button as the Trigger Button for the script, in which case it is a matter of personal preference. The option only affects Step By Events type scripts. After the header, each row in the script has a number of fields separated by the vertical bar character. The names of these fields and their descriptions are shown in Table 4. Table 4 – Specifications of script fields Field name Description Event Time Ignition time of the event, in the format: 00:00:01.00s. Channel Channel number (same as the Module Number and Rail Address), in the format: channel 10. (Blank for DMX rows.) Cue Cue number (same as the Pin Address), in the format: cue 1. (Blank for DMX rows.) Name Effect name, followed by the part number in curly braces (COBRA v6.0 and higher; non-DMX effects only), followed by double-slash and the name of the position or positions, followed by double-dash and the DMX channel label and channel offset in parentheses if event is a DMX event. If the name contains a fixture ID / effect ID annotation in the format "[xxx/yyyy]" the fixture ID will be removed since it is redundant with the name of the fixture that is typically also in the name. The value is a text string, at most 62 characters long. PYRO EXAMPLE: "Red Chrysanthemum {G2SH1000} // Pos-01/Pos-02/Pos-03" DMX EXAMPLE: "EZPAR [1096] White Flash (sm) // Pos-01/Pos-02/Pos-03 -- Dimmer (+0)" The DMX example's effect originally had a fixture ID / effect ID annotation of "[005/1096]" but the fixture ID "005/" was removed from the exported name. Disable Groups (COBRA v7.0 and higher) Text string identifying a group of events that can be disabled on the fly based on conditions during the show. Pulse Time (COBRA v6.0 and higher) Duration for which cue is to be energized, in floating point format (0.01 second resolution); or blank for the default duration. Finale 3D writes the empty string value, unless the cue contains an event of type sfx, flame, light, or not_an_effect, in which case Finale 3D writes the duration of the event as shown in the script row. See Why is ‘Type’ so important? What depends on it?. DMX Ramp-To Value (COBRA v7.0 and higher) Blank for no function, or an integer from 0-255 specifying the end-value for the DMX channel to interpolate to over the DMX Duration. DMX Universe (COBRA v6.0 and higher) Integer from 1-100, identifying the DMX universe. (Blank for non-DMX rows.) DMX Channel (COBRA v6.0 and higher) Integer from 1-512 identifying the DMX channel of the row. (Blank for non-DMX rows.) NOTE: as of 4/2/2021 Cobra hardware is limited to 200 channels, 1-200. DMX Channel Value (COBRA v6.0 and higher) Integer from 0-255 identifying the value for the DMX channel. (Blank for non-DMX rows.) DMX Duration (COBRA v6.0 and higher) Duration of DMX command, at which point the DMX channel value will be reset to zero, or, blank to leave the DMX channel value as is until a subsequent script row for the same channel changes the value. (Blank for non-DMX rows.) An example semi-automatic script with two sections is shown below. The first track section contains two events with disable groups (wind, rain), and a third event with an explicit pulse duration. ##version 6 #Track 1 0,1,,0,audiobox 00:00:00.00s,channel 1,cue 1,White Chrysanthemum {G2SH1000},wind, 00:00:02.90s,channel 2,cue 1,White Chrysanthemum {G2SH1000},rain, 00:00:05.40s,channel 2,cue 4,Long Flame Projector Shot {GXX1101},,0.41 #Track 2 0,2,,0,audiobox 00:00:00.00s,channel 5,cue 1,Green Chrysanthemum {G2SH1001},, 00:00:01.00s,channel 6,cue 1,Green Chrysanthemum {G2SH1001},, 00:00:02.00s,channel 7,cue 1,Green Chrysanthemum {G2SH1001},, 00:00:03.00s,channel 8,cue 1,Green Chrysanthemum {G2SH1001},, end Figure 2 – Example Cobra script Table 5 – Example files Download link Explanation test_cobra.fin Example show test_cobra_standard_script.csv Example exported standard script (fully-automatic) test_cobra_separate_scripts_by_tracks.csv Example exported semi-automatic script (separate scripts by tracks) test_cobra_step_script_by_tracks.csv Example exported step by tracks test_cobra_step_script_by_events.csv Example exported step by events magicfx_cobra_standard.fin Example DMX show using MagicFX flame projector magicfx_cobra_standard.csv Example exported DMX script using MagicFX flame projector
Every effect or other kind of part in the effects table has a Type, chosen from a list of twelve predefined options. Other fields, like Category, Rack Type, and Subtype, allow the user to make up the categories or other possibilities for his own purposes, but not Type. Type is different, because the software functions look at the Type value to determine how to handle the part. For example, the function that adds all the necessary racks to the show needs to know what effects require mortars -- shells do, cakes do not. By looking at the Type field, the function can know to add mortars for the shells, but not for the cakes. There are other things that depend on Type also. They are all described in the following table that lists the twelve pre-defined Type values and what they mean. You will notice that the types are entirely lowercase, with underscores instead of spaces, and they are in English. Those typographical conventions are a clue that the Type values are never translated to other languages. No matter what language you are using, the Type values will always be cake, candle, shell, and nine others. Table 1 – Differences between the twelve pre-defined Types Type Notes Assigned firing system address or DMX channel; included in script Has adjustable duration Implies pulse duration Requires mortar rack Requires non-mortar rack Requires e-match; included in script report Has VDL-based icon Rotationally symmetric Safety distance is meaningful Included in sales orders cake YES YES (cake rack; unless sleeved in which case single-shot rack) YES YES YES YES candle YES YES (candle rack; unless sleeved, in which case mortar rack) YES YES YES YES YES shell YES YES YES YES YES YES YES ground YES YES (cake rack; unless sleeved in which case single-shot rack) YES YES YES YES YES other_effect Other pyro effects, like set pieces. YES YES YES but only if sleeved, in which case single-shot rack YES YES YES YES sfx Cryo, confetti, stadium shots, and adjustable duration flame. YES YES YES YES YES flame Fixed duration flame machine effects; change Type to sfx if you want to edit the Duration field in the script directly. YES YES YES YES light YES (except NO if effect is on drone position) YES YES YES rocket YES YES (candle rack) YES YES YES YES YES mine YES YES YES YES YES YES YES comet YES YES YES YES YES YES YES single_shot If a pyro effect goes into a single shot rack, then its Type must be single_shot, not comet, mine, etc. YES YES (single-shot rack) YES YES YES YES YES not_an_effect YES YES YES rack YES macro Causes the macro effect to expand into other effects when inserted into the show instead of being inserted into the show itself. The next table gives explanations of what the differences mean. Table 2 – Explanation of the differences Dependency Description Assigned firing system address or DMX channel The "Addressing > Address show" function and other addressing functions assign firing system addresses (including module addresses for DMX-based effects) if this value is YES, and do not if this value is NO. Any effect that has a representation in the exported firing system scripts requires a firing system address, so if the value is NO, the item will not appear in the exported scripts. Items with the value NO may be useful for comments or triggers of non-firing system related actions. Has adjustable duration Generally the Duration field in script rows comes from the Per-show effects list by reference -- the Part Number in the row matches the Part Number of an effect in the Per-show effects, and the Duration defined by that effect applies to script row. If you change the Duration of the effect in the Per-show effects, that will automatically change the duration of all rows in the script that refer to that effect. There are two exceptions: chain rows, and rows referring to effects whose Type implies the effect has adjustable duration. In these cases, when the effect is inserted into the script, the effect’s Duration is copied by value into the script, and no reference or link is maintained to the original duration. You can edit the Duration of adjustable duration effects directly in the script rows, and different rows with the same effect can have different durations. The downside of adjustable duration effects is that if you change the effect’s Duration in the Per-show effects, you probably expect it to change in the show, but it doesn’t, because for these effects the Durations in the script are decoupled from their original definitions. The upside of adjustable duration effects is that for some applications you may want to be able to control duration on a row-by-row basis, and adjustable duration lets you do that. Implies pulse duration The pulse duration refers to the period of time the firing system pin is electrified for the effect. For most pyro effects, the pulse duration is just long enough to ignite the e-match, and doesn’t vary from effect to effect. But for flames and some other kinds of special effects, the pulse duration of the firing system is the duration of the effect. Depending on the firing system, the rows in the exported firing system script may contain a pulse duration value equal to the effect’s Duration only for effects that imply pulse duration. Exported scripts for the 100Hz Cobra systems, for example, have a blank pulse duration field for pyro and a pulse duration equal to the effect’s Duration only for effects that imply pulse duration. Requires mortar rack The rack layout functions of Finale 3D add racks for the types of effects that need them. If the Type field of the effect is shell, mine, or comet, then the effect requires a mortar rack. Other types of effects, like cake and single_shot, require different structures of racks (non-mortar racks). Some types of effects, like not_an_effect, do not require a rack at all. Requires non-mortar rack Different Types of effects require different rack structures. If the Type field of the effect is cake, candle, ground, or single_shot, then the effect requires a special structure of rack for that Type of effect. The rack structure is specified in the rack’s VDL field, and is mortar rack by default if the VDL field is blank. You can view or edit a rack’s structure in the “Create rack” or “Edit rack” dialog. Requires e-match The summary dialog presented after addressing the show displays the number of required e-matches. Items that do not require e-matches do not contribute to the e-match count. Has VDL-based icon VDL-based icons are simulations generated from the VDL field and other fields like Duration and Size, but only for the Types that make sense. Parts of Type rack have a special-purpose icon based on the Size. Parts of Type not_an_effect have a generic icon. Rotationally symmetric Items shot out of tubes, like shells, mines, and comets, are rotationally symmetric around their direction axis, the axis of the tube. Rotating a shell within its tube doesn't have much bearing on the appearance. Effects like cakes and set pieces, however, are not rotationally symmetric around their direction axis, which is usually "up". Rotating a fan cake 90 degrees changes the fan from front-facing to side-facing. An effect's rotational symmetry affects the rotation required of a rack to hold the effect at its proper orientation. Non-rotationally symmetric items like cakes in a cake or ground rack will require the rack's heading to match the effect's pan. Non-rotationally symmetric items like slice cakes in a single-shot rack will require the rack's heading to be orthogonal to the effect's pan so the physical width dimension of the slice cake aligns with the rows of the rack (cakes can be forced into single-shot racks using sleeving or Rack Type part numbers). Safety distance is meaningful Site layout diagrams that include safety circles based on effects' safety distances will exclude effects for which the safety distance is not meaningful. Lights do not have meaningful safety distances but effects of type "sfx" do, because sfx effects may include variable duration flames. Included in sales orders The menu item, "File > Finale Inventory > Update sales order from used quantities" will ignore effects like flame effects and light effects because they do not represent physical inventory items.
It sounds like a simple question: How can I tell if an effect is a chain? The reason it is not simple is that multiple pieces of information about the effect can be inconsistent, some indicative of a chain, others indicative of not a chain. For example, the description could include the word “Chain”; the VDL could include the word “Chain”; either field could also include the word “Cake”; the “Devices” column could have multiple devices (looking like a chain) or a single device (looking like not a chain). If you are puzzling about the behavior of an item that might be a chain, you can follow these rules to determine if it is a chain: Table 1 – How the software determines if an effect is a chain Chain Not a chain In Effects window Row defines a chain if the VDL contains the word “Chain”, or if the VDL is empty but the VDL that would be created automatically from the “Description” column would contain the word “Chain”. Otherwise In Script Row is part of a chain if it has a reference number in the “Chain” column Otherwise The number of devices that a chain effect in the Effect window represents is the number in the “Devices” column -- even if that number is inconsistent with the description or VDL of the effect. This can be a source of confusion, because you might have an effect called “Chain of 5” with the number 10 in the “Devices” column. Although it looks like a chain of 5 by the description (particularly if the “Devices” column happens to be hidden), the chain represents 10 devices.
In Finale 3D, chains are represented by one row in the script per device in the chain. It may not look like that, because the "Show chains as one row" setting in the Script window's gear menu is on by default, but regardless of the display format, each device is a single row behind the scenes. Thus a chain of 10 devices is represented by 10 rows. The rows are bound together by virtue of having the same reference number in the “Chain” column, which is also what determines whether the row is part of a chain at all (see “How can I tell if an effect is a chain?”). If a show had two chains, each with 10 devices, then the show would have 20 rows total, and 10 of those rows would probably have “Chain” values of #1; the other 10 would have “Chain” values of #2. When you insert a chain or import a show with chains, the chains will be expanded out in the script to one row per device. Imported scripts can represent chains as multiple rows, just like in the script window of Finale 3D, if the script format has a “Chain” column with distinct reference numbers for the chains. The Finale Generic CSV format supports this column. Most script formats don’t have “Chain” column with this meaning, though, so most script formats resort to representing a chain in a single row in the script. As mentioned earlier, the “Quantity” column in the script format may represent number of chains or number of devices. If a single row in the imported script represents an entire chain, or even multiple chains, then the row will be expanded in the import process to multiple rows in the Finale 3D script, one row per device. Chain reference numbers will be added automatically to group the devices of a chain together. If you are importing shows with chains, please look at the “Chain” column to understand what is going on. Rows in the script that are part of a chain, i.e., that have a reference number in the “Chain” column, are treated specially. To begin with, you will notice that they appear different on the timeline. You may also notice, perhaps by trial and error, that their “Duration” column is editable, and contains a value that is usually different from the “Duration” value of the corresponding chain effect definition in the Effects window. This is unusual. The “Duration” column in the script is only editable if the row is part of a chain, or if the row’s effect has type other_effect or not_an_effect. Otherwise, the duration is a reference to the effect definition itself. The reason rows that are parts of chains cannot have a reference to the effect definition is that the duration of a chain is the duration from first to last launch, not the duration of an effect in the chain. The chain’s duration would almost certainly be wrong for the effect in the chain. Thus when you import a show with chains, or when you insert chains into the script, the “Duration” field for those rows will be filled in automatically with the specified or default duration of the effect itself. Similar to the “Duration” column, chain rows in the script have a special column called “Chain Device VDL,” which is usually hidden. This field specifies the VDL for the row’s device, which could be different from other devices in the same chain, and is definitely different from being the entire chain. For example, the chain “Red Peony + Blue Peony + Green Peony Chain of 3” has three shells, all different. The VDL for the chain is that full description (the same for all rows in the chain). The VDLs for the devices in the chain are “Red Peony” “Blue Peony” and “Green Peony” (different for each row). Figure 1 – The “Used” column depends on “Devices” and the user setting: “Display chain...” In the effects window, the “Used” column that shows the number of chains used depends on the “File > User settings > Display chain ‘Used’ quantity as per-shell” setting. If you have this setting checked, then the number displayed in the “Used” column for chains is just the number of devices in the script of that part number. However, if you have the setting un-checked, then the number displayed in the “Used” column for chains is the number of devices, divided by the “Devices” count in the effect window, unless the Devices count is blank or zero, which is treated the same as the value “1”. The chain quantity in the “Description” field and the “VDL” field does not affect the Used quantity; only the Devices field does. Since chains are expanded into their constituent devices when the chains are imported or inserted, it is difficult to edit chain simulations after importing or inserting them. The "Edit simulation" function in the effect window changes the original definition of the chain, but that only affects the expanded devices in the script to the extent they still reference those characteristics from the chain definition. The Duration, Chain Device VDL, and Prefire fields, as well as the number of devices, are all decoupled from the chain definition after insertion, so editing the definition won't affect those characteristics of chains already inserted into the show.
Importing chains is complex because people follow different conventions for the meaning of chain quantity. To some, quantity 10 of “Chain of 10” means a total of 10 devices; to others it means a total of 10 chains of 10 devices, for 100 devices total. Figure 1 – Does “Quantity = 5” mean 5 chains or 5 shells? When importing a show, the dialog asks you if the chain quantity means number of chains or number of shells. It’s really important that you answer that question correctly, or you could end up with 10 times as many chains as you want, or with boring chains of 1 shell each. If your imported script format does not have a quantity column, then please select “Means number of chains”. If it does have a quantity column, then select “Means number of chains” or “Means number of devices” depending on whether the quantities are the numbers of chains or the numbers of shells. The import dialog isn’t the only factor. An effect description or VDL may specify the number of devices, as in “Red Peony Chain of 10” or may just indicate the effect is a chain and leave the number of devices off, as in “Red Peony Chain”, relying on the “Devices” or “Quantity” column to fill in the number. An imported show or effects list may or may not contain an optional “Devices” column or a “Quantity” column. Depending on the presence of these columns, and the values in them, each row of the effects list or show will correspond to a certain number of devices inserted into the show (immediately for an imported show, or when clicking on an item from an imported effects list). Based on these variations and based on your choice in the import dialog, the following rules determine the number of inserted devices for a row of the imported effects list or show: Table 1 – Factors affecting imported chains, and the number shells represented. Operation Quantity in VDL or Description column (X) Quantity in Devices or Quantity column (Y) Number of devices that will be inserted Importing effects Missing Missing 10 Importing effects 1 or more Missing X Importing effects Missing 1 or more Y Importing effects 1 or more 1 or more Y Importing show, number of devices option Missing Missing 1 Importing show, number of devices option 1 or more Missing 1 Importing show, number of devices option Missing 1 or more Y Importing show, number of devices option 1 or more 1 or more Y Importing show, number of chains option Missing Missing 10 Importing show, number of chains option 1 or more Missing X Importing show, number of chains option Missing 1 or more 10 * Y Importing show, number of chains option 1 or more 1 or more X * Y When importing a chain into a show from a single row or inserting chains into a show, the prefire of the chain applies both to the chain itself and to all the devices in the chain. In other words, the chain’s prefire and the prefire of its devices are one and the same. When importing a chain from multiple rows that are grouped together with the reference number in the “Chain” column, or when combining effects that already exist into the show into a chain, the first device’s prefire will be the prefire of the chain, and the other devices in the chain may have different prefires if they are different part numbers. When importing chains into a show, the effect definitions in the imported Per-show effects will have “Duration” equal to zero, and “Devices” equal to one, always. Neither of these fields is referenced by the chain rows of the script (see “Representation of chains in the script”). The same chain part number could be imported with different numbers of devices, which implies the duration and number of devices of the chain may not have a single unique definition. The values of these fields are cleared in order to guarantee consistent results. When importing chains into the Effects window, the duration of the chains is determined by: the “Duration” column in the imported row if present, else the duration specification in the “VDL” column if present, else the duration specification in the “Description” column if present, else a default duration calculated from the number of devices in the chain, that number of devices being the value in the “Devices” column if present, else the specification in the “VDL” column if present, else the specification in the “Description” column if present, else 10. The calculation of the default duration is, ChainDuration = ( NumberOfDevices - 1 ) * 0.05 The specification of the duration in the “VDL” or “Description” column is a quantity followed by the letter “s”, as in “8s Salute Chain Of 5”. The specification of the number of devices is either explicit, as in this “Chain Of 5” example, or implicit, based on the number of device descriptions are in the chain description, separated by plus signs (+), such as the chain of 3 devices described as, “Red Peony + Blue Peony + Green Peony Chain”. Figure 2 – The “Used” column depends on “Devices” and the user setting: “Display chain...” In the effects window, the “Used” column that shows the number of chains used depends on the “File > User settings > Display chain ‘Used’ quantity as per-shell” setting. If you have this setting checked, then the number displayed in the “Used” column for chains is just the number of devices in the script of that part number. However, if you have the setting un-checked, then the number displayed in the “Used” column for chains is the number of devices, divided by the “Devices” count in the effect window, unless the Devices count is blank or zero, which is treated the same as the value “1”. The chain quantity in the “Description” field and the “VDL” field does not affect the Used quantity; only the Devices field does. Please note that the Devices field gets filled in from the Description or VDL field in the imported script, but thereafter the Devices column is independent. If you manually change the Description or VDL fields after importing the show, that will not affect the Devices column and will thus not affect the displayed Used column. As you can conclude from the foregoing description, importing chains is complicated. It is nearly impossible to edit chain simulations or specifications after importing them as part of a show, because when chains are inserted or imported, they are expanded to their constituent devices that are independent of the original chain definition with respect to multiple factors. If you need to change chains after importing, the easiest solution is to delete them from the show and re-insert them manually.
The chain duration for any chain is “first launch to last launch,” without exception. The prefire of the chain is the prefire of the first effect in the chain if it is a shell, and is an arbitrary offset into the effect otherwise. Type of item Prefire Duration Timeline duration Chain The value specified in the prefire column, if present, else in the VDL, as in “Chain of 5 Salute 0.0 PFT”, else the default lift time for a shell of this caliber if the first device is a shell, else zero; the lift time of the all effects being adjusted (if they are shells) to equal the specified prefire only if the prefire is non-zero First launch to last launch Expiration of the star or stars or emission of the last device -- minus the prefire; or zero if that would be negative To calculate the delays in between the devices of a chain with more than one device based the duration of the chain, simply divide by the number of shots minus one. DeviceSeparation = ChainDuration / ( NumberOfDevices - 1 ) If a chain has a single device, its duration is zero, by definition, even if the value in its “Duration” column in the Effects window is something else.
To create and export a script for the Pyroneo (formerly SkyDirector) 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. Figure 1 – The Pyroneo firing system The Pyroneo (formerly SkyDirector) script is a CSV-style text file that supports semi-automatic sequences, hazard classes, multi-hit pins, and pulse durations. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .csw ASCII | CRLF The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows sorted ascending first by Sequenz (sequence), then by RelZeit (time). What rows represent Rows represent firing events, i.e., unique module-pin-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Header If the script has music, it will begin with a header row of the form, #mTESTDIRMUSIC, where TESTDIRMUSIC is the path of the music file, without the file extension. Next is a comment row beginning with a semicolon, showing the column names in the same format as the CSV-style rows themselves. Special characters If a field contains the character | or “, then the field will be enclosed in “ on both ends, and any internal “ characters will be doubled up, following the Excel quoting convention. Minimum separation between cues None Semi-automatic firing In Finale 3D, the Track property in script rows indicates the section of the show to which the row belongs (please unhide the Track property in the script to use this feature). The rows in each section of a semi-automatic script have time values relative to the first event in the section, which is always time zero. In the Finale 3D script, the sections can be in any order and can even have interwoven events, but generally people place the sections one after another in the Finale 3D script, with some space in between to tell the apart. If you are scripting a fully automatic show, please ensure the Track values in the script are blank, because otherwise your show will be split up into zero-relative sections in the exported script. See semi-automatic-firing for further instructions. Track labels In Finale 3D, the Track field holds the track number and the track label together, as in “01 Opening” or “02 Middle Section”. The track number is the first number contained in the string, e.g., the number 1 in “01 Opening” or “Opening 01”. The track label is the string itself after skipping over any leading number in the string and trimming whitespace. For example, the track label of “01 Opening” is “Opening”; the track label of “Opening 01” is the same “Opening 01” because the string doesn’t begin with the number. The best practice for representing track numbers and labels in the Track field in Finale 3D is to use a two digit number padded with a leading zero if necessary, followed by the track label. The reason for the two digits and for putting the number first is to make it possible to sort the script window in Finale 3D by the Track column numerically. Multi-hit pins Supported in the script format and with manual addressing in Finale 3D, for non-pyro effects like flames and relays that can be triggered multiple times. Finale 3D handles multi-hit pins in the Pyroneo exporter the same as it handles single-hit pins -- whatever pin address is in the script row in Finale 3D will be copied to the exported script row for Pyroneo, whether or not the pin address is unique. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them. Slats Supported in Finale 3D using virtual slats. Virtual slats allow you to partition the channels of a module into separate slats for which you can assign addressing constraints to guarantee good pin assignments for your physical layout. For example, suppose you have one module with 20 pins that are distributed out to four launch positions on four physical “slats” or “rails” with five pins each. It would be important to have the addressing constraint that each slat is restricted to a single launch position, for otherwise you might have wires running from position to position. But the Pyroneo script format doesn’t have a notion of slats; each module simply has some number of pins, numbered incrementally, such as 1..20. To partition the pins into slats, create a custom module with a rail address template like #99-D-#5 to split the 20 pin modules into four 5-pin slats, A, B, C, D. Because these are virtual slats, even though their addresses appear in the format “2-B” and “3” for module 2, slat B, pin 3 (of slat B), the addresses are converted automatically in the exported script the contiguous pin range of the module. The virtual slat address “2-B” and “3” convert to module 2, pin 8 (pins 1-5 correspond to slat A, so the third pin in slat B is pin 8). After the header, each row in the script has a number of fields separated by the vertical bar character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description Shownummer Show number from 0 to 15. Finale 3D writes 0. Sequenz Sequence number for semi-automatic sequences, or 0 for fully automatic shows. In Finale 3D, the value of the “Track” field of script rows fills into this field in the exported script. All events in the same semi-automatic sequence should have the same “Track” field value, which must be greater than 0 and not in the range 4080 to 4089. Flags Bit flags. Bit value 64 indicates the row is a sequence name; otherwise it is a cue. RelZeit Time in milliseconds from the beginning of the sequence or beginning of the show (depending on the Sequenz field), at which the cue is energized. The first cue in a sequence always has a value 0, by definition. Modulnummer Module number, beginning with 1. Einschaltdauer Duration for which cue is to be energized, in milliseconds, from 10ms to 65000ms. Finale 3D writes the value 250, unless the cue contains an event whose Type field is flame, other_effect, or not_an_effect, in which case Finale 3D writes the duration of the event as shown in the script row (or 250ms if no duration is present). See Why is 'Type' important?. Kanalnummer Pin number, beginning with 1. Gruppe Hazard class, a number 0 to 9. Finale writes the value from the “Hazard” field. The default value is 0. Position The position name, max length 8 characters. Name The effect name or sequence name; max length 32 characters. An example semi-autonomous script with two sections is shown below. Notice that each section begins with an event at time zero, since rows in sections are always relative to the first row in the section. Notice also that the last event in the script is a flame projector with an explicit pulse duration of the effect (410ms) rather than the 250ms default. #mtest_pyroneo ; Finale 3D Pyroneo export format v1.0 ;Shownummer|Sequenz|Flags|RelZeit|Modulnummer|Einschaltdauer|Kanalnummer|Gruppe|Position|Name 0|1|0|0|1|250|1|0|Pos-01|Green Chrysanthemum 0|1|0|1000|2|250|1|0|Pos-02|Green Chrysanthemum 0|1|0|2000|2|250|1|0|Pos-03|Green Chrysanthemum 0|1|0|3000|3|250|1|0|Pos-03|Green Chrysanthemum 0|1|0|4000|4|250|1|0|Pos-05|Green Chrysanthemum 0|2|0|0|5|250|1|0|Pos-06|Green Chrysanthemum 0|2|0|1000|6|250|1|0|Pos-07|Green Chrysanthemum 0|2|0|2000|7|250|1|0|Pos-08|Green Chrysanthemum 0|2|0|3000|8|250|1|0|Pos-09|Green Chrysanthemum 0|2|0|10728|4|410|2|0|Pos-05|Long Flame Projector Shot ;Shownummer|Sequenz|Flags|RelZeit|Modulnummer|Einschaltdauer|Kanalnummer|Gruppe|Position|Name;Shownummer|Sequenz|Flags|RelZeit|Modulnummer|Einschaltdauer|Kanalnummer|Gruppe|Position|Name