Total found:2861
Pyrodigital

In the past, scripting software including our own Finale Business required that you download your script to the Pyrodigital controller using the software application itself.  That was at times inconvenient for people when they needed to download a script from a computer that didn't have the software program installed on it or didn't have a software license.  Finale 3D attempts to solve this problem by splitting the download process into two steps: 1) export the file to be downloaded, and 2) download the file. The two steps can occur at different times, by different people, on different computers.  A show designer can make a last minute change to a script, export the file, and email it to the show operator on site to download from his own PC using the free Pyrodigital downloader (available in Table 5 at the bottom of this page) or a terminal program that doesn't require a software license.  The file to download to the controller is a simple text file, with the file extension PDM. This section provides basic instructions to create a PDM file, and for those who are interested this section also provides the technical specifications of the file format.  To create and export a script to a Pyrodigital controller, please follow these steps: Choose module type. (Show > Set show information...). After you select Pyrodigital as the "Fining System" in Finale 3D, you have the option of selecting the "Module Type". The default module type option is a 16-pin module starting with module number 01. Other options are provided if you prefer to only use 15 pins on each module or if you prefer to use 00 as your first module number. You can select any of the module types for the full show in "Show > Set show information..." or in "Addressing > Address show...", or you can choose different module types per-position by right clicking positions and selecting "Edit position properties". Address show. ("Addressing > Address show...").  Finale 3D provides a variety of addressing methods, including all-at-once, or blueprints, or fill-down.  The easiest method is the function, "Addressing > Address show..." which asks the order of assignment and presents some other options and then addresses the show all at one.  For explanation of the other options, see Addressing basic instructions. Export script. ("File > Export > Export firing system script...").  Having addressed the show, use the export function to create a PDM file to transfer to your Pyrodigital controller.  The export function is separate from the download function in Finale 3D to allow you export and download at different times, or by different people.  For example, a show designer can export the PDM file and give the file to an operator to load onto the controller at a later time. Upon export, you will be provided with a set of export options. The options include your firing system controller version, script type, and time base. There are also options to "Disable FC-3 macro zipper fix feature" and "Disable collapse individual cue macro prefire feature". For more information on these options, see Table 2 below. Download to controller ("File > Download > Download firing system script file to Pyrodigital...").  Having created the PDM file and saved it on your computer, you can download the PDM file to your Pyrodigital controller at any time using Finale 3D. Or, you can download the PDM file using the free Pyrodigital downloader program, shown in Figure 1 below and available for download in Table 5 at the bottom of this page. The PDM file is just a text file, so if you don't have access to Finale 3D or the Pyrodigital downloader, any terminal program that can transfer files with a standard serial protocol will suffice. Figure 1 – Pyrodigital PDM Downloader (developed and supported by Pyrodigital)   Step 3 creates the PDM file.   Although this file is just a text file, the format of the file is not at all easy for a human to read.  To give you the ability to look over the actual file contents before downloading to the controller, if you feel so inclined, Finale 3D provides the function "File > Tools > Open firing system script as generic table..." to view the contents of the PDM 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 if you prefer viewing it in Excel.  This function doesn't provide editing capabilities, but it does enable you to see exactly what the file contains.  If you really just want to do a quick check to make sure the file is valid, and don't want to look over its rows, you can do the function, "File > Tools > Verify PDM file...", which verifies the file is in the proper format and shows a quick summary of its contents. Figure 2 – Pyrodigital FC-A controller   Table 1 – PDM file format and encoding File format Extension Text encoding Field delimiter End-of-line Text file .PDM ASCII None Carriage return  + linefeed (0x0D0A) The PDM 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 a list of rows, followed by a file checksum.  Each row is a list of fields formatted as hexadecimal, with a "start of message" indicator at the beginning of the row and a checksum and end-of-line (CR LF) sequence at the end.  The fields are all fixed width numbers of characters, with no delimiter in between them.  There are 11 fields in the row comprising 28 characters, making the output look like this: N30000000005001E0010000100CB As you can see, these rows are a little difficult to read.  The function "File > Tools > Open firing system script as generic table..." splits out the fields and converts them from hexadecimal to decimal format to make them more readable (except leaving the address field in hexadecimal). Figure 3 – The PDM file shown in a table window.   You will notice even in the table window, there aren't any notes or effect names.  No angles, or any of the other properties of the script as you see it in the scripting software.  That's because those extra properties are not downloaded to the Pyrodigital controller.  The only fields that are ever downloaded to the Pyrodigital controller are the fields in the PDM file, as shown in Figure 3. If you are familiar with the field names at the top of Figure 3, and if you have no need for the technical specifications of this file format, then you can stop reading at this juncture.  If you have a need for an example file, the downloads are at the bottom of the section.   Table 2 – Special characteristics of the PDM file Special characteristics Description Time representation Effect times are represented in a frame based time format (HH, MM, SS, FF).  Event times (the times of the ignitions) are  the effect time minus the prefire time.  The prefire time is represented in tenths of a second.  Frame based time formats include 30fps, 29.97fps SMPTE DF, 29.97fps SMPTE NDF, 25fps, and 24fps.  The PDM file does not contain a specification of its own frame based time format within the file, so it is impossible to interpret the time representation without knowing, a priori, what the time format is. The FC-3 and FC-A are significantly different in their handling of timecode. If driven by SMPTE timecode, the FC-3 controller will play the script at the rate of time progression of the SMPTE.  The rate of time progression is the rate at which the HH, MM, and SS fields progress, in comparison to the rate at which hours, minutes, and seconds progress in the real world, which is called "wall clock" time. SMPTE time progression is identical to "wall clock" time for 24 fps, 25 fps, and 30 fps; and is a very close approximation of wall clock time for 29.97 fps DF (no more than 6 ms slower or 66 ms faster); and is significantly slower than wall clock time for SMPTE 29.97 fps NDF (slower by 1.2 seconds for every 20 minutes).  Thus if your FC-3 controller will be driven by SMPTE 29.97 fps NDF timecode, it is important that the effect times in the script file are in the SMPTE 29.97 fps NDF time base.  The Time Base setting, described below, presents this option for the FC-3.  As an alternative to the Time Base option, Finale 3D also offers options to adjust the times in the exported firing system script, as described here: SMPTE 29.97 NDF (non-drop frame). The FC-A controller treats all scripts as 30 fps.  Thus it is incorrect to play back a 25 fps script on the FC-A controller.  It will play in rough synchronization with wall clock time, but unevenly, since the 25 fps frames in any second of the script will all be triggered in the first 25/30ths fraction of a second, leaving the remaining 5/30ths of every second with no triggered events because there were none with matching frame numbers in the script.  The FC-A has an option to adjust the speed of script playback to compensate for the slower-than-wall-clock time of SMPTE 29.97 fps NDF timecode (see FC-A tutorial).  Finale 3D's option to adjust times in the exported script (SMPTE 29.97 NDF (non-drop frame) is also available for the FC-A. Manual script (macro fire) The manual script mode provides for stepping through a show in short sections or individual cues instead of playing the entire script all at once or synchronized to timecode. Finale 3D will export a standard script or a manual script based on your choice in the Export Options dialog. The two script formats are different -- standard script rows contain effect times and prefires that the controller subtracts from the effect times to determine the ignition times; manual script rows contain effect times that merely identify groups of rows that are part of the same "Macro" (short section or individual cue), and prefires that represent the offsets of those rows' ignition times relative to the time at which the Macro is triggered, beginning with zero and in chronological order. In Finale 3D, please use the "Track" field of the script rows to identify groups of rows that are part of the same Macro. The Track field can be any integer value from 0 to 9999, or it can be blank.  If the Track field is an integer, then all such events with the same integer will be be triggered as part of the same Macro, with ignition time offsets relative to the earliest ignition time in the Macro. Rows that have a blank Track field will automatically be grouped into "Individual Cue Macros".  An Individual Cue Macro consists of all the rows (one or more) having the same effect time, which is displayed as a cue flag on the timeline in Finale 3D.   So informally speaking, an Individual Cue Macro is a "cue" on the timeline.   Although the rows in an Individual Cue Macro all have the same effect time, it is possible that they have different ignition times in the show on account of having different prefires.  However, since designers usually want the events in an Individual Cue Macro to fire immediately when the button is pressed on the controller regardless of any differences in prefires, Finale 3D will automatically collapse all the prefires in an Individual Cue Macro to zero, essentially re-aligning the events in the Individual Cue Macro with the earliest ignition time. If you want to preserve the ignition time offsets within an Individual Cue Macro, you can simply give the events an integer Track number to make them a regular Macro instead of an Individual Cue Macro.  If you want to preserve the ignition time offsets in Individual Cue Macros pervasively in the show, please check the "Disable collapse individual macro prefires" checkbox in the export options dialog. The exported PDM script does not actually contain the track numbers. Pyrodigital controllers use the effect time field to identify the rows that are part of the same Macro. The kind of Macros that originate in Finale 3D from having the same track numbers, and the kind of Macros that originate in Finale 3D from having a blank track field and being at the same effect time are both represented the same way in the exported PDM script -- as rows that have the same effect time. Since the Track field is essentially optional, you can create manual scripts conveniently in Finale 3D by leaving the Track field blank for those Macros that are just Individual Cue Macros, and filling in the Track field for sequences of effects not all shot at the same time. The Track field numbers themselves are immaterial and do not need to be in order; they are simply identifiers to group the effects. Caliber group firing The caliber group firing mode provides the ability to compartmentalize portions of a manually fired show. By specifying caliber groups within a script, you can isolate each group by selecting the corresponding caliber group button on the Pyrodigital controller. Doing so allows you to fire items from the selected caliber group and prevents all other items in the show from being fired inadvertently. This feature provides added flexibility, safety, and is common practice for live entertainment such as concerts and sporting events. In Finale 3D, please use the "Hazard" field of the script rows to identify rows that are part of the same caliber group. Zipper fire "fix" for macros Older Pyrodigital controllers including the FC-3 have a hardware limitation that Macros cannot begin with multiple rows having prefire = 0 if the Macros contains any rows with prefire  > 0.  In other words, either all the rows in the Macro must have prefire = 0 (so called "zipper" fire in Pyrodigital terminology) or only one one row in the Macro can have prefire = 0.  Finale 3D works around this limitation by inserting a "Dummy Cue" at the beginning of any Macro that would otherwise not work. The dummy cue has a module and pin address of 000 and a prefire of zero. The remaining rows in the Macro will have their prefires increased by 0.1 seconds. Thus a Macro previously beginning with two or more shots at the same time will now begin with a single dummy cue shot, followed by the original two or more shots a tenth of a second later. The downside of dummy cues is that they assume the module and pin address 000 does nothing; and they introduce a 1/10th second delay in the Macro response to being triggered. Optionally, you can disable this "fix" in Finale 3D from the "Export Options" dialog when exporting (check the "Disable the FC-3 macro zipper fix" checkbox).  Please see the "Zipper fire 'fix' for macros" section below. Sort order of rows Rows sorted ascending by effect time. What rows represent Each firing row represents the electrification of a pin at the row's event time, calculated from the effect time and prefire time. Checksum function The file contains checksums for each row and at the end of the file. The checksum function is defined by this procedure: Start with variable SUM = 0. Loop over the ASCII characters of the data being checksummed, in pairs. Read each pair of characters as a hexadecimal number ("00" - "FF"), producing an integer in the range 0-255. Add the integer to SUM. Return 255 - ( SUM & 255 ). End-of-file checksum (six characters) The file concludes with a file checksum in the format: "N9" + the first two characters of the LINE field as it would have been calculated for this line (see LINE definition below) + two character checksum of the first two characters of this line. Download protocol If you are using a terminal program to download the PDM program to the controller, or if you are writing a program to do it, use these settings: COM port = whatever port connects to the controller. Data rate = 9600 baud. Hardware control flow = CTS control flow. Parity = none. Bits per byte = 8. Stop bits = 1. When you export a firing script for Pyrodigital, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3.   Table 3 – Export options Option name Description Version Choose version matching your controller, FC-A or FC-3. Script Type Choose Standard Script or Manual Script. Time Base This option only applies to the FC-3.  It does not apply to the FC-A and not enabled for FC-A scripts.  For the FC-3, choose 24 fps, 25 fps, 29.97 fps DF, 29.97 fps NDF, or 30 fps.  This option defines the correct rate of time progression of the HHMMSSFF data in the script rows. and the correct frame counting mechanics (DF versus NDF).  Finale 3D converts the effect times measured in wall clock time to HHMMSSFF fields in the exported PDM file based on the chosen Time Base.  The FC-3 can skip ignitions if the Time Base is different from the SMPTE timecode format, so it is of particularly high importance for FC-3 scripts that the Time Base matches the timecode exactly. Finale 3D provides tools to inspect the exact values of the HHMMSSFF fields in the exported PDM file and verify they match your expectations for your show: 1) Set the "Show > Show settings > Effect time format" to your desired frame rate; 2) Choose the matching Time Base when you export your PDM file; 3) Use the function "File > Tools > Open firing system script as generic table" to open the PDM file into a table; 4) examine the HHMMSSFF columns in the table to confirm the effect times match what you see on the timeline and in the Effect Time column of the script table. Disable FC-3 macro zipper fix Optionally, you can disable the macro zipper fix for FC-3 controllers with this checkbox. Disable collapse individual cue macro prefires Optionally disable the collapse macro prefires feature, as described in the "Manual script" section of Table 2. Randomize order of simultaneous events in groups Optionally randomizes the order of rows in the exported script that a) have the same effect time and that b) are from events grouped in Finale 3D; and promotes rows from events NOT grouped in Finale 3D above other rows from events GROUPED in Finale 3D that have the same effect time. The purpose of this export option is to give the designer explicit control over the appearance of simultaneous shots shooting from multiple positions.  While nominally the order of rows in the script for items with the same effect time doesn't matter, the controller has a minimum 10ms delay between the execution of consecutive rows.  A single delay of 10ms is not perceivable, but a uniform sequence of 10ms delays across a line of positions is perceivable as a wipe from one end of the line to the other.  For example, a sequence across a line of 10 positions would be perceived as a 0.09s wipe as opposed to a simultaneous front. Randomizing the order of simultaneous events across a line of positions eliminates the perceived "wipe", restoring the intended  "front."  Even if it takes the simultaneous front a fraction of a second to materialize, the absence of a pattern in the materialization makes it appear simultaneous. In some cases a designer may want to control which effect is first in the materialization of the front.  For example, if the design calls for a simultaneous front of mines across 11 positions that includes a concussion effect on the sixth position in the line, it may be important that the concussion in position six is first, with the remaining 10 positions following in a randomized sequence.  A designer can accomplish this effect by: Select the effects comprising the front in all 11 positions. Shift-click the concussion effect in position 6 to unselect it. Press the 'G' key to group the 10 effects. Export the script. This export option will randomize the order of the 10 effects and promote the effect from position 6 to be first.   The script rows consist of the 11 fields described in Table 4.  All fields except the SOM field at the beginning are formatted as hexadecimal numbers with two or four digits.  The total number of ASCII characters per row is 28.   Table 4 – Specifications of script fields Field name Description SOM (two characters) A "Start of message" delimiter consisting of the two characters "N3". LINE (hexadecimal int,  formatted with four digits) A counting number that begins with "0000" and increments sequentially with each row.  The maximum value is "270F" (9999 decimal). HH (hexadecimal int, formatted with two digits) The hours component of the effect time.  For standard scripts, the effect time minus the prefire time determines the ignition time.  For manual fire scripts, the effect time merely identifies rows that are part of the same macro. MM (hexadecimal int, formatted with two digits) The minutes component of the effect time. SS (hexadecimal int, formatted with two digits) The seconds component of the effect time. FF (hexadecimal int, formatted with two digits) The frames component of the effect time, starting with zero.  The maximum value is "17" or "18" or "1D" (decimal 23, 24, or 29) depending on the time format of the file (see Time representation, in Table 1). PREFIRE (hexadecimal int, formatted with two digits) For standard scripts, this field is the prefire time in tenths of a second.  For manual fire scripts, this field is the offset of the row's ignition time from time at which the macro is triggered, in tenths of a second.  Sequences of rows that are part of the same macro in manual fire scripts must have non-decreasing prefire times. ADDR (hexadecimal int,  formatted with four digits) The module number * 16 plus the pin number.  The module number is limited to 127; the pin number is limited to 15.  Thus the first digit of the ADDR field is always zero, and the maximum value is "07FF". SHOT (hexadecimal int,  formatted with four digits) A counting number that begins with "0001" and increments sequentially with each new effect time.  The maximum value is "270F" (9999 decimal). CGHZ (hexadecimal int, formatted with two digits) The lockout / hazard class.  The minimum (and default value) is "00"; the maximum value is "10" (16 decimal). CHECKSUM (hexadecimal int, formatted with two digits) A checksum value for the characters in the row beginning with LINE and ending with CGHZ (24 characters in total).  See the definition of the checksum function in Table 2. An example script is shown below as Figure 4.  This is the same script as shown in the table of Figure 3, and included in the downloads in Table 5. N30000000005001E0010000100CB N30001000005001E0020000100BA N30002000005001E0030000100A9 N30003000005001E004000010098 N30004000005001E005000010087 N30005000005001E006000010076 N30006000005001E007000010362 N3000700000C071E0011000204B0 N300080000110B1E0012000304A4 N300090000110B1E0013000304A2 N3000A00001D1A16001400040090 N3000B00002C1A1600150005007E N900FF Figure 4 – Example PDM file   Zipper fire "fix" for macros As described above, Finale 3D works around the macro limitation in early Pyrodigital controllers including the FC-3 by introducing a dummy cue at the beginning of any macro that begins with two or more shots at the same time and also contains other shots at a later time.  The circumstances requiring this workaround are not hard to construct.  Imagine a center-to-outside chase of simultaneous mine/shell combinations across nine positions, with the center position (call it position 5) triggering first, followed by the pair of positions immediately before and after (position 4 and 6) together, followed by positions 3 and 7 together, then 2 and 8 together, and finally 1 and 9 together.  Except for the center position shots, all the other shots of this sequence are in pairs of positions.  If you want to shoot this sequence with a manual fire script, advancing the cues step-by-step, you will run into the circumstance requiring the zipper fire fix. Figure 5 shows the PDM file generated from this example.  There are nine positions, each with a pair of shots (one mine and one shell) at the same effect time, 18 shots total.  The center position yields a macro with one shot at prefire = 0 and a second shot at prefire = the lift time of the shell.  The other positions, firing in pairs, yield four more macros, each beginning with two shots at prefire = 0, and two shots at prefire = the lift time of the shells. Without the zipper fire fix these macros will not fire correctly on FC-3 controllers.  The zipper fire fix adds four dummy cues to correct the problem, which you can see circled in Figure 5.    Notice that the dummy cues have prefire = 0, and they are each followed by the pair of shots that would otherwise have begun the macro with zipper fire.  The fixed script file contains 22 rows total, comprising the original 18 shots and 4 dummy cues. Figure 5 – "Dummy cues" fixing macros that would otherwise begin with zipper fire   To avoid any confusion about dummy cues, Finale 3D displays a warning during the export operation whenever it detects a macro requiring the dummy cue fix.  If you see the warning shown in Figure 6, that means dummy cues were added to make the script fire correctly. Figure 6 – Finale 3D displays a warning whenever "dummy cues" are required.   Table 5 – Example files & tools Download link Explanation test_pyrodigital.fin Example show file addressed for Pyrodigital test_pyrodigital.pdm Example exported PDM file Pyrodigital-Downloader.exe Pyrodigital downloader application  

