Total found: 297
Loading effects that already have firing system addresses into racks

The usual order in Finale 3D for laying out racks is: (1) design the show, (2) add racks, and (3) address the show.  Step (3) assigns firing system addresses and racks together.  This order of operations has various advantages, but in some circumstances it isn't possible.  For example, if you inherit a show that already has firing system addresses, you may need to add racks and make rack assignments using the existing addresses as they are.  Finale 3D has two functions to load effects that already have firing system addresses into racks: "Racks > Load effects with firing system addresses into racks..." and "Racks > Re-load selected effects from script into racks". Figure 1 shows what a launch position might look like after importing a show with two Pyrodigital rails at the position, shown in the lower left corner.  The position doesn't yet have any racks because the file being imported, a CSV or SCX file for example, contains rows with firing system addresses but no racking information.   Figure 1 – After importing a show with firing system addresses, the rack layout window shows the firing system rails but no racks.   After adding racks with the function "Racks > Add racks for show", the launch position may look like Figure 2, with racks added for the various sizes and types of effects.   Figure 2 – After adding racks, the pins turn red to indicate their effects have not yet been assigned to the racks.   The racks in Figure 2 are in place, but the effects have not yet been loaded into racks.  From this point, you can manually load the effects into the racks by dragging and dropping the red pins to whatever tubes you want for their effects, but it is a lot faster to do it automatically by clicking the "Load into racks" link at the bottom of the window or doing the menu item, "Racks > Load effects with firing system addresses into racks..."  The automatic process results in the window shown in Figure 3.   Figure 3 – The "Load into racks" function loads the effects into racks, which is faster than dragging and dropping them one by one.   When you address the show and assign racks together in the normal order of operations, the addressing dialog offers you a checkbox option to "Re-arrange tubes in adjustable angle racks to avoid collisions", which optimizes the arrangements of single-shot effects in their racks.  This option is always on for the functions that load effects that already have firing system addresses into racks, except not for racks are already partially loaded with effects, and not for racks that have pre-wired pins (because rearrangement with pre-wired pins would require changing the pins). You can see the results of the option in Figure 3.  The show has single-shot effects aiming left and right.  The rack loading function has assigned the left-aiming effects to the left tubes of the racks and the right-aiming effects to the right tubes, ensuring the tubes aren't aiming toward each other.   Differences between addressing and assigning racks together versus loading effects into racks after addressing If you want, you can address any show before adding racks, and then add racks and load the effects into racks afterward.  All the specifications of the racks such as their compatible effect size ranges, angle restrictions, usable track length, pre-wired pins, and pre-wired rails will still apply.  The primary advantage of addressing and assigning racks together instead of assigning racks after the fact is that if you address and assign racks together you can choose constraints in the addressing dialog that affect what firing system addresses are assigned based on the available racks in the rack layout.  If you are addressing before adding the racks, then such constraints obviously don't apply since there aren't any racks to take into account. For example, you may want to limit modules to racks or rack clusters to avoid e-matches extending long distances from the modules to racks that aren't nearby.  In paragraph 3 of the addressing dialog you can add the "Rack" or "Rack Cluster" constraint to the module line to add this restriction (see Restricting modules to racks or rack clusters).  Say your module has 32 pins, but the rack clusters require only 30 pins each.  The addressing function will leave two pins unused based on the constraint you added.  But you can only do this if you are addressing and assigning racks together.  If you address first then all 32 pins of the modules will be assigned, and at that point there is nothing you can do about the two pins that serve far away racks.  It's too late.

Cross-loading chains with straight-up shells

If chain lengths don't match the length of racks, cross-loading the chains across racks may be the way to go.   Just look at Figure 1.  The techniques for cross-loading fanned chains are described in Cross-loading chains with angled shells or using fan-racks, but those techniques don't always work for straight-up chains.   A fanned chain doesn't have the option of loading into a single straight rack because of its angles, so it naturally loads across racks that are tilted at the matching angles.  A straight-up chain can load into a single straight rack or across racks.  You need to add an addressing constraint if you want it to load across racks.   Figure 1 – Bad result: if chain lengths don't match the rack length, straight-loading will cause chains to split across racks.   Adding the addressing constraint "Tube Index -- Chain"  to the pins does the trick.  The addressing constraints in the addressing dialog, shown in Figure 2, enable you to restrict every module "to a single XXX" for any term XXX you choose; or to restrict every slat "to a single XXX" for a term XXX; or to restrict every pin, or every rack, similarly.  The most common addressing constraint is to add the term XXX = "Position" to the module constraints, which restricts every module to the same launch position to avoid long wires travelling from the module to multiple positions.  You can see the "Position" constraint in Figure 2, although this constraint is not specifically related to chain loading.   Figure 2 – Adding "Tube Index -- Chain" to the pin constraints forces every shell of the chain to have the same tube index in its rack.   The addressing constraint to make chains cross-load is a constraint on the pin, as circled in Figure 2, which restricts every pin "to a single Tube Index -- Chain."  What makes this constraint work is that all the shells of a chain are ignited by the same e-match, and therefore by the same pin.  Thus any restriction on the pin will necessarily apply to all the shells of a chain ignited by the pin.  The "tube index" is just the order of the tubes in the rack, so if every shell of a chain is restricted to the same tube index, then the chain shells will line up in a straight row across a series of racks, as shown in Figure 3.   Figure 3 – Good result: if every shell of a chain has the same tube index, the chain loads in a row across the racks -- cross-loading!     The constraint "Tube Index -- Chain" includes the phrase "-- Chain" to indicate that the constraint only applies to chains.  It does not apply to flights of independent shells ignited by the same pin.  This subtle distinction is a convenience that allows you to add the constraint for addressing in general without it affecting pairs of shells or flights. The constraint also has one other nuance that isn't explicit in its name.  The "Tube Index -- Chain" constraint implicitly adds a "Chain Reference" constraint to the pin, which restricts the pin to a single chain (or non-chained shells), preventing multiple chains from being e-matched to the same pin.   If multiple chains were e-matched to the same pin, then the "Tube Index -- Chain" constraint would force all their shells to be at the same tube index, which would make for a very long row of racks. Lastly, the "Tube Index -- Chain" constraint only applies to pins.  Adding the constraint to the modules or slats does nothing because it doesn't make any sense.

Locking addresses

