Total found: 308
The addressing functions divide up positions into addressing groups of positions that can share modules and that do not have different Pre-Assigned Rails. The addressing functions then assign addresses to the addressing groups one after another. Within an addressing group, positions can share modules. Between addressing groups, positions cannot share modules unless their Pre-Assigned Rails overlap. Typically positions do not share modules and thus typically addressing groups are indistinguishable from positions themselves, but if the addressing dialog or addressing blueprints do not include the constraint that restricts modules to a single position, then an addressing group may contain more than one position. If positions do not share modules, then further details about addressing groups have no bearing on the assigned addresses. If positions do share modules, the following sections explain the implications for sorting of addresses and sharing of modules. Criteria for sharing modules If the addressing dialog or addressing blueprints have the constraint that restricts modules to a single position, then positions cannot share modules. Without that constraint, positions might be able to share modules but only if the positions also have the same: Firing System Controller Module Type Universe Addressing Blueprint Start Module Section Positions with different Firing System Controller or Module Type or Universe properties can't share modules because addresses can't be part of two things at once. Similarly, positions with different Addressing Blueprint or Start Module also can't share modules because these fields affect the rules for assigning addresses, and a position couldn't be subject to two different sets of addressing rules at the same time. Section is a property that is specifically designated as needing to be the same among positions sharing modules. If two positions differ in any of these six properties, or if they have different Pre-Assigned Rails, they cannot be in the same addressing group. Addressing groups affecting the sort order of positions The addressing dialog and the addressing blueprints enable you to specify the sort order in which addresses are assigned. The most common sort criterion is sorting alphabetically by Position Name. Although people generally think of sort criteria as applying globally across the whole show, the sort criteria actually apply within each addressing group. If you think about it, it couldn't be any other way, because different addressing groups can have different blueprints that specify different sort criteria. Consider a set of six positions, A, B, C, D, E, F, addressed without the constraint restricting modules to a single position. Positions A, C, and E are sharing modules in one addressing group (say they have Section = "rooftop"); the other three positions are sharing modules in a different addressing group (say they have Section = "road", causing them to be a different group). Because the sections are different, there is no sharing of modules between A, C, E and B, D, F. If you address the whole show sorting by Position Name, you are probably surprised to see the addresses assigned to positions in the order A, C, E, B, D, F. The reason is, the addressing function assigns addresses for the first group containing positions A, C, E in order; and then it assigns addresses for the second group containing positions B, D, F in order. If the sort criteria apply within each addressing group, what sort criteria apply between addressing groups? In the example above the addressing function assigns addresses for the A, C, E group as the first group, but how did it decide that was the first group? More generally, how are the addressing groups sorted relative to each other? Addressing groups are sorted relative to each other based on the "sort factor" of each group. Depending on the sort criteria from the addressing dialog or applicable blueprint, each group's sort factor is either the alphabetically first Position Name in the group, or the alphabetically first Custom Position Field in the group, with the Position Name as the tie breaker. In the example above, the sort factor for group A, C, E is "A"; the sort factor for group B, D, F is "B"; so group A, C, E is first. If the sort criteria from the addressing dialog or blueprint do not explicitly begin with Position Name or Custom Position Field, the sort factor is Position Name by default. If different addressing groups have different sort factors based on different sort criteria (Position Name versus Custom Position Field), then the apples to oranges comparison between the groups is undefined but deterministic. If multiple addressing groups have the same non-blank Start Module, then as a special case the addressing algorithm adjusts the sort order to make those specific addressing groups consecutive, as described in the Start Module paragraph below. Section Unless the Pre-Assigned Rails cause addressing groups to use the same modules, the firing system addresses assigned in one group will never be shared with positions in a different addressing group. That's what makes the Section field a useful feature. By assigning different Sections to positions, you can force those positions or groups of positions to not share modules or pins that they otherwise would share (see Using the Section field in position properties). Start Module The addressing algorithm assigns addresses for the groups one after another, starting each group with the next module number after the largest module number assigned in the previous group (excluding Pre-Assigned Rails groups) and adjusting the "next available rail" by the Start Module and Pre-Assigned Rails for the group. If you assign Start Module 50 to an addressing group in the middle of the sort order and if it uses one module, the subsequent addressing groups will continue allocating modules from 51 onward. If you assign different Start Modules to positions, you need to ensure the gaps between the Start Modules are large enough to avoid overlapping ranges. Consider a set of positions in two addressing groups X and Y. For simplicity, you could just think of each addressing group as a single position, X and Y. If addressing group X begins with Start Module 10 and requires five modules (10, 11, 12, 13, 14), and addressing group Y begins with Start Module 12 and requires one module (12), the two ranges are overlapping. That would result in an addressing error -- a collision! What do you think will happen if you assign the same Start Module to positions in different addressing groups? It seems like you would be setting up the addressing groups for a certain collision, but since it is often useful to specify a shared Start Module for a collection of addressing groups (or even all addressing groups to make module numbers count from an arbitrary starting point globally), the Start Module works as follows as a special case: if multiple addressing groups have the same non-blank Start Module, they will allocate modules back to back, beginning with the Start Module itself for the first addressing group and not sharing modules between addressing groups. If the first addressing group with Start Module 10 uses modules 10, 11, and 12, then the second addressing group with the same Start Module 10 will begin with module 13. To facilitate this special case, the addressing algorithm promotes addressing groups in the sort order if necessary to make addressing groups with the same non-blank Start Module (and the same Firing System Controller and Universe) consecutive. Pre-Assigned Rails Unlike Start Module, Pre-Assigned Rails does not affect the module numbers assigned to subsequent addressing groups. If you assign Pre-Assigned Rails 50 to an addressing group in the middle of the sort order, the subsequent addressing groups will continue allocating modules from wherever the previous addressing group left off before the Pre-Assigned Rails 50 group. If you assign the same non-blank Pre-Assigned Rails to multiple positions, you must ensure the positions are in the same addressing group, which means all the position properties in the above criteria list must be the same. The addressing algorithm guarantees no collisions within an addressing group, but not across addressing groups that have the same Pre-Assigned Rails. If you assign operlapping but not the same Pre-Assigned Rails to multiple positions, you must ensure the positions, which will necessarily be in different addressing groups, have pre-wired racks and pins that prevent the same firing system address from being assigned in the different positions, leaning on the use of pre-wired rails (Racks with pre-wired rails) and pre-wired pins (Pre-wired pin options) to ensure no firing system addresses are re-used across positions in different addressing groups. Imagine two positions X and Y that share a module and also have an unshared module. Imagine position X uses modules 10 and 11; position Y uses modules 11 and 12. The Pre-Assigned Rails for the positions are 10, 11 and 11, 12, respectively. Since the Pre-Assigned Rails are different, the positions are necessarily in different addressing groups. The question is how to avoid the positions allocating the same pins of the shared module 11. If position X has pre-wired racks for module 10 and 11, and if the rack pre-wired to module 11 has tubes pre-wired to pins 1-16 (in a 32 pin module), then position Y can avoid collisions by using racks pre-wired to module 11 and 12 with the module 11 rack pre-wired to pins 17-32. To receive a firing system address, the events in position X or Y need rack tubes, and the only rack tubes available in X or Y require module and pin numbers that are not shared between the two positions.
To create and export a pyro script for the Showven FXcommander and PyroMote firing systems, please follow these steps: Address the show ("Addressing > Address show...") and select "Showven" and "PyroSlave X16" as the controller and module type. Export the script ("File > Export > Export firing scripts"). Step 2 creates the script file, which has the "CSV" extension. The file format details are described in this section. The Showven firing systems also support DMX fixtures. Please see DMX basic instructions for general DMX scripting instructions. If you are interested in how the script format incorporates the DMX commands along with the pyro commands, the details are presented in Table 2 and Table 3 in this section. Figure 1 – Showven FXcommander firing system Table 1 – File format and encoding File format Extension Text encoding Field delimiter End-of-line Text .CSV ASCII Comma CRLF The script contains rows for the pyro firing events and DMX channel state vectors. Multiple pyro effects fired at the same effect time can be combined in a single row if their effects have the same part number. 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 first by effect time, then by event time as secondary criterion. What rows represent Each row represents a one or more module/pin addresses of pyro effects with the same part number, fired at the same effect time (and therefore the same prefire and event time); or a DMX channel/value state vector starting with channel 1, the length of the state vector covering all non-zero values. Header The first line of the file is the CSV header row, which specifies the fields of the following data rows: Device,Name,Timecode,Addr,Duration(s),Prefire(s),Position,Angle Time resolution Milliseconds. DMX support Showven FXcommander and PyroMote support DMX fixtures sharing a single 512 channel DMX Universe. The DMX related rows in the script are state vectors defining the values of all 512 channels at the time of the event, which are to be held for the duration of the event and then reset to zero if another event does not follow at exactly the time of the event plus its duration. As an economy, the state vector can be shorter than 512 channel values, implying the remaining values are zero. Representing any change to any one or more channel values at a given time requires the state vector defining the state of all 512 channels at that time. Thus rapidly changing channel values, such as an animation of a light color or moving head angle, require approximately 1.5KB times the sampling rate of memory for the script, e.g., 15KB/sec for 10Hz sample rate, if the 512 DMX Universe is fully allocated. Special characters Characters in the script are limited to low ASCII excluding single-quote, comma, semicolon, double-quote, tab, newline. Each row in the script has a number of fields separated by the comma character. The names of the fields and their descriptions are in following table. Table 3 – Specifications of script Showven FXcommander and PyroMote fields Field name Description Device "Pyro" or "DMX" or "SAFETY", indicating the meaning of the row. A Pyro row is a trigger of one or more pyro ignition pins; a DMX row is a DMX state vector consisting of a variable length array of channel values; a SAFETY row is a DMX state vector consisting of a variable length array of channel values -- 0 for non-safety channels, and the armed value for safety channels. Name For Pyro rows, the name of the triggered effect; for DMX rows, the fixture type of the first fixture involved in the change to the DMX state vector, where first means lowest DMX Channel Base address; for the SAFETY row, empty-string. Maximum 128 characters, low ASCII excluding single-quote, comma, semicolon, double-quote, tab, newline. Timecode The effect time in the format HH:MM:SS:DDD. The actual ignition time will precede Timecode by Prefire(s). Addr For Pyro rows, one or more three-digit hex numbers separated by semicolons, indicating module number (first two digits) and pin number (third digit); for DMX rows, a channel state vector consisting of a sequence of 1 to 512 two-digit hex numbers separated by semicolons indicating channel values of the corresponding channels (the first hex number is value of channel 1, not channel 0 which doesn't exist, second hex number is value of channel 2, etc.); for the SAFETY row, a sequence of one or more two-digit hex numbers indicating whether the corresponding channels are safety channels (by non-zero values that put the fixtures in the armed state) or non-safety channels (by zero values). The channel values in DMX rows for channels that have non-zero values in the SAFETY row are ignored. Channel value sequences in the DMX rows and SAFETY rows are variable length, up to 512 channels. If they are shorter than 512 channels, they are equivalent to a full 512 channel sequence with zeros for the remaining values. Duration(s) For Pyro rows, the duration of the effect; for DMX rows, the duration for which the state vector applies before channel values revert automatically to zero; for the SAFETY row, empty-string. Prefire(s) For Pyro rows, the delay from the ignition time and the effect time in floating point seconds (the ignition time = Timecode - Prefire(s)); for DMX rows and the SAFETY row, the value 0.0. Position For pyro, the name of the first involved launch position represented by the row, where first means lowest module/pin address; for DMX rows, the first fixture position involved in the change to the DMX state vector, where first means lowest DMX Channel Base address or fixture.; for the SAFETY row, empty string. Maximum 128 characters, low ASCII excluding single-quote, comma, semicolon, double-quote, tab, newline. Angle For Pyro rows, ASCII art (|/) representing the directions of the triggered effects if they are all the same or empty-string otherwise; for DMX rows and the SAFETY row, empty-string. The example script shown in Figure 2 is also available for download in Table 4. Device,Name,Timecode,Addr,Duration(s),Prefire(s),Position,Angle SAFETY,,,00;FF;00;FF;00;FF;00;FF;00;FF;00;FF,,0.0,, DMX,Sparks Flash,00:00:01:100,FF,3.0,0.0,sparkular-01, Pyro,Crossette Switch,00:00:03:842,010;110;210;310;410,,0.0,pyro-01,| Pyro,30mm Red Comet w/ Tail,00:00:09:890,850,,0.0,pyro-06,| DMX,Sparks Flash,00:00:10:000,FF;00;FF;00;FF,2.5,0.0,sparkular-03, Pyro,30mm Red Comet w/ Tail,00:00:10:811,860,,0.0,pyro-07,| Pyro,30mm Red Comet w/ Tail,00:00:18:395,870,,0.0,pyro-08,| Pyro,30mm Red Comet w/ Tail,00:00:19:286,880,,0.0,pyro-09,| Pyro,Crossette Switch,00:00:25:452,011;111;211;311;411,,0.0,pyro-01,| Pyro,1.1 PFT Green Comet w/ Tail,00:00:41:893,050;150;250;350;450,,1.1,pyro-10,| Pyro,Green Comet w/ Tail,00:00:42:980,051;151;251;351;451,,0.0,pyro-10,| Pyro,2.1 PFT Green Comet w/ Tail,00:00:46:698,052,,2.1,pyro-10,| DMX,Sparks Flash,00:00:48:100,00;00;00;00;00;00;FF;00;FF;00;FF,4.0,0.0,sparkular-06, Figure 2 – Example Showven script for pyro and DMX Example files for a mixed pyro and DMX show are available for download in Table 4. The example show contains six DMX fixture positions and fourteen pyro positions. The DMX fixture positions contain flashes of the Sparkular fixture with adjusted durations. The DMX fixture positions also contain safety channel events covering the duration of the firing. The timeline for the example show is shown in Figure 3. Figure 3 – Timeline for example mixed pyro and DMX show. Table 4 – Downloads Download link Explanation test-showven-fxcommander-sparkular01.fin Example show file test-showven-fxcommander-sparkular01.csv Example exported script file (CSV) fixture-setup01.pdf Example DMX Fixture Setup report
The sound level calculations for sound level charts and sound meter elements in site layout diagrams are based on sound specifications of the individual effects, which come from real world measurements. This article presents guidelines for taking measurements and recording them in the sound specifications of effects in Finale 3D's supplier catalogs or personal effect collections or the Per-Show Effects of individual shows. The sound specifications in Finale 3D provide a framework for recording the measurements as "decibels at distance". Sound specification decibels are only meaningful in conjunction with the distance between the sound source and the measurement location. An aerial salute from a distance of 100 meters is not as loud as a firecracker at your feet. The firecracker at your feet won't cause permanent hearing damage. A salute at your feet might leave you deaf. Their respective sound specifications could be measured and represented as, Table 1 – Decibels AND distance are required for sound specifications Effect Decibels Distance Aerial Salute 115 dB 100.0 meters Firecracker 120 dB 2.0 meters It is not required for the sound specification distances to be the same for all effects. The attenuation of sound intensity over distance is easily calculated, so Finale 3D can create sound level charts and diagrams based on whatever distances the effects' sound specifications use. Representing firework sound levels as impulses The fireworks sounds that have the most impact on sound levels of fireworks shows are the concussive impulses from launches and breaks. In order to make sound specifications practical for fireworks professionals to measure and record, Finale 3D adopts the model that effect sound characteristics are only the launch and break impulses, as measured from a recorded distance. This model ignores continuous sounds such as from gerbs, whistles, and crackle, which are not insignificant but which are generally secondary to the launches and breaks. For a simple shell, the model boils down to three numbers: launch decibels, break decibels, and the distance of the measurement. A comet or mine boils down to just two numbers, since they don't have breaks. A cake requires the distance of measurement and then launch and/or break decibels for each shot of the cake. Setting the sound specifications of effects in Finale 3D To set the sound specifications of an effect in Finale 3D, right-click on the row in the effect window and select "Set physical specifications...", which brings up the dialog shown in Figure 1. Figure 1 – Three fields -- launch, break, and distance -- are all that is required for an effect. The launch, break, and distance fields in the dialog are the complete sound specifications of the effect. The launch and break fields can contain either a single number, indicating the decibels at distance of the effect, or a list of numbers representing the sound levels of all the shots of the cake. Sound level meter settings The numbers are measurements that you take with a sound level meter and at known distance from the effect. Since the effect specifications include the break height or provide enough information for a reasonable break height to be calculated, it suffices to use a single distance -- the distance on the ground -- for the entire sound specifications rather than entering separate distances for the breaks and launches (Finale 3D will make the adjustment for the break height). The break and launch sound level measurements themselves are the maximum sound level of the impulses. Using a consumer or industrial sound level meter, the number you need to record is the sound pressure level (SPL), which may also be called the Lmax. Sound level meters have two or three choices for frequency weighting (A, C, Z). In keeping with the requirements of most purposes for sound level charts, Finale 3D adopts the "A" frequency weighting as the convention, so please choose "A" on your sound level meter if you want your measurements to use the same standard as the defaults and supplier catalogs. Sound level meters have two or three choices for time weighting (Fast, Slow, or Impulse). Finale 3D adopts the fast, or 125ms time weighting as the convention, so please choose "F" on your sound level meter for consistency with supplier catalogs. With the "A" and "F" setting choices, as summarized in Table 2, the sound levels recorded by the sound level meter may be indicated as LAFmax, or LAmax, or Lmax, or just SPL, all meaning the same thing. Lpeak is a different measurement, which would not be consistent with the measurements of other supplier catalogs. Table 2 – Sound level meter settings Setting Options Selected option Frequency weighting "A" or "C" or "Z" "A" Time weighting "F" or "S" or "I" "F" Procedure for taking measurements A procedure for taking sound measurements for a set of effects is: Create test show with one or two each effect in a sequence, one after another separated by a few seconds. Choose a measurement location, and measure the distance on the ground from the measurement location to the launch positions of the effects. If all the effects are in approximately the same position, then there's only one distance to measure. If effects are at different positions for different sizes, measure the distance to each position. Turn on the sound level meter at the measurement location and configure the sound level meter to log samples at a frequency of 1 Hz. Start sound level meter logging, and fire the show. After the show finishes, return to the office and match up the sound level measurements log with the show script. Record the launch and break decibel levels of each effect and their respective launch position distance in the physical specifications dialog shown above (Figure 1). See instructions below for cakes, which are a little more complicated to record than individual effects. Guidance for choosing a sound level meter Most consumer and industrial sound level meters costing from USD $100 to USD $2000 will include options for "A" and "F" frequency and time weightings. However not all sound level meters, even expensive ones, are logging sound level meters, which is an important feature if you want to take measurements of all your effects organized in a test show. Make sure to choose a logging sound level meter. One feature you do not need is an "integrating" or "averaging" sound level meter. Since the sound specifications of the effects are just impulses, you have no need for average sound levels. One inexpensive sound level meter that includes logging is the EnnoLogic Decibel Meter and Recorder eS528L, available from Amazon or https://ennologic.com/product/decibel-meter-and-recorder-es528l/ Setting the sound specifications for cakes The launch and break fields of the dialog of Figure 1 can hold single numbers for individual effects or lists of numbers for cakes with multiple shots. For cakes, the syntax of the list of numbers is: [timeOffsetMs_0 decibels_0 timeOffsetMs_1 decibels_1 timeOffsetMs_2 decibels_2 ... ] The millisecond time offsets in the launch field are relative to the ignition of the cake. Thus if a cake had 10 shots over a total firing duration of 4.5 seconds, the time offsets would be 0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500. If the shots were all 100 decibels, the full specification in the launch field would be, [0 100.0 500 100.0 1000 100.0 1500 100.0 2000 100.0 2500 100.0 3000 100.0 3500 100.0 4000 100.0 4500 100.0] Unlike for cakes, the sound specifications for chains should represent only the first shell, and therefore generally do not require a list of sound impulses. When chains are inserted into a show from an effects collection, the chains are expanded to multiple events in the script, which are then grouped together into a single row to give the appearance in the script that the chain is a single item. Notwithstanding, the chain shells are each individual rows in the script, each with its own sound impulses for launch and break. For cakes with dozens or hundreds of shots, it would not be practical to match up a the log data from the sound level meter with the individual shots of the cake; it would just be too much work. What you can do is identify the launch and break sound levels of the first shot of the cake, and then build out lists of time offsets paired with those numbers for the break and launch field, like the example above. Even building the list of time offsets, though, is a lot of work. As a trick to save time, you can use Finale 3D's function "Effects > Sound levels > Set effect sound levels to defaults..." for individual selected rows in the effects window. That function will generate the lists of time offsets for you based on the VDL of the cake. You can then edit the list in the physical specifications dialog of Figure 1 to replace the default decibel levels with decibel levels you measured. For accurate sound level charts, all-at-once cakes require that you adjust the time offsets of the shots to make them not all-at-once, i.e., not at the same time. The reason is, in the real world the shots are separated in time by the fraction of a second it its the fuse between them to burn, plus whatever random variation there is in the ignition time of the composition. Thus in the real world the sounds aren't precisely at the same time, and they therefore to not combine intensities as simultaneous sounds would. To match the real world, just make sure your time offsets are separated by a small amount of time, such as 10 milliseconds.
Based on your show design and with barely any incremental effort required on your part, Finale 3D provides pro-forma sound level charts showing the expected sound levels over the course of the show, and site layout diagrams showing the maximum sound levels expected to be reached at designated locations of interest, such as nearby residences or audience locations. You can use these tools to manage sound levels in your designs and communicate options with your clients or authorities having jurisdiction: Design a show to fit within the sound level restrictions of the venue. Provide clients with options. Be able to manage sound levels for environmental impact. An example sound level chart is shown in Figure 1, along with a matching site layout diagram in Figure 2. The sound level chart is generated for a designated measurement location of a residential barn near the shoot site, which you can see in the upper left of the site layout diagram. The site layout diagram contains three sound meter elements, which show the maximum expected sound levels at the barn and two other locations. You can see from this diagram that the maximum sound level at the barn is a little over 100 dB, which corresponds to the highest peak in the sound level chart. Figure 1 – Example sound level chart Adding sound meter elements to a site layout diagram is just like adding an audience icon: choose "Sound meters" from the "Draw mode" link in the upper left of the site layout view, and then click-and-drag the sound meters to your locations of interest. The only difference between a sound meter element and an icon is that the sound meter elements include a dynamic label showing the maximum sound level in decibels at that location. The sound level calculations in the site layout diagram are based on sound specifications of the effects used in the show design, the same specifications that sound charts are based on. These specifications do require some setup. For instructions to make site layout diagrams, see Site layout diagrams basic instructions. For instructions to set up the effect sound specifications, the paragraphs below include everything you need to know. Figure 2 – Site layout diagram with sound level meter elements showing maximum sound levels at their locations Sound specifications of effects Just as the visual simulation of the show is based on simulations of the individual effects, the sound level simulation of the show is based on sound level specifications of the individual effects. The sound level specifications can come from three places: Specifications in supplier catalogs, from measurements conducted by the suppliers or manufacturers of the effects Default specifications from Finale 3D, based on measurements of effects of various types Specifications that you enter yourself, based on your own measurements The supplier catalog sound level specifications will be great when they become available, but at the time of this writing (early 2024) the Finale 3D sound level features have just been released in the software beta versions and no supplier catalogs with sound levels are available yet. Look for upcoming announcements from suppliers, and for some suppliers offering "low decibel" effects that can be used in sound sensitive environments, analogous to "low debris" effects used in debris sensitive environments. Default specifications from Finale 3D are easy to generate and adequate for many purposes. After designing your show, select the Per-Show Effects collection in the effects window and then choose the main menu item, "Effects > Sound levels > Set effect sound levels to defaults..." and choose "All" in the dialog that pops up. That function will generate and apply default sound level specifications to all the effects used in the show, based on their VDL and Type and Size. The sound specifications are based on whether the effects are hard breaking, soft breaking, salutes, comets, or mines. Default cake sound specifications come from the VDL firing patterns and the effect components used in the cake. If you can acquire your own measurements, you can add them to your effect definitions in any of the effect collections: the Per-Show Effects, My Effects, or network inventories. Right-click on an effect in the effects window and select the context menu item, "Set physical specifications..." Enter the decibel level of the launch and/or break impulse and the distance (on the ground) at which the measurement was taken. Comets and mines generally have only launch sounds; breaking shells have both launch and break sounds. Sound specifications of cakes and chains Cake sound specifications are represented with a pair of numbers for each shot of the cake. In the dialog from "Set physical specifications..." (see Figure 3), the launch and break fields can contain either a single number, indicating the decibels at distance of the effect, or a list of numbers representing the sound levels of all the shots of the cake. The syntax of the list of numbers is: [timeOffsetMs_0 decibels_0 timeOffsetMs_1 decibels_1 timeOffsetMs_2 decibels_2 ... ] The millisecond time offsets in the launch field are relative to the ignition of the cake. Thus if a cake had 10 shots over a total firing duration of 4.5 seconds, the time offsets would be 0, 500, 1000, 1500, 2000, 2500, 3000, 3500, 4000, 4500. If the shots were all 100 decibels, the full specification in the launch field would be, [0 100.0 500 100.0 1000 100.0 1500 100.0 2000 100.0 2500 100.0 3000 100.0 3500 100.0 4000 100.0 4500 100.0] Figure 3 – Cakes have sound impulses for the shots, each represented as a time offset and decibel level. The syntax for specifying multiple sound impulses can be employed for any effects. A stutata shell, for example, could have multiple sound impulses in the break field to represent the subshell salutes. The time offsets in the sound specifications in the launch field are relative to the launch of the effect or ignition of the cake; the time offsets in the break field are relative to the time of the initial break, which is the launch time plus the lift time. Unlike for cakes, the sound specifications for chains should represent only the first shell, and therefore generally do not require a list of sound impulses. When chains are inserted into a show from an effects collection, the chains are expanded to multiple events in the script, which are then grouped together into a single row to give the appearance in the script that the chain is a single item. Notwithstanding, the chain shells are each individual rows in the script, each with its own sound impulses for launch and break. Creating a sound level chart The steps to create a sound level chart are, Add sound specifications for the effects in the show. See the instructions above or just select the Per-Show Effects collection in the effects window and do, "Effects > Sound levels > Set effect sound levels to defaults..." Choose the location represented by sound level chart by right-clicking on the terrain in the design view and selecting the context menu item, "Coordinates for this point...." and then doing, "Show > Show settings > Set sound level chart measurement location..." Customize the information in the panels on the right side of the diagram by doing, "Show > Set side panel text... > For printed charts". Print the chart with the menu item, "File > Charts > Sound Level". Customizing the sound level chart Like reports and diagrams, the charts are based on template blueprints. You can choose the chart settings for a particular chart by editing the chart template. From the blue gear menu in the upper right of the script window, choose "Create or edit chart template", which will pop up the dialog shown in Figure 4. Figure 4 – The blueprint for sound level charts includes a few sound customizations in addition to generic chart customizations. All printed documents have an option to specify the Default pathname for Print batch (along with the batch tags) or just to make the save dialog pop up with the convenient directory or filename. The Position name filter provides the capability to create a chart based on sound levels of effects at a subset of the positions. The chart tag is analogous to Diagram tags. The ambient sound level default value of 45 dB is the sound level of a quiet room. As context, a sound level of 65 dB is the level of a normal conversation across the dinner table. A sound level of 100 dB is the sound level of raucous applause from within the audience. A sound level of 110 dB is the sound level of a rock concert from the front row. Fireworks get even higher than that, sometimes 120 dB at viewing distance or higher yet for fireworks crew that are igniting shells by hand. The optional impulse falloff time applies a "time weighting" window to the impulses in the effect's sound level specifications. The impulses from fireworks are of extremely short duration, measured in microseconds or single-digit milliseconds, yet physical and perceptual factors can make the impulses appear wider. The impulse falloff time adjusts the simulation to make the impulses appear as wider spikes in the chart. The warning line is simply a horizontal dotted red line drawn across the chart at a decibel level you designate. The line has no meaning other than the meaning you give to it. Depending on your purpose for the sound level chart, you might for example use the warning line to indicate the threshold your show design strives to stay under. You can change the label of the warning line in the legend to be any explanation you want. The sound level chart can display two curves, which by default are the instantaneous sound level, and the average continuous sound level equivalent over a 10 second averaging window. The instantaneous sound level is called the sound pressure level or SPL or LAmax (fireworks measurements are usually presented with the "A" frequency weighting). The average sound level is called the LAeq. The chart can display one or both of these curves. Where the information displayed in the chart comes from The information that goes into the curves and side panels of the sound level chart shown in Figure 1 comes from a variety of places. Table 1 provides a reference. Table 1 – Where the sound level chart information comes from Information source How the information is incorporated in the sound level charts "Show > Set show information..." main menu item Show name, location, company logo, and other information automatically included in the information panel "Show > Show settings > Set sound level chart measurement location..." main menu item Choose the XYZ location on the shoot site that the chart will represent (right-click on the ground in the design view and select "Coordinates of this point..." to see the XYZ coordinates of any point in the shoot site) "Set physical specifications..." context menu for effects in the Per-Show Effects collection in the effects window Decibel at distance sound specifications of the effects, which go into the calculation of the curves in the chart "Show > Set side panel text... > For printed charts" main menu item Text that goes into the information panel boxes, and formatting of the text Sound level chart blueprints (from blue gear menu in upper right of script window, "Create or edit chart template") Formatting template with various chart options
If you are trying to determine the number of racks that fit on a rooftop or barge, you can draw and measure the available area in the rack layout view and then arrange your racks in that area to see if they fit. That only works if the racks in the rack layout view have the same physical dimensions as they do in the real world. While the default physical dimensions of racks in Finale 3D are usually close since they are based on the size and number of tubes, they likely aren't exactly right. In some cases, like the cake racks shown in Figure 1, they may be way off. The "Edit physical specifications..." context menu item for racks provides a solution. Figure 1 – Slice cake racks and 2x2 cake racks that have the same footprint dimensions but fit very different size cakes. The "Edit physical specifications..." dialog, shown in Figure 2, has fields for the footprint width and length of the rack in millimeters. Both types of racks in Figure 1 have the same overall width and length, but the slice cake racks have a single row of 10 cake slots, whereas the 2x2 cake racks have two rows of two cake slots, resulting in the different appearance. Figure 2 – Specify the physical dimensions of racks, and the distance between them when snapped together, in millimeters. The "Gap between racks (mm)" field sets the spacing for snapping and for the default rack layout in the rack layout view. Rack colors The "Rack color (6-digit hex number RRGGBB)" field sets the color of the rack, expressed as a hexadecimal number like FF0000 for full intensity red or FFFF00 for full intensity yellow. Full intensity rack colors contrast poorly with the colors of the pin numbers in the circles. For a better result, washed out colors that have all three color components in the range 90 to E0 tend to look better. For example, you could try A0D0A0 for green, which has hexadecimal D0 for the green component and the lower hexadecimal number A0 for the red and blue components.
Concert soundtracks may contain multiple songs back to back, with each song having its own SMPTE timecode range. The SMPTE timecode of each song typically begins on a SMPTE hour, e.g., 01:00:00:00, or 02:00:00:00, etc., but in the concert soundtrack the songs are back to back or with a small gap in between them, i.e, not at hourly offsets within the soundtrack file, not even close. Take a look at the soundtrack shown in an audio editor in Figure 1. This soundtrack file is about 30 minutes long, containing eight songs approximately back to back. The audio of the songs is on the left (top) channel. The timecode of the songs is on the right (bottom) channel. Although you can't tell by looking at the soundtrack file, the timecode sections begin with SMPTE 01:00:00:00, 02:00:00:00, etc. Figure 1 – A 35 minute WAV file containing eight songs that have their own SMPTE time ranges. When you import a soundtrack like this into Finale 3D with "Music > Add song or soundtrack...", Finale 3D automatically reads and decodes data in the channels to evaluate if they contain any form of SMPTE or FSK timecode. If so, the function presents a dialog telling you how many timecode sections the file contains or telling you the proper timecode alignment for entire file if it contains just a single timecode section. The dialog is shown in Figure 2. Figure 2 – When you add the soundtrack, Finale 3D offers to split it into its separate timecode sections. If you click YES to align the song with its timecode, Finale 3D will split the soundtrack up into its separate timecode sections and add each section on the timeline properly aligned with its timecode. The result of importing the file of Figure 1, with sections beginning on the SMPTE hours, is shown in Figure 3. Each narrow vertical slice is a 3-4 minute song. The duration of the timeline is about eight hours. Figure 3 – A soundtrack with eight songs beginning on SMPTE hours 1-8 is eight hours long! Navigation within long duration timelines requires zooming in and out to the individual songs you are working with. To zoom into a song, just click its dotted line control bar above the song. When the songs are not locked (confirm that "Music > Lock songs in place" is not checked), the dotted line acts as a button to zoom into the song. Clicking the teal blue song at 03:00:00:00 results in Figure 4. Figure 4 – Clicking the dotted line above the song zooms the timeline into to the song's time range. To zoom back out to the full duration of the show, click the yellow magnifying glass icon in the upper right of the timeline. If no effects are selected when you click, the timeline will zoom out to the full duration, back to looking like Figure 3. Thus, you can zoom out and in to any song with just two clicks. If a concert soundtrack has more than 24 songs, the SMPTE ranges can't all start on the hours. It is still common for them to be spaced out with gaps, though. Figure 5 is an example concert soundtrack with a large number of songs with gaps that all fit withing four hours of SMPTE time. Figure 5 – A concert soundtrack with more than 20 individual songs spaced out with gaps between their SMPTE ranges. SMPTE frame rates When Finale 3D positions timecode sections on the timeline, it positions them based on the "wall clock" interpretation of the SMPTE HHMMSSFF frames at the start of the timecode sections, no matter what the internal frame rate of the SMPTE timecode sections are. Even if the SMPTE frame rate of a timecode section is SMPTE 29.97 fps NDF, a timecode section with a start time of 20:00:00:00 will be positioned at exactly 20 hours on the timeline (not 19:58:48:00, which is the SMPTE 29.97 NDF frame that corresponds to 20 hours in wall clock time.). Since the songs are positioned at the wall clock interpretation of the SMPTE start times, the only effect time formats in Finale 3D that will match the placement of the songs are: "ms" and 24 fps and 25 fps and 30 fps (not 29.97 DF and not 29.97 NDF). If the songs in your concert soundtrack use SMPTE 29.97 DF or 29.97 NDF timecode, you should probably just choose the "ms" effect time format in Finale 3D since the frame numbers in the other formats would not be accurate and might be misleading. For further explanation, see SMPTE 29.97 NDF (non-drop frame) and SMPTE timecode frame rates and drop frame. SMPTE song list report The menu item "File > Reports > Special reports > SMPTE Song List" produces the report of the imported songs in chronological order, including their SMPTE times and SMPTE formats. If you are ever wondering what a soundtrack WAV or MP3 contains or if you want to confirm that it contains what you were told, just launch Finale 3D, do "Songs > Add song or soundtrack..." and click "yes" to split it up by timecode sections, and then do "Reports > Special reports > SMPTE Song List". You'll get the summary like the one shown in Figure 6. Figure 6 – "File > Reports > Special reports > SMPTE Song List" lists the imported songs and their SMPTE times. In the example of Figure 6, the SMPTE Format column shows that not all the songs in the soundtrack have same SMPTE Format. The first eight songs are 29.97 NDF; the next five are 29.97 DF. The difference in the rate of time progression between NDF and DF SMPTE is material for long duration songs (0.6 seconds for every 10 minutes), so the information in this report can have bearing on how you configure your firing system. When you print this report for the first time, the names of the individual songs will be missing because that information isn't in the imported soundtrack. You can enter the names manually in the Name/Notes field of the songs window.
The "Print batch..." function creates PDFs for a set of report, diagram, chart, and labels blueprints associated with a batch tag. The function presents a dialog as shown in Figure 1, in which you select the batch tag that identifies the blueprints to be printed. Figure 1 – The "Print batch..." function prints all the blueprints associated with a batch tag. A batch tag is any lowercase word. A blueprint can be associated with multiple batch tags. To set or edit a blueprint's batch tags, edit the blueprint by choosing the "Edit report template..." or "Create or edit diagram template..." or "Create or edit labels template..." or "Create or edit chart template..." from the blue gear menu in the upper right of the Script window or other table windows. Enter the tags in the "Batch Tags" field, as shown in Figure 2. Figure 2 – Set the Batch Tags of a blueprint by way of "Edit report template..." from the blue gear menu. The filenames for the PDFs created by "Print batch..." come from the Default Pathname field of the respective blueprints, or from the blueprints' Title field if the Default Pathname field is blank. The default pathname can specify the filename or directory name or both. If any of the default pathnames are blank or are relative pathnames or filenames, then the "Print batch..." function will present a dialog asking you to select a directory after showing the dialog of Figure 1. If all the default pathnames are full paths, then you won't be asked to select a directory because it is not needed. Subdirectories The default pathnames can include variables anywhere in their text that refer to the show being saved, such as the show name or location, which enables blueprints in batches to be reused for multiple shows without modifying the blueprints. Please see Default pathnames for the list of variables and syntax examples. Since the default pathnames can include subdirectories, and since the variables can occur anywhere in the text as the name or part of the name of a subdirectory or filename, you can organize your printed documents for a show to be in a parent directory whose name is the show name; or you can just as easily organize your documents in separate directories for each type of document, for which the filenames within those directories are the name of the show. Table 1 – Example organizations of files Specification Default Pathname In parent directory for each show {show_name}/Wiring Script.pdf In parent directory for each type of document Wiring scripts/{show_name} In time stamped directory for every batch printed {show_name}/{time_stamp_utc}/Wiring Script.pdf The {date_time_local} and {date_time_utc} variables (see Default pathnames) are timestamps, which you can use to put all your printed documents in a new folder every time you print them, with the folder name being the timestamp of that moment in time. The print batch function will automatically create any missing directories in your directory structure.
The "Default Pathname" field of blueprints is a gift to users who print a lot of documents. When you print a report, diagram, chart, or labels and the system dialog appears for you to select a file, it can save time if the dialog appears with the right directory and the desired filename pre-filled in. The Default Pathname field offers this convenience. The Default Pathname field also facilitates the "Print batch..." function (see Print batch), as the way of specifying the pathnames of the files in the batch. Figure 1 – The Default Pathname field can set the directory and/or filename. The Default Pathname feature can be used to specify the filename, directory, or both when generating reports, labels, and diagrams. Syntax examples are shown in Table 1. If you include a directory in your Default Pathname, such as C:Shows2025, note that the directory structure must already exist beforehand (if you are printing an individual report). Otherwise, the save location will revert to the last used directory. In other words, if your desired save location is C:Shows2025, you will need to create a directory named "Shows", and a sub-directory named "2025", before generating the report. By contrast, if you use the Print batch feature, you don't need to create the directories beforehand — any missing directories will be created automatically. Table 1 – Syntax examples Specification Syntax example Works For System Dialog Works For Print Batch Absolute directory and filename C:UsersMYNAMEDocumentsNYE2023.pdf YES YES Absolute directory (ends in backslash) C:UsersMYNAMEDocumentsMy shows YES YES Relative directory and filename My showsNYE2023.pdf YES Filename NYE2023.pdf YES YES To support using the same blueprint for multiple shows, the Default Pathname text can include variables that refer to the show being printed, such as the show's name, date, or filename or directory. The full list of variables is shown in Table 2. Table 2 – Variables Variable Meaning Comes From Works For Print Batch {show_name} The name of the show being printed "Show > Set show information..." YES {show_date} The date of the show being printed "Show > Set show information..." YES {show_location} The location of the show being printed "Show > Set show information..." YES {show_optional1} Optional field #1 of the show being printed "Show > Set show information..." YES {show_optional2} Optional field #2 of the show being printed "Show > Set show information..." YES {show_filename} The filename of the show being printed (just the filename) Saving the show file YES {show_directory} The full path of the directory in which the show being printed was most recently saved Saving the show file YES {date_time_utc} UTC timestamp (example: 2023-12-15T13.45.30Z) System clock YES {date_time_local} Local timestamp (example: 2023-12-15T13.45.30) System clock YES You can insert the variables from Table 2 anywhere in the text of a Default Pathname. For example, if you want the filename "MYSHOW-FIXTURES.pdf" where the word MYSHOW is the show name, you can use the Default Pathname, "{show_name}-FIXTURES.pdf". If you want the filename "FIXTURES.pdf" in a directory that goes by the name of the show, you can use the Default Pathname, "\MacHomeDownloads{show_name}FIXTURES.pdf", substituting in your directory structure. If you want the filename, "FIXTURES.pdf" in the same directory as the show's .fin file, you can use the Default Pathname, "{show_directory}FIXTURES.pdf". Of course, many other variations are possible. Figure 2 – Set the Default Pathname of a blueprint by way of "Edit report template..." from the blue gear menu. The Default Pathname is a field of the blueprint that represents your report, label template or diagram. When you print the report, labels, or diagram, the Default Pathname applies to the Windows system dialog that is used for selecting the save location and filename. If you print a batch of reports, labels, and diagrams using "File > Print batch...", the Default Pathnames of the blueprints in the batch are used for the respective files. To add or edit a Default Pathname, edit the blueprint by choosing the "Edit report template..." or "Create or edit diagram template..." or "Create or edit labels template..." or "Create or edit chart template..." from the blue gear menu in the upper right of the Script window or other applicable windows.
Since firing system controllers need to receive a few frames of timecode to "lock on" to the timecode, it is common practice to export soundtracks with timecode that begins at least a few seconds before the show begins. Thus, playing or broadcasting the soundtrack to the controller will give the controller a few seconds to lock on before the first events in the show. 10 seconds is a common amount of leading timecode, but some companies use one or two minutes, or in some circumstances even hours of leading timecode before the show. If you need to begin the timecode before the show and you are exporting a soundtrack with timecode from Finale 3D, the easiest solution that works for all firing systems is simply to begin the show at ten seconds or a minute or whatever leading timecode you need on the timeline; and slide the imported songs on the timeline to begin at that offset rather than beginning at zero. That solves the problem but is slightly awkward because, psychologically, it is just nice to have the show begin at zero instead of at an offset. Several firing systems -- FireOne and StarFire -- offer a nice solution: negative timecode. The concept of negative timecode matches the workflow you probably would find most natural. You script your show beginning at zero, and then when it comes time to export your soundtrack from Finale 3D or create a timecode soundtrack with the firing system's software, you just tack onto the front of the soundtrack a period of negative timecode on the timecode channel and silence on the music channel. Voila! Export soundtrack from Finale 3D The "File > Export > Export soundtrack..." function in Finale 3D gives you the option to choose what goes on each channel of the exported soundtrack file, choosing among all firing system versions of FSK timecode, and the SMPTE timecode options, and of course mono or stereo music, as shown in Figure 1. Figure 1 – The export soundtrack function includes all FSK and SMPTE timecode options. If the show's firing system is FireOne or StarFire, the "Negative timecode" field on the export soundtrack dialog becomes enabled. You can type into this field however much leading timecode you want to tack onto the front of the file. If you tack 10 seconds of timecode onto the front of a soundtrack that is 20 minutes long, the exported file will be 20 minutes and 10 seconds long, as shown in Figure 2. Figure 2 – The length of the exported file is the soundtrack length plus the negative timecode length. Importing soundtrack with negative timecode as a song Imagine what would happen if you create and export your soundtrack file with negative timecode using Finale 3D, and then subsequently import your soundtrack file into Finale 3D as a song. What would it look like on the timeline? When you import a song, Finale 3D examines the file to determine if it contains timecode of any kind -- FSK or SMPTE. If it does, Finale 3D shows a dialog offering to silence the timecode channel and align the song to its timecode, as shown in Figure 3. FireOne FSK timecode is aligned 0.1 seconds early (see FSK alignment), which is why the dialog shows -9.9 seconds instead of -10 seconds. Figure 3 – Importing a song with timecode includes the option to align it on the timeline automatically. If the soundtrack contained 10 seconds of negative timecode, aligning the song such that its "timecode time = 0" aligns with the beginning of the timeline means importing the song to begin 10 seconds earlier than the start of the timeline. Finale 3D does that, and automatically crops the beginning of the song so that it begins flush at the start of the timeline.
The Pyrodigital, Pyromate, FireOne, and StarFire firing systems support, in addition to SMPTE, another form of timecode called "FSK", which is short for the encoding scheme used by the protocol. Unlike SMPTE, FSK protocols are generally different for every firing system. If you have a Pyrodigital firing system, you need to use Pyrodigital FSK; if you have a FireOne firing system, you need to use FireOne FSK. Finale 3D reads and writes all the firing system FSK protocols, as shown in Table 1. Table 1 – FSK timecode formats supported by Finale 3D Timecode format Frame rate Finale 3D writes it Finale 3D reads it Pyrodigital FSK 10 fps YES YES Pyromate FSK 10 fps YES YES FireOne FSK 1 fps YES YES StarFire FSK 4 fps YES YES To write FSK for your firing system, simply do the command "File > Export > Export soundtrack..." and select the version of timecode you want to export in one of the channels of your soundtrack, as shown in Figure 1. The export function combines the music and the timecode in the exported WAV file. No manual alignment is required. Figure 1 – Choose whatever version of SMPTE or FSK timecode you want to add to the exported WAV file. Frame rates The firing system FSK protocols encode regularly spaced data packets in the WAV file. The data packets contain what is essentially a frame count, counting in the frame rate of the FSK protocol. FireOne FSK, for example, has exactly one data packet per second; its data packets thus count seconds: 1s, 2s, 3s, 4s, etc. Pyrodigital FSK has ten data packets per second, so frame 1 corresponds to 0.1s; frame 2 corresponds to 0.2s, and so on, with frame 10 corresponding to 1s. The frame rate of the FSK is unrelated to the frame rate of the firing system script. For example, you might script a Pyrodigital show with event times expressed as 30 fps SMPTE frames, each frame representing 1/30th of a second. If you shoot that show using Pyrodigital FSK timecode, the FSK will contain data packets at 10 fps, not 30 fps. The FSK timecode drives an internal clock in the controller, which then processes the script events in whatever their frame rate is. Notation Similar to SMPTE, the times represented by FSK data packets can be notated as HH:MM:SS:FF, except the frame count FF only goes from 0 to the frame rate of the FSK protocol, minus one. In this notation, Pyrodigital and Pyromate frames go from 00 to 09; StarFire frames go from 00 to 03; FireOne frames are always 00. Table 2 – FSK frames notation HH MM SS FF Hours 0-23 Minutes 0-59 Seconds 0-59 Frames 0-N (depends on frame rate) Alignment of data packet in the frame FSK timecode data packets carried in a signal or stored in a WAV file are encoded as a string of audio samples representing a waveform. The standard for SMPTE and the convention for FSK timecode is that the time represented by the data packet corresponds to the position of the last sample of the data packet in the signal or WAV file. For example, the frame rate for StarFire FSK is 4 fps, so the first four frames represent 0.25s, 0.5s, 0.75s, and 1.0s. According to the alignment convention, the last sample of the data packet for the first frame would be at 0.25s in the file. Figure 2 – The end of the data packet aligns with the time represented by data packet -- approximately. If you happen to know the details of the StarFire FSK protocol and are able to discern FSK frequencies from the waveform, then you can see in Figure 2 that the last sample of the data packet for the first frame is actually at 0.2497 in the file. Thus it doesn't follow the alignment convention exactly. The other firing system FSK protocols are also off by a little bit. Each FSK protocol has a de facto convention for how the data packet is aligned in the frame that its time represents. The conventions were established by the reference FSK files that the firing system manufacturers distributed and that fireworks display companies have used for years or decades. Whatever the data packet alignment is in the reference FSK files, that's the de facto convention. Finale 3D exports FSK timecode in keeping with the de facto alignment conventions of the FSK reference files. The data packet of frame number 1 for each of the FSK protocols is shown in Table 3. Table 3 does not contain any information that you generally need to know to use FSK, except that if you use Finale 3D's "File > Tools > Analyze timecode in soundtrack file" function you will see in the summary dialog and the optional log the exact data packet end times in the file, and you may wonder why they don't seem to be exactly aligned with the represented times. Figure 3 – The "File > Tools > Analyze timecode in soundtrack file..." shows the alignment of every FSK frame. Figure 3 shows the timecode analysis of a Pyrodigital reference FSK file. The first frame (00:00:04:05, representing 4.5 seconds) is frame number 45 since there are 10 frames per second in Pyrodigital FSK files and the first frame is frame #1. In this reference file, the last sample of the frame's data packet reads at time 4.492 seconds in the file. By the convention that data packets end at the time they represent, this data packet is thus 4.5 seconds - 4.492 seconds = 0.008 seconds early (8 ms), which is very close to exact. In actuality, the last sample of the data packet is at 4.4925 seconds, and the dialog is rounding down to 4.492 seconds. The Pyrodigital earliness shown in Table 3 (8 ms) is from the FSK file exported from Finale 3D. As you can see in this example, the alignment of Finale 3D exported soundtracks matches the reference file within a fraction of a millisecond. Table 3 – FSK first data packet alignment Timecode format Frame rate Time represented by first frame Position of last sample of first data packet in signal or WAV file Earliness Pyrodigital FSK 10 fps 0.10 seconds 0.093 seconds 7 ms Pyromate FSK 10 fps 0.10 seconds 0.093 seconds 7 ms FireOne FSK 1 fps 1.00 seconds 0.967 seconds 33 ms StarFire FSK 4 fps 0.25 seconds 0.249 seconds 1 ms You may be wondering why in Figure 3 the first frame of the Pyrodigital reference FSK file is at 4.5 seconds in the file, instead of at the beginning of the file, ending at 0.1 seconds. The answer: no good reason. The provenance of the Pyrodigital reference FSK files that have been used for decades is a mystery lost in time, and no one seems to know why there is 4.5 seconds of empty time with no data packets at the beginning of the file. The Pyrodigital controller derives no benefit from the empty time since it cannot lock onto an empty signal, so the 4.5 seconds is just wasted. Figure 4 – Pyrodigital FSK files exported from Finale 3D begin with frame 1 at 0.093s, not frame #45 at 4.492s. The Pyrodigital FSK files exported from Finale 3D start right at the beginning of the file as shown in Figure 4, with the first frame ending at 0.093 seconds. Since controllers can lock onto the data packets as quickly as they arrive, you will find that Pyrodigital controllers lock onto FSK files exported from Finale 3D about 4.5 seconds quicker than they do with reference FSK files.