Sorting positions across multiple blueprints or sections

The addressing dialog and the addressing blueprints enable you to specify the sort order in which addresses are assigned.   The most common sort criterion is sorting alphabetically by Position Name.   Although people think of sort criteria as applying globally across the whole show, the addressing functions divide the positions into addressing groups of positions that can share modules (see Addressing groups), and the sort criteria apply within each addressing group. If the addressing dialog or blueprints include the constraint restricting modules to a single position, then each position is its own addressing group, and the addressing functions will sort them exactly as you specify.  But if the positions don't include the module constraint, then addressing groups contain all the positions that have the same addressing blueprint, section, and a few other properties (see Addressing groups).  The blueprints and sections then affect the way the positions are sorted for addresses.   Example Consider a set of six positions, A, B, C, D, E, F, addressed without the constraint restricting modules to a single position.  Positions A, C, and D are sharing modules in one addressing group (say they have Section = "field"); the other three positions are sharing modules in a different addressing group (say they have Section = "path", causing them to be a different group).  Because the sections are different, there is no sharing of modules between A, C, D and B, E, F. If you address the whole show sorting by Position Name, you may be surprised to see the addresses assigned to positions in the order A, C, D, B, E, F.  The reason is, the addressing function assigns addresses for the first group containing positions A, C, D in order; and then it assigns addresses for the second group containing positions B, E, F in order. If the sort criteria apply within each addressing group, what sort criteria apply between addressing groups?  In the example above the addressing function assigns addresses for the A, C, D group as the first group, but how did it decide that was the first group? Addressing groups are sorted relative to each other based on the "sort factor" of each group.  Depending on the sort criteria from the addressing dialog or applicable blueprint, each group's sort factor is either the alphabetically first Position Name in the group, or the alphabetically first Custom Position Field in the group, with the Position Name as the tie breaker.  In the example above, the sort factor for group A, C, D is "A"; the sort factor for group B, E, F is "B"; so group A, C, D is first. If the sort criteria from the addressing dialog or blueprint do not explicitly begin with Position Name or Custom Position Field, the sort factor is Position Name by default.  If different addressing groups have different sort factors based on different sort criteria (Position Name versus Custom Position Field), then the comparison between the groups is undefined but deterministic.  If multiple addressing groups have the same non-blank Start Module, then as a special case the addressing algorithm adjusts the sort order to make those specific addressing groups consecutive.   What to do Having different blueprints or sections does not affect the sort order of positions unless the constraint restricting modules to a single position is absent.  If you have removed that constraint to permit module sharing, then you may encounter sorting scenarios like the example above in which positions are sorted as specified locally in each addressing group but not globally across all addressing groups. If that result is unsatisfactory, one approach to getting the desired sort order is to subdivide the addressing groups with more specific section names to the degree necessary for the combination of local sorts within addressing groups to be the same as the global sort.  In the example above, if you split "field" into "field1" for A, and "field2" for C and D; and if you split "path" into "path1" for B, and "path2" for E and F, then the addressing groups and their positions will sort globally in the specified order.  Splitting up addressing groups also splits up the sharing possibilities, which you may not want.  It is not always possible to have a desired set of sharing groups and global position sorting simultaneously.

Addressing basic instructions

"Addressing" is the process of assigning firing system module and pin numbers to the events in the show.  Addressing is one of the three basic steps involved in designing a show and creating a firing system script: Design the show Address the show Export script You can't really export a firing system script without doing Step 2, because the script wouldn't contain any module and pin number instructions for the firing system to fire.  You can see why in the script table window.  The "Rail" and "Pin" columns contain the module number and pin number assigned to each row in the script.  Prior to addressing the show, the Rail and Pin columns are blank.  When you address the show, you fill in the values for these columns.  In Step 3, when you export the firing system script, it is the values in the script table that make up the firing system script. For most firing systems, the term Rail in Finale 3D means exactly the same things as "Module".  The only difference between the two terms is for firing systems that have slat numbers or letters in the addresses.  In those cases, Rail includes both the module and the slat parts of the address, together (example: 50-A, not just 50); whereas Module is just the module number part of the address (example: 50).   Figure 1 – Before addressing the show, the Rail and Pin columns are empty.   The rows in the script are called "Events."  They correspond to the horizontal bars on the timeline, and to the effects in the show.  From the blue gear menu in the upper right of the script window, you can collapse rows into a single row for the entire chain, or one row for each shell.   The script table contains about 40 columns of information, most of which are hidden by default so the table is easier to read.  A few of the hidden columns, though, are also set by addressing process, in addition to the Rail and Pin.   Figure 2 – After addressing the show, the Rail and Pin columns specify the module, slat, and pin addresses.   You can unhide columns in the script from the blue gear menu in the upper right.  The additional columns that the addressing process sets are: Module Or Slat Type, Rack, and Tube.  It is not necessary to know much about these fields for the basic addressing instructions, but it is good to know they exist.  You might wonder, "When I export the script, how does the software know what addressing system the script is for?" (answer: the Module Or Slat Type field in the script determines the firing system); or "How do I fill in the little rack tube numbers in the rack layout window?" (answer: the addressing functions fill in the rack assignments in the Rack and Tube fields if you have added racks before addressing the show.  See Rack layout).   Addressing methods Finale 3D supports a variety of methods of assigning firing system addresses.  The three main methods are: Address the entire show at once ("Addressing > Address show...") Address the show using blueprints ("Addressing > Address show using blueprints assigned to positions") Address the show manually by typing in numbers and filling down ("Addressing > Fill down addresses in script window...") Addressing the entire show at once is the easiest and most common addressing method.  Simply do the menu item, "Addressing > Address show...".  An addressing dialog appears with selectors for you to specify the firing system, the maximum number of e-matches that can be connected to a single pin (E-match limit), the sort order in which the addresses are assigned (usually people sort first by position, then either by size or angle or event time or part number; see Sorts), and the constraints that prevent e-matches from stretching between positions or between racks that are too far apart (see Constraints).  Additionally, the method of addressing the entire show takes into account any of the position properties that you may have specified by right-clicking on the positions and selecting "Edit position properties" from the context menu.  The position properties enable you to specify the module numbers at each position (Specifying module numbers) and to divide the show up into sections of positions that can share modules or slats (Sharing modules and Sections), and even to divide the show up into universes of positions that use different firing systems altogether! (Multiple firing systems)   Figure 3 – The "Addressing > Address show..." dialog   Addressing the show using blueprints is for circumstances in which different sections of the show require different rule sets.  For example, a show may have a front line of positions that share slats and for which modules can serve any of the effect sizes at the positions (because the effects are all small and they are in single-shot racks that are not limited to single sizes, for example); yet the show may also have shell positions farther back in the field that do not share slats from the same module and for which it is most efficient to limit modules to serving only a single size shell per module, even if the position houses multiple shell sizes.  Circumstances like this require a different configuration of addressing settings per section of the show.  Imagine if you could have a separate addressing dialog of Figure 3 for each section the show.  That is essentially what "Addressing Blueprints" are.  You create an addressing blueprints from "Addressing > Create addressing blueprint..." and you allocate different blueprints to different positions by right clicking on the positions and setting the Addressing Blueprint field of every position.  After assigning every position's addressing blueprint, you do "Addressing > Address show using blueprints assigned to positions..." to address the show using the blueprints you have set up.   Figure 4 – The "Addressing > Create addressing blueprint" dialog   Addressing the show manually by typing in numbers and filling down is a manual approach to addressing that gives you the ultimate control over the addresses, because you can set them to anything you want.  The basic idea behind this approach is that you (a) sort the script table window by clicking on the column headers (shift-click to add multiple sort criteria, e.g., sorting by Position first, then by Size), then (b) select a range of rows that could be anything from a single row to the entire show, then (c) do "Addressing > Fill down addresses in the script window..." to assign an incrementing sequence of addresses to the selected range of rows.   The sequence of addresses can automatically skip to the next module or slat based on conditions you declare in the dialog that pops up.  You also have control over whether the sequence is allowed to re-use pins assigned earlier for effects that could be combined on the same pin.  Please check the "Backfilling allowed" box in the lower left of the dialog shown in Figure 5 to enable re-using pins.  This method of addressing is used mainly for tricky situations in which your criteria for addressing choices are difficult to spell out.  It is also used by designers who grew up addressing shows by the fill down method and who prefer the table-based user interface.  The drawback to this method is that if you make any changes to the show, you need to repeat your manual addressing procedure.  There is also the possibility of making addressing errors since it is a manual process, although the Finale 3D software does include troubleshooting functions in the "Addressing > Troubleshooting" menu to verify your show doesn't have any conflicts, which can provide some extra confidence.   Figure 5 – The "Addressing > Fill down addresses in script window" dialog    