Locking addresses prevents addressing functions like "Addressing > Address show..." and "Addressing > Clear all addresses" from changing them.  The most common situation requiring locking addresses is when you have a completed show that is already labelled or wired and you want to add additional items to the show.  In a situation like this, you can't change the existing addresses without creating additional work, but you need firing system addresses and maybe rack assignments for the new items you've added to the show.   The menu item, "Addressing > Lock addresses" is the function that enables you to lock the script rows that you don't want to change.   Figure 1 – Locking addresses protects the firing system addresses and rack assignments from being changed.   Locking addresses protects all five fields that the addressing functions otherwise set, including firing system related fields and rack related fields: Universe, Section, Module Or Slat Type, Rail, Pin, Rack, and Tube.  The padlock icons appear only in the Rail and Pin columns.  Having locked the addresses you don't want to change, you can execute any of the addressing functions to fill in the firing system addresses and rack assignments of any non-locked items that you add to the show.  You can repeat the process of locking and adding more as many times as you like.   Racks The addressing functions in the addressing menu set both the firing system addresses and the rack assignments (rack and tube) simultaneously, which is what enables you to limit modules to single racks or rack clusters, and that sort of thing.  You can also assign firing system addresses first -- without racks -- and subsequently add racks and load the effects into racks using functions like "Racks > Load effects with firing system addresses into racks...".  These rack related functions in the Racks menu will apply whether or not the addresses are locked, overwriting the Rack and Tube fields.  

Addressing based on layout of racks (Rack Number)

The paradigm for assigning firing system addresses and racks in Finale 3D is to choose the firing system; then choose an "assignment order" for the effects by specifying a set of sort criteria, like "Position > Size > Angle"; and then, optionally, choose "addressing constraints" that prevent modules from serving effects across multiple positions or clusters of racks or the like.  The three choices -- firing system, assignment order, and constraints -- are the three paragraphs of the addressing dialog from the command "Addressing > Address show..." and similar addressing functions, as shown in Figure 1.   Figure 1 – The addressing choices: firing system, assignment order, and constraints.   These three addressing choices are natural if you want to sort your modules by size, or angle, or such, but what if you want to sort your modules according to how you've arranged your racks, left to right, which may not be strictly by size first, or by angle, or by any consistent sorting criteria whatsoever?  What if you wanted your modules sorted smoothly left to right in the rack layout shown in Figure 2?   Figure 2 – How can you make the module numbers go from left to right (00 to 12) when sorting by angle or size doesn't work?   Notice in the rack layout of Figure 2 that the module numbers just below the racks go from 00 to 12, left to right.  That's a hint that this module sorting is possible, but a closer inspection of Figure 2 shows why it may be difficult.  The yellow racks are 3" racks, and the red racks are 2" racks.  They are intermixed, left to right, so the modules clearly aren't sorted by size.  If you look at the angles above the racks, you can see that the angles also are intermixed, so sorting by angles wouldn't produce these module addresses either. The show designer of this show had something specific in mind for this rack arrangement.  The four yellow racks on the left are pairs of 3" effects that fire together in V's.  The show designer has laid out those racks in left/right pairs so the e-match wires are close together.  The top pin numbers of the left-most two racks are both 01; the next tubes down are 02, etc. The three other groups of racks, each with a yellow 3" rack flanked by four 2" angled racks, correspond to the physical rack structures the designer uses -- assemblies of five racks fanned out at pre-defined angles with the center rack upright and the outer racks tilted at 30 and 45 degrees. The designer thus doesn't have much choice for how to arrange the racks.  His goal is to assign firing system addresses optimally for the rack layout that he inherits.   Sorting by "Rack Number" Every rack in the layout has a unique "Rack Number" that you can edit in the table in the Racks window, as shown in Figure 3.  You can also select the racks and then right-click on them to do "Renumber racks left to right" from the context menu, or you can do "Racks > Renumber all racks consecutively" from the main menu to eliminate the gaps in the number sequence.  See Renumber racks for examples and more information about renumbering.   Figure 3 – You can edit rack numbers directly in the table or select and right-click groups of racks to renumber them left to right.     Once you've renumbered the racks in the order you want for the addresses, add the term "Rack Number" to the sort criteria of paragraph 2 in the addressing dialog, as shown in Figure 4.  Figure 4 produces the addressing result shown in the original example, above, in Figure 2.   Figure 4 – Sort by "Rack Number" to assign addresses based on layout of racks.     Other fine-tuning optimizations The addressing dialog of Figure 4 adds another sorting term to sort the pairs first, and adds a constraint to restrict modules to not be shared across clusters of racks.  These fine-tuning optimizations for addressing are highlighted in Figure 5.  Sorting by Rack Number doesn't require these other optimizations.  The example just aims to illustrate a realistic scenario that entails some additional considerations.   Figure 5 – (1) Pairs first; (2) Rack Cluster constraint; (3) Reverse loading order; (4) Sorting by Rack Number.   The "Pairs First" sorting term in paragraph 2 of the addressing dialog guarantees that the pairs of effects are addressed first, ensuring that the pairs line up evenly in the racks, as you can see near the #1.  If the show had other individual shells at those angles, addressed prior to the pairs, then the pin numbers of the pairs might not line up. The Rack Cluster constraint prevents the module serving the pair racks from continuing on with e-matches to the 2" racks near the #2 in Figure 5. A close look at the pin numbers in the non-pair clusters of racks shows that the pin numbers wrap around, zigzagging as drawn next to the #3 in the figure.  Not everybody wants pin numbers laid out that way, but if you do, then right click on the racks that you want to load in the reverse order and select "Reverse tube loading order."  The small horizontal just bar above two of the racks in each of those clusters is an indication that their loading order is reversed. Finally, the #4 calls your attention to the module numbers, sorted left to right in the diagram to match the rack numbers.

Copy/paste

