Total found: 296
Choosing the best sort order for the addresses can affect the efficiency of setting up the show from end to end. The rack layout, for example, depends on the addresses of effects with different angles and sizes. If a module addresses multiple size or angle effects, that forces the crew to setup racks for each of those sizes or angles within reach of the module. Both the sort order and constraints affect how often a module serves multiple sizes or angles. Constraints prevent a module from serving multiple sizes or angles, at the expense of unused pins. Sort order reduces the occurrence, with fewer unused pins. If you sort the modules by size, then only the module at the transition between one size and the next will serve multiple sizes. Same for angles. If there are many modules at the position, then these few transition modules may be acceptable. Table 1 – A good choice for sort order and constraints for many types of shows Addresses sorted by Position > Size > Angle Modules constrained to same Position, Size The table above shows a good choice for the sort order and constraints for a wide range of shows. Another option is to constrain modules by Position, Size, and Angle-Plus-Minus, where Angle-Plus-Minus means that modules can serve left-leaning, straight up, or right-leaning angles, without regard to the specific number of degrees, but cannot serve any combination of angles that lean different directions. Adding the Angle-Plus-Minus constraint causes additional pins to go unused at the transitions between the three groups of angles, but not nearly as many pins as if you add Angle to the constraints. If Angle-Plus-Minus isn’t exactly what you want to use as a constraint, you can also make your own field in the Custom Script Field, and use that as a constraint. As an example, you could make your own version of the Angle-Plus-Minus field by sorting the script by angle and filling in the values L and R in the Custom Script Field for the left-leaning and right-leaning effects (using the letters L and R is an example; you could use any notation you want). Having added those field values to the Custom Script Field, you would address the show with the sort and constraints of: Table 2 – A choice for sort order and constraints that allows splitting apart angled rack groups Addresses sorted by Position > Size > Angle Modules constrained to same Position, Size, Custom Field The Custom Position Field is another field that you can use for addressing sorts and constraints. As you can guess from the name, this field is a property of the positions. Each script row inherits the Custom Position Field from the position at which the script row is located. If you want to sort or constrain addresses based on a property of the positions, you can set the Custom Position Field values on the positions themselves, rather than setting the Custom Script Field for each script row individually. As a simple example, imagine that your positions were named A, B, and C, and for some reason you wanted addresses to be assigned by order of positions but in the order B, A, C. You could set the Custom Position Field values for A, B, and C, to 2, 1, 3, respectively, and then assign addresses sorted by the Custom Position Field.
The following table shows the languages supported by Finale 3D. There are two aspects to supporting a language: 1) creating simulations automatically based on effect descriptions, enabling you to import an inventory or create effects one by one in your own language; and 2) displaying the user interface text in your language. The table shows whether these aspects are supported for each language. Please contact support@finale3d.com if you are interested in translating to a language that is not yet supported. Table 1 – Supported languages Language Automatic simulations from effect descriptions User interface Brazilian Portuguese Pending ✓ Bulgarian Pending ✓ Chinese Simplified Pending ✓ Chinese Traditional Pending Pending Dutch ✓ ✓ English ✓ ✓ French ✓ ✓ German ✓ ✓ Hungarian Pending ✓ Italian ✓ ✓ Japanese Pending ✓ Maltese Pending ✓ Norwegian Pending ✓ Polish ✓ ✓ Portuguese ✓ ✓ Romanian Pending ✓ Russian ✓ ✓ Spanish ✓ ✓ Turkish Pending ✓ Ukrainian Pending ✓
This section contains instructions to create a language translation file for localizing the Finale 3D user interface to a non-English language. Please contact will@finalefireworks.com if you are interested in translating to a language that is not yet supported. The process of creating a language translation file is: Begin with a blank translation file template that you can get from will@finalefireworks.com or copy from C:UsersYOURNAMEAppDataRoamingfinale3dfinale3d-filesapp.nwtranslationstranslations_template.txt and rename to store it locally somewhere convenient on your hard drive. Using a text editor, replace all the translation phrases with your translations. The translation phrases all begin with "XX" and are in all-caps, so they are easy to recognize. Also change the header line from "en" to whatever your language designation is (e.g., "fr" for French). If you see three question marks (???) in a translation phrase, please include the same ??? in your translation. These question marks indicate a parameter that the software will replace with a number or word when it displays the phrase to the user. Also, if the translation phrase includes backslash-n (n), that indicates a line break. Please include the same backslash-n in your translation. Save your text file in the UTF-8 or UTF-16 Unicode format. From Finale 3D, select the menu item "File > Admin > Install language translation file..." and select your file. That's all there is to it! In the future, if a software update adds some text, you can update your translation file by, From Finale 3D, select the menu item "File > Admin > Update language translation file for any missing phrases..." and select your file. The update function will preserve all your translations, and will add any new phrases needing translation. If any of your existing translations are no longer needed, the update function will add the comment "NON-MATCHING" in front of them so you can delete them whenever you want. The update function never deletes anything. With those basic instructions, you can get started right away, but it is worth reading a few more details to understand how it all works: When the user selects a language from the "File > Languages" menu of Finale 3D, the software loads a language translation file that translates all the English phrases in the user interface into the selected language. Finale 3D has approximately 1500 such phrases, some being just a single word; others being a sentence or two. The language translation file thus consists of about 1500 pairs of lines. The first line in each pair is the English phrase; the second line is the corresponding translation in the other language. Here is a "before" and "after" explanation. The first figure below is the beginning of the blank translate template file ("before"); the second is the beginning of the Russian translation file ("after"): en 0. || Playback mode: XX PLAYBACK MODE: 1. || Render mode: XX RENDER MODE: 2. ||'Matching' means the part numbers are the same. XX'MATCHING' MEANS THE PART NUMBERS ARE THE SAME. Figure 1 – Blank translate template file ("before translation"). ru 0. || Playback mode: режим воспроизведения: 1. || Render mode: графический режим: 2. ||'Matching' means the part numbers are the same. «Соответствие» означает, что номера деталей совпадают. Figure 2 – After translating to Russian ("after translation"). The first line in the translation file ("ru") is actually a header line that designates the language. The header line contains one of these language codes, depending on the language. Table 1 – Language codes Language code Language bg Bulgarian en English es Spanish fr French pt Portuguese pl Polish ru Russian zhHans Chinese Simplified zhHant Chinese Traditional de German nl Dutch tr Turkish ja Japanese it Italian After the "ru" language designation in the example, the first translation pair is, 0. || Playback mode: режим воспроизведения: The first line in the pair is the English phrase to be translated. It begins with a comment (in this case "0. "), followed by two vertical bars, followed by the exact text of the English phrase. The comment is either a count or the words "NON-MATCHING" if the translation phrase is obsolete. The comment -- all the text before the two vertical bars -- has no effect on the actual translation. The comments are included as a nicety for the person doing the translation, so you can keep track of where you are. The text after the comment and double bars is the exact text of the English phrase. Please leave this text exactly as it is. The second line of the pair is the translation, which should match the meaning of the English phrase, and should have the same punctuation at the beginning and end of the phrase. Some of the translation phrases are fractional parts of sentences that get combined in the user interface to make full sentences, so it is important that if the English phrase begins with punctuation or a space, then the corresponding translation phrase must also begin with the same punctuation or space, so the punctuation and spacing are correct when combined. Look at this first pair -- do you notice that there's a space after the double bar, before the word "Playback?" There's also a corresponding space at the beginning of the Russian translation phrase.
To create and export a script for the Fire Pioneer firing system, please follow these three steps: Design the show. Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 3 creates the script file, which is a CSV file that you can import into the Fire Pioneer software. Figure 1 – Fire Pioneer control panel The CSV header row defines the fields, and the terminology is similar to the column headers in Finale 3D. A few differences to note are: Track in Finale 3D means “Segment” in Fire Pioneer, no difference. Hazard in Finale 3D means “Priority” in Fire Pioneer. Part Number in Finale 3D doesn't have a corresponding field in the Fire Pioneer script format, so it is stored in the “EffectComment1” field in the exported Fire Pioneer script. The other minor variations in terminology and adaptations are explained in Table 3, below. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV UTF-8 with BOM (0xef 0xbb 0xbf) ; (semi-colon) CRLF The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time. Multiple effects can be combined on a single cue. The special characteristics of the script are shown in the following table: Table 2 – Special characteristics Special characteristics Description Sort order of rows Rows sorted ascending by effect time. What rows represent Each row represents a unique firing event, a module/pin/event-time combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row. Events at different times are necessarily different rows, even if their addresses are the same. For example, two flame projector shots at different times, triggered by the same module-pin address, will be two rows because they are at different times. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Multi-hit pins Non-pyro effects like flames and relays can be triggered multiple times on the same module-pin address. The standard pyro addressing functions in Finale 3D assign pins sequentially, so it may be easiest to address multi-hit pins in Finale 3D by editing the script table by hand and then locking the edited rows so the show can be re-addressed for pyro without affecting them. Special characters The characters ‘ and “ and , and ; and and tab and newline will be filtered out of any text fields. Minimum separation between cues None required; millisecond resolution supported. Module specifications Supports 99 modules (numbered 1-99), each module with 32 pins (numbered 0-31). After the header, each row in the script has a number of fields separated by the semi-colon character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description Eid The row number in the script, beginning with 1. EventDescription The word "Event" immediately followed by the row number in the script, beginning with 1. EffectDescription A description of the effect, preceded by a count in parentheses if the row represents more than one device, such as for a chain or a pair of effects ignited together. ScriptTimeText The effect time, formatted as HH:MM:SS,DDD. Position The position name. Angle ASCII-art characters ( | /) indicating the angles of the shots; multiple characters if multiple devices are ignited by this firing row, e.g., / for an angled pair. Qty Number of devices ignited by this firing row if more than 1, or 1 as the minimum value. Address The firing system address of the shot: a four digit number, the first two digits being the module number (1-99), and the second two digits being the pin number (0-31). Priority The Hazard class, from 0-8, with 0 being the default value (the Hazard field in Finale 3D). Segment The track number, 0-9999, with 0 being the default value (the Track field in Finale 3D). Comment The script notes for the row (the Notes field in Finale 3D). ScriptTimeMS The effect time, in milliseconds. FireTimeMS The event time, in milliseconds. Type The type of the effect, which in Finale 3D is restricted to one of these enumerated values: cake, candle, single_shot, shell, ground, rocket, mine, comet, flame, other_effect, not_an_effect, rack. Cal The size of the effect, including units (e.g., 75mm); since double quote characters are filtered out of the exported Fire Pioneer script file, they will be missing from effect sizes in inches (e.g., 2.5 instead of 2.5") (the Size field in Finale 3D). Breaktime The prefire time of the effect, formatted as a floating point number (the Prefire field in Finale 3D). Duration The duration of the effect, formatted as a floating point number. VendorNumber The manufacturer part number of the effect (the Manufacturer Part Number field in Finale 3D). Location The standard storage location for the effect (the Storage Location field in Finale 3D). PRICE1 The standard price for the effect (the Price field in Finale 3D). PRICE2 The standard cost for the effect (the Cost field in Finale 3D). PRICE3 Finale 3D writes 0 to this field. EffectComment1 Finale 3D writes the part number in this field (the Part Number field in Finale 3D). EffectComment2 Finale 3D leaves this field blank. FireoneSlat Finale 3D writes 0 to this field. FireoneCue Finale 3D writes 0 to this field. PyroAddr Finale 3D writes 0 to this field. An example script is shown below. Notice the last two rows are at the same event time but have different modules and therefore cannot be combined into a single row. Eid;EventDescription;EffectDescription;ScriptTimeText;FireTimeText;Position;Angle;Qty;Address;Priority;Segment;Comment;ScriptTimeMS;FireTimeMS;Type;Cal;Breaktime;Duration;VendorNumber;Location;PRICE1;PRICE2;PRICE3;EffectComment1;EffectComment2;FireoneSlat;FireoneCue;PyroAddr 1;Event1;Green Chrysanthemum;00:00:05,000;00:00:02,760;Pos-01;|;1;0100;0;0;;5000;2760;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 2;Event2;Green Chrysanthemum;00:00:05,100;00:00:02,860;Pos-02;|;1;0200;0;0;;5100;2860;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 3;Event3;Green Chrysanthemum;00:00:05,200;00:00:02,960;Pos-03;|;1;0300;0;0;;5200;2960;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 4;Event4;Green Chrysanthemum;00:00:05,300;00:00:03,060;Pos-04;|;1;0400;0;0;;5300;3060;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 5;Event5;Green Chrysanthemum;00:00:05,400;00:00:03,160;Pos-05;|;1;0500;0;0;;5400;3160;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 6;Event6;Green Chrysanthemum;00:00:05,500;00:00:03,260;Pos-06;|;1;0600;0;0;;5500;3260;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 7;Event7;Green Chrysanthemum;00:00:05,600;00:00:03,360;Pos-07;|;1;0700;0;0;;5600;3360;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 8;Event8;Green Chrysanthemum;00:00:05,700;00:00:03,460;Pos-08;|;1;0800;0;0;;5700;3460;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 9;Event9;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-08;|;1;0801;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 10;Event10;Green Chrysanthemum;00:00:05,800;00:00:03,560;Pos-09;|;1;0900;0;0;;5800;3560;shell;2;2.24;1,02;G2SH1003;;1,45;0,0;0;G2SH1003;;0;0;0 Figure 1 – Example Fire Pioneer script Table 4 – Example files Download link Explanation firepioneer.csv Example exported file (CSV) test_firepioneer.fin Example show file
Show designers usually avoid splitting chains across racks if the chained shells are straight up, but if shells are fanned out at angles then they may choose to spread the chained shells across multiple racks that are tilted at the required angles, usually one shell per rack ("Cross-loading"). Alternatively, designers sometimes use racks or rack assemblies that are pre-built with tubes angled to match the angles of the chained shells ("fan-racks"). When you layout your racks in Finale 3D, you sometimes need to add constraints in the addressing procedure to direct the software to put chains in the racks you intend for them, when multiple alternatives exist. Figure 1 – Rack layout with three possibilities for racking chains of fanned shells For example, Figure 1 shows a rack layout with various possibilities for racking a show consisting of seven chains of 5 shells each (-20, -10, 0, 10, and 20 degree angles). The group of five vertically oriented racks in the top left are fanned out at the matching angles, so each chain of five shells could be cross-loaded with one shell in each of those racks. The group of seven horizontally oriented racks in the top right are fan-racks, each with five tubes at the matching angles (there is no way to tell the angles of the individual tubes from looking at the rack layout diagram, though you would know what types of racks they were if you added the racks and arranged the layout yourself). The seven chains could all be loaded into these fan-racks, one chain per rack. The third possibility is the pairs of racks at the base of the diagram. Since the pairs of racks aren't close together, this option is probably undesirable or even physically impossible, but a rack layout for a show containing independent shells in addition to chains in the same position may have racks like these, and it may be necessary to direct the software not to load chains into them. All three of these possibilities presume the show designer wants each chain to have fanned out shells instead of firing five chains simultaneously, one angle per chain. By the time you address the show, you've already made this decision, because the chains in the script either contain shells at fanned out angles or at one angle per chain. Figure 2 – The bad possibility--chains assigned to unintended racks, far apart Figure 2 illustrated the bad possibility, in which each chain's shells are spread across racks that are far apart. The numbers in the racks (0-6) are the pin numbers firing the seven chains. All the shells of a chain are ignited by the same pin, so as you can see, the five shells of the chain fired by pin 0 occupy the top-left tube of each pair of racks. This racking assignment might be the result of addressing the show with the addressing settings shown in Figure 3. Figure 3 – No rack related constraints, so chains may end up in any racks with matching angles The Finale 3D addressing algorithm will assign racks to shells roughly in the order the racks were inserted into the rack layout, subject to their compatibility, so you could avoid Figure 3 by cutting the pairs of racks out (control-x) and pasting them back (control-v) to make the software consider them last. There's a better solution though -- to use constraints to filter out the possibilities that you don't want. Let us imagine that you would like to cross-load the chains into the racks in the upper left. What's the difference between those racks and the pairs of racks at the bottom? The racks in the upper left are all close together, in the same "rack cluster" (i.e., snapped together in the rack layout view). To restrict chains to the same rack cluster, ensuring the shells are close together, you can simply add the constraint, "pin constrained to a single rack cluster". The reason that constraint applies to chains is that all the shells of a chain are ignited fuses that trace back to the same pin on the firing system module, so constraining shells of the same pin to a single rack cluster will necessarily constrain shells of the same chain to a single rack cluster. Figure 4 – Constraining a pin to a single rack cluster constrains chains to a single rack cluster. The addressing settings of Figure 4 add the rack cluster constraint to the pin. The result is shown in Figure 5. Figure 5 – The pairs of racks at the bottom do not satisfy the rack cluster constraint for the chains. If you would prefer to use the fan-racks in the upper right, each chain being housed in a single rack, the constraint is simply "pin constrained to a single rack", i.e., just as in Figure 4 except "Rack" instead of "Rack Cluster." Figure 6 – The rack constraint forces each chain to go into a single rack. The result of the rack constraint is that the chains go into the fan racks, since those are the only racks in the layout that satisfy the constraint that each chain's shells (all on the same pin) go into the same rack. Figure 7 – The fan-racks each have tubes at -20, -10, 0, 10, 20 matching the of the chain's shells. If you notice, the addressing settings in Figures 3, 4, and 6 all sort chains first, after positions. This sorting option doesn't matter in this example show consists only of chains, but for shows that have positions with chains and individual shells, it is often a good idea to address the chains first so they fill up the racks first, and individual shells fill in the leftover tubes. If you have fan racks in the rack layout intended especially for chains, you need the sort order to prevent the individual shells from filling them up.
Congratulations on your purchase of Finale 3D! This page includes instructions for activating or moving licenses between computers, assigning licenses to other company employees, and connecting to the company inventory account (if the company uses Finale Inventory). All these settings are menu items in the "My Account" menu at the top of the finale3d.com website after you login to the website. Skip over any steps you don't care about, and follow the instructions that you need: Activating machine licenses. Each Finale 3D license that you buy or that is assigned to you automatically creates a machine activation on the first machine you log into. If you need to change machines because the machine breaks or for some other occasional need, please click the Reset Machine button to clear the machine activation. Then the license will automatically create a machine activation on the next machine you log into. You can reset the machine activations for each license up to 12 times per year. If you need to change computers more often than that, you can buy additional machine licenses for a small cost to extend the number of machines a user license can operate on. Finale 3D: Reset Machine Activation Figure 1 – Reset machine activation video tutorial Assigning licenses to other company employees. Individuals who purchase Finale 3D for themselves can ignore this step, because when you purchase a license it is automatically assigned to you (the purchaser) by default. If you are the administrator or owner of a fireworks company, however, you can purchase all the licenses that your company needs, and you can assign them -- or re-assign them -- to your employees (for example, if an employee leaves the company, you can re-assign the license to a different employee).The 'Assign Licenses to Other People' page shows all the licenses you have purchased, and who they are currently assigned to. At any time, you can click on the "Assignee email" field and re-assign a license to a different user. The user you assign the license to doesn't even need to have a Finale 3D account at the time you make the assignment. Whether he already has an account or makes his account later, the next time he logs in with the assignee email address, he will see the license assigned to him in the Machine Activations page. Finale 3D: Assigning Licenses Figure 2 – Assigning licenses video tutorial Configuring what supplier catalogs are downloaded to your computer. Supplier catalogs are commercially available effects lists (with simulations) managed by suppliers. When you subscribe to supplier catalogs, they appear as options in the blue selector menu in Finale 3D's Effects window. You will receive updates to these collections automatically when suppliers update their specifications or simulations. You can subscribe to any of the supplier catalogs, or none of them. Finale 3D takes a little longer to launch and check for updates the more catalogs you subscribe to, so to keep things fast it is usually best to subscribe only to the catalogs you expect to use. Finale 3D: Access Supplier Catalogs Figure 3 – Supplier catalog video tutorial Connecting to a Finale Inventory account. Finale 3D can connect directly to your own Finale Inventory account if you have one, or indirectly to a Finale Inventory account that another user (usually the owner or administrator of the account) gives you access to. If you don't have an account yourself, then please leave the inventory connection fields blank. If you have a Master Inventory account from Finale Business, please copy/paste the URL from your Finale Business account page settings into the URL field (the first field), and enter your existing Finale Business username and password (not your 3D login email) in the next two fields. If you have a paid Finale Inventory account, copy/paste the URL that you use to access your account from the web (it looks like, https://app.finaleinventory.com/YOUR_COMPANY_NAME_HERE/sc2/), and enter whatever username and password you use to access Finale Inventory in the next two fields. If you are the administrator of an inventory account for a company or club, you can grant permissions to allow other Finale 3D users to access the inventory account that you are directly connected to, and you can control whether these users have the ability to make changes or see prices. You can also turn off your own ability to make changes, if all you want is read-only access. To add users, just enter the email address they use to login to Finale 3D (or will use if they don't yet have an account). The next time they login, they will see this inventory. Finale 3D: Connecting Finale Inventory Figure 4 – Finale Inventory connection video tutorial Adjusting settings for the Finale Inventory accounts you are connected to. Your Finale 3D application can connect to multiple Finale Inventory accounts at the same time. For example, if you work for a company, you may have access to that company's inventory account. Yet you may also have access to your own inventory account, or to a club inventory account. All of the inventory accounts that you have connected to directly or been given access to will appear on the Finale Inventory Settings page, so you can configure them. With each inventory, you have some options. Turn off 'Download Inventory' to completely ignore that Finale Inventory. Turn on 'Chains Count As One' if the Finale Inventory quantities for chains of N shells are just one for the whole chain. Turn on 'Available Column Does Not Include Unreceived Purchase Orders' if you want 'Available' to mean simply quantity on hand minus quantity reserved for sales orders. Turn on 'Break Apart And Recombine Assortment Quantities In Sales Orders' if you want to convert sales order quantities from generic assorted shells to the specific shells in the assortment. Finale 3D: Finale Inventory Settings Figure 5 – Finale Inventory settings video tutorial
The Pro version of Finale 3D imports models in the SketchUp model format, which have the filename extension "skp". If you want to use a free, publicly available model, there are more than a million models of buildings, bridges, and other fireworks venues all around the world, available in the SketchUp 3D Warehouse. You can download and add models to your Finale 3D scene following these steps: Visit https://3dwarehouse.sketchup.com and search for a model of a specific structure (e.g., typing "golden gate bridge" into the search box) or search for a generic structure (typing "barge"). On the search results page, select the "Models" tab. Click on the thumbnail image for a model to view the details. In the details panel, look at the number of polygons in the model. Finale 3D can import models of up to 100,000 polygons, but as a general rule you should look for a model with 10,000 polygons or so. If it is a very simple model, as low as 500 polygons might be okay. If it is complex, 50,000 polygons is no problem. But if the model has only one or two polygons, that's a clue it is not a real 3D model. If it has more than 100,000 polygons, it may be too complex for real time simulation. After finding a model with the right level of complexity, select "Download > SketchUp 2023 Model" to download the model to your computer. From Finale 3D, choose the menu item "Scenery > Models > Add model", and select the SketchUp model that you downloaded to your computer. That's it! If you want to use your own model that is in a different format, then you will need to convert your model to the "skp" format. Some modelling applications can save in this file format directly, in which case simply save the model in the "skp" format and that's all there is to it. If your modelling application does not save in the "skp" format, then you'll need to the SketchUp Pro software to import your model from its native format and to save it in the "skp" format. At the time of this writing, the free version of SketchUp does not include the capability of importing from other model formats. To import and convert models to the "skp" format, you will need to use the SketchUp Pro desktop modeling software, available from https://www.sketchup.com/plans-and-pricing/compare SketchUp Pro can import files in a variety of formats including: 3DS, DAE, DWG, DXF, STL, KMZ. Once you've downloaded and launched SketchUp Pro, import your model and make any required changes. If the original model has millions of polygons or tens of megabytes of textures, you may need to edit the model to reduce its complexity. One way to reduce model complexity is using the "Skimp" plugin for SketchUp, available from https://skimp4sketchup.com When your model is ready to export from SketchUp Pro, do File > Save as... and choose "SketchUp 2023 (*.skp)" in the save as dialog.
To create and export a FIR or SEM script for the FireOne firing system, please follow the steps below. For "Scripted DMX", please export a FireOne CSV script as described here. Design the show. If you are creating a semi-automatic show (SEM file), then select the ranges of the effects on the timeline corresponding to triggered sequences and assign them a track number by right clicking on the selected group and doing "Edit properties..." from the context menu. Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 3 creates the script file, which is a FIR file or SEM file depending on your choices in the dialog. The file format details are described in this section. Figure 1 – Fireone control panel FireOne has two firing system script formats, FIR and SEM, for standard start-to-end shows and for manually triggered “semi-automatic” shows, respectively. The script files are mostly the same, except for the difference in file extension and a few fields, which are specified in the tables below. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line MDB .FIR or .SEM UTF-16 Not applicable Not applicable FIR and SEM files are actually MDB files with the extension renamed. MDB is the 32-bit format for Microsoft Access database applications. It used to be that Microsoft Access and Excel could open MDB files directly, making it easy to view the data in FireOne script files, but after the transition to 64-bit systems Microsoft no longer supports reading or writing MDB files from its applications. For your convenience, Finale 3D has a function, “File > Tools > Open firing system script as generic table” which opens a FIR or SEM file as a generic table for you to view or copy/paste into Excel or other applications, if you have need. Table 2 – Special characteristics Special characteristics Description Time representation All times are represented in decimal fractions of a second, either as a string in a time format "00:00:00.00" or as an integer milliseconds. In spite of the fact that the integer fields are in milliseconds and that FireOne hardware ostensibly supports millisecond resolution (as does Finale 3D), the FIR and SEM files are only capable of representing hundredth of a second resolution. SMPTE 29.97 NDF The FireOne controller does not compensate for the slower-than-wall-clock rate of time progression in SMPTE 29.97 NDF timecode inside the controller, but Finale 3D provides an option to "Adjust times for SMPTE 29.97 NDF timecode" in the FireOne script exporter. For detailed instructions see SMPTE 29.97 NDF (non-drop frame). Sort order of rows In FIR files, rows are sorted ascending by event time. In SEM files, rows are sorted first by event number (corresponding to the Track number in the Finale 3D script), then ascending by event time. Thus in the SEM files each sequence of rows with the same event number is a contiguous sequence, beginning with the first row having a delay time of 0. What rows represent Each row represents a unique module-pin-eventTime combination, and contains all the information in the script file that is associated with that module-pin-eventTime combination. For example, a chain of five shells will be one row, not five. A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects. A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row. However, two flame projector shots at different times, triggered by the same module-pin, will be two rows because they are at different times. Chains counting as one unit Some display companies follow the convention that one chain is one unit for stock keeping records; others follow the convention that a chain of five shells is five units. The FireOne FIR and SEM files have a Qty field that represents the number of units. The meaning of this field for chains -- whether it is the number of shells in the chain or just one per chain -- cannot be determined from the file intrinsically, so when you import a FireOne FIR file into Finale 3D, you are given the option to choose whether chain quantities indicate the number of chains or devices. When you export a FIR or SEM file from Finale 3D, the quantity is always counting individual devices (not full chains). Time base Finale 3D only supports the hundredths-of-a-second time base HH:MM:SS.XX for FireOneFIR and SEM script files, both for importing and exporting. Please make sure your firing system is configured for the hundredths-of-a-second time base, as opposed to a frames time base. Tables in the FIR and SEM file FireOne FIR and SEM files exported from Finale 3D will contain two tables, SMPTE and FireData. The SMPTE table will contain a single row with four fields: TimeBase, ShowName, CuesPerSlat, ReportTimeBase; the fields having values HH:MM:SS.XX, the name of the show, 32, and hh:mm:ss.x. The FireData table will contain the fields defined in the table below. Special characters FIR and SEM file data may include all Unicode characters (represented in UTF-16 in the MDB file). Semi-automatic firing In Finale 3D, the Track property in script rows indicates the sequence identifier for semi-autonomous firing mode (please unhide the Track property in the script to use this feature). The rows in each sequence of a SEM file 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. To create an SEM file instead of a FIR file, please choose "Semi-Automatic (SEM)" from the export options dialog when you export the script. See Semi-automatic firing for instructions. Using only 30 pins In the addressing dialog and the position properties dialog, you can choose the "FireOne Module, 30 Pins" instead of the standard "FireOne Module" if you want to leave the last two pins unused. You can also create a custom module in the "Addressing > Addressing settings" menu with an arbitrary maximum number of used pins. Multi-hit pins Non-pyro effects like flames and relays can be triggered multiple times on the same module-pin. 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 While FireOne modules all have 32 pins, you may have hardware to divide the pins up into slats, such as four slats of 8 pins each, for the purpose of igniting effects at multiple launch positions without all the ematches extending all the way to the module. When using slats it is essential that the pin numbers used for effects at a position correspond only to the slats at that position. Finale 3D’s addressing functions support addressing constraints based on slats to allow slats from the same module to be located at different positions. Although FireOne module/pin addresses don’t provide any indication of slats (each module’s pins are 1-32 no matter how you might partition them into slats), you can configure the modules in Finale 3D as having “virtual slats” in order to make use of the slat-based addressing constraints. 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 32 pins that are distributed out to four launch positions on four physical “slats” or “rails” with 8 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. To partition the pins into virtual slats, create a custom FireOne module with a rail address template like #99-D-#8 to split the 32 pin modules into four 8-pin slats, A, B, C, D. Because these are virtual slats, even though their addresses appear like “2-B” and “3” for module 2, slat B, pin 3 (of slat B), the addresses are converted automatically in the exported FIR or SEM script the contiguous 32-pin range of the module. The virtual slat address “2-B” and “3” convert to module 2, pin 11 (pins 1-8 correspond to slat A, so the third pin in slat B is pin 11). Ignored fields in FIR and SEM files The FIR and SEM file format includes the following fields that are ignored by Finale 3D for importing and exporting: ID, ScriptTime, BreakTime, Type, Length, SayWhen, SayWhenText, SayWhat, Conflict, PyroSlat, PyroCue. The ScriptTime and BreakTime fields are obsolete fields in the file format. The Type field is ignored when importing into Finale 3D because it is a free form text field that may not match the specific type values permitted in Finale 3D’s Type field; and ignored when exporting to avoid confusion about that. When you export a firing script for FireOne, Finale 3D presents an "Export Options" dialog with the option to export a FIR file or SEM file, as shown in Table 3. Table 3 – Export options Option name Description Script Type Choose one Standard Script (FIR) or Semi-Automatic Script (SEM). The script data rows in the FIR and SEM files contain the fields shown in Table 4 and Table 5, in addition to the ignored fields mentioned above. Except where noted, Finale 3D both imports and exports these fields, allowing you to import existing shows previously scripted in other software and saved as FIR files, or to re-import shows previously exported from Finale 3D. Obviously, since FIR files do not contain all the information in a Finale 3D show file, such as the coordinates of the positions, some information is lost if you export a FIR file and then re-import it. But in all cases, when you import FIR files Finale 3D will create simulations from the descriptions automatically and layout the positions in a reasonable default arrangement, so importing FIR files usually produces a usable result for making a render or editing the script. Table 4 – Specifications of script fields Field name Description LaunchTimeMS (Integer) Event time in milliseconds, rounded to nearest hundredth of a second LaunchTimeText (String) Event time in the format 00:00:00.00 ScriptTimeMS (Integer) Effect time in milliseconds, rounded to nearest hundredth of a second ScriptTimeText (String) Effect time in the format 00:00:00.00 DelayTimeMS (Integer) The value 0 (different for SEM files; see below) DelayTimeText (String) The value "00:00:00.00" (different for SEM files; see below) Slat (Integer from 1 to 99) Module address number Cue (Integer from 1 to 32) Pin address number Position (String, up to 10 UTF-16 code units) Launch position names, separated by spaces; but truncated to 10 characters in accordance with the file format restrictions Qty (Integer) Number of devices Priority (Integer from 1 to 16) Safety/hazard group number from the "Hazard" column, 1 by default Description (String, up to 60 UTF-16 code units) The effect name, or first effect name if there are multiple Comment (String, up to 60 UTF-16 code units) Combined notes from all rows in the Finale 3D script associated with this module-pin combination, with redundant notes eliminated, separated by spaces ProductNumber (String, up to 16 UTF-16 code units) The part number of the effect, or the first effect if there are more than one; the first effect being arbitrarily chosen if there are multiple effects at the same time for this module-pin combination Size (String, up to 8 UTF-16 code units) The caliber with or without units, e.g., 3 or 3" or 75mm (greatest caliber if multiple effects); or "na" if blank Event (Integer) The value 0 (different for SEM files; see below). Ignored when importing FIR files. Effects (String, up to 16 UTF-16 code units) The angle of the first shot, printed as signed integer. Angles exported from Finale 3D follow the convention that 0 is up and negative numbers are to the left. Angles imported into Finale 3D follow that convention by default, but the user has the option of selecting a different angle convention at time of import. Duration (String, unknown length limit) This field is not exported by Finale 3D, but it is imported. When imported, it is interpreted as the duration of the effect, if the field is not empty. The units (milliseconds, seconds, etc.) can be specified by the user at the time of importing. If the field is empty, Finale 3D will generate a default duration based on the effect type and size. Location (String, unknown length limit) This field is not exported by Finale 3D, but it is imported as the “Storage Location” field. Cost (String, unknown length limit) This field is not exported by Finale 3D, but it is imported as the “Cost” field. VendorNumber (String, up to 20 UTF-16 code units) The Manufacturer field of the effect, or of the first effect if there are more than one; the first effect being arbitrarily chosen if there are multiple effects at the same time for this module-pin combination The firing rows in an SEM file are the same except for these changes: Table 5 – SEM file differences Field name Description Field name Description DelayTimeMS (Integer) Event time delta from the first firing row in the triggered sequence, in milliseconds rounded to nearest hundredth of a second DelayTimeText (String) Event time delta in the format 00:00:00.00 Event (Integer from 1 to 999) Track number, or 1 if no track number An example SEM script file is shown below, with the vertical bar (|) separating fields. This example consists of two tracks, each with nine consecutive shots separated by 0.1 seconds. Scrolling to the right, you can see the last numerical field in each row, which is the Event field, representing the track, is “1” for the first nine rows and “2” for the second nine rows. You can also see, in approximately the middle of the rows, that the DelayTimeMs fields of the rows are 0, 100, 200, … 800, 0, 100, 200, … 800, reflecting the fact that the first event in each track has a delay time of zero, and the subsequent rows in the track have delays that increase by 100ms. ID|ScriptTime|Position|Qty|BreakTime|Duration|Priority|Cost|Location|Comment|LaunchTime|Description|ProductNumber|Size|Color|VendorNumber|Type|ScriptTimeMS|LaunchTimeMS|DelayTimeMS|ScriptTimeText|LaunchTimeText|DelayTimeText|Effects|Event|Slat|Cue|Length|SayWhen|SayWhenText|SayWhat|Conflict|PyroSlat|PyroCue 2||Pos-01|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5000|1720|0|00:00:05.00 |00:00:01.72 |00:00:00.00 |-45 |1|1|1||||||| 3||Pos-02|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5100|1820|100|00:00:05.10 |00:00:01.82 |00:00:00.10 |-34 |1|2|1||||||| 4||Pos-03|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5200|1920|200|00:00:05.20 |00:00:01.92 |00:00:00.20 |-22 |1|3|1||||||| 5||Pos-04|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5300|2020|300|00:00:05.30 |00:00:02.02 |00:00:00.30 |-11 |1|4|1||||||| 6||Pos-05|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5400|2120|400|00:00:05.40 |00:00:02.12 |00:00:00.40 | |1|5|1||||||| 7||Pos-06|1|||1|||note1|0.0|extérieur vert centre bleu|P1249|3.94||||5500|2220|500|00:00:05.50 |00:00:02.22 |00:00:00.50 |11 |1|6|1||||||| 8||Pos-07|1|||1|||note2|0.0|extérieur vert centre bleu|P1249|3.94||||5600|2320|600|00:00:05.60 |00:00:02.32 |00:00:00.60 |23 |1|7|1||||||| 9||Pos-08|1|||1|||note3|0.0|extérieur vert centre bleu|P1249|3.94||||5700|2420|700|00:00:05.70 |00:00:02.42 |00:00:00.70 |34 |1|8|1||||||| 10||Pos-09|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||5800|2520|800|00:00:05.80 |00:00:02.52 |00:00:00.80 |45 |1|9|1||||||| 11||Pos-01|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10000|6720|0|00:00:10.00 |00:00:06.72 |00:00:00.00 |-45 |2|1|2||||||| 12||Pos-02|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10100|6820|100|00:00:10.10 |00:00:06.82 |00:00:00.10 |-34 |2|2|2||||||| 13||Pos-03|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10200|6920|200|00:00:10.20 |00:00:06.92 |00:00:00.20 |-22 |2|3|2||||||| 14||Pos-04|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10300|7020|300|00:00:10.30 |00:00:07.02 |00:00:00.30 |-11 |2|4|2||||||| 15||Pos-05|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10400|7120|400|00:00:10.40 |00:00:07.12 |00:00:00.40 | |2|5|2||||||| 16||Pos-06|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10500|7220|500|00:00:10.50 |00:00:07.22 |00:00:00.50 |11 |2|6|2||||||| 17||Pos-07|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10600|7320|600|00:00:10.60 |00:00:07.32 |00:00:00.60 |23 |2|7|2||||||| 18||Pos-08|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10700|7420|700|00:00:10.70 |00:00:07.42 |00:00:00.70 |34 |2|8|2||||||| 19||Pos-09|1|||1||| |0.0|extérieur vert centre bleu|P1249|3.94||||10800|7520|800|00:00:10.80 |00:00:07.52 |00:00:00.80 |45 |2|9|2||||||| Figure 2 – Example FireOne SEM script for semi-automatic firing Table 6 – Example files Download link Explanation fireone_tiny_fir.fir Example exported FIR file fireone_tiny_sem.sem Example exported SEM file fireone_tiny_fir.fin Example show file addressed for start-to-end firing (FIR) fireone_tiny_sem.fin Example show file addressed for semi-automatic firing (SEM)
A number of firing systems support manually triggered sequences, as an alternative to an entire show that plays from start to end. The manually triggered sequence mode for firing systems is generally called “semi-automatic” firing. Some firing systems call it "manual" mode or "step by tracks" or "separate scripts" mode. Whatever the firing system calls it, if you are designing a semi-automatic show, you need to split up the show into the separately triggered sequences. In Finale 3D, individual sequences are identified using the “Track” column in the script window. This column is hidden by default, to make it visible, go to the blue gear menu in the script window > Hide or unhide column > Track. For some firing systems, setting the Track column values automatically makes the script semi-automatic. For other firing systems, you need to select semi-automatic mode in the export options dialog presented when you export the script. Using FireOne as an example, choosing the semi-automatic export option will cause a SEM file to be generated instead of an FIR file. Generally, designers lay out the sequences one after another on the timeline, with a little space in between. After doing the design, a unique track value for each sequence needs to be specified. One of the following options can be used to set the track values: Option 1) Type and/or use copy and paste to enter the track values directly into the "Track" column in the script window. (see Figure 1 below) Option 2) Select the events for a particular sequence, then go to "Script (menu) > Tracks > Set track..." (see Figure 2 below) Option 3) Select the events for a particular sequence, then right-click on one of the selected events, choose "Edit Properties", then enter the track value in the Track field (see Figure 3 below) Figure 1 – Setting the Track value in the script window. Figure 2 – Setting the Track value from the Script menu. Figure 3 – Setting the Track value in the “Edit properties” dialog. Since firing system addresses may depend on the sequence values, you should set the Track field before addressing the show, in this order: Divide show into sequences on the timeline one after another. Select each sequence and assign its Track value. Address show. Export script.
Finale 3D can import and export show files in the GS2 format, which is the interchange format for Galaxis firing systems. You can design shows in Finale 3D, export them in GS2, and then transfer the firing data to the Galaxis controllers using the Pyrotec Composer software available from Galaxis, or you can design shows in Pyrotec Composer and import the GS2 files into Finale 3D to make simulation videos. The recent Version 2.6 of the GS2 format includes the device allocation tables in the specifications, removing the need to construct the table manually when importing into Pyrotec Composer, as discussed more fully below. To create and export a script for the Galaxis firing system, please follow these steps: Set module type. Choose one module type for the full show in "Show > Set show information..." or in "Addressing > Addres show...", or choose different module types per-position by right clicking positions and doing "Edit position properties" from the context menu. Configure show for flames (if using G-Flame). If you are designing a show with G-Flames, each G-Flame device is represented as a separate position exclusively for that device (no pyro from the same position!). Please (a) add the flame positions for your G-Flame units, and (b) set the positions' module types to the correct G-Flame module type, and (c) set their "Start Module" to a distinct module number for each flame position. Choose module numbers for your flame positions that will not conflict with the module numbers used by the pyro positions. See Flame systems basic instructions and Exporting a firing system script for flame systems and Galaxis G-Flame for further instructions. Address show. Use the menu item "Addressing > Address show..." or any of the other addressing methods (see Addressing basic instructions). Export script. Export the script as a GS2 ("File > Export > Export firing scripts..."). Choose at the time of exporting whether you want Finale 3D to implement steppers or not, in the export options described in Table 3 (you can add steppers in the Pyrotec Composer software if you prefer to do it there). Download script. Open the GS2 file in Pyrotec Composer and download to your your hardware. Step 5 creates the script file, which is a text file with a "GS2" extension. The format of the file is difficult for a human to read, so Finale 3D provides the function "File > Tools > Open firing system script as generic table..." to view the contents of the GS2 file in a table window. You can select all in the table window (control-A), then copy (control-C), then paste into an Excel file in order to change the column widths and inspect the data. You can also open the GS2 file directly in Pyrotec Composer. Figure 1 – Galaxis firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text file of concatenated tables of concatenated fields .gs2 Code Page 1252 Carriage return + linefeed (0x0D0A) None The GS2 script is a text file that you can inspect and edit in a text editor, but it is in a format that is difficult to read. The format consists of three header fields, followed by a script table of firing rows with 70 fields for each row, serialized. All fields are separated by carriage return and linefeed but there’s no end-of-line delimiter, which makes the script quite long in a text editor. Finale 3D has the function, “File > Tools > Open firing system script as generic table…” which reads the GS2 file into a table format in a window that you can read more easily, or copy/paste into Excel to examine. Prior to December 2018 the up-to-date version of GS2 was Version 2.4. This file format contained the header and script table, followed by other optional data that was internal to the Pyrotec Composer software. The optional data wasn’t necessary for reading the GS2 into Composer, but if the optional data was not present in the file you would need to rebuild your device allocation tables in Composer before downloading to your devices, which was a significant manual effort for large shows. In December 2018 Galaxis came out with Version 2.6 of GS2, which Finale 3D also supports. Version 2.6 incorporates the device allocation table information in the defined specification of the format, which allows Finale 3D and other software programs to import and export the device allocation table information along with the script table, eliminating the need for you to rebuild it manually in Composer. Loosely speaking, if you design and address a show in Finale 3D you will have specified what module device IDs and what types of modules or G-Flame units go at every position, and what hazard classes are associated with the devices referenced in the rows. Thus by designing a show in Finale 3D you have already created all the information in the Galaxis device allocation tables, so being able to export a Version 2.6 GS2 file format that incorporates this information and doesn’t require you to rebuild it manually is a big time savings. The minimum version number of Pyrotec Composer that supports Version 2.6 of GS2 is V2.3.0.253. Taking into consideration Version 2.4 and Version 2.6 of the GS2 file format, we can say that the format consists of a header, followed by a script table, then either (a) followed by optional Galaxis internal information for the Version 2.4 format, or (b) followed by device allocation tables and then followed by exactly 18775 Galaxis internal information fields for the Version 2.6 format. The Finale 3D function, “File > Tools > Open firing system script as generic table…” will show you all the data of all the defined tables in Version 2.4 and Version 2.6, and will add a header and remove and count the unused rows to make the tables easily readable in glance. Table 2 – Special characteristics Special characteristics Description Time representation Certain fields in the GS2 file (Event Time, and Effect Time) are represented as integers in the Galaxis integer time representation format: an integer whose last two digits represent hundredths of a second, whose next two digits represent seconds, and whose next one or two digits represent minutes. For example, the representation of 1 minute, 20 seconds, 10/100ths is 12010, not 8010. Other fields (Dt and Step Time) are represented simply as integers in hundredths of second. Sort order of rows Rows sorted ascending by event time (ignition time). What rows represent Each firing row represents a quantity of one or more same-type effects at a unique event time, or an additional effect possibly of a different type or angle or position at the previous row’s event time. Thus each event time is represented by one or more sequential rows. The event time count (Field #0) is 1 for the first event, and increments for each new event time. The following "Dt" field (Field #1) is the time delta to the next event time, or blank for additional effects at the previous event time. Chains counting as one unit Some display companies follow the convention that one chain is one unit for stock keeping records; others follow the convention that a chain of five shells is five units. The GS2 file has a Quantity field that represents the number of units. The meaning of this field for chains -- whether it is the number of shells in the chain or just one per chain -- cannot be determined from the file intrinsically. When you export a GS2 file from Finale 3D, the Quantity field will always represent the number of shells in the chain. However, if you import a GS2 file into Finale 3D, you are given the option for whether chain quantities indicate the number of chains or devices. Header The file contains a header consisting of three fields: version, date, and available_SC_ID. The Version is “V2.6” for Version 2.6, and “V2” otherwise. The date is a user-text string, in the format, “8/27/2009-4:42:18 PM”. The available_SC_ID is an integer 10000 + the number of used rows in the script table. Pyrotec Composer Versions The minimum version number of Pyrotec Composer that supports Version 2.6 of GS2 is V2.3.0.253. Galaxis internal information Version 2.4 of the GS2 file contains optional Galaxis internal information fields after the script rows. Version 2.6 contains exactly 18775 opaque fields of Galaxis internal information after the device allocation tables, which optionally can be blank fields. Steppers Galaxis addresses the issue of wireless transmission times by combining rapid sequences of ignition events into short programs ("steppers") triggered by the first ignition time event in the sequence. Galaxis also supports using steppers to combine a user-defined sequence of events as one cue number, so as to reduce the number of cues required for large shows (Galaxis' cue number limit is 999) or to support manual triggering of one sequence at a time (semi-automatic). Finale can export scripts with or without steppers, but if your script contains sequences of events with less than 0.3 seconds between them then you need to export the script with steppers or add the steppers using a command in Pyrotec Composer before downloading to your modules. When you address and export the show in Finale using the "... w/Steppers" modules, Finale 3D will automatically add steppers as required for wireless transmission. If you want to add user-defined stepper sequences, then unhide the "Track" field in the script table, and assign an identifier such as a number or letter to any sequence of rows you would like to make into a stepper sequence. When Finale exports the GS2, any sequence of rows with the same track identifier will be made into a stepper sequence. When converting the script to use steppers, the "Cue" (Field #0), "Dt" (Field #1), "Step Cue" (Field #8), and "Step Delay" (Field #9) fields are changed to represent the stepper programs. Only the first event time in a stepper program counts, so the Cue field is blank for all but the first row in a stepper sequence and any immediately following rows at the same event time. The Dt field for stepper rows is blank except for the first row, which contains the delta to the next counted event time. The Step Cue and Step Delay fields of the first row and immediately following rows at the same ignition time are blank; for subsequent rows the Step Cue is the Cue of the first row, then colon, then the SC-ID of the first row (e.g., 1:10001), and the Step Delay is the time delta between the row's ignition time and the event time of the first row in the stepper sequence. Finale 3D will automatically optimize the stepper sequences to make them as short as possible. For example, if you have a sequence of nine shots at 100ms intervals, Finale 3D will create three steppers, the first stepper handling the first shot at time T, the second shot at T + 100ms, and the third shot at T + 200ms; the second stepper handling the three shots at T + 300ms, T + 400ms, and T+ 500ms; the third stepper handling the three shots at T + 600ms, T + 700ms, T + 800ms. The three stepper sequences are separated by 300ms each, satisfying the Galaxis hardware requirement, and it is not possible to make the stepper sequences any shorter than that. If you would the entire sequence of nine shots be on a single stepper, you set the "Track" field of the nine shots to any unique name or number, and then Finale 3D will keep them together in a single (longer) stepper sequence in the exported GS2 file. “Start Show” row Galaxis firing hardware requires an initial “Start Show” row in the script table at time 0 to initiate the hardware. Finale 3D adds this row to the script table automatically at time of export if the script doesn’t contain an explicit firing event at time 0. Split-matrix boards Galaxis firing systems support partitioning a device’s range of outputs into 10-output “split-matrix boards.” Finale 3D supports split-matrix boards using virtual slats, so you can take advantage of Finale 3D’s powerful addressing and racking features for reasoning with constraints relating to slats (split-matrix boards) being at different physical locations (see Slats, virtual slats, and splitter boxes). For example, suppose you have one device with 100 outputs that are distributed out to ten launch positions by ten split-matrix boards with ten outputs each. It would be important when addressing the show to apply the constraint that each split-matrix board is restricted to addressing shots at a single launch position, for otherwise you might have wires running from position to position. But it would be too restrictive to constrain each device (module) to a single launch position, because that would defeat the whole idea of using split-matrix boxes to distribute the device’s outputs among multiple positions. Using virtual slats to represent split-matrix boards allows you to arrange slats (split-matrix boards) at various positions while having their device ID and outputs refer to the output range of the parent device. In the Finale 3D script, split-matrix boards’ Rail Addresses are two-part addresses, such as 1-A meaning device ID 1, first split-matrix board; or 1-B meaning device ID, second matrix board. The Pin Addresses (outputs) of each split-matrix board are numbered 1-10 in the Finale 3D script, but are converted to the corresponding 10 output sub-range of the parent device’s range of outputs 1-100 when exported to the GS2 file. G-Flame The GS2 file represents G-Flame devices just like any other firing system device, with a device ID and a G-Flame device name (9). For G-Flame units, shots are represented by unique output numbers beginning with 1 and increasing sequentially up to 999. As a special consideration for G-Flame units (but not other Galaxis device types), Finale 3D adjusts event times if necessary to guarantees 0.3 second separation between events on the same G-Flame device, as required by the G-Flame hardware. To design a show with G-Flame devices using Finale 3D, please address the show with "G-Flame Unit" module types if the show is entirely G-Flame effects, or assign "G-Flame Unit" as the module type of specific positions (by editing their position properties) if the show is partially G-Flame effects and partially pyrotechnics. Any single position will be entirely G-Flame or entirely pyrotechnic, depending on its module type. From the effects window, add pyrotechnic effects to the pyrotechnic positions, and add flame effects to the G-Flame positions. Any effect with Type = flame will work, such as the generic effects GFX9800, GFX9801, GFX9802, and GFX9803. The duration of the effect definition will carry through into the exported GS2 file and will control how long the fuel nozzle is open. The script table consists of N * 70 fields concatenated together, where N is the number of rows, each field terminated with the end-of-field delimiter. Version 2.4 may include up to 10,000 rows and nothing more, or exactly 10,000 rows followed by optional internal Pyrotec Composer information. Version 2.6 includes exactly 15,000 rows, followed by device tables, followed by optional internal Pyrotec Composer information. GS2 scripts exported by Finale 3D will contain valid values for the following fields, shown with field numbers counting from 0 (i.e., 0-69). The remaining fields will be empty. Figure 2 – This Galaxis split-matrix board displays the absolute pin numbers that the box is configured for. While slat-based addresses in Finale 3D are displayed as three part addresses (Module-Slat-Pin) with the pin relative to the slat, your Galaxis split-matrix boards display absolute pin numbers relative to the module instead of relative to the slat, as shown in Figure 2. To avoid doing the conversion from slat-relative to module-relative pin numbers in the field, you may want to create custom labels in Finale 3D using the "Pin Absolute" field or the "Module/Pin Address" field, as described in Labels basic instructions. When you export a firing script for Galaxis, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3. Table 3 – Export options Option name Description Version Choose version v2.4 or v2.6. Script Type Choose Steppers or No Steppers. Table 4 – Specifications of script fields Field name Description Field #0, Cue (int or blank) A counting number, beginning with one, of unique event times. Multiple rows with the same event time will have the same count. Often referred to as a "Cue" or "Cue number." Finale 3D writes this field but ignores it when importing GS2 shows. Field #1, Dt (int or blank) Time delta between events, represented as an integer in hundredths of a second. Finale 3D writes this field but ignores it when importing GS2 shows. Field #2, Event Time (int or blank) The ignition time, represented in Galaxis integer time representation. Finale 3D writes this field and reads it when importing GS2 shows. Field #3, Effect Time (int or blank) The visual effect time, represented in Galaxis integer time representation. Finale 3D writes this field and reads it when importing GS2 shows. Field #4, Delay (comma-radix float) The time delay between the Event Time and Effect Time, represented in the format 0,00. The time delay equals the item's prefire time plus any external delay such as a fuse delay. Finale 3D writes this field but ignores it when importing GS2 shows, because it is redundant with the Event Time and Effect Time. Field #5, Duration (comma-radix float) The duration of the effect or chain, in the format 0,00. If the effect is a chain, the duration is the time from first to last shot in the chain. Field #8, Step Cue (int or blank) A parameter for triggering a sequence of events (see "Steppers", above). Finale 3D writes this field but ignores it when importing GS2 shows. Field #9, Step Delay (int or blank) A parameter for triggering a sequence of events, represented as an integer in hundredths of a second. Finale 3D writes this field but ignores it when importing GS2 shows. Field #10, Category (string up to 80 characters) A user-defined type. Finale 3D writes the effect's Type from the Finale script, e.g., shell, comet, mine, etc. Finale ignores this field when importing. NOTE: since Finale ignores this field when importing, please include the type of the effect in the description field (Field #12) if you are going to import the GS2 file into Finale, so it has enough information to create a simulation. For example, the description needs to be "Crackling Comet", not just "Crackling", even if the Category is "Comet". Field #11, Name (string up to 80 characters) The name of the effect as you would read it on the label or on a price list or in reports. Finale 3D reads and writes this field, which may be in a non-English language. When importing, Finale 3D constructs the simulation from the Description field (Field #12) unless it is blank, in which case Finale 3D constructs the simulation based on the Name, as a fallback. Field #12, Description (string up to 80 characters) A description of the effect for the purpose of creating a simulation. Finale 3D reads and writes this field into VDL field of the script, and when importing constructs the simulation on the basis of this field, along with the Size (Field #13), Duration (Field #5), Event Time and Effect Time to calculate lift time (Field #2 and #3), the Angle (Field #23), and in the case of chains the Devices field (Field #21) for the chain count. The Category (Field #10) does not affect the constructed simulation, so the description must indicate what the type of effect is. For example, the description needs to be "Crackling Comet", not just "Crackling", even if the Category is "Comet". The description can be in any language, though when importing Finale 3D constructs accurate simulations most reliably from English descriptions. Field #13, Size (string up to 80 characters) The size of the effect in inches or millimeters. Finale 3D reads and writes this field. Finale 3D writes the effect size string with units, e.g., 100mm or 4", and constructs accurate simulations most reliably when importing if the field includes the units designation, so Finale 3D doesn't have to guess whether it is inches or millimeters. Field #21, Quantity (int) The number of devices represented by the row (e.g., number of shells), except for chains, in which case either (a) the number of chains each counting as one unit (in which case it must be “1”), or (b) the number of devices in the chain. When importing into Finale 3D, the user specifies whether “Chains count as one unit” in a configuration dialog to disambiguate (a) versus (b). When exporting, Finale 3D always writes the device count, meaning (b). Field #22, Position (string up to 80 characters) The name of the launch position from which the effect is fired. Finale 3D reads and writes this field. Field #23, Angle (string up to 80 characters) The angle of the trajectory for all devices represented by this row. A chain or flight of shells in a fan must be split into multiple rows so that each can have an independent angle represented in this field. Finale 3D reads and writes this field in degrees, followed by symbol font arrow characters that indicate left versus right: dG (up), dF (left), and dH (right), e.g., up = 0dG. Field #28, Device Number (int from 1 to 999) Finale 3D reads and writes the module number from the rail address into this field. Shows addressed in Finale 3D for split-matrix boards use virtual slats to identify and separate the ranges of outputs for the split-matrix boards . For 10x10 split-matrix boards , the rail address in the Finale 3D script for each board will be of the form 1-A, where the digit is the module number and the letter (A-J) identifies the split-matrix boards.. In the Finale 3D script, the pins of each split-matrix board are 1-10, but when exported to the GS2 file, the rail address and pin address are combined and converted into the device number and output number of the parent device. For example, pin 1 of split-matrix board 2-D would be device number 2, output number 41. Field #29, Output Number (int from 1 to 999) Finale 3D reads and writes the pin number into this field. For G-Flame units, shots are represented by unique pin numbers (output numbers) beginning with 1 and increasing sequentially. Field #30, SC-ID (int) An internal GS2 row identifier. Finale 3D writes this field when exporting but ignores it when importing. See explanation below. Field #42, Part Number (string up to 80 characters) Finale 3D reads and writes this field. Like the script table, the device allocation tables in the Version 2.6 GS2 format consist of N * M fields concatenated together, where N is the number of rows in each table and M is the number of fields per row, each field terminated with the end-of-field delimiter. The tables are all fixed-size tables, with default values for unused fields. Table 5 – Specifications of device allocation tables Table Description Position Names (1000 strings; default value = blank) An array of the position names referenced by the script rows Device IDs At Positions (10000 ints; default value = 0) A table of 1000 rows corresponding to the 1000 entries in the Position Names table; each row of this table consisting of 10 fields, each field being the integer value of a device ID used at that position; or 0 for unused entries. Device IDs can be used at multiple positions, as is the case for split-matrix boards at multiple positions connected to the same parent device. Device Types Corresponding To IDs At Positions (10000 ints; default value = 0) A table of 1000 rows corresponding to the 1000 entries in the Position Names table; each row of this table consisting of 10 fields; each field representing the device type (“device name”) of the corresponding device ID in the Device IDs At Positions table; or 0 for unused entries. Integer field values correspond to the following enumerated device types: 6 = PFE Advanced - 10 Outputs 7 = PFE Advanced - 50 Outputs 8 = PFE Advanced - 100 Outputs 9 = G-Flame 12 = PFE Advanced Mini - 5 Outputs 16 = PFE Advanced - 20 Outputs In Finale 3D, the module type selected in the addressing configuration dialog or position properties dialog and shown in the script’s Module Or Slat Type column will determine the device type in the exported GS2 file. When importing GS2 files into Finale 3D, the Module Or Slat Type Column will be determined by the device type values in this device allocation table. Hazard Zone Of Each Device ID (1000 single letter fields A-P; default value = blank) An array of hazard zones corresponding to Device IDs 1 to 1000 (i.e., the first entry in the table is Device ID 1) Position Angle In Degrees (1000 ints or blanks; default value = blank) An array of ints corresponding to the heading angle around the Up-axis of the positions in the Position Names table, in degrees. Blank is also a valid entry and is the same as 0. An angle of 0 is facing the audience, such that a right-angled effect trajectory shot from a 0-angle position will be angled right from the audience perspective. Position X Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the X-coordinates (the axis aiming right from audience perspective) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. Position Y Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the Y-coordinates (the axis aiming up) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. Position Z Coordinates In Millimeters (1000 ints or blanks; default value = blank) An array of ints corresponding to the Z-coordinates (the axis aiming forward toward the audience) of the positions in the Position Names table, in millimeters. Blank is also a valid entry and is the same as 0. An example script is shown below in Version 2.6 format. The script contains only three actual shots, but Finale 3D automatically adds a “Start Show” row at the start to initiate the firing hardware, bringing the total number of rows in the script table to four. In the actual GS2 file these tables are fixed length, but to make them readable each table as shown below is truncated to the number of used rows, with a comment in braces indicating the number of used rows. The comments in brackets, including the header row, are not part of the saved file. Also as shown below, the field delimiters 0x0D0A have been changed to vertical bars to make the text more readable. You can see the array of three positions, Pos-01, Pos-02, Pos-03 following the script rows. After the comment you can see the Device IDs At Positions table, then the Device Types Corresponding To IDs At Positions, and so on. {Event Time Count|Dt|Event Time|Effect Time|Delay|Duration|6|7|Step Cue|Step Delay|Category|Name|Description|Size|14|15|16|17|18|19|20|Quantity|Position|Angle|24|25|26|27|Device Number|Output Number|SC-ID|31|32|33|34|35|36|37|38|39|40|41|Part Number|43|44|45|46|47|48|49|50|51|52|53|54|55|56|57|58|59|60|61|62|63|64|65|66|67|68|69} 1|276|0|0|0,00|0,00||||||Start Show|||||||||||||||||||10000 2|10|276|500|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-01|45dF|||||1|1|10001||||||||||||G2SH1000 3|10|286|510|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-02||||||2|1|10002||||||||||||G2SH1000 4||296|520|2,24|1,02|||||shell|Red Chrysanthemum|Red Chrysanthemum|2"||||||||1|Pos-03|45dH|||||3|1|10003||||||||||||G2SH1000 {Script rows : 4} Pos-01 Pos-02 Pos-03 {Position rows : 3} 1|0|0|0|0|0|0|0|0|0 2|0|0|0|0|0|0|0|0|0 3|0|0|0|0|0|0|0|0|0 {Device IDs at position rows : 3} 7|0|0|0|0|0|0|0|0|0 7|0|0|0|0|0|0|0|0|0 8|0|0|0|0|0|0|0|0|0 {Device names at position rows : 3} A B C {Hazard zone per device rows : 3} 0 0 0 {Position rotation angle rows : 3} -50000 -37500 -25000 {Position X rows : 3} 0 0 0 {Position Y rows : 3} -8000 -8000 -8000 {Position Z rows : 3} {Remaining characters in file : 18775} Figure 3 – Example Galaxis GS2 Version 2.6 script (with comments in braces) Table 6 – Example files and downloads Download link Explanation galaxis_tiny_v2p6.gs2 Example exported file in Version 2.6 GS2 format galaxis_tiny_v2p4.gs2 Example exported file in Version 2.4 GS2 format (rename extension as gs2) galaxis_tiny.fin Example show file g_flame_galaxis_standard.fin Show file for G-Flame and pyro example g_flame_galaxis_standard.gs2 Exported GS2 file for G-Flame and pyro example User-Manual-PFC-Advanced-Standard-and-Black-Edition-V2.81-247.pdf Galaxis PFC user manual