Specifying module numbers for each position

It is more common in large shows not to specify what modules are at each position, because the addressing functions like "Addressing > Address show..." assign module numbers to positions as required.  Why would you want to set the module number at a position manually? Some people just want module numbers to match the names of their positions.  If your positions are numbered Pos1 - Pos10, and your modules are numbered 1 - 10, then surely it is a good idea to make the numbers align to reduce the possibility of confusion when setting up the show.  If positions have multiple modules, sometimes people like their position names to match module number ranges, like having Pos1 use module numbers in the range 10 - 19 and Pos2 use module numbers in the range 20 - 29. If you need or want to specify the module numbers at positions, please right click on each position individually and select "Edit position properties" from the context menu to set its "Start Module" property to the beginning of the module number range you would like that position to use when addresses are assigned.  If each position requires only one module, then the Start Module would just be the module number you are choosing for that position.  If positions need multiple modules, please make sure that the Start Modules define beginnings of ranges that will not overlap when addresses are assigned.   Figure 1 – Set the "Start Module" property of positions to the first module number in the range.     The Start Module field takes a module number in the format of your firing system.  If your firing system has firing system addresses that include module and slat numbers or letters, please fill the Start Module field with the module part of the address only, leaving the slat off (Example: "50", not "50-A").  It is not possible to specify a starting slat address on a per-position basis. The positions window, which you can show from the "Windows" menu, is a table with all the position properties of all the positions.  You can edit the Start Module numbers directly in this table instead of right clicking positions and editing the position properties from the context menus.  The table editing user interface is faster if you are setting a lot of numbers.  

MagicFX Flamaniac

The MAGICFX Flamaniac unit is a flame projector with 5 angled nozzles that can fire directional flame bursts under programmable control by any of the DMX-capable firing systems, such as Piroshow, Pyromac, PyroSure, FireTek, Cobra, and Mongoose. Figure 1 – MAGICFX Flamaniac   The Flamaniac system has two configuration modes, Mode 1, in which the five different angles are controlled by five DMX channels, and Mode 2, in which the five angles are controlled by a single DMX channel with different values corresponding to different angles, or off.  The Finale 3D Standard Fixture IDs for Mode 1 and Mode 2 Flamaniacs are 003 and 004, respectively (see Supported flame and spark fixtures (and Standard Fixture IDs)).  Finale 3D includes pre-defined Flamaniac effects for the five fixed angles in various durations in the Generic Effects collection for both Mode 1 and Mode 2.  You can copy and modify these effects or make your own with other durations or simulations.  Finale 3D also includes rotatable Flamaniac effects in various durations. To script a show for the Flamaniac system, you can use the effects with built in angles and leave them at those angles, or you can use the rotatable effects and optionally rotate them to the angles supported by the Flamaniac unit or thereabouts (-45, -22, 0, 22, 45).  After inserting effects, you export the show as a firing script for one of the DMX-capable firing systems.  The export function in Finale 3D takes into consideration the angles of the chosen effects in the show, the rotated angles for the rotatable effects, and the durations of the effects, and compiles the proper sequence of DMX events in the exported script. For further information about the MAGICFX Flamaniac units, see the MAGICFX website (www.magicfx.eu) and the manual_flamaniac_eng-2017.   DMX channels The Flamaniac firing channels and safety channel can be configured to independent Start Addresses on the fixture hardware, so you need to put the safety channel effects off in their own "safety position" in Finale 3D to set their DMX Channel Base independently of the DMX Channel Base of the Flamaniac fixtures themselves.  The "safety position" doesn't actually represent a position in the real world; it is just a place to put the safety channel effects at an independent DMX Channel Base.   Table 1 – DMX firing channels for flame position, Mode 1 (DMX Fixture Type of "MagicFX [003] Mode 1 Flamaniac") DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Ignition left 45 degrees (0 = OFF, 255 = ON) Part numbers MAFX9701 and others, representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights. Channel 2 (DMX Channel Base + 1) Ignition left 22.5 degrees (0 = OFF, 255 = ON) Part numbers MAFX9702 and others, representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights. Channel 3 (DMX Channel Base + 2) Ignition up degrees (0 = OFF, 255 = ON) Part numbers MAFX9703 and others, representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights. Channel 4 (DMX Channel Base + 3) Ignition right 22.5 degrees (0 = OFF, 255 = ON) Part numbers MAFX9704 and others, representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights. Channel 5 (DMX Channel Base + 4) Ignition right 45 degrees (0 = OFF, 255 = ON) Part numbers MAFX9705 and others, representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights. . Table 2 – DMX firing channels for flame position, Mode 2 (DMX Fixture Type of "MagicFX [004] Mode 2 Flamaniac") DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Ignition at angle (0 = OFF: see Table 4 for values corresponding to ignitions ) Part numbers MAFX9711 and others, representing flame effects of varying heights and angles with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since Flamaniac units do not have dynamically controllable heights.  Part numbers beginning with MAFX9761 are rotatable by dragging the trajectory dots in the Finale 3D user interface.   Table 3 – DMX channels for safety position (DMX Fixture Type of "MagicFX [017] Safety Channel") DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Safety channel (0-101 = OFF, 102-163 = ON, 164-255 = OFF) Part number MAFX9799, “MAGFX [017/0000] Safety Channel”   Table 4 – Flamaniac Mode 2 DMX values and corresponding percentages and angles DMX value 0-255 Percentage 0-100 Angle 0-25 0-10 (Off) 26-64 10-25 45 degrees left 65-115 25-45 22 degrees left 116-166 45-65 Up 167-217 65-85 22 degrees right 218-255 85-100 45 degrees right   Instructions for designing in Finale 3D To design a show for MAGICFX Flamaniac units, please follow these steps: Set up.  (A) Follow the flame set up instructions in the Flame systems basic instructions and Exporting a firing system script for flame systems to create the Flamaniac fixture positions and one or more safety positions.  Your fixture positions will have a DMX Fixture Type of "MagicFX [003] Mode 1 Flamaniac" or "MagicFX [004] Mode 2 Flamaniac"; your safety positions will have a DMX Fixture Type of "MagicFX [017] Safety Channel".  (B) After deciding what DMX channel range you want each flame unit to use (Mode 1 or Mode 2), configure each physical unit's "Fire Channel Address" in the real world to be the first channel in the DMX channel range.  (C) In Finale 3D, configure the Flamaniac fixture position's "DMX Channel Base" to match the Fire Channel Address (older versions of Finale 3D required subtracting 1 on the DMX Channel Base, but that is no longer correct).  (D) In the real world, please configure each physical Flamaniac unit's "Safety Channel Address" to be the safety channel number for the universe.  In Finale 3D, configure the "DMX Channel Base" of the safety positions to match the Safety Channel Address.  (E) In the real world, configure the physical Flamaniac units to be in Mode 1 or Mode 2, matching whatever types of effects you insert from Finale 3D. Add flame effects to the show.  (A) Right-click on DMX Fixture positions to add compatible effects from the context menu or to filter the effects window to compatible effects.  All told for Mode 1 and Mode 2 together there are about 50, beginning with part number GFX9701.  These pre-defined effects include the five angles in several durations for both Mode 1 and Mode 2 options.  Toward the end of the list, beginning with part number GFX9761, are three rotatable effects. Design the show. After inserting effects in the show, you can select groups of any of them and do functions like "Script > Sequences > Make into sequence..." to make interesting timing patterns.  With the pre-defined effects with built in angles (GFX9701 to GFX9756) you should not use the scripting functions that change the angles of the effects or rotate the dotted line representations of the effects in the 3D view, since those exported angles are built into the effect definitions.  With the rotatable effects (MAFX9761 to MAFX9772), you can rotate the dotted line representations of the effects interactively in the 3D view.  Since the Flamaniac unit only supports certain angles, Finale 3D will round the rotated angle to the nearest supported angle.  So, for example, rotating an effect to 25 degrees is just fine, and will be rounded to trigger the 22 degree angle shot in the DMX script for the Flamaniac. Add safety channel effects.  Following the instructions Exporting a firing system script for flame systems add "DMX Safety Channel" effects to your safety channel positions, and adjust their durations to cover the spans of time for which you want to arm the flame unit.   Choosing the DMX channel ranges for fixtures Each Flamaniac fixture requires firing channels and a safety channel, but the safety channel can be shared among fixtures, so you could allocate your channels for Mode 2, for example, as shown in Table 5.  A DMX universe has channels 1-512.  If you want to pack as many fixtures into the 512 channels of a DMX universe as you can, back-to-back ranges are the most efficient.  Some DMX firing systems only support 50 or 100 channels, so you may not have all 512 channels to work with.   Table 5 – Example channel ranges for Mode 2 Flamaniac fixtures in a DMX universe Fixture DMX Channel Base Channels Used Safety 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 ... 511 512 512 GFX9762.   Table 6 – Example files Download link Explanation magicfx_firetek_standard.fin FireTek pyro + Flamaniac example show magicfx_firetek_standard.csv FireTek pyro + Flamaniac example exported script magicfx_piroshow_standard.fin Piroshow pyro + Flamaniac example show magicfx_piroshow_standard.txt Piroshow pyro + Flamaniac example exported script magicfx_pyromac_standard.fin Pyromac pyro + Flamaniac example show magicfx_pyromac_standard.txt Pyromac pyro + Flamaniac example exported script magicfx_pyrosure_standard.fin PyroSure pyro + Flamaniac example show magicfx_pyrosure_standard.wyh PyroSure pyro + Flamaniac example exported script magicfx_cobra_standard.fin Cobra pyro + Flamaniac example show magicfx_cobra_standard.csv Cobra pyro + Flamaniac example exported script magicfx_piroshow_rotatable_flames.fin Rotatable flames example show magicfx_piroshow_rotatable_flames.txt Rotatable flames example exported script manual_flamaniac_eng-2017 Hardware documentation

Galaxis G-Flame