Copy/paste is at once one of the most basic features in Finale 3D and one of the most advanced features.  Anyone who has ever used a Windows computer knows that Control-C copies and Control-V pastes, and that about sums up the basic uses.  This article explains the advanced uses, including, Copy/paste between Excel and Finale 3D, in both directions Copy/pasting events including firing system addresses, or not Copying a sequence of events from one position and pasting into multiple positions with one keystroke Copying a sequence of events from multiple positions and pasting into a different set of positions Copy/pasting between shows, with matching or non-matching position names Copy/pasting models and attached positions between shows, creating multiple instances or just pasting the missing ones To find these specific examples in the discussion below, search for "Advanced use from the list".   The copy buffer The foundation for understanding the advanced uses of copy/paste is the "copy buffer" and the rules governing what goes into the copy buffer when you copy, and how the contents of the copy buffer get applied when you paste.  Fortunately, the copy buffer is easy to access because it is just the computer system's "clipboard".  Moreover, the copy buffer is purely human readable text, which means that any time you want you can see the contents of the copy buffer simply by opening Notepad on your computer and pressing Control-V to paste. If you copy a couple rows from the Effects window in Finale 3D, then the contents of the copy buffer will look something like Figure 1 when you paste into Notepad:   ##partsHeader insertButton partNumber used quota qoh available description size internalDelay duration height numDevices color subtype vdl manufacturerPartNumber manufacturer partType stdPrice stdLocation lockoutDefault numTubes category customPartField rackType partNotes dmxPatch exNumber ceNumber unNumber stdCost safetyDistance fuseDelay remainingQuota remainingQoh remainingAvailable weight neq ##partsRow G2SH1000 G2SH1000 Red Chrysanthemum 2" 2.24 1.02 50.0 1 Red Chrysanthemum Red Chrysanthemum G2SH1000 Generic shell 1.45 2" Assorted 0 0 0 ##partsRow G2SH1001 G2SH1001 White Chrysanthemum 2" 2.24 1.02 50.0 1 White Chrysanthemum White Chrysanthemum G2SH1001 Generic shell 1.45 2" Assorted 0 0 0 Figure 1 – The copy buffer after copying a couple rows from the Effects window   The copy buffer in this example represents rows of a table, analogous to a CSV file.  The top row is the list of fields; the following rows are the data rows.  There's nothing special about the ## in the first fields.  That just signifies that the first field is identifying the purpose of the row.  In this case, the copied rows are from the Effects window, which the software internally calls "parts rows".   Copy/paste between Excel and Finale 3D Pasting into Excel makes the data easier to read because it lines up the columns.  Just as you pasted into Notepad by pressing Control-V, you can paste the data into Excel with Control-V, resulting in Figure 2:   Figure 2 – Pasting into Excel makes it easy to read   These first two examples have already illustrated the first advanced use from the list -- pasting into Excel -- at least in that direction.  To copy from Excel and paste into Finale 3D, try changing the description "Red Chrysanthemum" in column H of Excel to "Blue Chrysanthemum w/ Yellow Pistil" and copy that description to the VDL column P also.  Then copy rows 1 and 2 from Excel, i.e., the header row and the modified data row, using Control-C.  Then switch to Finale 3D and paste into the Effects window (not the 3D window).   Figure 3 – Copy/pasting from Excel to Finale 3D creates a new effect   The result in Figure 3 shows that Finale 3D pasted the data row as a new effect.  Since each effect must have a unique part number, the paste operation automatically added "(01)" to the pasted part number to differentiate it from the row above it.  Finale 3D even created a new blue and yellow icon based on your VDL description! You could have typed anything into Excel and copy/pasted into the Effects window.  As long as the copied data has the ##partsHeader header row defining the fields and ##partsRow as the first field of the data rows, the data will be copied into Effects window.  Aside from the ## column, the only required column is the partNumber column.  The order of the columns doesn't matter; they match up based on their names in the header row, which must match the non-localized, English, internal names that Finale 3D uses for the columns, which are listed in Table 1 of Effects table columns. Although you can use copy/paste from Excel to the Effects window to import your own effects lists or inventory, the "File > Import > Import effects file..." function is usually easier since it fills out any missing columns of information intelligently by making inferences from whatever data are provided, such as pulling the size information out of the description field if the description includes a size.  Notwithstanding, there are many circumstances for which pasting rows to or from Excel into the Effects window is a useful procedure.   Technical details of copying and pasting rows in the table windows In the example above, pasting into the Effects window modified the pasted part number to make it unique, adding "(01)" to the end.  Many of the other tables also have a key field like part number that needs to have a unique value, and pasting automatically makes the necessary modifications. The script table doesn't have a key field for its rows, but the script table has a few other fields for which pasting makes some necessary modifications or additions.   When you paste into the script window, the event's actionTime will be adjusted to correspond to the playhead in the timeline.  If you've copied a sequence of events at different times, then their pasted times will be relative to the playhead.  The position column will also absorb the position name of currently selected position or positions (see below for discussion of pasting into multiple positions).  Some other fields modified for pasting into the script table are shown in Table 1.  The railAddress, pinAddress, tube and rack fields are cleared when pasted because copy/paste is commonly used to create clones, so the firing system and rack addresses may not apply to the clones.   You can change the user setting, "File > User settings > Pasted events include rail, pin and rack addresses" if you do not want pasting to clear those fields (another advanced use from the list!). Since rows in the script table have dependencies on rows in other tables, the copy operation for the script table adds to the copy buffer the header row and data rows from the tables that the script rows depend on.   The script rows may depend on the Effects table, Positions table, and Models table since the events in the script reference a partNumber of an effect in the Effects table and reference a position name from the Positions table, which may be relative to a model from the Models table.  By combining all these headers and rows into the copy buffer, the copy operation eliminates outside dependencies from the copy buffer script data. When pasting rows into the script table, the referenced partNumber's effect row from the copy buffer will be copied to the Effects window, in the Per-show effects collection,  if it isn't already present.  The positions and models rows in the copy buffer are ignored when pasting into the script table because the events will be added to the selected positions, not to the copied positions.  The copied script rows thus don't depend on the position and model rows when pasting into the script table, but when copy/pasting between different shows and pasting into the 3D window, the position and model rows in the copy buffer may be required, as discussed below.   Table 1 – Technical details of copying and pasting rows for each type of table window Table window Row signifiers Key field Other fields modified Dependencies copied Dependencies pasted Effects table ##partsHeader, ##partsRow partNumber Script table ##scriptHeader, ##scriptRow actionTime, position, railAddress, pinAddress, tube, rack, randomSeed, chainRef, group Referenced rows from Effects table, Positions table, and Models table Missing rows in Effects table Positions table ##positionsHeader, ##positionsRow position Referenced rows from Models table Missing rows in Models table Models table ##modelsHeader, ##modelsRow modelRef Per-show settings table ##perShowSettingsHeader, ##perShowSettingsRow settingName Songs table ##songsHeader, ##songsRow songRef Blueprints table ##blueprintsHeader, ##blueprintsRow blueprint Images table ##imagesHeader, ##imagesRow imageRef Key frames table ##cameraHeader, ##cameraRow Racks table ##layoutHeader, ##layoutRow rack   Technical details of copying in the 3D window Copy/paste in the 3D window uses the same copy buffer and the same format as copy/paste in the table windows.  You can therefore copy/paste between the 3D window and the table windows.  Copy/paste in the 3D window, though, has more complicated rules for what rows and dependencies get copied into the copy buffer, and how the rows are applied when pasting.  The reason for the more complicated rules is that, unlike the table windows, the 3D window displays multiple types of objects selected simultaneously -- events, positions, models, and songs -- so when you press Control-C to copy, and later Control-V to paste, there's a question of what you meant.  Did you mean to copy the selected positions?  Did you mean to copy the selected events?  Further complicating the rules is the wrinkle that copied effects depend on the positions that they launch from, which may be different from the positions that are selected at the time of pressing Control-C. Once you've put something in the copy buffer by copying from a table window or the 3D window or from Excel or Notepad, it no longer matters what window you copied from.  When you later paste, the action depends only on the contents of the copy buffer and in some cases the selected objects of the 3D window and the playhead position, but in no case does it matter what window or application the contents of the copy buffer are from.  Thus, the rules for the copy operation in the 3D window can be defined independently of the paste operation. As with copying from the script window, the copy operation in the 3D window copies rows and also dependency rows into the copy buffer.  The rules for copying events, positions, and models in the 3D window are that the copy buffer will contain, Rows for the selected events, if any; else rows for the selected positions, if any; else rows for the selected models, if any. Rows of any positions referenced by events copied by Rule 1, and rows of any models referenced by positions copied by this Rule 2. Rows of any models referenced by positions copied by Rule 1. The point of these rules is to identify what the user is trying to copy -- events, positions, or models -- and then to copy exactly those rows plus any dependencies from those rows.  If the user is copying events, then it doesn't matter what positions or models are selected; only those positions or models that are dependencies of the copied events will be added to the copy buffer.  Similarly, if the user is copying positions (i.e., positions are selected but no events are selected), it doesn't matter what models are selected because only the model dependencies will  be copied.  The rules are summarized in Table 2.   Table 2 – Technical details of copying and pasting rows for each type of table window Events selected Positions selected Models selected Rows added to the copy buffer Yes Events, effects and positions referenced by those events; models referenced by those positions Yes Yes Events, effects and positions referenced by those events; models referenced by those positions (it doesn't matter that positions are selected because events are selected) Yes Yes Events, effects and positions referenced by those events; models referenced by those positions (it doesn't matter that models are selected because events are selected) Yes Yes Yes Events, effects and positions referenced by those events; models referenced by those positions (it doesn't matter that positions and models are selected because events are selected) (nothing) Yes Positions, and models referenced by those positions Yes Models Yes Yes Positions, and models referenced by those positions (it doesn't matter that models are selected because positions are selected)   Figure 4 shows an example copy buffer from copying a single selected event in the 3D window that launches from a position attached to a model:   ##modelsHeader modelRef modelName coordinates angle modelNotes ##modelsRow 1 Stadium.skp 0.0 0.0 0.0 ##positionsHeader position modelRef size coordinates angle moduleType universe section startModule dmxChannelBase addressingBlueprint positionNotes tags customPositionField preallocatedRails dmxUniverse dmxFixtureType dmxEffectFilter positionType positionFlags dmxChannelRange ##positionsRow Pos-09 1 3.0 79.1487794434919 14.771182880682 191.654133645434 0.0 0.0 0.0 @g1 ##scriptHeader eventTime externalDelay internalDelay actionTime partNumber size partType duration position pan tilt spin universe section moduleType railAddress pinAddress rack tube track lockout chainRef group numDevices stdLocation manufacturer stdPrice randomSeed category customPartField customScriptField scriptNotes chainDeviceVdl rackType description addressFlags flightCount pair straightUp angleGraphics icon fullAddress pitch roll customPositionField safetyDistance stdCost weight neq next cueCount chainRow chainGap isChain sleeve firstAngleGraphics scriptNotes2 scriptNotes3 customNumericField ##scriptRow 00:13.104 2.24 00:15.344 G2SH1003 2" shell 1.02 Pos-09 90 1 Generic 1.45 919635 2" Assorted Green Chrysanthemum 1 false true | 0° G2SH1003 3 false 0° | ##partsHeader insertButton partNumber used quota qoh available description size internalDelay duration height numDevices color subtype vdl manufacturerPartNumber manufacturer partType stdPrice stdLocation lockoutDefault numTubes category customPartField rackType partNotes dmxPatch exNumber ceNumber unNumber stdCost safetyDistance fuseDelay remainingQuota remainingQoh remainingAvailable weight neq ##partsRow G2SH1003 G2SH1003 3 Green Chrysanthemum 2" 2.24 1.02 50.0 1 Green Chrysanthemum Green Chrysanthemum G2SH1003 Generic shell 1.45 2" Assorted -3 -3 -3 Figure 4 – The copy buffer from copying a single selected event in the 3D window   Since the copy buffer contains the dependent rows in addition to the rows you mean to copy, pasting in the 3D window also requires some rules, to ensure that you paste what you intend, nothing more, nothing less.   Pasting events in the 3D window into multiple positions When you click on a row in the Effects window to insert an effect into the show, the effect will be inserted into the selected position -- or multiple positions if multiple positions are selected.  Pasting events copied from a single position works the same way: if you copy one or more events from the same position and then paste, the paste operation will insert a clone of the copied events into every selected position.  Thus if you copy a sequence of three events from one position, then select five positions, then paste, you'll end up pasting fifteen new events.   Pasting into multiple positions with one keystroke is an advanced use from the list. If you copy events from multiple positions, and then paste, the result depends on how many positions are selected at the time you paste.  If the same number of positions are selected as are referenced by the copied events, then the events will be pasted into the selected positions, re-mapping the position names according to their alphabetical order.  For example, if you copy effects from Pos-01, Pos-02, and Pos-04, then select Pos-07, Pos-08, Pos-09 in any order, then paste, the events copied from Pos-01 will be pasted into Pos-07; the events copied from Pos-02 will be pasted into Pos-08; and the events copied from Pos-04 will be pasted into Pos-09, as shown in Figure 5.  Using copy/paste to paste into a different set of multiple positions is another advanced use from the list.  You can use copy/paste to move events from one set of positions to another.   Figure 5 – Copy from Pos-01, Pos-02, Pos-04 and paste to Pos-07, Pos-08, Pos-09.   Copy/pasting in the 3D window between shows Pasting events copied from one position into one or more selected positions or pasting events copied from multiple positions into the same number of selected positions works the same way if you are copying from one show into another as it does if you are copy/pasting within a single show.  In both cases, the positions you are pasting into already exist in the show, so the position and model dependency rows in the copy buffer are not required.  However, if you copy events from more than one position and paste with a different number of positions selected, then the paste operation will paste the events into positions matching the original position names as recorded in the copy buffer.  If those positions don't exist in the show, then the paste operation will recreate them and any missing models they are attached to based on the dependency rows in the copy buffer.  Although pasting to missing positions or models is possible when copy/pasting within a single show, it is much more common when pasting between shows. Copy/pasting events between shows is thus as simple as selecting the events in one show and pressing Control-C in the 3D window, then switching shows from the Window menu, then pasting into the other show.  Any missing positions or models referenced by the events will automatically be re-created, but only if necessary.  Pasting the events multiple times will not create unnecessary duplicates of the positions or models.   Copy/pasting between shows like this is an advanced use from the list. If you want to copy/paste positions or models from one show into another multiple times, use the command, "Edit > Paste special > Paste models and positions as new instances".  This command will ignore anything in the copy buffer other than positions and models.  It will paste a copy of the positions and models whether or not they already exist, enabling you to paste multiple copies ("instances") of the positions and models into the show.  If the pasted items already exist, then the copies will be renamed with "(01)" or a similar suffix added onto the name.  Imagine copying a set piece model or tower model with positions already attached, and pasting it multiple times into a show.  It would be hard to do that without this advanced use from the list.   Technical details of pasting in the 3D window As you can surmise from the preceding sections, the paste operation in the 3D window follows a set of rules for what parts of the copy buffer get pasted, based on what exists in the show being pasted into and what positions are selected. In general when you copy/paste an item you expect the paste operation to create a duplicate of that item; pasting multiple times pastes multiple duplicates.  If the copy buffer contains dependency information you do not expect the paste operation to create duplicates of the dependency items if they already exist.   The rules for copy/pasting events in the 3D window are summarized in Table 3 and Table 4.  Table 3 applies when pasting strictly into the selected positions, namely when either of these two conditions holds: The copy buffer contains events copied from exactly one position, and one or more positions are selected, or, The copy buffer contains events copied from more than one position, and the same number of positions are selected. Table 3 shows that if pasting into the selected positions, it doesn't matter what positions or models are in the copy buffer or whether their names match existing items in the show.  The same thing gets pasted: just the events.   Table 3 – Pasting events into the selected positions Position is in copy buffer Model is in copy buffer Matching position exists in show Matching model exists in show What is pasted from copy buffer Yes Yes Events Yes Yes Yes Events Yes Yes Yes Events Yes Yes Yes Yes Events   By contrast Table 4 applies when not pasting events strictly into the selected positions.  Missing positions and their attached models will be pasted depending on whether matches already exist in the show.   Table 4 – Pasting events into the positions referenced in the copy buffer Position is in copy buffer Model is in copy buffer Matching position exists in show Matching model exists in show What is pasted from copy buffer Yes Yes Events, positions, and models Yes Yes Yes Events, and models Yes Yes Yes Events, positions Yes Yes Yes Yes Events   If you are copy/pasting positions, without any events, then Table 5 applies.  The rules for pasting positions are different from events.  Positions are pasted if they are missing, and duplicates are pasted if the positions already exist.  Model dependencies that the positions are attached to are pasted only if they don't already exist.  Imagine copying a position Pos-01 attached to a model "Stadium" from one show and pasting into a blank show containing no positions or models.  If you paste three times, the show will contain positions Pos-01, Pos-01(01), and Pos-01(02), and one model "Stadium" to which all three positions are attached.   Table 5 – Pasting positions (copy buffer not containing any events) Position is in copy buffer Model is in copy buffer Matching position exists in show Matching model exists in show What is pasted from copy buffer Yes Yes Positions, and models Yes Yes Yes Positions (as duplicates), and models Yes Yes Yes Positions Yes Yes Yes Yes Positions (as duplicates)   Lastly, if you are copy/pasting models, without any events or positions, then Table 6 applies.  The rules for pasting models are straight forward.  Models are pasted if they are missing, and duplicates are pasted if the models already exist.   Table 6 – Pasting models (copy buffer not containing any events or positions) Model is in copy buffer Matching model exists in show What is pasted from copy buffer Yes Models Yes Yes Models (as duplicates)   Copy/paste visual description (full VDL) If you want to copy an effect simulation from one effect to another in the effect window or into or out of Email or Excel, the VDL field by itself isn't quite enough because the simulation also depends on size, duration, and a few other fields.  To save you some time, you can right click on an effect in the effect window and choose "Copy visual description (Full VDL)" from the context menu to put a complete visual description into the copy buffer.  The menu item "Paste visual description" decomposes the visual description into the fields it specifies and pastes the field values into the selected effects. The visual description, or "Full VDL", is a text string that includes the VDL and all necessary extra parameters together, similar to the input field of the Control-G dialog for creating or editing effects.  For example, an effect with VDL of "Red Comet" may have a Full VDL of "50mm 58.0m 2.10s Red Comet" that combines the size, height, and duration along with the VDL.  It is easy to paste a Full VDL like this into an email or Excel.   Closing remarks Returning to the opening paragraph of this article, copy/paste in Finale 3D is both simple and complex.  Most of the time, the usual expectations for Control-C and Control-V are sufficient.  For more advanced uses, you can figure out what is going on by pasting the copy buffer into Notepad or Excel and looking up the rules in the tables above.

