Exporting to FireOne**

Overview

In order to make a FIR file firing script or SEM file semi-automatic firing script, you need to configure your show with the specifications of your firing system. The easiest way to do this is with the menu item "Show > Set firing system > FireOne". You can also set the user preference "File > Preferences > Firing system > FireOne" so that all your new shows will come up pre-configured for FireOne.

For certain advanced techniques or to specify varying sizes of modules you may want to configure the modules at your launch positions individually. For instructions, please see the Export Overview section. When configuring your launch positions for the FireOne firing system, use integers starting from 1 for the module addresses; specify the first pin (channel) is 1, and number of pins is 32 or however many pins you want to use. By default, Finale will assign only a single e-match per pin, but you can set the maximum e-matches per pin field to any number.

Once you've scripted your show and you are ready to export your firing script, click the "File > Export firing script > FireOne FIR" or "File > Export firing script > FireOne SEM" menu item (see additional instructions below for SEM files). The sound track is not embedded in the script, so if you have a sound track you should simply use the same file that you uploaded into Finale.

Importing scripts to create visualizations is discussed in detail in Import Show, though for FIR and SCR files the importing process is so simple you can do it with a single menu command. Brief instructions are given below.

Example Script

The following files are an example show file that you can load into Finale, plus the exported script for FireOne as an FIR file and as an SEM file. More explanation of the examples is provided in the Export Examples section.

Downloading To Your FireOne Firing System

After you've scripted and exported your show, you can upload it to your FireOne controller using the FireOne 2000 software or later versions. Typically you will already have a WAV file of your sound track, so when you export from Finale you don't have to export the WAV file again. You can reply "No thanks" to the dialog that asks you.

Here are the step-by-step instructions after you've exported your script, courtesy of a FireOne/Finale user:

  1. You first must export your show as a FIR file. Do this from the menu item in Finale, "File > Export script > Export firing system script > FireOne FIR". Pick the newer format, with 1ms resolution. When you are prompted, choose not to export the WAV file if you already have one.
  2. Next you need a laptop with FireOne 2000 or newer to upload the FIR file to the Firing Panel (whether its a FireLite XLII or XL4). The panel must be connected to the laptop via either USB printer cable or serial cable. If you have the choice, use the serial cable because USB converters are less reliable.
  3. Turn the panel on with the switch but NOT THE KEY.
  4. The FireOne 2000 program should indicate that it recognizes that the panel is connected in the lower left corner. If not, go to "Tools", and select "Connect to Control Panel".
  5. Next do "File > New Display" and load your saved the FIR file.
  6. The next screen is the Display Editor. From this screen you can see every cue in the show. Since its a FIR file and not a SCM file you don't need to do anything.
  7. Next go to "Tools" again and more specifically to the control panel downloader. This will upload the FIR file into the panel. Press ok and it will upload.
  8. You can then do the "System test" to check if all the ematches, modules and firepower are set up correctly.
  9. Once that is complete, go to "Firing Mode". On the left hand side there is time control. Click the box which says local backup, select local time, then select WAV file and, then locate your WAV file on the laptop.
  10. Next press the "Arm" button on the lower left and it will tell you to turn the system on with the key. Press the "Fire" button and you will go back to the previous screen.
  11. At this point you will see the "Play" button on the left under "Manual timing". Once you press that button the show will fire.

In this method the audio is fed to the sound booth via speaker cables which plug into the headphone jack of the laptop. If you are using time code you need to give the cd to the DJ and he will control the show. For time code you need to create a time code file that is synchronized to the sound track using FireOne's Time Code Wizard or by hand using an audio editor like Gold Wave or Audacity and a WAV file containing a time code track. To help you synchronize the script to the time code or to add a minute or so of leading time in before the show begins, Finale allows you to add an offset to the script events that will be exported in the FIR file. To set the offset, use the menu item, "Show > Set script export offset (for timecode)...".

Creating Semi-Automatic SEM Files

A "Semi-Automatic" script file is one that contains multiple sequences, or tracks, that are triggered like macros. It is simple to set up a semi-automatic script in Finale using the track field in the firing view. Just select the set of effects that are all part of the same track, and do "Actions > Set track" to set their track to a number from 1 to 32. Do this operation for all effects in the show, such that every effect has a track number assigned. Then export the SEM file with "File > Export script > FireOne SEM file". When you export the SEM file, each track becomes a separate sequence of firing events triggered by the track number.

Importing FIR/SCR Files From ScriptMaker And CueMaker

You can create a visualization of a show scripted with ScriptMaker or CueMaker simply by importing the FIR or SCR file with the menu command, "File > Import show > From script > From FIR/SCR file." When importing a FIR or SCR file, the relevant imported fields from the firing rows in the script are: Position, Location, Description, Size, Slat, Cue, ProductNumber, ScriptTimeText, LaunchTimeText, and Qty. It is not a problem if some of these fields are missing. SCR files, for example, typically do not have values in the Slat and Cue fields. The only required fields are Description, Size, ScriptTimeText, and LaunchTimeText.

The Position field should contain the name of the launch position. The Location field is only used as a backup if the Position field is empty, since some users put the launch position names in the Location field instead of the Position field. The Description field should be the effect name, from which Finale will automatically create a simulation. The Size field should contain the caliber of the device, preferably with units, e.g., 3" or 75mm, though if units are not provided Finale will make reasonable guesses. It is not uncommon to see FIR files with cake number of tubes in the Size column, though this practice is somewhat problematic for computer visualization programs like Finale since it is difficult for a program to discern what a number means. Finale makes reasonable guesses, but to improve your visualizations you should make sure the size column contains only caliber sizes; if you mix millimeter and inch size calibers then you should also specify the units.

