Software Documentation

Software Documentation


Last updated: November 20, 2021

8 Avoiding gaps in module number sequences when sorting by angle (Same Rack)

If you sort by angle when addressing and your racks have fixed angle tubes, there is a possibility of gaps in module number sequences in the racks as shown in Figure 1.  Why would the first rack have modules 01 and 03 instead of 01 and 02?  Fortunately, there’s a good reason, and there’s a good solution.  You just need to understand what is going on.  Or if you just want to know the solution, Figure 3 sums it up.


Figure 1 – A gap in the module number sequence.  Why does the first rack have module 01 and 03 instead of 01 and 02?


Figure 2 shows the addressing sort order that produces the rack assignments of Figure 1Figure 2 looks pretty normal.  There’s nothing strange about about sorting by “Position > Angle > Event Time”.   So why is Figure 1 so weird?

You would need to know a little more information.  The racks in these figures are PyroLamas single shot racks with fixed angle tubes in 15 degree increments between the rows.  The left-most row of tubes has -45 degree angling tubes to the left, the next row over to the right has -30 degree angling tubes, and so on to the right-most row of tubes at 45 degrees to the right.  Thus in the first rack, the shots 0-9 of module 01 are all -45 degree shots, and A-F of module 01 are all -30 degree shots.


Figure 2 – Sorting by “Position > Angle” can yield gaps if your rack tubes have fixed angles.


The addressing procedure

The apparent gaps in the module number sequence arise from the addressing procedure, which is:

  1. Sort the effects according to the sort criteria in paragraph 2 of the addressing dialog.
  2. For the effect that is first in the sorted list, follow step (3) on any unused pins of partially allocated rails (modules) and if none of them work then allocate a new rail and try its first pin.
  3. For the pin, try to find a rack and tube such that all the constraints in paragraph 3 of the addressing dialog are satisfied; if successful, assign the pin and tube to the effect being addressed.
  4. Repeat.

The gap in Figure 1 can now be understood by walking through the addressing procedure:

  1. Sorted by angle, the first 10 effects easily fit in the left row of the first rack.
  2. The next 6 effects being assigned are also -45 degrees to the left (that’s how many pins fill into the left-most rows of tubes in Figure 1).  The problem is, the first rack doesn’t have any more tubes angling that direction, so they must go into the second rack.  But the “Rack Cluster” constraint in paragraph 3 of the addressing dialog prevents modules from being shared across racks that are not in the same cluster.  Hence these 6 effects in the second rack get module 02.  At this point, a gap in the module number sequence of the first rack is assured.


Sorting by “Same Rack” or “Rack Number”

Following the addressing procedure, you can see that the only way to avoid a gap in the module sequence in the first rack would be to sort the effects such that the effects that fit into the first rack get sorted first, before the effects that spill over into the next rack.  The addressing sort options include a term that does just that — Same RackFigure 3 shows where to put it.


Figure 3 – Add the term “Same Rack” before “Angle” to fill out a rack before moving onto the next.  


The Same Rack term gives priority to effects that can fit into the same rack as the previous assignment.  In this example, after filling the first 10 effects at -45 degrees into the first rack, the remaining -45 degree effects can no longer fit in that rack so they receive a lower sort priority.   The -30 degree effects are the left-most effects that can fit into the empty tubes of the first rack, so they get allocated next.  The result is shown in Figure 4.


Figure 4 – Sorting by “Same Rack” avoids the gaps in module number sequences.


Finale 3D has other special sort terms like Same Rack that can solve similar problems.  The term “Rack Number” would also work fine in this example in place of Same Rack.  Rack Number not only fills one rack before moving onto the next; it fills the racks in order of their Rack Number.  Rack Number enables you to avoid gaps while filling racks according to how you’ve arranged them visually, as described in detail in Addressing based on layout of racks (Rack Number).  The full set of special sort terms, useful for all kinds of purposes, is given in Special sort terms.