Wildcards in constraints

When Finale 3D's addressing sorts and constraints aren't sufficient to implement the addressing scheme you have in mind, custom fields may provide a workaround.   You can manually "program" sorts and constraints by entering values of your own device as Custom Script Fields in the script, or the various other custom fields.  For example, if you wanted to sort an arbitrary 50% of your script events before the other 50%, you could assign to the Custom Script Field of the first 50% the value "1" or "A"; and to the second 50% the value "2" or "B".  Then add Custom Script Field as one of the sorts in the addressing dialog.  Voila! Some addressing schemes are most easily expressed using constraints with wildcards.  For example, if 25% of your script events are incompatible with another 25% of the events yet the remaining 50% of the events are compatible with everything, you can "program" that manually by assigning to the Custom Script Field of the first 25% the value "A"; and to the second 25% the value "B"; and to the remaining 50% not assigning any value.  A blank value is interpreted as a wildcard.  Thus if you add Custom Script Field as a constraint in the addressing dialog for modules, the "A" events will never share modules with the "B" events, but the wildcard events will share with both the "A" events and the "B" events. Wildcards are disabled by default.  To enable them, select the checkbox "Treat blank values of custom fields as wildcards" in the addressing dialog.   There are eight fields that support wildcards, six that are options for the module/slat/pin constraints, and two that are options for the rack constraints.   Table 1 – Constraints that support wildcards Constraint Field Field refers to Blank means wildcard Editable in which window Module/Slat/Pin Custom Script Field The event Yes Script window Module/Slat/Pin Custom Part Field The event's effect Yes Effects window Module/Slat/Pin Custom Position Field The event's position Yes Positions window Module/Slat/Pin Custom Numeric Field The event Yes Script window Module/Slat/Pin Rack Custom Field The event's rack instance Yes Racks window Module/Slat/Pin Rack Custom Part Field The event's rack's definition Yes Effects window Rack Custom Script Field The event in the rack Yes Script window Rack Custom Part Field The effect of the event in the rack Yes Effects window   Example requiring wildcards The rack shown in Figure 1 is a real world example that requires wildcards to implement the constraints.  The rack has rows that tilt independently to whatever angles are required for the show, but the outside rows are the only ones capable of the extreme 60 degree angle.  Thus with rows of four tubes, each rack is capable of at most four 60 degree effects (and four others at 60 degrees in the other direction).  There's no way to express the constraint "this rack supports effects of any angle but it is limited to at most four effects at 60 degrees" using the standard sorts and constraints and rack definitions.   Figure 1 – The rows can be any angle -- except only the outside rows are capable of the extreme 60 degree angles.   In Finale 3D you can obviously create a rack definition with pre-defined angles but there are drawbacks to that approach, most notably that you need to figure out all the rack row angles on your own instead of letting Finale 3D do it for you.  Wildcards provide a faster solution, albeit still somewhat manual. If you sort the effects by angle, all 60 degree effects will be addressed in order and will fill up racks together unless constraints prevent it.  Knowing that the 60 degree effects can only fill racks four at a time, you can assign to the Custom Script Field of the first four 60 degree effects in the script the value "A", and to the next four the value "B" and so on for as many 60 degree effects as there are.   The addressing algorithm, if sorting by angle, will then assign the four "A" effects to the first rack, then the four "B" effects to the next rack and so on filling the 60 degree effects into suitable rows, and will then go back and fill the remaining rows of the partially filled racks with the other angle effects, satisfying the constraint that each rack has only four 60 degree tubes!    