The Slat and Cue fields are equivalent to the module and pin addresses in Finale. If these fields are provided, Finale will read them in as they are. You can use Finale's re-address functions to overwrite these addresses or to generate them if they are not provided.

The ProductNumber is obviously the Product ID. Though this field is optional in Finale, it can be useful: If you have already imported your Master Inventory, then when you import a show Finale will give you the option to import "matching" in order to use the simulations from Master Inventory instead of simulations automatically constructed from the effect names. Obviously this can save you a lot of time, because it means that once you customize your Master Inventory simulations, thereafter all your show imports will use your custom simulations.

The ScriptTimeText and LaunchTimeText fields obviously just hold the effect time and ignition time for firing row. The Qty field holds the number of devices represented by the row. If you have a chain of 5 shells, for example, the Qty field is 5. If you have two chains of 5 shells each on the same module and pin, then the Qty field for that firing row would be 10.

In the FireOne FIR script format, each firing row in the script corresponds to a unique module / pin combination, so the script format has difficulty representing multiple effects on the same module / pin. Consequently, if you export a show scripted in Finale as a FIR file and then re-import it as a show, some of the information is lost due to the file format, and you may not get back exactly what you had originally.

Understanding The FIR/SEM File Format

Firing Rows

In the FireOne FIR script format, each firing row in the script corresponds to a single shot, or electrical impulse on a pin. The rows are sorted by break time, and then by launch time and caliber as secondary and tertiary sort criteria. Since multiple effects can be on the same shot, each row must be able to represent multiple effects. Finale combines the effect names of all effects of the firing row into the same field, separated by commas. Similarly, Finale combines the notes from all those effects into a single field (ignoring any blank notes).

A firing row may also need to represent multiple launch positions in some circumstances, such as using a sequencer or scab wire to connect a module at one launch position to devices located at different launch position. Similar to the effect names, Finale combines all unique launch positions associated with a single firing row into the same field, separated by commas.

As an example of firing rows, if you have a flight of three identical shells from the same launch position on the same shot, they will appear as a single row; that row will contain all three names concatenated with comma separation; and the row will contain the single launch position name of the common launch position. If the three devices launched from separate launch positions (such as if they were scab wired or if the firing system units at the different launch positions were configured with the same address so as to shoot in parallel), then all three launch position names would be in the position field, separated by commas.

Information Fields (Columns In The Database)

The firing rows in a FIR file contain a number of pre-defined fields to represent the firing information. Not all of the fields are required or relevant to exported scripts, so Finale writes the following fields: LaunchTimeMS, LaunchTimeText, ScriptTimeMS, ScriptTimeText, DelayTimeMS, DelayTimeText, Slat, Cue, Position, Qty, Priority, Description, Comment, ProductNumber, Size, Event. Finale leaves all other fields blank. Some of the fields are filled differently for SEM files, as discussed below. Finale fills the FIR fields as follows:

  • LaunchTimeMS (Integer) Ignition time in milliseconds
  • LaunchTimeText (String) Ignition time in the format 00:00:00.00
  • ScriptTimeMS (Integer) Effect time in milliseconds
  • ScriptTimeText (String) Effect time in the format 00:00:00.00
  • DelayTimeMS (Integer) The value 0 (different for SEM files; see below)
  • DelayTimeText (String) The value "00:00:00.00" (different for SEM files; see below)
  • Slat (Integer) Module address number
  • Cue (Integer) Pin address number
  • Position (String) Launch position names, separated by commas (see above)
  • Qty (Integer) Number of devices
  • Priority (Integer) 1
  • Description (String) Effect names, separated by commas (see above)
  • Comment (String) Combined notes, separated by commas (see above)
  • ProductNumber (String) Product ID, separated by commas similar to Description
  • Size (String) The caliber with or without units, e.g., 3 or 3" or 75mm (least caliber if multiple effects)
  • Event (Integer) The value 0 (different for SEM files; see below)

The firing rows in an SEM file are the same except for these changes:

  • LaunchTimeMS (Integer) The value 0
  • LaunchTimeText (String) The value "00:00:00.00"
  • ScriptTimeMS (Integer) The value 0
  • ScriptTimeText (String) The value "00:00:00.00"
  • DelayTimeMS (Integer) The ignition time delta, in milliseconds, from the trigger firing row
  • DelayTimeText (String) The ignition time delta in format 00:00:00.00
  • Event (Integer) The track number, or 1 if no track number

In Finale, the track field in the Firing View is used to group of a set of effects into a "track". When you export an SEM file, each track becomes a separate sequence of firing events triggered by the track number, which is stored in the event field of the firing row. In SEM files, the firing rows are sorted first by track number, then by the same criteria as with FIR files, so in the SEM files each sequence of firing rows with the same event number is a contiguous sequence of rows, beginning with the first firing row having a delay time of 0, and subsequent firing rows having delay times equal to the time delta from the ignition time of the first firing row in the sequence to the ignition time of each firing row in the sequence.

FIR/SEM File Structure And Additional Information

The underlying file format of a FIR or SEM file is an old-style MDB Microsoft Access database file. To represent international, non-ASCII characters in strings, MDB database files can use UTF-8 or Code Page 1252 (ANSI) encodings. For compatibility with FireOne, Finale writes SEM and FIR file strings encoded in Code Page 1252.

The firing rows are in a table called "FireData". The database file also contains a table called "SMTPE", which has following fields: TimeBase, ShowName, CuesPerSlat, ReportTimeBase. Finale writes to these fields the values, "HH:MM:SS.XX" (string), the show name (string), 32 (integer), and "hh:mm:ss.x" (string).

** FireOne, ScriptMaker, and CueMaker are trademarks of Pyrotechnics Management, Inc., which has no affiliation with Finale Fireworks.