The Galaxis G-Flame unit is a vertical flame projector that can be controlled by the Galaxis ignition system, or by any of the DMX-capable firing systems, such as Piroshow, Pyromac, PyroSure, fireTEK, Cobra, and Mongoose.   Figure 1 – Galaxis G-Flame   If the flame unit is controlled by the Galaxis ignition system, the "GS2" script file contains flame triggers in the same format as the pyro ignition triggers, and intermixed with the pyro ignition triggers.  In the GS2 file representation (details here), each trigger row represents the flame unit as a module number, and the triggered flame effect as the pin number.  The pin number just starts at one and counts up, incrementing for each shot.  The GS2 file contains a duration field that get passed to the controller, so effects can have arbitrary durations.  The half dozen or so example G-Flame effects in the Generic Effects provide some reasonable options, but you are free to create your own G-Flame effects with whatever durations you want, following the instructions below. If the flame unit is controlled by DMX, the DMX signal turns on and off the flame units by writing an "on" value or "off" value to the DMX channel allocated to the G-Flame unit.  Additionally, the DMX script contains a safety channel that can be shared across G-Flame units in the same DMX universe.  The purpose of the safety channel is to reduce the chance of a spurious ignition or held-over ignition by requiring that both the flame unit is "on" and also the safety channel is "on" in order for the flame to operate.  When you design a show in Finale 3D for G-Flame units, you add safety channel "effects" to the show and adjust their durations to cover the periods for which you want the G-Flame units to be armed. For further information about the G-Flame units, see the Galaxis website (www.firing-system.com) and the User Manual.   Instructions for G-Flame shows using the Galaxis firing system To design a G-Flame show for the Galaxis firing system, please follow these steps: Set up.  (A) Follow the flame set up instructions in the Flame systems basic instructions and Non-DMX firing systems and flame fixtures.  (B) Make sure your flame positions are configured with GALAXIS G-Flame as the “Module Type”.  (C) Set the “Start Module” of each flame position to a distinct module number that will not conflict with the module numbers used by any pyro positions. When controlled by the Galaxis ignition system, each G-Flame unit operates as an independent module, with its own module number; its "pins" represent the flame shots, counting up incrementally. Add flame effects to the show.  In the effects window, select the Generic Effects collection, and type "G-Flame" in the search box.  That will filter the window to show only the G-Flame effects, of which there are about a half dozen, beginning with part number GFX9800.  Click on the effect icons to insert them into the show.  When you add an effect, you will get an error that you are adding a DMX effect to a pyro position. When designing G-Flame shows controlled by the Galaxis system, please ignore this error simply by clicking the "Continue" button. If you don't want to see the error again, select the "Do not show again" checkbox in the error dialog. Alternatively, you can modify the flame effects, so they are no longer considered DMX effects, as described in step 3.  After adding effects, you can select groups of any of the G-Flame effects and do functions like "Sequence" to make interesting timing patterns, just like scripting for pyro. Make your own or modify existing flame effects.  The G-Flame effects come in a few example durations in the Generic Effects collection, but you can also create your own variations that have arbitrary durations.  (A) First add the original effect to your My Effects collection by right clicking on the effect row in Generic Effects and selecting "Add to My Effects".  (C) After adding the effect to your My Effects collection, you can modify its parameters.  Simply edit the duration field to change its duration. The 3D simulation and exported GS2 file will automatically incorporate your change.  You can also adjust the height field to change the height of the flame simulation, though doing so has no bearing on the exported GS2 script. Optionally, to prevent the error that refers to adding a DMX effect to a pyro position, use the blue gear in the Effects window to unhide the "DMX Patch" column and delete any value you see. The DMX patch is not necessary when controlling G-Flames using the Galaxis system. Later, if you want to control G-Flames using DMX, go back to Generic Effects and use the default G-Flame effects that include the DMX patch values.   Instructions for G-Flame shows controlled by DMX To design G-Flame show controlled by DMX, please follow these steps:  Set up.  (A) Follow the flame set up instructions in the Flame systems basic instructions to create the G-Flame fixture positions and one or more safety positions.  Your fixture positions will have a DMX Fixture Type of "Galaxis [002] G-Flame"; your safety positions will have a DMX Fixture Type of "Galaxis [016] Safety Channel".  Depending on your DMX controller, you may choose to give each G-Flame unit its own DMX universe, or give each G-Flame unit a channel in a shared DMX universe (the G-Flame units require only a single channel).   (B) In the real world configure each physical G-Flame unit's "Start Address" to be the DMX channel you allocate for the flame unit.  (C) In Finale 3D configure the "DMX Channel Base" to match the Start Address exactly (older versions of Finale 3D required subtracting 1 on the DMX Channel Base, but that is no longer correct). (D) In the real world, configure each physical G-Flame unit's "Safety Channel Address" to be the DMX channel you allocate for the shared safety channel.  (E)  In Finale 3D configure the "DMX Channel Base" of the safety position to be the Safety Channel Address.  The safety position is separate from the G-Flame fixture positions and may be shared by the G-Flame fixtures positions if you configure the fixtures with the same Safety Channel Address. Add flame effects to the show.  (A) Right-click on DMX Fixture positions to add compatible effects from the context menu or to filter the effects window to compatible effects. Make your own, or modify existing flame effects.  The G-Flame effects come in a few example durations in the Generic Effects collection, but you can also create your own variations that have arbitrary durations.  (A) First copy the original effect by selecting the effect row in Generic Effects, then right-click copy (or control-C).  (B) Then paste into your My Effects or any of your other effects collections.  (C) After copying it to your own inventory, you can modify its parameters.  Simply edit the duration field to change its duration.  The 3D simulation and the DMX Patch will automatically incorporate your change.  You can also adjust the height field to change the height of the flame simulation, though doing so has no bearing on the exported DMX script. Add safety channel effects.  Following the instructions Flame systems basic instructions add "DMX Safety Channel" effects to your safety channel position, and adjust their durations to cover the spans of time for which you want to arm the flame unit. Since the G-Flame ignition channel and safety channel are configured to independent Start Addresses, you need to put the safety channel effects off in their own "safety position" in Finale 3D in order set a DMX Channel Base for the safety channel effects independently of the G-Flame fixtures themselves.  The "safety position" doesn't actually represent a position in the real world; it is just a place to put the safety channel effects at an independent DMX Channel Base.     Table 1 – DMX channels for flame position (DMX Fixture Type of "Galaxis [002] G-Flame") DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Ignition (0 = OFF, 255 = ON) Part numbers GFX9800 - GFX9817 representing flame effects of varying heights with durations from 0.1s to 1s; the height differences are reflected in the visual simulation but not in the DMX channel values since G-Flame units do not have dynamically controllable heights. . Table 2 – DMX channels for safety position (DMX Fixture Type of "Galaxis [016] Safety Channel") DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Safety channel (0-152 = OFF, 153-204 = ON, 205-255 = OFF) Part number GFX9899 , “G-Flame [016/0000] DMX Safety Channel”   Choosing the DMX channel ranges for fixtures Each G-Flame fixture requires a firing channel and a safety channel, but the safety channel can be shared among fixtures, so you could allocate your channels as shown in Table 3.  A DMX universe has channels 1-512.  If you want to pack as many fixtures into the 512 channels of a DMX universe as you can, back-to-back ranges are the most efficient.  Some DMX firing systems only support 50 or 100 channels, so you may not have all 512 channels to work with.   Table 3 – Example channel ranges for G-Flame fixtures in a DMX universe Fixture DMX Channel Base Channels Used Safety 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7 8 8 8 9 9 9 10 10 ... 511 512 512   G-Flame example The example files in Table 3 include G-Flame show files configured for the Galaxis ignition system, and for DMX using the fireTEK ignition system (see fireTEK). Exported GS2 and CSV files for the two firing systems, respectively, are also available for download in the table. The example show includes both G-Flame and pyro, to illustrate shows that combine both types of effects, and in the case of the fireTEK example combine DMX and and pyro ignitions. The setup between the Galaxis and DMX shows are notably different, as follows from the instructions at the top of this page. In the Galaxis ignition system show, each G-Flame unit is its own module; no safety channels are required; and no DMX settings like DMX Base Channel are required in the positions. In the DMX example, the G-Flame units are configured for different channels in the same, shared DMX universe. All G-Flame units in the DMX example are served by the same fireTEK module. The show has a single safety channel position, with a safety channel address of 1 (i.e., the DMX Base Channel for the position is 1; and the channel offset in the safety channel effect's DMX Patch is 0). If you open the example files and look at the positions window ("Window > Position window" menu item), you can see the configurations of all the positions in one place.   Table 4 – Example files Download link Explanation g_flame_galaxis_standard.fin Show file for G-Flame and pyro example with Galaxis ignition system g_flame_galaxis_standard.gs2 Exported GS2 file for G-Flame and pyro example with Galaxis ignition system g_flame_firetek_standard.fin Show file for G-Flame and pyro example with fireTEK ignition system by DMX g_flame_firetek_standard.csv Exported CSV file for G-Flame and pyro example with fireTEK ignition system by DMX User-Manual-G-Flame-V2.40-007.pdf Galaxis G-Flame user manual

Merlin

To create and export a script for the Merlin firing system, please follow these steps: Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 2 creates the script file, which is a standard format CSV file with a "CSV" extension.  The file format details are described in this section.   Figure 1 – Merlin firing system   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 Sort order of rows Rows sorted ascending by event time, then by module number, then by pin number. What rows represent Each row represents a unique firing event, a module/pin/event-time combination.  For example, a chain of five shells will be one row, not five.  A pair of shells shot together from the same position will be one row, not two, even if the shells are different effects.  A flight of shells shot together from multiple positions with the same module-pin using scab wire is still one row. Header The file contains a single header row with the column names: Shot Number,Shot Time,Break Time,Number Of Devices,Devices Per Piece,Number Of Pieces,Product ID,Mfg And Mfg ID,Item Name,Caliber,Angles,Position Name,Module Type,Module Address,Slat Address,Pin Number,Notes. Time resolution The Merlin system supports hundredth of a second resolution. Special characters The CSV file follows Excel rules for quoting double quotes and commas within the fields. Except for those two characters, all other printable ASCII characters are allowed. Non-ASCII characters and unprintable ASCII characters (control characters like linefeed and tab) are filtered out. After the header, each row in the script has a number of fields separated by the comma character.   If any field contains a comma or double quote character, the field will be surrounded in double quotes and any internal double quotes will be doubled-up, following the Excel CSV convention.  The names of the fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description Shot Number A count of unique module/pin/event-times, starting with 1. Scripts exported from Finale 3D represent every unique module/pin/event-time as a firing row, consolidating all events with that module/pin/event-time into the row. Thus the Shot Number is a simple incrementing row count for scripts exported from Finale 3D. Scripts exported from Finale Business may contain multiple firing rows with the same module/pin/event-time, if the script contains multiple events with the same module/pin/event-time but differing in other respects, such as angle or part number. The Shot Number in scripts exported from Finale Business does not increment between rows having the same module/pin/event-time. Shot Time Time of ignition in the format MM:SS.DD. Break Time The earliest effect time of the effects represented by the firing row, in the format MM:SS.DD. For example, if the row represented a 3" and 5" shell ignited by the same pin, the effect time would be that of the 3" shell since it breaks earlier than the 5" shell ignited at the same time. Number Of Devices Total number of shells represented by the firing row, e.g., a chain of 5 implies Number Of Devices = 5. Devices Per Piece The number of devices represented by each stock keeping unit for the part number represented by the row, e.g., for some companies a chain of 5 is a single stock keeping unit, for which the Devices Per Piece is thus 5. Finale 3D always writes 1 in this field. Number Of Pieces Total number of stock keeping units represented by this row, e.g., for some companies a chain of 5 is a single stock keeping unit and thus one piece. Finale 3D always writes the total number of devices for this field. Product ID Part number. Mfg And Mfg ID The manufacturer name followed by, in parentheses, the manufacturer's part number for the item represented by the row; unless either such field is blank, in which case this field just includes the non-blank value, if any. Item Name Description.  If the row represents multiple effects, the description begins with the number of effects in parentheses, continues with the first effect name, and ends with elipsis (...) as an indication the row represents more than is being displayed in this single field. Caliber Size. Angles Angle graphic in ASCII art, showing the angles of the represented effects in backslash, vertical line, and slash characters. Position Name Position name. Module Type Module type. Module Address Module number, starting with 1. Slat Address Blank. Pin Number Pin number, starting with 1. Notes Script notes. An example script containing six (11) shells across nine (9) firing rows is shown in Figure 1 and included for download in Table 4.  In this script, the last two rows each represent two effects ignited from the same pin. Shot Number,Shot Time,Break Time,Number Of Devices,Devices Per Piece,Number Of Pieces,Product ID,Mfg And Mfg ID,Item Name,Caliber,Angles,Position Name,Module Type,Module Address,Slat Address,Pin Number,Notes 1,00:02.76,00:05.00,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-01,merlin_32ch,1,,1, 2,00:02.86,00:05.10,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-02,merlin_32ch,2,,1, 3,00:02.96,00:05.20,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-03,merlin_32ch,3,,1, 4,00:03.06,00:05.30,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-04,merlin_32ch,4,,1, 5,00:03.16,00:05.40,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-05,merlin_32ch,5,,1, 6,00:03.26,00:05.50,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-06,merlin_32ch,6,,1, 7,00:03.36,00:05.60,1,1,1,G2SH1003,,Green Chrysanthemum,"2""",|,Pos-07,merlin_32ch,7,,1, 8,00:03.46,00:05.70,2,1,2,G2SH1003,,(2) Green Chrysanthemum ...,"2""",||,Pos-08,merlin_32ch,8,,1, 9,00:03.56,00:05.80,2,1,2,G2SH1003,,(2) Green Chrysanthemum ...,"2""",||,Pos-09,merlin_32ch,9,,1, Figure 1 – Example Merlin script   Table 4 – Example files Download link Explanation test_merlin.fin Example show file test_merlin.csv Example exported file (CSV)

PyroSure

To create and export a script for the PyroSure firing system, please follow these steps: Address the show ("Addressing > Address show..."). Export the firing system script ("File > Export > Export firing script(s)..."). Import the script into your PyroSure controller. To export a DMX or DMX + pyro script, please see Flame systems basic instructions and Exporting a firing system script for flame systems for further instructions. The PyroSure script file is a text file with a "WYH" extension.  While it is possible to open this file in a text editor, the file is not meant for humans to read or write.  It contains only the data that the controller requires for shooting the show.  For pyro, most PyroSure users will not need to concern themselves with the file format described in this section. DMX setup and configuration are complicated, so you may want to examine the script visually to ensure it represents what you expect. The file format described in this section provides the necessary details. Figure 1 – PyroSure firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .WYH ASCII Comma LF While still a text file and somewhat human readable, the PyroSure script format includes multiple sections in different formats.  It is not a simple header row, followed by a sequence of firing events.  The format of the sections is described below.  Beginning with an overview of notable characteristics of the system, the special characteristics of the script are shown here:   Table 2 – Special characteristics Special characteristics Description What do firing rows represent Each firing row (called "event record" in the specifications below) in the script represents a unique firing event: a module/slat/pin/event-time combination, or a unique DMX event.  For example, a chain of five shells will be one row, not five.  A pair of shells shot together from the same pin will be one row, not two, even if the shells are different effects.  The event record represents all of the effects triggered by a single electrical pulse on a pyro pin or single DMX module/channel event. Whilst multiple effects at the same module/slat/pin/event-time may be consolidated into the same event record, the event records themselves are sorted by their effect time (i.e., their event time plus the prefire time of the earliest effect of all effects consolidated into the event record). For example, if 3" and 5" effects were ignited by the same pin, both effects would would be consolidated into the same event record, and the event record would have the effect time of the 3" effect, which breaks earlier than the 5" effect. For consistency, the event record would also have the prefire time of the 3" effect, creating the proper time relationship between the event time and effect time of the event record. Event records are sorted by their effect time, so it is possible in this representation for an ordered sequence of event records to represent a non-ordered sequence of event times. As an example, consider an ignition of a 5" shell, quickly followed by an ignition of a 3" shell. The 5" shell ignition is thus earlier than the 3" shell ignition by a small amount, and if we assume the 5" prefire is somewhat longer than the 3" prefire then the 3" shell will break before the 5" shell. The effect time of the 3" shell's event record is thus earlier than the 5" shell, and the 3" shell will be sorted first in the event records array, even though its event time (ignition time) is later than the 5" shell's event time. Time resolution The PyroSure system supports hundredths of a second resolution. Module numbering PyroSure requires that module numbers for the show start with 1 and advance sequentially, with no gaps in the sequence.  If you use the "Addressing > Address show..." function and you don't set the Start Module of any positions, then Finale 3D will automatically generate a consecutive sequence of module number addresses for your show, as required by PyroSure.  If you do set the Start Module of various positions, as you need to for DMX shows, then Finale 3D will add dummy "Gap filling module" events at the end of the show to the "old data" firing rows and "new pyro data" section section to create any missing module references in the sequence. Special ASCII characters The file is ASCII characters, with fields separated by comma. All printable ASCII characters are permitted in the fields except comma, which is filtered out by Finale 3D's exporter. The double quote and backslash characters are permitted in strings in the script, and are not escaped.  In the format specifications described below, "string" means a sequence of ASCII character as is, not surrounded by double quotes. Backward compatibility with the "old" format The "old" format for PyroSure scripts is still usable in newer systems. So, for backward compatibility, Finale 3D will export the "old" format for PyroSure scripts if the show does not contain any DMX events. If the show does contain DMX events, then the "new" format is exported because it is the only format capable of representing the DMX events. Tracks (semi-automatic firing) PyroSure supports semi-automatic firing with individually triggerable tracks.  The script exported from Finale 3D will be semi-automatic if it uses the module types designated as "Semi-Auto" in the module type name.  The segments of the show (called "Segments" in PyroSure) are designated by the "Track" field of script rows in Finale 3D. Tracks may be integers 0-999 or letters followed by integers in that range (example: “1” and “Trk1” are both okay).  If the show is "Semi-Auto" please ensure that all events have an assigned Track. In the Finale 3D script, please arrange the track segments in order, with no interwoven or overlapping events.  Separate tracks in DMX scripts therefore need separate safety channels. Effect times for Semi-automatic shows In PyroSure scripts for semi-auto shows, the effect time of events in a track are relative to the earliest effect time in the track, taking into consideration both pyro and DMX events globally -- except for the first track, for which the effect time is relative to the earliest event time in the track, taking into consideration both pyro and DMX events globally.  Thus if a show were to contain only pyro events or only DMX events, then all its tracks after the first would begin with an effect time of zero, but its first track would begin with an effect time equal to the prefire time of its first effect.  This pattern is harder to see in shows containing pyro and DMX events together because the track's pyro and DMX events are listed separately in the script, but the times they are relative to take both groups of events into account, globally, in order for the pyro and DMX tracks to be synchronized when triggered at the same time. Module types PyroSure modules all have 24 pins, distributed through six slats of four pins each. Finale 3D has separate module type options for standard pyromusical and semi-automatic scripts. The module types are: Pyrosure Standard Script Module, PyroSure Semi-Auto Module. Please select the standard module types for all the modules in your show if you are scripting a standard pyromusical; and select the semi-automatic module types if you are scripting a semi-automatic show. The "Track" field in Finale 3D script rows is used to break up semi-automatic show into its tracks (also called "Segments"). The track field is ignored for standard pyromusical scripts. PyroSure modules may or may not have DMX capabilities. The DMX-capable modules are essentially two-in-one modules, supporting pyro ignitions and DMX output, as explained more fully here. Slats Each PyroSure module distributes its ignition pins using 4-pin slats. Thus a full firing system pin address includes a module number (1-99 for the "old" pre-2019 system and 1-255 for the "new" 2019 system), slat letter(A-F), and pin number (1-4). DMX support Each DMX-capable PyroSure module is capable of serving an independent DMX universe, or a DMX universe shared with other modules having the same module address.  The "Module Address" field in the script row indicates the module number for pyro ignition events and corresponding DMX universe for DMX events.   See Table 2 in  Exporting a firing system script for flame systems for details. DMX representation in the script DMX event records contain an event start value (0-255), event end value (0-255), and duration measured in 100ms time units (approximately 25 seconds maximum).  If the duration is non-zero, the controller will output a DMX signal ramping from the start value to the end value over the specified duration.  If the duration is zero, the controller will ignore the DMX end value, and will output the DMX start value, which will persist until the next DMX event for the same channel. In scripts exported by Finale 3D, simple DMX effects with duration (see below) are represented as pairs of rows, an ON row at the beginning of the effect and an OFF row at the end. DMX resting state The PyroSure system does not require the at-rest DMX channel values to be zero, which is beneficial for stateful DMX devices like flame units with rotating nozzles, for which it is inefficient to return the nozzle to a resting angle in between two shots at the same angle, if that same angle is different from the resting angle. DMX "Reset" events In the DMX section of the PyroSure script at the beginning of each track, the first cue must contain an initial DMX event record for every module/channel referenced anywhere in the show (any segment, any cue). If the designed show does not include an explicit DMX event in the first cue of a track for a module/channel that is referenced elsewhere, then an imputed "Reset" event in the first cue is required for the purpose of setting the initial value to zero. Finale 3D's exporter automatically adds these "Reset" events. When you export a firing script for PyroSure, Finale 3D presents an "Export Options" dialog with the option to export a Standard Script or Semi-Automatic Script, as shown in Table 3.   Table 3 – Export options Option name Description Script Type Choose one Standard Script or Semi-Automatic Script.   The PyroSure script format is comprised of four sections.   The "old" script format contains only the first two sections.  The "new" script format contains all four.  There are also some differences in the header between the old and new format. Header Old data New pyro data New dmx data The header section consists of the nine lines defined in Table 4.  The header refers to "Pyro Cue Records," "Pyro Event Records," "DMX Cue Records," and "DMX Event Records" that follow in the data sections later in the file.  The "cue records" are records identifying unique effect times with which events are associated. Cue records relate to separate sequences of pyro events and DMX events, not intermixed.  The "event records" are records identifying a pyro pin ignition or DMX event that occurs at the time of a cue record minus a prefire time. Table 4 – Header section specification Line Description 1 Four fields: project name (string), designer name (string), number of modules referenced by the "old data" firing rows (int), number of Pyro Event Records (int) 2 Variable number of fields (1 + 2 * N fields, for N = number of tracks): number of tracks (int), track #1 music filename (string), track #1 button number (int), track #2 music filename (string), track #2 button number (int), ... 3 Duration of show in the format, MM:SS.DD 4 Number of Pyro Cue Records (int) 5 If "old" format, this line is blank; if "new" format, this line contains five fields: number of tracks (int), number of Pyro Cue Records (int), number of Pyro Event Records (int), number of modules referenced by pyro or DMX event records (int), duration of show in hundredths of a second (int) 6 If "old" format, this line is blank; if "new" format, this line contains five fields: number of tracks (int), number of DMX Cue Records (int), number of DMX Event Records (int), number of used unique DMX module/channel addresses (int), duration of show in hundredths of a second (int) 7 Blank 8 Blank 9 Blank   The "old data" section follows the header.  This section is present in both the "old" and "new" formats.  The old data consists of a list of firing rows representing unique module/slat/pin/event-time combinations, sorted by effect time.  The firing rows are defined in Table 5. Table 5 – Specification of "old data" firing rows Field Description Cue Unique effect time count, beginning with 1 and advancing with each new effect time (int) Track Track button number, a number from 1-1000 identifying a segment in a semi-auto shows; or 0 for standard pyromusical shows (int) Effect time Effect time in the format, MM:SS.DD. (Please see comment about effect times in semi-auto shows in Table 2, above.) Prefire time Prefire time, represented as a floating point number with one or two digits to the right of the "dot" radix point (float) Module Module number, 1-99 (int) Slat Slat letter, A-F (upper case character) Pin Pin number, 1-4 (int) Effect description Description of the effect (string) Effect size Caliber of the effect, such as 3" or 75mm (string) Angle Angle of the effect in degrees, with up = 0 and right = 90 and left = -90 (int) Position name Position name (string) Note Anything (string)   The third and fourth section of the PyroSure script contain the pyro data and DMX data separately.  The sections have the same basic structure, though there are some differences in the event records.  Table 6 shows the pyro data, which is the third section.   Table 6 – Specification of "new pryo data" section Subsection Description Delimiter (One line) ********F******** Segment records array (N records as separate lines, for N = number of tracks as specified in line 2 of the header) Each record consists of the index into the Pyro Cue Records array of the first cue record of the track (int), followed by the music filename for the track (string), followed by a blank field.  If the show  is not a semi-automatic show, then it contains one default segment (written as, "0,,"). Pyro Cue Records array (N records as separate lines, for N = number of Pyro Cue Records as specified in line 5 of the header, and also line 4 of the header) Each record consists of the effect time of the cue in hundredths of a second (int), followed by the index into the Pyro Event Records array of the first event record associated with the cue, i.e., whose event time equals the cue record's effect time minus prefire time (int), followed by a blank field. Pyro Event Records array (N records as separate lines, for N = number of Pyro Event Records as specified in line 5 of the header, and also line 1 of the header) Each record consists of five fields: the quantity (module number - 1 ) * 24 + (slat letter - 'A') * 4 + pin number - 1 (int), prefire time in hundredths of a second (int), position name (string), angle in degrees, with up = 0 and right = 90 and left = -90 (int), effect description (string).   The DMX data section is analogous to the pyro data section, with main differences in the event records.  The DMX Event Records array includes "reset" events at the beginning of each track, as specified in Table 2.   Table 7 – Specification of "new DMX data" section Subsection Description Delimiter (One line) ********D******** Segment records array (N records as separate lines, for N = number of tracks as specified in line 2 of the header) Each record consists of the index into the DMX Cue Records array of the first cue record of the track (int), followed by the music filename for the track (string), followed by a blank field.  If the show  is not a semi-automatic show, then it contains one default segment (written as, "0,,"). DMX Cue Records array (N records as separate lines, for N = number of DMX Cue Records as specified in line 6 of the header) Each record consists of the effect time of the cue in hundredths of a second (int), followed by the index into the DMX Event Records array of the first event record associated with the cue, i.e., whose event time equals the cue record's DMX effect time (int), followed by a blank field. DMX Event Records array (N records as separate lines, for N = number of DMX Event Records as specified in line 6 of the header) Each record consists of five fields: the quantity ( module number - 1 ) (int), the quantity (duration in 100ms time units * 0x1000000 + DMX event end value * 0x10000 + DMX event start value or DMX event only value if the event has zero duration * 0x100 + DMX event channel) (int), position name (string), angle in degrees, with up = 0 and right = 90 and left = -90 (int), effect description (string).   An example script containing six (6) shells, three (3) DMX safety channel events, and sixty-three (63) DMX flame shots across nine MAGICFX Flamaniac flame units. Please see Exporting a firing system script for flame systems for a full description of this example. magicfx_pyrosure_standard_v5,PYROSURE,1,6 1,,Finale 02:00.00 4 1,4,6,1,12000 1,44,177,46,12000 1,0,00:03.58,2.24,1,A,1,White Chrysanthemum,2",0,Pyro-01, 2,0,00:04.08,2.24,1,A,2,Red Chrysanthemum,2",-30,Pyro-01, 2,0,00:04.08,2.24,1,A,3,Blue Chrysanthemum,2",30,Pyro-01, 3,0,00:10.71,2.24,1,A,4,White Chrysanthemum,2",0,Pyro-01, 4,0,00:11.21,2.24,1,B,1,Red Chrysanthemum,2",-30,Pyro-01, 4,0,00:11.21,2.24,1,B,2,Blue Chrysanthemum,2",30,Pyro-01, ********F******** 0,, 358,0, 408,1, 1071,3, 1121,4, 0,224,Pyro-01,0,White Chrysanthemum 1,224,Pyro-01,-30,Red Chrysanthemum 2,224,Pyro-01,30,Blue Chrysanthemum 3,224,Pyro-01,0,White Chrysanthemum 4,224,Pyro-01,-30,Red Chrysanthemum 5,224,Pyro-01,30,Blue Chrysanthemum ********D******** 0,, 490,0, 500,46, 510,47, 520,48, 530,49, 540,50, 550,51, 560,53, 570,55, 580,57, 590,59, 600,60, 610,61, 620,62, 630,63, 640,64, 667,65, 676,66, 696,75, 716,84, 726,93, 736,102, 746,111, 756,120, 766,129, 786,138, 806,147, 867,156, 883,157, 893,158, 903,159, 913,160, 923,161, 933,162, 943,163, 953,165, 963,167, 973,169, 983,171, 993,172, 1003,173, 1013,174, 1023,175, 1033,176, 0,13,,,Reset 0,23,,,Reset 0,33,,,Reset 0,43,,,Reset 0,53,,,Reset 0,63,,,Reset 0,73,,,Reset 0,83,,,Reset 0,93,,,Reset 0,11,,,Reset 0,21,,,Reset 0,31,,,Reset 0,41,,,Reset 0,51,,,Reset 0,61,,,Reset 0,71,,,Reset 0,81,,,Reset 0,91,,,Reset 0,12,,,Reset 0,22,,,Reset 0,32,,,Reset 0,42,,,Reset 0,52,,,Reset 0,62,,,Reset 0,72,,,Reset 0,82,,,Reset 0,92,,,Reset 0,14,,,Reset 0,24,,,Reset 0,34,,,Reset 0,44,,,Reset 0,54,,,Reset 0,64,,,Reset 0,74,,,Reset 0,84,,,Reset 0,94,,,Reset 0,15,,,Reset 0,25,,,Reset 0,35,,,Reset 0,45,,,Reset 0,55,,,Reset 0,65,,,Reset 0,75,,,Reset 0,85,,,Reset 0,95,,,Reset 0,32769,Safety,0,MAGICFX DMX Safety Channel 0,65293,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,65303,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,65313,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,65323,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,65333,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,13,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,65343,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,23,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,65353,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,33,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,65363,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,43,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,65373,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,53,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,63,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,73,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,83,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,93,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,1,Safety,0,MAGICFX DMX Safety Channel 0,32769,Safety,0,MAGICFX DMX Safety Channel 0,65291,Flame-01,0,MAGICFX L45 Medium DMX Mode1 0,65301,Flame-02,0,MAGICFX L45 Medium DMX Mode1 0,65311,Flame-03,0,MAGICFX L45 Medium DMX Mode1 0,65321,Flame-04,0,MAGICFX L45 Medium DMX Mode1 0,65331,Flame-05,0,MAGICFX L45 Medium DMX Mode1 0,65341,Flame-06,0,MAGICFX L45 Medium DMX Mode1 0,65351,Flame-07,0,MAGICFX L45 Medium DMX Mode1 0,65361,Flame-08,0,MAGICFX L45 Medium DMX Mode1 0,65371,Flame-09,0,MAGICFX L45 Medium DMX Mode1 0,65292,Flame-01,0,MAGICFX L22.5 Medium DMX Mode1 0,65302,Flame-02,0,MAGICFX L22.5 Medium DMX Mode1 0,65312,Flame-03,0,MAGICFX L22.5 Medium DMX Mode1 0,65322,Flame-04,0,MAGICFX L22.5 Medium DMX Mode1 0,65332,Flame-05,0,MAGICFX L22.5 Medium DMX Mode1 0,65342,Flame-06,0,MAGICFX L22.5 Medium DMX Mode1 0,65352,Flame-07,0,MAGICFX L22.5 Medium DMX Mode1 0,65362,Flame-08,0,MAGICFX L22.5 Medium DMX Mode1 0,65372,Flame-09,0,MAGICFX L22.5 Medium DMX Mode1 0,65293,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,65303,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,65313,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,65323,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,65333,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,65343,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,65353,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,65363,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,65373,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,11,Flame-01,0,MAGICFX L45 Medium DMX Mode1 0,21,Flame-02,0,MAGICFX L45 Medium DMX Mode1 0,31,Flame-03,0,MAGICFX L45 Medium DMX Mode1 0,41,Flame-04,0,MAGICFX L45 Medium DMX Mode1 0,51,Flame-05,0,MAGICFX L45 Medium DMX Mode1 0,61,Flame-06,0,MAGICFX L45 Medium DMX Mode1 0,71,Flame-07,0,MAGICFX L45 Medium DMX Mode1 0,81,Flame-08,0,MAGICFX L45 Medium DMX Mode1 0,91,Flame-09,0,MAGICFX L45 Medium DMX Mode1 0,65294,Flame-01,0,MAGICFX R22.5 Medium DMX Mode1 0,65304,Flame-02,0,MAGICFX R22.5 Medium DMX Mode1 0,65314,Flame-03,0,MAGICFX R22.5 Medium DMX Mode1 0,65324,Flame-04,0,MAGICFX R22.5 Medium DMX Mode1 0,65334,Flame-05,0,MAGICFX R22.5 Medium DMX Mode1 0,65344,Flame-06,0,MAGICFX R22.5 Medium DMX Mode1 0,65354,Flame-07,0,MAGICFX R22.5 Medium DMX Mode1 0,65364,Flame-08,0,MAGICFX R22.5 Medium DMX Mode1 0,65374,Flame-09,0,MAGICFX R22.5 Medium DMX Mode1 0,12,Flame-01,0,MAGICFX L22.5 Medium DMX Mode1 0,22,Flame-02,0,MAGICFX L22.5 Medium DMX Mode1 0,32,Flame-03,0,MAGICFX L22.5 Medium DMX Mode1 0,42,Flame-04,0,MAGICFX L22.5 Medium DMX Mode1 0,52,Flame-05,0,MAGICFX L22.5 Medium DMX Mode1 0,62,Flame-06,0,MAGICFX L22.5 Medium DMX Mode1 0,72,Flame-07,0,MAGICFX L22.5 Medium DMX Mode1 0,82,Flame-08,0,MAGICFX L22.5 Medium DMX Mode1 0,92,Flame-09,0,MAGICFX L22.5 Medium DMX Mode1 0,65295,Flame-01,0,MAGICFX R45 Medium DMX Mode1 0,65305,Flame-02,0,MAGICFX R45 Medium DMX Mode1 0,65315,Flame-03,0,MAGICFX R45 Medium DMX Mode1 0,65325,Flame-04,0,MAGICFX R45 Medium DMX Mode1 0,65335,Flame-05,0,MAGICFX R45 Medium DMX Mode1 0,65345,Flame-06,0,MAGICFX R45 Medium DMX Mode1 0,65355,Flame-07,0,MAGICFX R45 Medium DMX Mode1 0,65365,Flame-08,0,MAGICFX R45 Medium DMX Mode1 0,65375,Flame-09,0,MAGICFX R45 Medium DMX Mode1 0,13,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,23,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,33,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,43,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,53,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,63,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,73,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,83,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,93,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,14,Flame-01,0,MAGICFX R22.5 Medium DMX Mode1 0,24,Flame-02,0,MAGICFX R22.5 Medium DMX Mode1 0,34,Flame-03,0,MAGICFX R22.5 Medium DMX Mode1 0,44,Flame-04,0,MAGICFX R22.5 Medium DMX Mode1 0,54,Flame-05,0,MAGICFX R22.5 Medium DMX Mode1 0,64,Flame-06,0,MAGICFX R22.5 Medium DMX Mode1 0,74,Flame-07,0,MAGICFX R22.5 Medium DMX Mode1 0,84,Flame-08,0,MAGICFX R22.5 Medium DMX Mode1 0,94,Flame-09,0,MAGICFX R22.5 Medium DMX Mode1 0,15,Flame-01,0,MAGICFX R45 Medium DMX Mode1 0,25,Flame-02,0,MAGICFX R45 Medium DMX Mode1 0,35,Flame-03,0,MAGICFX R45 Medium DMX Mode1 0,45,Flame-04,0,MAGICFX R45 Medium DMX Mode1 0,55,Flame-05,0,MAGICFX R45 Medium DMX Mode1 0,65,Flame-06,0,MAGICFX R45 Medium DMX Mode1 0,75,Flame-07,0,MAGICFX R45 Medium DMX Mode1 0,85,Flame-08,0,MAGICFX R45 Medium DMX Mode1 0,95,Flame-09,0,MAGICFX R45 Medium DMX Mode1 0,1,Safety,0,MAGICFX DMX Safety Channel 0,32769,Safety,0,MAGICFX DMX Safety Channel 0,65373,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,65363,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,65353,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,65343,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,65333,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,93,Flame-09,0,MAGICFX Up Medium DMX Mode1 0,65323,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,83,Flame-08,0,MAGICFX Up Medium DMX Mode1 0,65313,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,73,Flame-07,0,MAGICFX Up Medium DMX Mode1 0,65303,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,63,Flame-06,0,MAGICFX Up Medium DMX Mode1 0,65293,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,53,Flame-05,0,MAGICFX Up Medium DMX Mode1 0,43,Flame-04,0,MAGICFX Up Medium DMX Mode1 0,33,Flame-03,0,MAGICFX Up Medium DMX Mode1 0,23,Flame-02,0,MAGICFX Up Medium DMX Mode1 0,13,Flame-01,0,MAGICFX Up Medium DMX Mode1 0,1,Safety,0,MAGICFX DMX Safety Channel Figure 2 – Example PyroSure script   Table 8 – Example files Download link Explanation magicfx_pyrosure_standard.fin Example standard show using PyroSure, MAGICFX magicfx_pyrosure_standard.wyh Example standard exported script using PyroSure, MAGICFX magicfx_pyrosure_semi_auto.fin Example semi-auto show using PyroSure, MAGICFX magicfx_pyrosure_semi_auto.wyh Example semi-auto exported script using PyroSure, MAGICFX

fireTEK

To create and export a script for the fireTEK firing system, please follow these steps: Address the show ("Addressing > Address show..."). Export the firing system script ("File > Export > Export firing script(s)...").  Save the exported file as "script.csv" onto your USB (max 32GB, formatted as FAT32). Import the script into your fireTEK controller. To export a DMX or DMX + pyro script, please see Flame systems basic instructions and Exporting a firing system script for flame systems for further instructions. The exported script is a text file with a "CSV" extension.  While it is possible to open this file in a text editor, the file is not meant for humans to read or write.  It contains only the data that the controller requires for shooting the show.  For pyro, most fireTEK users will not need to concern themselves with the file format described in this section. DMX setup and configuration are complicated, so you may want to examine the script visually to ensure it represents what you expect. The file format described in this section provides the necessary details. Figure 1 – fireTEK firing system   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 Sort order of rows Rows sorted ascending by module number, then track, then ignition time, then pin number. 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.  Simple DMX effects with duration (see below) are represented as pairs of rows, an ON row at the beginning of the effect and an OFF row at the end. File format versions Finale 3D exports four different fireTEK script formats, v1, v2, v3, and v4. The formats are supported by various versions of the fireTEK software that is used to upload the script into the system. You can determine the right version number by asking on fireTEK staff or by examining an example file that works on your system, and counting the number of columns. The versions have 4 columns, 7 columns, and 10 columns, and 12 columns, respectively.  The columns are shown in a header row at the top of the file. Script format v1 (4 columns):  Module,Slat,Pin,Time Script format v2 (7 columns): Module,Slat,Pin,Time,Sequence,DMX Value,Duration Script format v3 (10 columns): Module,Slat,Pin,Time,Sequence,DMX Value,Duration,Size,Position,Name Script format v4 (12 columns): Module,Slat,Pin,Time,Sequence,DMX Value,RampX,Duration,Position,Safety Zone,Effect Name,Sequence Name Time resolution The fireTEK system supports millisecond resolution. File header Script formats V1-V3 begin directly with the CSV header row.  Script format V4 begins with a show name line prior to the CSV header row.  The show name line begins with  ## followed by the show name (special characters ; # @ , . & $ ~ removed, limited to 21 characters). Tracks fireTEK supports semi-automatic firing with independently triggerable tracks.  The script exported from Finale 3D will automatically contain independently triggerable tracks if any event contains a valid “Track“ other than 0.  Tracks may be integers 0-99 or letters followed by integers in that range (example: “1” and “Trk1” are both okay). In the exported script, the “Sequence” field contains the track number. Tracks must be in chronological order in the Finale 3D show, but do not need to start with 0.  With the exception of Track 0, the ignition times in semi-automatic show scripts are relative to the ignition of the first effect in the track (subject to the firing system's 10ms minimum value constraint). The track value 0 is special.  It indicates the main show, for which times are absolute and may be in synch with the music, i.e., NOT relative to the first event in the track.  You can create a script that contains the main show that begins automatically (track 0) and also separately triggerable tracks (track 1-99) that begin when you press the corresponding button.  The triggerable tracks will overlay the main show. Module types fireTEK systems have 64 pin (4 x 16-pin slats), 48 pin (4 x 12-pin slats) and 24 pin (2 x 12-pin slats) modules. The DMX-capable modules are essentially two-in-one modules, supporting pyro ignitions and DMX output, as explained more fully here. Slats Each fireTEK module distributes its ignition pins using 16-pin or 12-pin slats. Thus a full firing system pin address includes a module number (1-99), slat number (1-4 or 1-8), and pin number (1-16). DMX support Each DMX-capable fireTEK module is capable of serving an independent DMX universe, or a DMX universe shared with other modules having the same module address.  The "Module" field in the script row indicates the module number for pyro ignition events and/or corresponding DMX universe for DMX events.  When scripting DMX or hybrid pyro/DMX shows in Finale 3D, please set the "DMX Universe" for the fixtures to the module number of the module that the fixtures are connected to. DMX representation in the script DMX rows are mixed in with pyro rows in the script, sorted by event time.  DMX rows are distinguished by the value in the "Pin" field.   If the value < 100, the row is a pyro ignition row.  If the value is > 100, the row is a DMX event and the value for this field is the DMX channel number + 100, i.e., subtract 100 to get the actual DMX channel number.  DMX rows contain an optional duration field, which is either 0 (ignored) or an integer representing the duration of the event in 100ms time units, up to a maximum of 25 seconds (duration value = 250).  If the duration field is non-zero, the fireTEK system will automatically reset the DMX value to zero at the end of the duration. For many types of DMX devices, the duration field facilitates a more efficient representation of events in the script, using one row instead of two.  Finale 3D uses the duration field to represent script events efficiently when possible, and uses ON/OFF pairs of events when the desired duration is not a multiple of 100ms or when the duration is longer than 25 seconds. With the duration field, many types of DMX events can be represented in a single row in the script, but complex DMX effects like adjustable angle shots of the Explo X2 Wave Flamer may require substantially more rows  (see Explo X2 Wave Flamer). DMX resting state The fireTEK system does not require the at-rest DMX channel values to be zero, which is beneficial for stateful DMX devices like flame units with rotating nozzles, for which it is undesirable to return the nozzle to a resting angle in between two shots at the same angle, if that same angle is different from the resting angle. When you export a firing script for fireTEK, Finale 3D presents an "Export Options" dialog with the choices shown in Table 3.   Table 3 – Export options Option name Description Version Choose version v1 (4 columns), v2 (7 columns), v3 (10 columns), or v4 (12 columns).   After the header, each row in the script has a number of fields separated by the comma character.  The names of these fields and their descriptions are the following: Table 4 – Specifications of script fields for V1, V2, and V3 script formats Field name Description Module The value 1-99 for module number or DMX universe. Slat The value 1-4 for 48 pin modules, and 1-2 for 24 pin modules; the value 1 for DMX events. Pin The value 1-12 for pyro ignitions, or 101-199 to represent DMX channels 1-99 in DMX events. Time The time of ignition in milliseconds Sequence The value 1-99 identifying a track for semi-automatic firing, or 0 for standard pyromusicals. DMX Value The value 0-255 for DMX events, or 0 for pyro ignitions. Duration The value 0 or 1-250. If non-zero, the integer represents the duration of the event in 100ms time units, up to a maximum of 25 seconds (duration value = 250).  The fireTEK system will automatically reset the DMX value to zero at the end of the duration, if the duration value is non-zero. Size An optional text string indicating the size of the effect, e.g., 3". Position An optional text string indicating the position, e.g., Pos-01. Name An optional text string indicating the name of the effect, e.g., Red Peony.   Table 5 – Specifications of script fields for V4 script format Field name Description Module The value 1-99 for module number or DMX universe (for DMX, please set the DMX Universe field of the fixtures to the module number of the module that the fixtures are connected to) Slat The value 1-4 for 48 pin modules, and 1-2 for 24 pin modules; the value 1 for DMX events. Pin The value 1-12 for pyro ignitions, or 101-199 to represent DMX channels 1-99 in DMX events. Time The time of ignition in milliseconds Sequence The value 1-99 identifying a track for semi-automatic firing, or 0 for standard pyromusicals. DMX Value The value 0-255 for DMX events, or 0 for pyro ignitions. RampX The value 0 - 4, indicating the meaning of the Duration field: 0 - Ignored 1 - Instantly change the DMX value to the new value and set to 0 after Duration 2 - Instantly change the DMX value to the new value and set to previous value after Duration 3 - Incrementally change the DMX value to become the new value over the course of the Duration (Ramp time) 4 - Incrementally change the DMX value to become the new value with speed from Duration column (Ramp speed) Duration The duration or ramp speed, depending on RampX. This field is ignored if RampX is 0. If RampX is 1-3 then this field is the duration time in milliseconds. If RampX is 4, then this field is the ramp speed in units per second.  The value will increment from the present value up to the new value at a rate of this many units per second.  For example, if the value begins at 10 and is set to a new value of 15 with a ramp speed of 2, it will take 2.5 seconds for the value to reach 15. Position An integer 0-255 representing the position.  In Finale 3D, this integer is extracted from the position name itself, or is zero if the position name does not contain an integer.  For example, the position name "Pos-07" results in the field value of 7.  NOTE: As of the beta release mid-July 2021, Finale 3D writes zero to this field to accommodate a bug in the fireTEK firmware with non-zero values. Safety Zone An integer 0-255 for disabling sections of the show during the performance.  This number is taken from the Hazard field in the Finale 3D script. Effect Name A text string indicating the name of the effect, e.g., Red Peony. Sequence Name A text string indicating the full name of the sequence corresponding to the sequence number.  As described in Table 2, sequence names are represented by the Track field in Finale 3D.  Valid sequence names are integers, optionally preceded by letters, such as "middle5" (number = 5).   An example script containing six (6) shells, three (3) DMX safety channel events, and sixty-three (63) DMX flame shots across nine MAGICFX Flamaniac flame units. Please see Exporting a firing system script for flame systems for a full description of this example. Module,Slat,Pin,Time,Sequence,DMX Value,Duration 10,1,1,1335,0,0,0 10,1,2,1835,0,0,0 10,1,3,1835,0,0,0 10,1,101,4900,0,128,0 10,1,113,5000,0,255,0 10,1,123,5100,0,255,0 10,1,133,5200,0,255,0 10,1,143,5300,0,255,0 10,1,153,5400,0,255,0 10,1,113,5500,0,0,0 10,1,163,5500,0,255,0 10,1,123,5600,0,0,0 10,1,173,5600,0,255,0 10,1,133,5700,0,0,0 10,1,183,5700,0,255,0 10,1,143,5800,0,0,0 10,1,193,5800,0,255,0 10,1,153,5900,0,0,0 10,1,163,6000,0,0,0 10,1,173,6100,0,0,0 10,1,183,6200,0,0,0 10,1,193,6300,0,0,0 10,1,101,6400,0,0,0 10,1,101,6674,0,128,0 10,1,111,6764,0,255,0 10,1,121,6764,0,255,0 10,1,131,6764,0,255,0 10,1,141,6764,0,255,0 10,1,151,6764,0,255,0 10,1,161,6764,0,255,0 10,1,171,6764,0,255,0 10,1,181,6764,0,255,0 10,1,191,6764,0,255,0 10,1,112,6964,0,255,0 10,1,122,6964,0,255,0 10,1,132,6964,0,255,0 10,1,142,6964,0,255,0 10,1,152,6964,0,255,0 10,1,162,6964,0,255,0 10,1,172,6964,0,255,0 10,1,182,6964,0,255,0 10,1,192,6964,0,255,0 10,1,113,7164,0,255,0 10,1,123,7164,0,255,0 10,1,133,7164,0,255,0 10,1,143,7164,0,255,0 10,1,153,7164,0,255,0 10,1,163,7164,0,255,0 10,1,173,7164,0,255,0 10,1,183,7164,0,255,0 10,1,193,7164,0,255,0 10,1,111,7264,0,0,0 10,1,121,7264,0,0,0 10,1,131,7264,0,0,0 10,1,141,7264,0,0,0 10,1,151,7264,0,0,0 10,1,161,7264,0,0,0 10,1,171,7264,0,0,0 10,1,181,7264,0,0,0 10,1,191,7264,0,0,0 10,1,114,7364,0,255,0 10,1,124,7364,0,255,0 10,1,134,7364,0,255,0 10,1,144,7364,0,255,0 10,1,154,7364,0,255,0 10,1,164,7364,0,255,0 10,1,174,7364,0,255,0 10,1,184,7364,0,255,0 10,1,194,7364,0,255,0 10,1,112,7464,0,0,0 10,1,122,7464,0,0,0 10,1,132,7464,0,0,0 10,1,142,7464,0,0,0 10,1,152,7464,0,0,0 10,1,162,7464,0,0,0 10,1,172,7464,0,0,0 10,1,182,7464,0,0,0 10,1,192,7464,0,0,0 10,1,115,7564,0,255,0 10,1,125,7564,0,255,0 10,1,135,7564,0,255,0 10,1,145,7564,0,255,0 10,1,155,7564,0,255,0 10,1,165,7564,0,255,0 10,1,175,7564,0,255,0 10,1,185,7564,0,255,0 10,1,195,7564,0,255,0 10,1,113,7664,0,0,0 10,1,123,7664,0,0,0 10,1,133,7664,0,0,0 10,1,143,7664,0,0,0 10,1,153,7664,0,0,0 10,1,163,7664,0,0,0 10,1,173,7664,0,0,0 10,1,183,7664,0,0,0 10,1,193,7664,0,0,0 10,1,114,7864,0,0,0 10,1,124,7864,0,0,0 10,1,134,7864,0,0,0 10,1,144,7864,0,0,0 10,1,154,7864,0,0,0 10,1,164,7864,0,0,0 10,1,174,7864,0,0,0 10,1,184,7864,0,0,0 10,1,194,7864,0,0,0 10,1,115,8064,0,0,0 10,1,125,8064,0,0,0 10,1,135,8064,0,0,0 10,1,145,8064,0,0,0 10,1,155,8064,0,0,0 10,1,165,8064,0,0,0 10,1,175,8064,0,0,0 10,1,185,8064,0,0,0 10,1,195,8064,0,0,0 10,1,4,8465,0,0,0 10,1,101,8674,0,0,0 10,1,101,8828,0,128,0 10,1,193,8928,0,255,0 10,1,5,8965,0,0,0 10,1,6,8965,0,0,0 10,1,183,9028,0,255,0 10,1,173,9128,0,255,0 10,1,163,9228,0,255,0 10,1,153,9328,0,255,0 10,1,193,9428,0,0,0 10,1,143,9428,0,255,0 10,1,183,9528,0,0,0 10,1,133,9528,0,255,0 10,1,173,9628,0,0,0 10,1,123,9628,0,255,0 10,1,163,9728,0,0,0 10,1,113,9728,0,255,0 10,1,153,9828,0,0,0 10,1,143,9928,0,0,0 10,1,133,10028,0,0,0 10,1,123,10128,0,0,0 10,1,113,10228,0,0,0 10,1,101,10328,0,0,0 Figure 1 – Example fireTEK script   Table 6 – Example files Download link Explanation magicfx_firetek_standard.fin Example standard show using fireTEK, MAGICFX magicfx_firetek_standard.csv Example standard exported script using fireTEK, MAGICFX magicfx_firetek_semi_auto.fin Example semi-auto show using fireTEK, MAGICFX magicfx_firetek_semi_auto.csv Example semi-auto exported script using fireTEK, MAGICFX g_flame_firetek_standard.fin Show file for G-Flame and pyro example with fireTEK ignition system by DMX g_flame_firetek_standard.csv Exported CSV file for G-Flame and pyro example with fireTEK ignition system by DMX

Pyromac

To create and export a pyro script for the Pyromac firing system in Finale 3D, please follow these steps: Address the show ("Addressing > Address show..."). Export the firing system script ("File > Export > Export firing script(s)..."). Import the script into your Pyromac controller. In June 2022, Pyromac released a V2 script format to support its new DMX Box hardware product.  At the same time, Finale 3D released a software update that adds an Export Options dialog when you export to Pyromac, and the dialog gives you the choice of exporting a V1 script or V2 script.  If you choose V2, the dialog presents some additional options.  This article is based on the V1 format, except for the top of Table 2 which covers specific capabilities of the V2 format. To export a DMX or DMX + pyro script, please see Flame systems basic instructions and Exporting a firing system script for flame systems for further instructions.  Also, the article Example: Explo X2 Wave Flamer with Pyromac firing system provides an end-to-end example of setting up, designing, and exporting a DMX + pyro script for Pyromac. The exported Pyromac script is a text file with a "TXT" extension.  While it is possible to open this file in a text editor, the file is not meant for humans to read or write.  It contains only the data that the controller requires for shooting the show.  For pyro, most Pyromac users will not need to concern themselves with the file format described in this section. DMX setup and configuration are complicated, so you may want to examine the script visually to ensure it represents what you expect. The file format described in this section provides the necessary details. Figure 1 – The Pyromac firing system     Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .TXT ASCII Semicolon CRLF The script contains rows for the firing events, i.e., unique combinations of module, pin, and ignition-time.  Multiple effects can be combined on a single cue.  The special characteristics of the script are shown in the following table:   Table 2 – Special characteristics Special characteristics Description V2 script format The Export Options dialog gives you the choice of exporting in V1 format or V2 format.  The V2 format supports the DMX Box hardware in addition to the existing Pyromac "Master" modules.  As described below, the Pyromac Master modules serve DMX fixtures in a shared DMX Universe of 50 channels.  Each DMX Box serves its own DMX Universe of 512 channels.  When you design a DMX show in Finale 3D for Pyromac Master modules and DMX Boxes together, you will select, in the Export Options dialog, which DMX Universe in Finale 3D corresponds to the shared Pyromac Master module DMX Universe.  All other DMX Universes in Finale 3D will correspond to the DMX Box IDs. DMX Box IDs range from 1-10.  To avoid confusion, it is a good practice to use select DMX Universe = 11 for the Pyromac Master modules, leaving DMX Universes 1-10 for the matching DMX Box IDs. Sort order of rows Rows sorted ascending by effect time, then by module number, then by pin number. 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 ignition times are necessarily different rows, even if their addresses or effect times 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 two-line header row with boilerplate text that defines the columns: Pyromac firing system Cue;Time;Delay;Address (Mod,Pins);"Note";Duration Time resolution The Pyromac system supports hundredths of a second resolution. Tracks (semi-automatic firing) The exported script will be semi-auto if any event contains a valid "Track" in Finale 3D; tracks may be integers 1-9999 or letters followed by integers in that range (example: “1” and “Trk1” are both okay).  If you use tracks, please set the tracks to increasing numbers and make sure that every event in the show has a track number. If the track name of an event begins with non-digit text characters, followed by the digits representing track number, the non-digit text characters will replace the row's Note field in the exported script, which otherwise would contain the effect name.   Since the Pyromac controller displays the Note fields of the cues when shooting the show, and since each track comprises one cue in a semi-automatic show, the leading text characters in the Track field provide a way of naming the cues usefully.  Thus naming the tracks "Trk1" and "Trk2" and "Trk3" is not as useful as, for example, "Opening shot 1" and "Entrance 2" and "First song 3". In the exported script, the "Cue" field contains the track number formatted with four digits 0001-9999 (letters stripped out) if set; otherwise it contains the same-time cue count in the same four digit format. Tracks must be in chronological order in the Finale 3D show. In the Finale 3D script, please arrange the tracks with no interwoven or overlapping events.  Separate tracks in DMX scripts therefore need separate safety channels. DMX support Pyromac supports DMX  devices in a single, global DMX universe shared across all modules.  See Table 2 in  Exporting a firing system script for flame systems for details.  As of July 22, 2019 the Pyromac system limits the DMX channel range  to channels 1-50.  Please consult your Pyromac user's manual to confirm the supported channel range if you want to use DMX channels outside of the range 1-50. DMX resting state Pyromac asserts that the resting state for DMX channels is value = 0. All DMX events in the Pyromac script contain a duration.  The Pyromac system sets the DMX channel to the specified value for the duration of the effect, and then automatically sets the channel value back to zero. Overlapping DMX events Some types of DMX devices like flame systems with rotating nozzles have DMX channels that may need to remain in a resting state with a non-zero value in between events. In the case of the Explo X2 Wave Flamer, the nozzle angle should not return to a rest position after every shot because multiple shots from the same angle in quick succession would require leaving the nozzle where it is, since it cannot rotate instantaneously. So how do Finale 3D and Pyromac support events that do not return the DMX value to zero at the end of the event duration, given that Pyromac automatically resets the DMX value to zero at the end of the event duration? Overlapping DMX events provides an answer. If Pyromac encounters a second event for a DMX channel during the duration period of a first event for the same DMX channel, the second event will overwrite the DMX value and duration immediately to whatever its value and duration should be for the second event. For example, consider three events setting the value of a DMX channel to 128, then 64, then 192, and then (automatically) back to 0: Time = 0 ms, DMX value = 128, duration = 59990 ms (59,99 seconds) Time = 1000 ms, DMX value = 64, duration = 1000 ms Time = 1500 ms, DMX value = 192, duration = 1000 ms If the second event had a duration of 500 ms, the output value would change directly from 64 to 192 at 1500 ms, and then from 192 back to 0 at 2500 ms. If the second event had a duration of 400 ms, the output value would change from 64 to 0 (not 128) at 1400 ms and then to 192 100 ms later, and finally back to 0 at 2500 ms. If the second event had a duration of 600 ms, the output value would change directly from 64 to 192 at 1500 ms when the third row arrives, and back to 0 at 2500 ms. The overlapping DMX mechanics facilitate a strategy for representing events that have long lasting effects -- simply set their duration to "forever"! The long duration, in combination with the ability to interrupt the duration period with a different event, provide a means of representing a persistent state change event that holds its value until another event changes it. Long-lasting DMX events Pyromac DMX events are limited to 59990 ms (59,99 seconds). If a user adds a DMX event like a safety channel with a duration longer than 59,99 seconds, Finale 3D will automatically partition the long-lasting event into a string of multiple shorter events back to back. No event in the exported script will be longer than 59,99 seconds. DMX effects that set a persistent value (i.e., a value that lasts "forever" or until overwritten by another event) face a similar problem, since "forever" is longer than 59,99 seconds. For all long-lasting effects, including "forever" effects, Finale 3D exports strings of multiple events back to back to hold DMX channel values until the end of the show. Module Types Finale 3D supports four Pyromac module types for pyro ignitions, Pyromac 10 Channel, Pyromac 15 Channel, Pyromac 16 Channel, Pyromac 32 Channel, in addition to the module type Pyromac DMX Device, which represents the DMX side of a Pyromac module. DMX representation in the script DMX rows are mixed in with pyro rows in the script, sorted by effect time.  DMX rows are distinguished by the module number field: if module number <= 900, then the module number represents a true module number, for pyro ignitions; if the module number > 900, then the number is actually the DMX channel number + 900 (i.e., the number is not a module number at all!).  DMX rows re-use the pin column to hold the DMX value for the event, from 0-255. DMX rows have  an additional required field -- duration -- after the notes field (the duration field is optional for pyro ignitions, but not optional for DMX). The Pyromac system limits the DMX channel range  to channels 1-50, so the DMX module number field contains numbers in the range 901 to 950. After the header, each row in the script has a number of fields separated by the semicolon character.  The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description Cue For standard pyromusicals, the Cue field is the sequential count of unique firing times.  Two events having the same effect time would have the same value in the Cue field.  For  semi-automatic firing, the cue field contains the track number from the "Track "field in the script in Finale 3D. Time The effect time in the format HH,MM,SS.DD. For standard pyromusicals, the effect time is relative to zero; for semi-automatic firing, the effect time is relative to the first ignition time in the track (the event time). The first event in a semi-automatic track thus must have the same value its Time field and its Delay field, since Delay is the time difference between the ignition time and the effect time. Delay The prefire time in the format HH,MM,SS.DD; for DMX rows this value must be 00,00,00.00. Address (Mod,Pins) The value 1-900 for module number, or 901-999 for DMX channel numbers 1-99; comma; then the pin number from 1-32 or the DMX value from 0-255. "Note" The effect name, in double quotes; or the Track name if the track begins with non-digit text characters as described in Table 2. Duration For DMX events, the duration field (required) is the duration of the effect in the format HH,MM,SS.DD.  For pyro ignition events, this field is optional (but if the semicolon is present, the field must be included in the valid time format).   An example script containing six (6) shells, three (3) DMX safety channel events, and sixty-three (63) DMX flame shots across nine MAGICFX Flamaniac flame units. Please see Exporting a firing system script for flame systems for a full description of this example. Pyromac firing system Cue;Time;Delay;Address (Mod,Pins);"Note";Duration 0001;00,00,03.58;00,00,02.24;010,01;"White Chrysanthemum" 0002;00,00,04.08;00,00,02.24;010,02;"Red Chrysanthemum" 0002;00,00,04.08;00,00,02.24;010,03;"Blue Chrysanthemum" 0003;00,00,04.90;00,00,00.00;901,128;"MAGICFX DMX Safety Channel";00,00,01.50 0004;00,00,05.00;00,00,00.00;913,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0005;00,00,05.10;00,00,00.00;923,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0006;00,00,05.20;00,00,00.00;933,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0007;00,00,05.30;00,00,00.00;943,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0008;00,00,05.40;00,00,00.00;953,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0009;00,00,05.50;00,00,00.00;963,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0010;00,00,05.60;00,00,00.00;973,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0011;00,00,05.70;00,00,00.00;983,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0012;00,00,05.80;00,00,00.00;993,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0013;00,00,06.67;00,00,00.00;901,128;"MAGICFX DMX Safety Channel";00,00,02.00 0014;00,00,06.76;00,00,00.00;911,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;921,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;931,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;941,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;951,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;961,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;971,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;981,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0014;00,00,06.76;00,00,00.00;991,255;"MAGICFX L45 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;912,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;922,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;932,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;942,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;952,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;962,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;972,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;982,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0015;00,00,06.96;00,00,00.00;992,255;"MAGICFX L22.5 Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;913,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;923,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;933,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;943,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;953,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;963,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;973,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;983,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0016;00,00,07.16;00,00,00.00;993,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;914,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;924,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;934,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;944,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;954,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;964,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;974,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;984,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0017;00,00,07.36;00,00,00.00;994,255;"MAGICFX R22.5 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;915,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;925,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;935,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;945,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;955,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;965,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;975,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;985,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0018;00,00,07.56;00,00,00.00;995,255;"MAGICFX R45 Medium DMX Mode1";00,00,00.50 0019;00,00,08.83;00,00,00.00;901,128;"MAGICFX DMX Safety Channel";00,00,01.50 0020;00,00,08.93;00,00,00.00;993,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0021;00,00,09.03;00,00,00.00;983,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0022;00,00,09.13;00,00,00.00;973,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0023;00,00,09.23;00,00,00.00;963,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0024;00,00,09.33;00,00,00.00;953,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0025;00,00,09.43;00,00,00.00;943,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0026;00,00,09.53;00,00,00.00;933,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0027;00,00,09.63;00,00,00.00;923,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0028;00,00,09.73;00,00,00.00;913,255;"MAGICFX Up Medium DMX Mode1";00,00,00.50 0029;00,00,10.71;00,00,02.24;010,04;"White Chrysanthemum" 0030;00,00,11.21;00,00,02.24;010,05;"Red Chrysanthemum" 0030;00,00,11.21;00,00,02.24;010,06;"Blue Chrysanthemum" end Figure 2 – Example Pyromac script   Table 4 – Example files Download link Explanation magicfx_pyromac_standard.fin Example standard show using Pyromac, MAGICFX magicfx_pyromac_standard.txt Example standard exported script using Pyromac, MAGICFX magicfx_pyromac_semi_auto.fin Example semi-auto show using Pyromac, MAGICFX magicfx_pyromac_semi_auto.txt Example semi-auto exported script using Pyromac, MAGICFX