Moka H-E01 Genius Flame Machine

The Moka H-E01 Genius Flame Machine unit is a vertical flame projector that can be controlled by any of the DMX-capable firing systems, such as Piroshow, Pyromac, PyroSure, fireTEK, Cobra, Fire Control G2, and Mongoose.   Figure 1 – Moka H-E01 Genius Flame Machine   Triggering a flame effect requires two DMX channels -- an ON/OFF ignition channel and a safety channel.  Both channels are contained in the DMX personality of the fixture at defined offsets relative to the DMX Channel Base of the fixture. Since the DMX personality includes the safety channel, so there is no need in Finale 3D to create separate "safety positions".  You can add the safety channel effects directly to your flame positions.   Table 1 – DMX channels DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Safety channel (1-101 = OFF; 102 - 153 = ON; 154 - 255 = OFF) Part number MOK1041, "MK-H-E01 [044/0000] With Safety Channel" Channel 2 (DMX Channel Base + 1) Ignition (0 = OFF; 255 = ON) Part numbers MOK1035 - MOK1040 representing flame effects at durations from 0.1s to 1s.   Instructions To design a show for Moka H-E01 Genius Flame Machine 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.  Depending on your DMX controller, you may choose to give each Genius Flame Machine its own DMX universe, or give each Genius Flame Machine a channel range in a shared DMX universe.  (B) In the real world configure each physical Genius Flame Machine unit's "Start Address" to be the start of the channel range you allocate for it. (C) In Finale 3D configure the "DMX Channel Base" of the fixture to match the Start Address exactly. Add the Assorted DMX supplier catalog to your Finale 3D account.  Login to the finale3d.com website.  At the top of the page, go to “My Account > Supplier Catalog Settings” (www.finale3d.com/supplier-catalogs-settings/).  Find the Assorted DMX supplier catalog in the table, and turn the switch to ON.  Then launch the Finale 3D application and synch to network.  The Assorted DMX catalog will appear as one of the available collections in the effects window, which you can choose from the selector at the top of the window.  This catalog contains effects for all types of Moka fixtures currently supported in Finale 3D, together. Add flame effects to the show.  (A) Right-click on the Genius Flame Machine positions to add compatible effects from the context menu or to filter the effects window to compatible effects.   (B)  You will also need to add a "DMX Safety Channel" effect (e.g., part number MOK1041) and to adjust its duration to cover the time range you want the fixture to be eligible to fire.   Choosing the DMX channel ranges for fixtures Each Genius Flame Machine fixture requires multiple channels, so if you are putting multiple fixtures in the same DMX Universe, you need to set the Start Address on the fixture in the real world and the corresponding DMX Channel Base on the fixture in Finale 3D to a range of channels that doesn't overlap with others.  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.  Table 2 shows an example for Genius Flame Machine fixtures.  Some DMX firing systems only support 50 or 100 channels, so you may not have all 512 channels to work with.   Table 2 – Example channel ranges for a Moka H-E01 Genius Flame Machine in a DMX universe Fixture DMX Channel Base Channels Used 1 1 1-2 2 3 3-4 3 5 5-6 4 7 7-8 5 9 9-10 6 11 11-12 7 13 13-14 8 15 15-16 9 17 17-18 10 19 19-20 ... 256 511 511-512     Table 4 – Example files and downloads Download link Explanation H-E01 User Manual(说明书).pdf Moka H-E01 Genius Flame Machine user manual

