Total found: 296
Finale 3D can import shows directly from Show Director's native SCX file format ("File > Import > Import show..."), but not export shows to that format. For people who need to import shows into Show Director or into other software in a Show Director format, Finale 3D exports a specific "Show Director CSV" format, which is defined in this specification. If you plan to import into Show Director itself, please select the CSV file type option when choosing the filename. If you plan to import into Excel, then please select the XLSX file type (Excel notoriously imports hexadecimal Pyrodigital addresses as floating point numbers if you import TXT or CSV data and aren't careful). Finale 3D exports all XLSX cells as text cells. In Excel if you need to convert text cells to number cells, select the cells you want to be convert and click the warning icon, then choose "Convert to numbers" from the context menu. Finale 3D provides the export options shown in Figure 1. The default Show Director angle convention is "Left = 0, Up = 90" but you can choose other options from this dialog. The cue number column in Show Director can be used for multiple purposes. The default choice in Finale 3D's export dialog is simply a row count beginning with zero, but if you want rows with the same effect time to have the same cue number, then you can select that option. The frame rate choice is required to convert absolute times into the frame based representation in the Show Director CSV format. Chains are represented as a single row in Show Director CSV files, but the quantity column may contain the number 1 or the number of shells in the chain, depending on your preference. Figure 1 – Show Director export options File specification The CSV header row defines the fields, which correspond to the columns in the software’s user interface. The specification given here includes a specific subset of fields known to import successfully into Show Director Version 8. However, for clarity and for reliability of importing into various software programs including Show Director itself, the set of fields in this specification has rigid and well-defined requirements for the data formatting of the fields, and does not include all the columns supported by the Show Director user interface. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .csv ASCII * , (comma) CRLF Like Finale Generic CSV, the Show Director CSV format is an interchange format, not a format that is loaded directly into firing systems, so the rows in the script contain more information than just the firing events. Although Show Director supports multiple firing systems, its script file format is closely related to the data format downloaded to the Pyrodigital firing system. * This specification indicates ASCII encoding of the text for reliability of importing into various firing system software. However you may choose to export from Finale 3D in an alternate encoding to support non-English characters, as described in the bottom row of the table below. Table 2 – Special characteristics Special characteristics Description Time representation Effect times are represented in hours, minutes, seconds, and frames (HH, MM, SS, FF), based on 30 fps or 29.97 SMPTE DF or 25 fps or 24 fps frame rate, which cannot be determined from the file contents. When exporting from Finale 3D, which supports millisecond resolution, effect times will be rounded to nearest frame time. Prefire times are represented in the Show Director CSV file in milliseconds. Thus the event times, equaling the effect times minus the prefire times, do not necessarily fall on exact frame times. Sort order of rows Rows sorted ascending by effect time. What rows represent Each row contains a set of fields defined in the table below. Field values may be blank if data is missing at the time of export. For example, if you export a show that does not have addresses assigned, the ADDR field will be blank. Loosely speaking, a row is either a chain, or a group of identical effects fired together. 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, unless the shells are different, in which case it will be two rows. Technically, a row represents one or more effects with the same part number, fired at the same time, with the same address, from the same position. Rows do not combine multiple chains on the same row. Thus if a row represents multiple devices, those devices are all part of the same chain, or they are not part of chains. The quantity of devices represented by a row is determined by the TILT, and PAN fields, as described below, since the devices may be shot at different angles. The QTY field also specifies the number of devices, except for chains, in which case the QTY field specifies either (a) the number of chains each counting as one unit (in which case it will be “1”), or (b) the number of devices in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. Chains counting as one unit Some display companies follow the convention that one chain is one unit for stock keeping records; others follow the convention that a chain of five shells is five units. The Show Director CSV file has a QTY field that represents the number of units. The meaning of this field for chains -- whether it is the number of shells in the chain or just one per chain -- cannot be determined from the file intrinsically. When you export a Show Director CSV file from Finale 3D, you are presented with a dialog asking if “Chains count as one unit?”. Similarly, if you import a Show Director CSV file into Finale 3D, you are given the option for whether chain quantities indicate the number of chains or devices. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Special characters Following the Excel quoting conventions for handling special characters, fields containing a double-quote character (“) or comma will be enclosed in “ on both ends, and any internal double-quote characters will be doubled up. Text encoding for non-English characters This specification indicates ASCII encoding of the text, which cannot represent non-English letters with accents or orthography from languages with different alphabets. ASCII is the most widely supported character set encoding for firing system software around the world, and ASCII is known to import successfully into Show Director Version 8 and obviously Finale 3D, so it is a good choice for reliability of import. However, since ASCII cannot represent non-English characters, you may prefer using an alternate encoding, such as UTF-8, UTF-16, or CodePage 1252, to represent characters in your language. In the file selection dialog for exporting, Finale 3D gives you the option of exporting the Show Director CSV format in a wide variety of encodings, including UTF-8, UTF-16, Code Page 1252, as well as options for different line endings, field delimiters, and byte-order-marks (BOM), so whatever encoding your software supports, you likely can export in exactly that encoding from Finale 3D. Notably, if you are using Show Director and you are from a Western European or Western country, you may prefer to export in the Code Page 1252 encoding, which can represent characters with accents, as in the French word, Chrysanthème. Although Show Director Version 8 is not able to import Unicode, it is able to import Code Page 1252, which provides some support for some non-English languages. 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 3 – Specifications of script fields Field name Description CUE (integer, up to 99999) The row number in the script, beginning with 0. HH (integer, up to 23) The hours component of the effect time. MM (integer, up to 59) The minutes component of the effect time. SS (integer, up to 59) The seconds component of the effect time. FF (integer, from 0 to 29) The frames component of the effect time, based on the frame rate (see time representation in Table 2). Event Description (text, up to 128 characters) A description pertaining to the row (not the effect itself). Finale 3D exports the Script Notes to this field. PFT (integer, up to 99999) The prefire time, in milliseconds. ADDR (text, exactly three characters, or blank) If the controller specified in CONTROL is “pyrodigital”, then the three-character, upper case, hexadecimal string comprising a two-character hexadecimal module address and one-character hexadecimal pin address; or blank if the address is missing. CONTROL (text, up to 32 characters, or blank) The type of controller for this row of data, either “pyrodigital” or some other controller like “cobra” for example. MODULE (integer from 0 to 9999, or blank) If the controller specified in CONTROL is not “pyrodigital”, then this field contains the module number for the row, if it is representable as an integer. PIN (integer from 0 to 9999, or blank) If the controller specified in CONTROL is not “pyrodigital”, then this field contains the pin number for the row, if it is representable as an integer. CGHZ (integer from 0 to 99, or blank) A numerical hazard class identifier for disabling a group of effects based on show time circumstances. POS (text, up to 10 characters) The position name. QTY (integer, up to 9999) The number of devices represented by the row, except for chains, in which case either (a) the number of chains each counting as one unit (in which case it will be “1” since a row can represent at most one chain), or (b) the number of devices in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. Since the meaning (a) versus (b) of QTY cannot be determined intrinsically from the file, it is unreliable to infer the number of devices from the QTY field itself. The TILT field, which is required in this specification, determines the quantity of devices represented by the row. CAL (integer up to 999, or blank) The size of the effect, in millimeters. TYPE (text, up to 36 characters) The type of effect, e.g., shell, comet, cake, etc. DUR (four digits, in SSFF format) The duration of the effect or chain. If the effect is a chain, the duration is the time from first to last shot in the chain. The duration is represented as seconds plus frames (see time representation in Table 2). The first two digits SS are the seconds; the second two digits FF are the frames. For example, 0115 means 1.5 seconds if 30 fps. Effect Description (text, up to 128 characters) Description of the effect, e.g., “Red Peony” REF (text, up to 50 characters) The part number of the effect. MFG (text, up to 64 characters) The manufacturer of the effect. PRICE1 (floating point number with dot character radix) The price per unit. If the row represents multiple, non-chained devices, each device is a unit. If the row represents a chain of devices, the price per unit is either (a) the price of the full chain, or (b) the price of a shell in the chain. In Finale 3D, the user specifies whether “Chains count as one unit” when exporting the Show Director CSV file. CUSTOM1 (text, up to 128 characters) Finale 3D writes the Universe field from the script CUSTOM2 (text, up to 128 characters) Finale 3D writes Section field from the script. CUSTOM3 (text, up to 128 characters) Finale 3D writes the Storage Location of the effect for this field. CUSTOM4 (text, up to 128 characters) Finale 3D writes script Notes 2 for this field. CUSTOM5 (text, up to 128 characters) Finale 3D writes script Notes 3 for this field. PAN (text, up to 255 characters) The pan field represents the rotation angle of the position about the UP-axis, with PAN = 0 being the orientation in which TILT of 0 fires to the left from audience perspective, and PAN = 90 being the orientation in which TILT of 0 toward the foreground. Finale 3D currently writes blank for this field. TILT (text, up to 255 characters) The tilt field represents the lateral firing angles (left/right from audience perspective) of the devices represented by the row, 0 meaning left, 90 meaning up, and 180 meaning right. If the row represents more than one device, the angles are combined with dashes, such as 60-75-90-105-120 for a fan of five devices in 15 degree intervals. An example script is shown below. Notice the first five rows are for Pyrodigital controllers and have the ADDR field included, the next two rows are missing addresses entirely, and the next two rows are for the Cobra controllers and have the MODULE and PIN fields included but not the ADDR field. The test file also includes some Russian words (Красный Пион) and French words (Chrysanthème Crépitant) to demonstrate text encoding differences with various example text encodings: ASCII, Code Page 1252, and UTF-8-NOBOM (Unicode), and UTF-16LE-BOM (Unicode). CUE,HH,MM,SS,FF,Event Description,PFT,ADDR,CONTROL,MODULE,PIN,CGHZ,POS,QTY,CAL,TYPE,DUR,Effect Description,REF,MFG,PRICE1,CUSTOM1,CUSTOM2,CUSTOM3,CUSTOM4,CUSTOM5,PAN,TILT 0,00,00,05,00,notea,3020,010,pyrodigital,,,,Pos-01,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 1,00,00,05,00,noteb,3020,020,pyrodigital,,,,Pos-02,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 2,00,00,05,00,,3020,030,pyrodigital,,,,Pos-03,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 3,00,00,05,00,,3020,040,pyrodigital,,,,Pos-04,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 4,00,00,05,00,,3020,050,pyrodigital,,,,Pos-05,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 5,00,00,05,00,,3020,,,,,,Pos-06,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 6,00,00,05,00,,3020,,,,,,Pos-07,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 7,00,00,05,00,,3020,,cobra,0,0,,Pos-08,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 8,00,00,05,00,,3020,,cobra,1,1,3,Pos-09,1,76,shell,0116,Красный Пион,10386,lidu,0.0,,,,,,,90 9,00,00,12,07,notec,3020,011,pyrodigital,,,4,Pos-01,1,76,shell,0006,Salute Chain,10390,dominator,15.0,,,,,,,60-75-90-105-120 10,00,00,17,11,,3020,012,pyrodigital,,,4,Pos-01,1,76,shell,0003,Salute Chain,10390,dominator,9.0,,,,,,,60-75-90 11,00,00,17,11,,3020,013,pyrodigital,,,4,Pos-01,1,76,shell,0006,Salute Chain,10390,dominator,15.0,,,,,,,60-75-90-105-120 12,00,00,29,26,,2240,014,pyrodigital,,,,Pos-01,2,50,shell,0101,Chrysanthème Crépitant,G2SH1003,Generic,1.45,,,,,,,75-105 13,00,00,44,26,,2240,015,pyrodigital,,,,Pos-01,2,50,shell,0101,"3"" Orange Chrysanthemum",G2SH1007,Generic,1.45,,,,,,,75-105 14,00,00,44,26,,2240,015,pyrodigital,,,,Pos-01,2,50,shell,0101,"Variegated Chrys, BIG",G2SH1012,Generic,1.45,,,,,,,75-105 Figure 1 – Example Show Director CSV script Table 4 – Example files Download link Explanation test_showdirectorcsv_ascii.csv Example exported file, ASCII text encoding (CSV) test_showdirectorcsv_codepage1252.csv Example exported file, Code Page 1252 text encoding (CSV) test_showdirectorcsv_utf16le_bom.csv Example exported file, UTF-16LE with BOM Unicode text encoding (CSV) test_showdirectorcsv_utf8_nobom.csv Example exported file, UTF-8 no BOM Unicode text encoding (CSV) test_showdirectorcsv.fin Example show file
Finale 3D supports a range of timecode workflows with three main feature sets for writing, reading, and slaving to timecode: Writing soundtracks with music on one channel and timecode on the other Reading and displaying the timecode information contained in existing song files; or automatically positioning songs on the timeline with alignment based on their timecode Slaving Finale 3D's playhead and simulation to external timecode input that is streaming into the computer in real time as MIDI MTC Most likely, some of these features will be useful to you and others not, depending on whether you are the party in a production that is supplying the timecode for the production, or whether some other party is supplying timecode to you or specifying at what specific SMPTE timecode range each component of the show is required to play. This article describes the timecode features in a manner that assumes you already know what timecode is and you know what you want to accomplish. For an explanation of timecode and specific workflows, please see What is timecode?. There are a few types of timecode, including various frame rate variations of the broadcasting industry's standard SMPTE, four firing system specific formats based on an encoding scheme called Frequency Shift Keying (FSK), and the MIDI MTC timecode format that is commonly used as an interchange format and for electronic music equipment. Finale 3D supports the timecode formats of Table 1. Table 1 – Timecode formats supported by Finale 3D Timecode format Frame rate Finale 3D writes it Finale 3D reads it Finale 3D slaves to it SMPTE 24, 25, 29.97 DF, 29.97 NDF, 30 fps YES YES YES, via MIDI MTC Pyrodigital FSK 10 fps YES YES (not yet) Pyromate FSK 10 fps YES YES (not yet) FireOne FSK 1 fps YES YES (not yet) StarFire FSK 4 fps YES YES (not yet) MIDI MTC 24, 25, 29.97, 30 fps n/a n/a YES Getting started Many of the applications involving timecode also involve scripting or communicating time with others in terms of frames, represented as HH:MM:SS:FF, so it bears mentioning at the onset of a timecode discussion that you can set the effect time format in Finale 3D to a frame based time format in the "Show > Set show information..." dialog, as shown in Figure 1. Figure 1 – Effect time formats include the four SMPTE timecode frame rates and both versions of 29.97 fps: DF and NDF When you set the effect time format to a frame based format, all of the dialogs that involve show duration or begin/end times will switch to using your chosen time format. In addition to the chosen time format, you can always express time in terms of seconds as a floating point number, like 3600.0, or in a few supported shorthand representations like "1h" or "60m". The show information dialog also includes options for setting a firing system export offset, and timecode export offset. The firing system export offset is a time that is added to exported firing system scripts. It does not affect the script window or the times shown in reports; it only applies to exported firing system scripts. Similarly, the timecode export offset is a time that is added to the timecode times in soundtracks exported with timecode. Using the firing system export offset and the timecode export offset together, you can design a show in Finale 3D relative to zero on the timeline, and export a firing system script and/or soundtrack with timecode that begin at a time agreed upon with other parties contributing to the show. It is not uncommon to designate a one-hour range of SMPTE timecode in the 24 hour timecode "day" for a show or song that is a part of a larger production. If you are producing a show that is to begin at a large hour, like 17:00:00:00, you may find it more convenient to script relative to zero on the timeline than to script in the small segment of a timeline that is more than 17 hours long. If you do set the firing system export offset to a value larger than one second, it will appear in the header of reports, as a reminder that the event times or effect times in the reports are relative to the offset. Writing soundtracks with timecode The function, "File > Export > Export soundtrack..." presents a dialog with options to include timecode on either channel, as shown in Figure 2. Figure 2 – Choose the channel for timecode, and the frame rate. The begin and end time are relative to the beginning of the show, and they obviously apply to the music and the timecode on the channels together. Reading the timecode in song files The function, "File > Tools > Analyze timecode in soundtrack file..." reads the encoded timecode of a song file and displays the timecode range of the file, in addition to other information about the quality of the timecode signal. Use this function when you want to know what timecode range a song contains. For more information, see Timecode information dialog and timecode log file. Figure 3 – The timecode information dialog Slaving Finale 3D's playhead and simulation to external timecode input When designing fireworks to accompany other elements of a production, you may find it useful in a rehearsal environment to lay down empty cues on the timeline while the production's timecode is playing into Finale 3D and advancing the playhead and simulation. Use the function, "Show > Timecode > Connect to timecode input device..." to begin listening to external timecode. When the production's timecode begins, Finale 3D will play along with the timecode. You can press the keyboard shortcut "i" at important moments of time in the production to lay down empty cues (same as the menu item, "Script > Insert empty cue"). The rehearsal environment may be physical or it may be virtual. If a production includes elements scripted in multiple software applications, such as for video, lasers, lighting or sound, you may want to link the software applications and play their simulations back together on multiple screens or multiple computers, to see the pieces of the production together (looking back and forth between the screens during playback). The ability to receive external timecode input to drive the simulation provides a way to connect Finale 3D to other applications. Figure 4 – The DOREMiDi SMPTE to MIDI box converts SMPTE to MIDI MTC for the computer's USB port. Finale 3D receives external timecode through the USB port using the MIDI MTC protocol, so to use the timecode input feature for SMPTE, you need to buy a SMPTE/LTC to MIDI MTC converter box, which costs about USD $100. An example is the DOREMiDi LTC-MTC converter available from Amazon for $90, ASIN B0BZC9VHFH (https://www.amazon.com/dp/B0BZC9VHFH). As of 2023, Finale 3D does not support timecode input as audio through the microphone jack.
The addressing sorts and constraints provide a great deal of control over the manner in which tubes are allocated to chains. Show designers usually avoid splitting chains across racks if at all possible. They usually prefer filling racks entirely with chains or singles -- one or the other -- if that’s possible. When that’s not possible, such as when the chain sizes don’t match up evenly with the rack sizes, they usually prefer filling up the extra tubes in the racks with singles. The addressing sorts and constraints can take all of these preferences into account, and can provide a clean, optimal allocation of tubes to chains automatically. Figure 1 – Example show with eight 6-shell chains. Figure 1 shows the timeline of a show with five singles, followed by eight 6-shell chains, followed by five more singles. This show will serve as an example for using addressing constraints and sorts to allocate the right tubes for the chains. There are a total of 5 + 8 * 6 + 5 = 58 shells in this show. The 3” racks in the Generic Effects collection have 10 tubes per rack, so the “Racks > Add racks for show…” function, which is used to add the minimum number of racks for the show, will add six racks to the show. We’ll start the example by assigning tubes in those six racks with the default addressing configuration. Figure 2 – Default addressing dialog, sorting by event time. The “Addressing > Address show...” menu item brings up the dialog in Figure 2, by default, which sorts the addresses in a position by event time, and doesn’t have any constraints other than preventing module wires from stretching across positions. Figure 3 – Problem! The six shells of the pin 06 chain split across racks (as do others). The default addressing configuration assigns addresses and tubes in chronological order, sorted by event time. Without anything to suggest otherwise, the assignment proceeds with the first chronological shell in the first tube of the first rack, then the second, third, and so on, until reaching the first chain (pin 06), whose shells continue to fill the first rack and spill into the second. This illustrates the problem: the chains are split across racks. Figure 4 – Add “Pin restricted to RACK” to restrict shells on the same pin to a single rack. The easiest solution to prevent chains from splitting across racks is to add the constraint that Each pin is restricted to a single RACK. By definition, a chain has one ematch, on one pin. Thus all of the chain’s shells are associated with that one pin (pin 06 in Figure 3, for example). If that pin is restricted to a single rack, then all the shells associated with that pin -- namely all the shells in the chain on that pin -- will be restricted to the same rack, which prevents the splitting. Figure 5 – Since chained shells are on the same pin, they must therefore be on the same rack. Figure 5 shows the result of the Each pin is restricted to a single RACK constraint. The first five shells chronologically continue to fill the first five tubes of the first rack. But at that point, the chain on pin 06 can’t fit in the five remaining tubes in that rack so the entire chain is allocated to the second rack. The next chain (07) can’t fit in the remaining tubes in either of the first two racks, so it spills to the third rack, and so forth. Unfortunately, with the added constraint we no longer have enough racks in the layout, so three chains remain unracked. The red pin numbers in the module diagram in the lower left are the indication that the shells on those pins are not fully racked. We’ll need to add a few more racks manually since the minimum number of racks is no longer sufficient, but first let’s rearrange the assignment order so the chains are assigned first, and the singles second. Figure 6 – Sorting chains first will allocate chains naturally and fill gaps with singles. Re-addressing the show again with the Chains First criterion added to the assignment order as shown in Figure 6 will change the assignment order to begin with the six chains, followed by the ten singles, instead of beginning with five singles that are shot earlier than the chains. Figure 7 – Each chain nicely in a rack, leftovers filling the gaps. But what about the red pins? The result of adding the Chains First criterion is a very natural rack assignment. The chains fill the racks nicely, and the singles fill the gaps leftover after assigning the chains. The only remaining problem is that two chains remain unracked, signified by the two red pins in the module diagram in the lower left. Figure 8 – When you prevent chains from splitting, you may need to add more racks! Adding two more racks from the Effect window, and re-addressing with the same configuration as in Figure 6, is the final solution. Notice that the module diagram in the lower left has no red. The rack assignments are perfect.
To make cinematic camera motion in a video, set up camera keyframes at different points in the show. The camera moves smoothly from keyframe to keyframe. A keyframe is a camera frame of reference (point of view) at a point in time. Figure 1 – Camera keyframes are the vertical bars that are not cue flags. In the figure, you can see two vertical bars on the timeline that are not cue flags, representing two keyframes. To setup a simple camera animation for a video, insert a keyframe at the beginning of the show. Then add another keyframe with the camera at a different position at the end of the show. The camera will move smoothly between them during the video. Follow these steps: Move the playhead on the timeline to 0.0 (the beginning of the show). Orient the view (camera) the way you want it to look at the beginning of the video. Do the menu item, "Camera > Add camera keyframe". Move the playhead on the timeline to the end of the show, or some time in between (example, 00:30.00). Re-orient the view the way you want it to look at this point in time. Do the menu item, "Camera > Add camera keyframe". Play the show and watch the camera move. You can turn on/off the camera movement with the menu item "Camera > Turn on camera motion".
If you are importing or modifying a Finale Inventory to use with Finale 3D while maintaining backward compatibility with Finale Business, you will need to give special consideration to three fields: Prefire, Type, and VDL. Prefire. Finale Business and Finale 3D interpret the term “prefire” for aerial cakes differently, and action is required on your part to change the prefires in your inventory to a value that works for both. The table below shows the options, but the best solution is: change the prefires of aerial cakes to blank. The default prefire for cakes in Business is 0.3 seconds. Unfortunately this value causes aerial cake shells in Finale 3D to break at 0.3 seconds on the way up, looking like a geyser or flowerpot. Please change the value to blank, or one of the other good values in the table below. Please see Cake and candle duration (and prefire) Type. Finale 3D and Finale Inventory support all the values of Finale Business, and a few more. Thus if the Type values in your inventory are from Business, they’ll work fine in 3D. But if you change them to values other than Cakes, Candles, Shells, Mines, Comets, Other, or Non-Choreographed, then they will no longer work in Business. (Type is called “Choreography Tab” in Inventory, and “Category” in Business.) Please see Why is 'Type' so important?. VDL. Finale 3D and Business both support VDL effect descriptions for simulations, but Business requires a strict form of VDL. If you type or import VDL into Finale Inventory directly, it most likely will not work for Business because it will not be in the strict form (e.g., case-sensitive). If you need backward compatible VDL then please copy/paste the VDL field from 3D after creating or editing the simulation via the dialog, which puts it into the strict form. Table 1 shows four possible prefire values for a 3” aerial cake, and indicates whether the result is good or bad in Business and 3D. You can see that 0.3 is bad, but the three other possibilities -- blank, 0.0, and the lift time of the first aerial shell in the cake -- are all good. There are slight differences, but the blank value is the best choice because it works exactly the same way as 0.3 in Business, and it also works 3D, and it is simple. Figure 1 – Aerial cakes from Finale Business with 0.3s prefire look terrible in 3D. In Figure 1, the cake on the left has 0.3 seconds prefire and normal height, rocketing the shell to its break height in a fraction of the normal lift time of about 3 seconds. The stars from the break have so much upward velocity at that point, they shoot into the sky. Clearly, the 0.3 seconds prefire value is not the right value for 3D. Table 1 – Finale 3D/Business compatibility matrix for prefires of aerial cakes like “10 Shot 5s Red Peony Cake” Prefire Finale Business Finale 3D 0.3 (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (BAD) First launch at 0.0s; timeline blip at 0.3s; break at 0.3s (looks like a geyser) (blank) (GOOD) Same as 0.3 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 0.0 (GOOD) Same as 2.8 (GOOD) First launch at 0.0s; timeline blip at 3.02s; break at 3.02s 2.8 (the default lift time for 3” shell in Finale Business) (GOOD) First launch at 0.0s; timeline blip at 0.3s; break at 2.8s (GOOD) First launch at 0.0s; timeline blip at 2.8s; break at 2.8s (a little early)
Finale 3D supports both the traditional RJ Equipamentos firing system and the updated timecode based firing system released in 2019. The basic steps to create and export a script for both firing systems are the same. 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, and they differ for the traditional and updated timecode based system. Figure 1 – Traditional RJ Equipamentos module Additional instructions for the updated timecode based system The updated timecode based system supports special effects with three special pins, in addition to the standard 16 or 32 pins for pyro ignitions. The steps for designing and exporting a script with pyro and special effects are more complicated than the steps for a pyro-only show: Layout positions. Layout separate positions for the pyro and each special effect unit, as shown in Figure 2. Each special effect unit position represents a special effect device, like a CO2 jet, or a flame projector, or a stadium shot gun. The pyro position will us pyro pins on one or more modules. Each special effect unit position will use a single special effect pin -- F, C, or S -- on one specific module. After creating the positions, please select the positions, and right-click on them and do "Edit position properties..." from the right-click context menu. In the position properties dialog shown in Figure 3, select the "Firing system" and "Module type", matching the type of position. Choose "RJ Timecode 16 Pin" or "RJ Timecode 32 Pin" for the pyro positions, and choose "RJ Timecode Flame Unit" or "RJ Timecode CO2 Unit" or "RJ Timecode Stadium Unit" for the special effect positions. Set the "Start Module". Right-click on each pyro position and assign it a Start Module number for the module used by that position (or the first module if more than one). For example, if you have four positions, you might assign the positions' Start Module to 10, 20, 30, 40 in order to give each position a range of 10 modules. Next, right-click on each special effect unit position, and assign it a unique Start Module number that is 100 + the Start Module of the pyro position that is triggering the special effect if the special effect unit is a flame projector; or 200 + the Start Module if the special effect is a cryo device; and 300 + the Start Module if the special effect is a stadium shot. Although the script window will show these module numbers as greater than 100, the exported script will record module numbers modulo 100 (subtracting out the 100s). In other words, in the exported script, a module number 101, or 201, or 301 will all be recorded as just 1. Using this technique of adding a 100 or 200 or 300 to the special effect position Start Modules, you are able to separate the pyro address assignments from the special effect units while still defining what module number is actually triggering the special effects (a number less than 100). Design the show. Add pyro effects to the pyro positions; flame effects to the flame positions; cryo effects to the cryo positions, and stadium shot effects to the stadium shot positions. At the time of this writing, Finale 3D does not have effects for cryo or stadium shots, so you can just use flame effects as placeholders for those effects. Based on the effect "Type" (see Table 1 of Why is ‘Type’ so important? What depends on it?), most flame effects in Generic Effects have constant duration. Effects with Type = "flame" have constant duration defined in the effect window that the script references; effects with Type = "sfx" have variable duration that you can edit directly in the script. See Flame and special effects with variable duration for instructions. To get started, try inserting the effects GFX1001, GFX1002 if you want constant duration, or insert effects GFX1005, GFX1006, or GFX1007 if you want variable duration that you can edit in the script directly. (optional) Create your own flame or special effects.You can search in the effect window or effect palette for "flame" to find all the flames, or you can search for "sfx" to find those with variable duration. In Finale 3D, flame effects (Type = flame) have a constant duration, so if you want flame effects that have a variety of durations as separate effect buttons to click, please create copies of a flame effect and set the durations of the copies as desired. Or, if you would prefer to edit the durations directly in the script, you can use the GFX1005, GFX1006, or GFX1007 effects in Generic Effects, or change the type of any of the other flame effects to "sfx", which implies variable duration. To change an effect, select the row in the effect window, copy it (control-C), and paste it into your My Effects (control-V after switching to My Effects from the blue selector in the upper right of the effect window). Then edit the "Duration" column to any duration you want, or edit the Type column to change its Type from "flame" to "sfx". The durations shown in the script window will be recorded in the RJ Equipamentos script file. Address the show. Do the menu item, "Addressing > Address show". Notice that all the special effects in the flame, cryo, and stadium positions will be assigned pin numbers, F, C, and S, instead of numerical pin numbers. Export the script. Do the menu item, "File > Export > Export firing scripts". Figure 2 – Each special effect unit is its own position. Figure 3 – The "Module Type" position property specifies whether the position is pyro or a special effect unit. File format The traditional and updated timecode based systems have the same basic file characteristics shown in Table 1, and different CSV header rows and information, as shown in Table 3 and Table 4. Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV Code Page 1252 , (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 Rows represent firing events, i.e., unique module-pin-ignition-time events. If multiple effects are triggered on the same cue, the effect names are combined in comment field, but the row is still just one row. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Special characters The characters ‘ and “ and , and ; and and tab and newline will be filtered out of any fields. Minimum separation between cues None required; millisecond resolution supported. Module size options Modules with 8, 16, and 24 pins are available. After the header, each row in the script has a number of fields separated by the vertical bar character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields -- traditional firing system Field name Description Cue The row number in the script, beginning with 1. Shot Time The event time in milliseconds, padded with zeros to seven digits. For example, 7.152s is represented as 0007152. Burst The effect time in milliseconds, formatted the same as the Shot Time. Module The module number (integers beginning with 1). Chanel The pin number (integers beginning with 1). Comment Finale 3D writes the effect name in this field, preceded by a count if the row represents more than one device. An example script is shown below. Notice the last two rows are at the same event time but have different modules and therefore cannot be combined into a single row. Cue,Shot Time,Burst,Module,Chanel,Comment 1,0002760,0005000,1,1,Green Chrysanthemum 2,0002860,0005100,2,1,Green Chrysanthemum 3,0002960,0005200,3,1,Green Chrysanthemum 4,0003060,0005300,4,1,Green Chrysanthemum 5,0003160,0005400,5,1,Green Chrysanthemum 6,0003260,0005500,6,1,Green Chrysanthemum 7,0003360,0005600,7,1,Green Chrysanthemum 8,0003460,0005700,8,1,Green Chrysanthemum 9,0003560,0005800,8,2,Green Chrysanthemum 10,0003560,0005800,9,1,Green Chrysanthemum Figure 4 – Example RJ Equipamentos traditional script Table 4 – Specifications of script fields -- updated timecode firing system Field name Description CUE The row number in the script, beginning with 1. TIMECODE The event time in 30 fps frames, formatted HH:MM:SS:FF. MODULO The module number (integers beginning with 1). CANAL The pin number (integers beginning with 1); or F, C, or S for the three special effects pins. ABERTURA Blank for pyro channels; the duration in milliseconds for the special effect channels. The exported duration depends on the "Type" field of the effect. If the effect's Type is flame, other_effect, or not_an_effect, then the exported duration is the value in the effect's "Duration" field in the script, converted to milliseconds. If the effect Type is anything else, the exported duration is 500. If the effect's Type is other_effect or not_an_effect, then you can edit the Duration field directly in the script window. If the effect's Type is flame, then the Duration field in the script window is a reference to the Duration field of Per-show effects in the effect window (use the blue selector in the upper right to select the Per-show effects). These differences between effect types are explained here: Why is ‘Type’ so important? What depends on it?. An example script is shown below. Notice the last two rows are at the same event time but have different modules and therefore cannot be combined into a single row. CUE,TIMECODE,MODULO,CANAL,ABERTURA 1,00:00:10:00,10,1, 2,00:00:10:03,20,1, 3,00:00:10:06,30,1, 4,00:00:15:00,10,F,110 5,00:00:15:00,20,F,110 6,00:00:15:00,30,F,110 7,00:00:20:00,10,C,410 8,00:00:20:00,20,C,410 9,00:00:20:00,30,C,410 10,00:00:25:00,10,S,410 11,00:00:25:02,20,S,410 12,00:00:25:03,30,S,410 13,00:00:30:10,10,F,110 14,00:00:30:10,20,F,110 15,00:00:30:10,30,F,110 16,00:00:35:10,10,C,410 17,00:00:35:10,20,C,410 18,00:00:35:10,30,C,410 19,00:00:40:10,10,S,410 20,00:00:40:11,20,S,410 21,00:00:40:13,30,S,410 Figure 5 – Example RJ Equipamentos updated timecode script Table 5 – Example files Download link Explanation test_rjequipamentos.csv Example exported file (CSV) test_rjequipamentos.fin Example show file test_rjtimecode01.csv Exported timecode show with special effects test_rjtimecode01.fin Example timecode show with special effects
Rack layout in Finale 3D Pro is analogous to a CAD tool like Visio for visually laying out the racks in a top-down view, except the racks are logically connected to the effects in the show and the firing system addresses. You begin by creating or customizing racks by defining their numbers of tubes, the arrangement and angles of the tubes, and constraints to control the kinds of effects that go into the racks. From the set of racks you define, Finale 3D produces an initial rack layout with the minimal number of racks to accommodate the show you’ve designed. From there, you can drag and drop the racks to organize them into pods or groups. Finale 3D’s addressing functions like “Addressing > Address show...” will assign pins and tubes to the shots in the show, taking into consideration the racks and layout so e-matches don’t need to stretch between groups of racks. If you want to fine tune the wiring, you can drag and drop individual pin assignments between tubes and modules in the rack layout window. The final output is a set of reports and diagrams for the crew to follow to setup the show. The three-step process From start to finish, scripting a show with rack layout is a three step process: Design show Add racks for show Address show Figure 1 – Three step process: 1) design, 2) add racks, 3) address show. The order of these steps is significant, because it allows you to re-address the show (step 3) after making changes to the design -- without blowing away the rack layout that you may have spent a lot of time arranging just right. It also allows you to re-use rack layouts from older shows by copying and pasting them between shows or creating a show file template with the positions and racks of a venue that you use repeatedly. Adding racks for the show Add racks for a show design using the simple menu item, "Racks > Add racks for show..." or "Racks > Delete and re-add racks for show..." A dialog like the one shown in Figure 2 will appear with a list of all the types and sizes of effects that the show contains. For each type and size of effect, you can select what kind of rack applies. Figure 2 – The "Add racks" dialog gives you choices of what racks to use for every size and type in the show. When you click the "Add" button, the function will add however many racks are required, at the proper angles for the effects. The dialog of Figure 2 does give you choices of what racks to use, and also options to ignore specific sizes or types of effects in the show. For example, if you don't use cake racks you can just click the "ignore" checkbox for the cakes in the dialog (not shown in Figure 2 because this example doesn't have any cakes). Similarly, you can ignore any particular size effects or effects that have any specific "Rack Type" property (see Using the “Rack Type” field for fan racks). In the example, the 2.5" single-shot effects are being ignored. The collection filter at the top of the dialog filters your rack choices. You can customize your own racks with the "Racks > Create rack..." function, or you can use some of the pre-defined racks in the "Generic Effects" collection. You can also use "Easy Racks" which are available no matter what collection filter you choose. If you choose Easy Racks, you can specify the number of tubes per rack for each size on the fly, right in the dialog. Notice that the Easy Rack choice for 3" mortar racks at the top of the Figure 2 dialog has a Tubes/rack field that is editable, whereas the other racks chosen for the single-shot effects have a Tubes/rack field that is not editable, as they are not Easy Racks. The dialog shows on each row how many effects the show contains, and also how many racks are required ("Racks to add") on the basis of your choice of rack. The number of tubes per rack obviously affects the number of racks required, but so do a number of other factors, like the angles of effects and the optional rack constraints that you can set up if you customize your own racks. If you have a limited number of racks in your physical inventory, you may choose to use the "Limit" field to impose a limit on the number of added racks for a size or type. The limit applies to the total number of racks of the specified size or type. If your show already has some racks and you are adding more racks after making a change, the limit takes into account both the existing racks and the racks to be added. The "Leftover effects" row at the bottom of the dialog indicates if any effects do not fit in rack choices on account of their angles. Since the "Add racks" function automatically adds racks at the proper angles, leftover effects are rare and usually regarded as an error. The field can become non-zero if you select a rack that has pre-configured angles or a rack that is defined as non-rotatable. Ignored rows in the dialog do not contribute to leftovers. Racks that you customize yourself can be made to be compatible with all effect sizes or with size ranges. If you select a fits-any-size rack for one of the rows in the Figure 2 dialog, other rows may become disabled on account of the fact that the racks added by your selected fits-any-size choice for one size will also accommodate the effects of another size. That's why the 1.5" and 2" rack rows in Figure 2 are green. The 2.5" row is green because it is ignored. Rack layout view Figure 3 shows the rack layout view after adding racks for a position. The rack layout view is a feature of the Finale 3D Pro version. The Finale 3D Hobbyist version also supports racks but does not include the ability to lay them out visually. From the rack layout view, select the position you want to work on with the selector in the upper right. The added racks appear in an initial default layout. The effects in the position without firing system addresses appear as red circles. Effects with firing system addresses would appear as pin numbers in depictions in of firing system rails in the lower left, but at this moment the example does not yet have addresses assigned. Figure 3 – Drag and drop the effects (red circles) into racks in the rack layout view (from the Window menu or shift-3). You can drag and drop effects directly into the racks, and you can also drag and drop to or from the rails at the bottom (see Figure 4). As you assign addresses by drag and drop or with the "Re-address" link or with the menu item "Addressing > Address show..." the red circles of the unaddressed effects disappear, as they are replaced by pin numbers in the rails and racks. Toggle between the "drag and drop racks" mode versus the "drag and drop pins" mode with the link in the upper left. The convenient links at the bottom of the view operate solely on the position being edited. Click "Add racks" to add any additional racks to the position, if needed. Click "Delete racks" to start over for the position. The "Add/edit rails" link brings up a dialog to specify pre-assigned rails for the position. Use this link if you know in advance what firing system hardware you are going to have at the position rather than determining the requirements based on addressing the show. Figure 4 – After clicking "Re-address" or the "Addressing > Address show..." menu item, the firing system rails and pins appear. Addressing the show, taking racks into account The “Addressing > Address show...” function assigns addresses for pins and tubes. If you haven’t added any racks, then the function just assigns addresses for pins, but if you’ve added any racks at all to the show, the function will attempt to assign pins and tubes. The “Address show...” dialog has options for addressing constraints that take into consideration the racks and rack layout. If you want to restrict each module to a single rack, add “Rack” to the modules line in the constraints section of the addressing dialog, as in Figure 5. If you want to restrict each rack to a single module, add “Module” to the racks line in the constraints section. If you add both these constraints, then the modules and racks will be assigned one-to-one, which means exactly one module per rack. Figure 5 – Adding the “Rack” constraint to modules and the “Module” constraint to racks Restricting modules to racks is just one of the possible constraints. You can also restrict modules or racks to a single “Part Number” to optimize setup time in large shows, or restrict racks to single “Chain” to prevent multiple chains from sharing a rack, or to single “Chain-Or-Not” to prevent a module or rack from being used for a combination of chains and individual shells. You can use the dozens of other constraint options in the menus, or use “Custom Part Field” or “Custom Script Field” to create your own logical constraints. The “Rack Cluster” constraint option in the modules line is particularly useful if you layout your racks into groups or pods, which Finale 3D calls “clusters”. Any racks that are snapped together in the rack layout view are considered part of the same cluster. Adding the “Rack Cluster” constraint to modules restricts each module to the same cluster of racks, which means that all of the module’s wires will be in the same cluster, avoiding problems of e-matches not stretching far enough to reach the tubes. Figure 6 shows the result of addressing a show without the “Rack Cluster” constraint. Notice the wires coming from a single rail extend to multiple rack clusters. Figure 6 – Without the “Rack Cluster” constraint, wires from module 01 serve two clusters. Figure 7 shows the “Rack Cluster” constraint in the addressing dialog, applied to modules. If your firing system has slats, you can apply this constraint at the firing system slats level instead of the module level. Figure 7 – Adding the “Rack Cluster” constraint to modules will fix the problem. Figure 8 shows result of addressing the same show with the “Rack Cluster” constraint. Notice that unlike Figure 6, each module in Figure 8 serves only one cluster of two racks. In particular, module 01, which was a problem in Figure 6, serves only the middle cluster in Figure 8. Figure 8 – With the “Rack Cluster” constraint, each module serves a single cluster. Adding constraints sometimes increases the number of racks required for the show, because some of the tubes in the racks may need to go unused. When that happens, you will notice the addressing function reports racking errors and automatically selects all the effects that didn't get racks. At this juncture you can immediately try the menu item, "Racks > Add racks for selected events" to add racks specifically for the effects that need them. Problem solving The pin numbers in the tubes, as shown in Figure 8 and other figures, are usually blank for empty or a number for a device of that pin number. The pin numbers are not necessarily unique for each tube. Chains fill multiple tubes with the same pin number to accommodate their multiple devices. Items e-matched together on the same pin also fill multiple tubes with the same pin number. The rack and pin numbers of the devices are stored in the Rack and Pin columns in the script. Thus, if you clear the Rack and Pin columns in the script window, that would clear all the rack and pin assignments, resulting in a stack of red circles on the right, as in Figure 3. If the Rack and Pin column values contain conflicts or problems, a special symbol may be displayed in the tube. Table 1 gives an explanation. Table 1 – Pin number problems Text in Tube Description Digit or letter The pin address of the item that is in the tube. No problem! Blank The tube is empty. Plus sign (+) Multiple devices with different pin numbers are assigned to the same tube. Unhide the Rack and Tube columns in the script window. Click the Rack column header to sort by Rack; then shift-click the Tube column header to set the secondary sort criterion to Tube. Scroll down and look for two rows assigned to the same rack and tube. Question mark (?) The tube is occupied by a device that doesn't have a pin number. Unhide the Rack and Tube columns in the script window, in addition to the Pin column. Find an item that has a rack and tube value but does not have a pin value.
The idea of pre-wired pins is to pre-define the pin number order of the rack's tube holders in a pattern that matches the firing system and makes it fast for the crew to set up. Look at the comparison in Figure 1. How much time would you save setting up the show if all your racks looked like the one on the right? Figure 1 – Comparison of before/after using pre-wired pins. The rack has 32 tube holders; the modules have 16 pins. For some racks like Evolved Pyrotechnics, Monetti iShot and PyroDigiT, pre-wired pins quite literally means the tube holders have built in physical wires that connect tube holders to a firing system slat. However, the idea of pre-wired pins applies to any rack, whether it actually has built in physical wires or not. If you define a rack in Finale 3D as having pre-wired pins, you can get a sequential pin number order of your choice, like the one on the right. Angles Pre-wired pins can be used for racks with fixed angle tube holders, or adjustable angle tube holders, or adjustable angle tube holders with angle range constraints. The addressing function needs to take into account the angles when assigning pin numbers. Racks with fixed angle tube holders may leave gaps in the sequence of used pins of the module if there are gaps in the angles used in the fan. If a fan rack of 13 posts is pre-wired to pins 1-13 of a module, then a show that calls for a thinner fan of just 5 posts might use pins 1, 4, 7, 10, 13 of the rack. The pins in between may remain unused or may be used for other effects outside of the rack, like cakes. Adjustable tube angle racks often have different angle ranges for the interior tube holders and the tube holders on the outside edges. The outside edge tube holders may rotate 90 degrees to fully horizontal, whereas the interior tube holders can only rotate about 50 degrees before they collide with the bases of their neighbors. Any effects at 90 degree angles can thus only be assigned to outside edge tube holders, which means they can only be assigned to the pin numbers of those outside edge tube holders. Figure 2 – For this rack with angle range constraints, only pin numbers 7 and F can be used for extreme angles to the right. Spillage The example rack of Figure 1 and Figure 2 has exactly twice as many tube holders (32) as the module has pins (16) so the modules' pin numbers fit nicely in the rack. That's not always the case. If the rack had 30 tube holders, then there would be 2 pins left over. If the rack had 25 tube holders, there would be 11 pins left over. Spillage is what you do with the leftover pins: do you use them for other effects like cakes or candles, or do you leave them fallow? Figure 3 – The second module of single-shot rack #1940 spills pins 6 through E into the cake rack. You could decide either way. If using the leftover pins allows you to reduce the number of required modules, then maybe that is a major factor in your decision. If the leftover pins don't make a material difference in the number of modules or if you have modules to spare, then you may prioritize the efficiency of setting up the show over the savings of a module. The example of Figure 3 shows leftover pins from single-shot rack #1940 (6 through E) being used for slice cakes in the cake rack #1936. These nine pins likely save a module for this position, but it does create the requirement that the module or slat serving the single-shot rack #1940 is close enough to the slice cake rack for the e-matches to reach. How to setup pre-wired pins in Finale 3D To use pre-wired pins, you need to setup two things: Configure rack definitions for pre-wired pins. If you are using racks from a supplier catalog, choose racks that are already configured for pre-wired pins in a way that matches your firing system module number of pins. If using your own rack definitions, select one of the “pre-wired pins” options in the definitions that matches your modules. For example, if a rack has 30 pins and your modules have 32 pins, you would choose a pre-wired pin pattern that runs from 1 to 30 (pins 31 and 32 unused). If your modules have 16 pins, then you would choose a half-and-half pattern that has two sequences of 1-15, one for each module (pin 16 unused). Choose the right addressing dialog options. In the addressing dialog or addressing blueprint choose the sorting criteria and constraints that fill the racks and handle leftover pin spillage the way you want. The choice of sorting criteria and constraints also depends on whether your racks have angle range constraints, and other factors. See the Table 1 below for guidance. Configuring rack definitions for pre-wired pins If you do “Racks > Create rack” or right click on a rack in your effects list or rack layout view, the dialog shown in Figure 4 presents two fields related to pre-wired pins. Figure 4 –Fields in the "Create rack" dialog related to pre-wired pins The pre-wired pins field presents the options for the pin patterns. The choices for this field are shown in Figure 5. Figure 5 –Pre-wired pins options These options define sequential pin patterns 1, 2, 3, ... that run along the rows or across them as in the Figure 6. The pin patterns are illustrated in Pre-wired pin options. The orientation of rows is explained in Rack “row” and standard orientation. A trick to interpret these options is: Hold your left arm out in front of you, wrist bent, fingers together pointing down. Your fingers are the rows, pinky finger being row #1. The option "By rows, left to right" thus starts with the first pin at the base of the pinky finger, progresses down to the finger tip, then continues at the base of the ring finger. If the rack is rotated 90° counter-clockwise to make the rows horizontal from the audience perspective, that's like rotating your hand 90° counter-clockwise. In that orientation the first row represented by your pinky finger is closest to the ground, which is equivalent to closest to the audience in the rack layout view. Choose the pin pattern that you like the most and that makes the most sense for your modules. If it takes two modules to cover all the tube holders, then choose one of the half-and-half options. If the modules have extra unused pins, such as two 16-pin modules covering a 25 or 30 tube holder rack, the extra pins can be used in other racks, which you can control with the addressing options. If the modules have fewer pins than the number of tube holders, such as an 18 pin module by itself on a 20 tube holder rack, the tube holders with out-of-range pin numbers will simply remain empty. Figure 6 –Pin patterns traverse along or across the arrows; half-and-half starts over with pin 1 half way through the traversal. After setting the pin pattern option, please set the pin loading order field (second red circle in Figure 4) to match it. Racks with multiple modules list the module numbers in the order that the pin sequences are encountered when traversing the tube holders by the loading order. Choose the right addressing dialog options Pre-wired pins require specific settings in the addressing dialog to make the addressing algorithm assign pins and racks optimally. There's not just one definition of optimal that suits everyone, so there's not just one configuration of settings that is right for everyone. Depending on whether your racks have adjustable tube holders on the ends of the rows that have different angle ranges from the interior tube holders, and depending on whether you want to allow leftover pins from one single-shot rack to be usable in other racks, there are a few configurations to choose from that work: Four. The four configurations apply to the sort order, module constraints, pin constraints, and re-arrange checkbox of the addressing dialog, identified in Figure 7. Figure 7 – The addressing dialog options relevant to pre-wired pins are: order, module constraints, pin constraints, and re-arrange. The four configurations are listed in Table 1. As written, these configuration apply only to single-shot effects (all of them ending with "-- Single-Shot" or "(If Single-Shot)" meaning they apply only to single-shots), which leaves the remaining empty fields available to you to add additional terms that apply to non-single-shot effects. For example, if you add "Rack Number" as a sort order option after the filled in fields of Table 1, the Rack Number term would apply to the order of the effects after the single-shot effects, and would also act as a tie breaker for any single-shot effects that have the same sort order priority based on the Table 1 filled in fields. Table 1 – Addressing dialog option configurations Angle ranges Leftover pins from rack's modules Addressing settings All tubes have fixed angles or the same angle ranges Usable in other non-single-shot racks All tubes have fixed angles or the same angle ranges Not used Interior tubes -50..50; end tubes -90..50 and -50..90 Usable in other non-single-shot racks Interior tubes -50..50; end tubes -90..50 and -50..90 Not used Regarding column 1 in Table 1, the only racks requiring special configuration terms are those for which adjustable tube holders at the ends of the rows have wider angle ranges than the interior tube holders that would run into their neighbors if tilted too extremely. The special configuration terms are required because the end tube holders are a limited resource. It is important to fill them with effects that require them. If the addressing algorithm wasted them on upright effects, then there may not be enough end tube holders to handle other effects at extreme angles. Regarding column 2 in Table 1, none of the configurations permit pre-wired pins to be shared across multiple single-shot racks. Leftover pins from a single-shot rack are always either left unused or applied to individual cakes and candles (or sometimes shells) that are physically near the single-shot rack or that are reachable with scab wire. You can control what racks the leftover pins are shared with by adding "Rack Cluster" to the module constraints list and moving the racks close to each other in the rack layout view, or you can add "Custom Rack Field" to the module constraints list and fill in your own "virtual rack cluster" identifiers in the Custom Rack Field column of the racks. The specific purposes of the sort order and constraint fields in the configurations are explained in Table 2 and Table 3. Table 2 – Purpose of sort criteria terms Term Explanation Position Name Almost all addressing configurations begin with Position Name to assign addresses one position after another. Nothing special about this term. Tilt > 50° -- Single-Shot This term is required for racks that have interior tube holder angle ranges of -50..50° and ranges that exceed 50° for tube holders on the ends. Since the end tube holders are a limited resource it is essential to address the effects that can only go in end tube holders first, so they don't fill up with other effects that don't require them. If your racks have interior tube angle ranges that are approximately 50° but not exactly, then pretend they have a 50° range and use the number 50 in the rack definition and the sort criteria. If the constraints are markedly different from 50° then use the actual angle in the rack definition and use "Most Horizontal Tilt -- Single-Shot" in the sort criteria before the size constraint. The "Most Horizontal Tilt-- Single-Shot" term will correctly allocate the end tube holders first, but it relegates the size constraint to being a tie breaker for same-angle effects instead of being a tie breaker for the group of effects > 50° and a tie breaker for the group of effects <= 50°. If positions contain multiple kinds of single-shot racks with different size range capacities, this sort configuration may use up holders in large effect size capacity racks on smaller angled effects that could have fit in small effect size capacity racks. Size >= 50mm -- Single-Shot If positions include multiple kinds of single-shot racks, some capable of holding 50mm+ effects and others only holding smaller effects, then it is essential to address the 50mm+ effects first so the 50mm capable racks don't fill up with smaller effects, leaving the 50mm+ effects nowhere to go. If your racks have a different size limit, use the 35mm, 40mm, 45mm, or 55mm version of this sort criterion, whichever is closest. There is no harm in including this term even if your positions don't need it. Most Horizontal Tilt -- Single-Shot Not as high a priority as the other sort terms, but "Most Horizontal Tilt -- Single-Shot" prioritizes the angles first in a balanced way left/right. Including this term results in racks that have approximately even numbers of left and right effects, which makes the racks more symmetric and aesthetically pleasing. This term relies heavily on the "Rearrange effects to avoid collisions" function. Table 3 – Purpose of constraint terms Term Explanation Module restricted to Position Module restrictions begin with Position unless modules are shared across positions, in which case all these Module constraints are usually on the Slat instead. Module restricted to One Single-Shot Rack This term restricts a module to at most one single-shot rack, but allows leftover pins from that rack to serve effects in other kinds of racks, like cakes, candles or even shells. Module restricted to Rack (If Single-Shot) This term restricts a module strictly to one rack if the module serves any single-shot effects. If any pins are left over, the pins will remain unused. Pin restricted to Event (If Single-Shot) This term restricts pins to a single event, but only for single-shots. This constraint is similar to the addressing dialog's "Max e-matches per pin" (having the value 1), except that this constraint applies only to single-shots, leaving open the possibility of setting the max e-matches per pin to a larger number that would apply to other types of effects like shells. One way or another, restricting e-matches per pin to one for single-shots is required for pre-wired pins on single-shot racks.
Some types of racks that hold variable size tubes are limited by the length of the rack: bigger tubes take up more space than smaller tubes, and there’s only so much space. Single-shot racks with tracks for single-shot tubes to slide into, like the PyroLamas rack below, are an example. Figure 1 – PyroLamas rack with fixed length rows capable of holding variable size tubes The rack layout function “Racks > Add racks for show” and the addressing functions can take into account a rack length constraint when determining how many racks are required for the effects in the show. To set up a rack length constraint, do “Racks > Create rack” and configure the rack with, “Max. usable length per row” set to the length of the row “Number of tubes” per row set to the maximum number of tubes per row “Fits any size” set to true The usable length is consumed by the tubes assigned to the row according to their size. Obviously the outer diameter is the right measure of space taken by the tube, but the size the effect in the tube, which is typically closer to the inner diameter of the tube, is the measure used for the calculation, so you may wish to make the length limit slightly smaller than the actual row length in order to compensate for the difference and any other buffer space you want to allow between the tubes. Figure 2 – Configuring a rack with a length limit of 250mm per row The figure below shows an example with two racks, each having two rows of maximum five tubes, with a length limit of 250mm. The effects assigned to the racks are 60mm effects, so four tubes can fit within the length limitation, but not five. In this example, the first rack illustrates that it doesn’t matter which four tubes are assigned effects, so long as there aren’t more than four. The second rack illustrates what happens if you manually assign too many effects to a row -- one of the pin numbers will turn red to indicate an error. Figure 3 – Only four 60mm tubes fit in 250mm; the fifth is red Rack row length consumption The Physical Specifications column in the effects window holds various parameters for the physical specifications of effects and racks. For effects going into single-shot racks with row length constraints, the physical specifications may contain a parameter that indicates the row length consumed by the effect, if different from the effect's size. You can use this parameter to specify the actual footprint of the effect, which may be its outer diameter or may take into account a sliding base or mandatory spacing between effects in the row. Figure 4 – Set the rack row length consumption of an effect with the context menu item 'Edit physical specifications...' The easiest way to set the rack row length consumption for an effect is to right click on the effect in the effects window, and select 'Edit physical specifications...' from the context menu. You can also edit the Physical Specifications column directly. The syntax for the field in the Physical Specifications column is: {[rackRowLengthConsumption 50]} Where the example number 50 is the length consumed in millimeters. Slice cakes in single-shot racks Cakes that are sleeved to go into single-shot racks (see Sleeving effects into different size mortars or different kinds of racks) or forced into single-shot racks with Rack Type part numbers are usually slice cakes comprising a single row of tubes. As a special mechanism, cakes in will require and occupy an entire rack row if the rack has a "Max. usable row length" constraint, rather than consuming just part of the row length -- unless overridden by a rackRowLenghtConsumption specified in the cake's Physical Specifications field. Imagine a slice cake that consists of 10 tubes with 1" diameter. Its footprint is wide and rectangular, approximately 10 or 11 inches by 1". If you put that slice cake in a single shot rack, the slice cake slides into the row, aligning length-wise with the row. It naturally consumes 10 or 11 inches, not 1", so consuming and requiring the entire rack row is the default behavior. If you want cakes in single-shot racks to share the row with other single-shot effects, use the rackRowLengthConsumption property to specify the cake's consumption, even if it is the same as its size.
To create and export a script for the RFRemotech firing system, please follow these three steps: Design the show. Address the show ("Addressing > Address show"). Export the script ("File > Export > Export firing scripts"). Step 3 creates the script file, which is a CSV file that you can import into your firing system. Figure 1 – The RFRemotech firing system The RFRemotech script is a CSV file. The terminology in the CSV file is slightly different from Finale 3D, and a simple conversion is required for firing system addresses. The firing system itself is wireless system suitable for large scale displays. The system consists of up to 50 “Master” modules and 50 “Slave” modules per master module. Both the master module numbers and slave module numbers start counting at 1. In the future, the system may support as many as 99 master modules and 999 slave modules per master. Each slave module has 32 “Cues” (pins) named A1, A2, … A8, B1, B2, … B8, C1, C2, ... , C8, D1, D2, … D8. In the future, RFRemotech plans to release an 8-pin module with pins named 1, 2, … 8. The terminology conversion from Finale 3D to RFRemotech terminology is: Module in Finale 3D means “Master” in RFRemotech Slat in Finale 3D means “Slave” or “Firing Module” in RFRemotech Rail in Finale 3D means a two-part address that specifies both the master and the slave, such as “01-10” for master = 1 and slave = 10. In RFRemotech, the corresponding two-part address is formatted as, M01S010, for master = 1, slave = 10. Pin in Finale 3D means “Cue” in RFRemotech. The format for pins in Finale 3D is numerical, starting with 1. Since the format in RFRemotech involves four banks, A, B, C, D, of eight cues each, the formula for converting from pin numbers in Finale 3D to cues in RFRemotech is simply 1 → A1, 9 → B1, 17 → C1, and 25 → D1. The last pin, number 32, is D8. In addition to these terminology conversions, Finale 3D stores the launch position name and the effect description in the “Module Name” and “Master Name” fields, since this information is available from the visual scripting process and is useful. The “Firing Point Type” field is effect type, such as ‘cake’, ‘comet’, or ‘mine.’ Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .csv UTF8 NO BOM , CRLF The script contains rows for the firing events, i.e., unique combinations of module, slat, 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 time. What rows represent Rows represent firing events, i.e., unique module-slat-pin-ignition-time events. If multiple effects are triggered on the same cue, the effects are combined in name field, but the row is still just one row. Header The file contains a single header row with the column names, in the same format as the CSV data rows themselves. Special characters The characters “ and , and ; and tab and newline will be filtered out of any fields. Minimum separation between cues None required; millisecond resolution supported. After the header, each row in the script has a number of fields separated by the vertical bar character. The names of these fields and their descriptions are the following: Table 3 – Specifications of script fields Field name Description NO. The row number in the script, beginning with 1. Firing Point Type This field contains the type field from Finale 3D, which can be blank or one of these enumerated values: cake, candle, single_shot, shell, ground, rocket, mine, comet, flame, other_effect, not_an_effect, rack. Cue The pin number 1-32, converted to RFRemotech format of A1, A2, … A8, B1, B2, … B8, C1, C2, ... , C8, D1, D2, … D8. Module Name Finale 3D writes the launch position name in this field. Module Logic ID The master module number and slave module number, combined and formatted as in: M01S001 for master module number 1, slave module number 1. Module Type The type of module, e.g., 32Q. Master Name Finale 3D writes the effect name in this field. Master Logic ID The master logic number, formatted as in: M01 for master module number 1. Program Seq. The shot count, beginning with 1. This count is similar to the row number field (NO.), except that it does not increment for rows that have the same ignition time. For example, if the script contains four rows, and the second and third row have the same ignition time, then the shot counts of the rows are 1, 2, 2, 3. Locating The ignition time, in the format H:MM:SS.DDD. Remark Finale 3D writes the Script Notes in this field. An example script is shown below. Notice the second and third data row at position Pos-02 have the same ignition time, so their Program Seq. is the same number (2). NO.,Firing Point Type,Cue,Module Name,Module Logic ID,Module Type,Master Name,Master Logic ID,Program Seq.,Locating,Remark 1,,A1,Pos-01,M01S001,32Q,Red Chrysanthemum,M01,1,0:00:02.800, 2,,A1,Pos-02,M02S001,32Q,Red Chrysanthemum,M02,2,0:00:02.900, 3,,A2,Pos-02,M02S001,32Q,Red Chrysanthemum,M02,2,0:00:02.900, 4,,A1,Pos-03,M03S001,32Q,Red Chrysanthemum,M03,3,0:00:03.000, 5,,A1,Pos-04,M04S001,32Q,Red Chrysanthemum,M04,4,0:00:03.100, 6,,A1,Pos-05,M05S001,32Q,Red Chrysanthemum,M05,5,0:00:03.200, 7,,A1,Pos-06,M06S001,32Q,Red Chrysanthemum,M06,6,0:00:03.300, 8,,A1,Pos-07,M07S001,32Q,Red Chrysanthemum,M07,7,0:00:03.400, 9,,A1,Pos-08,M08S001,32Q,Red Chrysanthemum,M08,8,0:00:03.500, 10,,A1,Pos-09,M09S001,32Q,Red Chrysanthemum,M09,9,0:00:03.600, Figure 1 – Example RFRemotech script Table 4 – Example files Download link Explanation test_rfremotech.csv Example exported file (CSV) test_rfremotech.fin Example show file