Moka H-E03 3 Head Flamer

The Moka H-E03 3 Head Flamer unit is a 3-head flame projector that can be controlled by any of the DMX-capable firing systems, such as Piroshow, Pyromac, PyroSure, fireTEK, Cobra, Fire Control G2, and Mongoose.   Figure 1 – Moka H-E03 3 Head Flamer   The Moka H-E03 3 Head Flamer has a safety channel as part of its 6-channel DMX personality.  In addition to the safety channel, the DMX personality includes channels for independent control of the three heads, and two channels that trigger flame macros -- (1) all at once, and (2) left, then up, then right, then all at once.     Table 1 – DMX channels DMX Channel Meaning Effect in Finale 3D that controls channel Channel 1 (DMX Channel Base + 0) Safety channel (0-101 = Disabled, 102-153 = Enabled, 154-255 = Disabled) Part number MOK1032 Channel 2 (DMX Channel Base + 1) Head 1 ON/OFF (0 = OFF; 255 = ON) Various part numbers in the range MOK1017- MOK1031 Channel 3 (DMX Channel Base + 2) Head 2 ON/OFF (0 = OFF; 255 = ON) Various part numbers in the range MOK1017- MOK1031 Channel 4 (DMX Channel Base + 3) Head 3 ON/OFF (0 = OFF; 255 = ON) Various part numbers in the range MOK1017- MOK1031 Channel 5 (DMX Channel Base + 4) Turn on all three heads together (0 = OFF; 255 = ON) Part number MOK1033 Channel 6 (DMX Channel Base + 5) Trigger macro 1>2>3>1+2+3 (0 = OFF; 255 = trigger) Part number MOK1034   Instructions To design a show for Moka H-E03 3 Head Flamer 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.  Depending on your DMX controller, you may choose to give each 3 Head Flamer its own DMX universe, or give each 3 Head Flamer a channel range in a shared DMX universe.  (B) In the real world configure each physical 3 Head Flamer unit's "Start Address" to be the start of the channel range you allocate for it. (C) In Finale 3D configure the "DMX Channel Base" of the fixture to match the Start Address exactly. Add the Assorted DMX supplier catalog to your Finale 3D account.  Login to the finale3d.com website.  At the top of the page, go to “My Account > Supplier Catalog Settings” (www.finale3d.com/supplier-catalogs-settings/).  Find the Assorted DMX supplier catalog in the table, and turn the switch to ON.  Then launch the Finale 3D application and synch to network.  The Assorted DMX catalog will appear as one of the available collections in the effects window, which you can choose from the selector at the top of the window.  This catalog contains effects for all types of Assorted fixtures currently supported in Finale 3D, together. Add flame effects to the show.  (A) Right-click on the 3 Head Flamer positions to add compatible effects from the context menu or to filter the effects window to compatible effects.   Choosing the DMX channel ranges for fixtures Each 3 Head Flamer fixture requires multiple channels, so if you are putting multiple fixtures in the same DMX Universe, you need to set the Start Address on the fixture in the real world and the corresponding DMX Channel Base on the fixture in Finale 3D to a range of channels that doesn't overlap with others.  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.  Table 2 shows an example for 3 Head Flamer fixtures.  Some DMX firing systems only support 50 or 100 channels, so you may not have all 512 channels to work with.   Table 2 – Example channel ranges for 3 Head Flamer 7CH fixtures Fixture DMX Channel Base Channels Used 1 1 1-6 2 7 7-13 3 13 13-19 4 19 19-24 5 25 25-30 6 31 31-36 7 37 37-42 8 43 43-48 9 49 49-54 10 55 55-60 ... 85 505 505-510     Table 3 – Example files and downloads Download link Explanation H-E03 User Manual(说明书).pdf Moka H-E03 3 Head Flamer user manual

Moka SFX MK-P18 RGB Wall Washer Par Light

The Moka SFX MK-P18 18x18W 6in1 Wall Washer Light fixtures are standard up-lights with six LED colors: red, green, blue, white, yellow, and purple. Figure 1 – Moka SFX MK-P18 RGB Wall Washer Light   The fixtures have an 11-channel DMX personality.   Instructions To design a show for Moka SFX MK-P18 RGB Wall Washer Light fixtures, please follow the steps in DMX basic instructions and Light fixtures basic instructions.  If you don't already have a compatible firing system or controller capable exporting a DMX script, please refer to Supported firing systems and controllers (DMX) for the list of available hardware options.   Choosing the DMX channel ranges for fixtures Each fixture requires multiple channels, so if you are putting multiple fixtures in the same DMX Universe, you need to set the Start Address on the fixture in the real world and the corresponding DMX Channel Base on the fixture in Finale 3D to a range of channels that doesn't overlap with others.  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.  Table 1 shows an example for 11-channel fixtures.  Some DMX firing systems and controllers only support 50 or 100 channels, so you may not have all 512 channels to work with.   Table 1 – Example channel ranges for 11-channel fixtures in a DMX universe Fixture DMX Channel Base Channels Used 1 1 1-11 2 12 12-22 3 23 23-33 4 34 34-44 5 45 45-55 6 56 56-66 7 67 67-77 8 78 78-88 9 89 89-99 10 100 100-110 ... 46 496 496-506   Technical details The following tables show the technical specifications of the fixtures, as tested by the Finale support team.   Table 2 – DMX channels for 11CH personality DMX Channel Meaning Channel 1 (DMX Channel Base + 0) Dimmer Channel 2 (DMX Channel Base + 1) Strobe (0-2 = no strobe; 3-255 = slow to fast) Channel 3 (DMX Channel Base + 2) Red Channel 4 (DMX Channel Base + 3) Green Channel 5 (DMX Channel Base + 4) Blue Channel 6 (DMX Channel Base + 5) White Channel 7 (DMX Channel Base + 6) Yellow Channel 8 (DMX Channel Base + 7) Purple Channel 9 (DMX Channel Base + 8) Color combination (Finale 3D writes 0) Channel 10 (DMX Channel Base + 9) Special effect (Finale 3D writes 0) Channel 10 (DMX Channel Base + 10) Special effect speed (Finale 3D writes 0)     Table 3 – Example files and downloads Download link Explanation MK-P18 18X18W 6in1 LED wall washer light.pdf Moka SFX MK-P18 RGB Wall Washer Light User Manual

Pyrodigy

To create and export a pyro script for the Pyrodigy firing system, please follow these steps: Address the show ("Addressing > Address show") and select "Pyrodigy 48 Shot" as the module type. Export the script ("File > Export > Export firing scripts"). Step 2 creates the script file, which has the "CSV" extension.  The file format details are described in this section. The Pyrodigy system also supports DMX fixtures.  Please see DMX basic instructions for general DMX scripting instructions.  If you are interested in how the script format incorporates the DMX commands along with the pyro commands, the details are presented in Table 2 and Table 3 in this section.   Figure 1 – Pyrodigy firing system master   Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV UTF-8 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. 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 first line of the file is the CSV header row, which specifies the fields of the following data rows: name,color,centiseconds,deviceType,unit,circuit,savedIndex,effectType,startCentisecond,endCentisecond,intensity Time resolution The Pyrodigy system supports 1/100th second resolution. DMX support Pyrodigy supports DMX fixtures with a full 512 channels and 256 DMX Universes.   The DMX commands are rows in the script, intermixed with the pyro rows.  The DMX rows have the same number of fields as the pyro rows, and most of the field values have the same meaning.  A few of the fields have different meanings for DMX, such as unit and circuit for pyro are interpreted as DMX Channel and DMX Universe for DMX.  The differences are described in Table 4. To script a show in Finale 3D using the Pyrodigy firing system and compatible DMX fixtures, please follow the standard DMX scripting instructions, creating DMX fixture positions and selecting the compatible DMX fixture types for them.  The Pyrodigy exporter will automatically convert the DMX Patches of the fixtures to the correct field values in the exported script. Special characters Any comma and double quote characters will be filtered from the effect name in the exported script, to avoid complexity in CSV parsing.   Each row in the script has a number of fields separated by the semicolon character.  The names of the fields and their descriptions are in following table.   Table 3 – Specifications of script Pyrodigy fields Field name Description name The name of the effect. color The number 12615744, which has meaning in the Pyrodigy software. centiseconds The total show duration in seconds * 100. deviceType The name Pyrodigy for pyro, or the name DMX Universe for DMX  unit The module address, in the range 1 to 220 for pyro, or the DMX Channel 1-512 for DMX. circuit The pin number in the range 1 to 48 for pyro, or the DMX Universe 1-256 for DMX. savedIndex The script row number, beginning with 0. effectType The name intensity, which has meaning in the Pyrodigy software. startCentisecond The ignition time in 1/100th of seconds (integer). endCentisecond The ignition time + 0.2 seconds,  in 1/100th of seconds (integer) intensity The number 100 for pyro, or the DMX channel value %, 0-100, for DMX.  The DMX channel values exported from Finale 3D scale down the 0-255 values to 0-100 rounding fractional values down (floor) in order to be compatible with the scaling up formula recommended by Explo, which has an upward rounding bias. The example script shown in Figure 2 is also available for download in Table 4. name,color,centiseconds,deviceType,unit,circuit,savedIndex,effectType,startCentisecond,endCentisecond,intensity Green Chrysanthemum,12615744,12000,Pyrodigy,3,1,0,intensity,286,306,100 Green Chrysanthemum,12615744,12000,Pyrodigy,4,1,1,intensity,296,316,100 Green Chrysanthemum,12615744,12000,Pyrodigy,5,1,2,intensity,306,326,100 Green Chrysanthemum,12615744,12000,Pyrodigy,6,1,3,intensity,316,336,100 Green Chrysanthemum,12615744,12000,Pyrodigy,7,1,4,intensity,326,346,100 Green Chrysanthemum,12615744,12000,Pyrodigy,8,1,5,intensity,336,356,100 Green Chrysanthemum,12615744,12000,Pyrodigy,9,1,6,intensity,346,366,100 Green Chrysanthemum,12615744,12000,Pyrodigy,10,1,7,intensity,356,376,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,1,8,intensity,734,754,100 Green Chrysanthemum,12615744,12000,Pyrodigy,3,2,9,intensity,744,764,100 Green Chrysanthemum,12615744,12000,Pyrodigy,4,2,10,intensity,754,774,100 Green Chrysanthemum,12615744,12000,Pyrodigy,5,2,11,intensity,764,784,100 Green Chrysanthemum,12615744,12000,Pyrodigy,6,2,12,intensity,774,794,100 Green Chrysanthemum,12615744,12000,Pyrodigy,7,2,13,intensity,784,804,100 Green Chrysanthemum,12615744,12000,Pyrodigy,8,2,14,intensity,794,814,100 Green Chrysanthemum,12615744,12000,Pyrodigy,9,2,15,intensity,804,824,100 Green Chrysanthemum,12615744,12000,Pyrodigy,10,2,16,intensity,814,834,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,2,17,intensity,1430,1450,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,3,18,intensity,1440,1460,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,4,19,intensity,1450,1470,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,5,20,intensity,1460,1480,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,6,21,intensity,1470,1490,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,7,22,intensity,1480,1500,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,8,23,intensity,1490,1510,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,9,24,intensity,1500,1520,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,10,25,intensity,1510,1530,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,11,26,intensity,1520,1540,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,12,27,intensity,1530,1550,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,13,28,intensity,1540,1560,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,14,29,intensity,1550,1570,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,15,30,intensity,1560,1580,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,16,31,intensity,1570,1590,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,17,32,intensity,1580,1600,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,18,33,intensity,1590,1610,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,19,34,intensity,1600,1620,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,20,35,intensity,1610,1630,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,21,36,intensity,1620,1640,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,22,37,intensity,1630,1650,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,23,38,intensity,1640,1660,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,24,39,intensity,1650,1670,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,25,40,intensity,1660,1680,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,26,41,intensity,1670,1690,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,27,42,intensity,1680,1700,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,28,43,intensity,1690,1710,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,29,44,intensity,1700,1720,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,30,45,intensity,1710,1730,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,31,46,intensity,1720,1740,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,32,47,intensity,1730,1750,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,33,48,intensity,1740,1760,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,34,49,intensity,1750,1770,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,35,50,intensity,1760,1780,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,36,51,intensity,1770,1790,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,37,52,intensity,1780,1800,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,38,53,intensity,1790,1810,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,39,54,intensity,1800,1820,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,40,55,intensity,1810,1830,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,41,56,intensity,1820,1840,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,42,57,intensity,1830,1850,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,43,58,intensity,1840,1860,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,44,59,intensity,1850,1870,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,45,60,intensity,1860,1880,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,46,61,intensity,1870,1890,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,47,62,intensity,1880,1900,100 Green Chrysanthemum,12615744,12000,Pyrodigy,1,48,63,intensity,1890,1910,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,1,64,intensity,1900,1920,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,2,65,intensity,1910,1930,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,3,66,intensity,1920,1940,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,4,67,intensity,1930,1950,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,5,68,intensity,1940,1960,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,6,69,intensity,1950,1970,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,7,70,intensity,1960,1980,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,8,71,intensity,1970,1990,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,9,72,intensity,1980,2000,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,10,73,intensity,1990,2010,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,11,74,intensity,2000,2020,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,12,75,intensity,2010,2030,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,13,76,intensity,2020,2040,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,14,77,intensity,2030,2050,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,15,78,intensity,2040,2060,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,16,79,intensity,2050,2070,100 Green Chrysanthemum,12615744,12000,Pyrodigy,2,17,80,intensity,2060,2080,100 Figure 2 – Example Pyrodigy script for pyro   Example files for a mixed pyro and DMX show are available for download in Table 4.  The example show contains three DMX fixture positions and three pyro positions.  The DMX fixture positions each contain a single shot of the Explo X2 Wave Flamer fixture, firing macro #31.  The DMX fixture positions also contain safety channel events covering the duration of the firing.  The three pyro positions each contain one shell.  The timeline for the example show is shown in Figure 3.   Figure 3 – Timeline for example mixed pyro and DMX show -- 3 pyro shots, 3 DMX shots, and 3 DMX safety channels     Table 4 – Downloads Download link Explanation test-pyrodigy.fin Example show file test-pyrodigy.csv Example exported file (CSV) test-pyrodigy-dmx01.csv Example exported file with DMX commands test-pyrodigy-fixture-setup-report01.pdf Example DMX Fixture Setup report corresponding to the exported file with DMX commands test-pyrodigy-dmx01.fin Example show file with DMX commands