Features of "Perfect Layout" for Finale®

Perfect Layout includes more than 100 automated layout processes for Finale® like:
-collision removal of most music symbols
-automatic alignment of expressions, articulations, hairpins, lyrics and many smart shapes
-automatic visual balancing and collision removal of staves and systems in score and extracted parts
-improval of MusicXML imported files and old Finale files from the 90s (including automatic expression category assignment and alignemnt correction)
-automatic repeated measure numbering for percussion/drum staves
-automatic rest splitting and merging according to the time signature

The plug-in works both as a "1-click solution" with many intelligent algorithms that automatically set the best parameters as well as with a very flexible and versatile user dialog with more than 200 parameters in the Gold edition. A full feature list with references to the before/after images below is available at the bottom of this page.

The images below show a few before and after the plug-in comparison.
More before/after examples are available in the Example and Video section.

Feature Overview with Before/After Images

Perfect Layout: Feature Overview
Image 1: Before/after the Perfect Layout plug-in (View in higher resolution)
The red and blue measure numbers were added afterwards to the image to help identifying the measures.


Image 2: Automatic score balancing


Image 3: The Perfect Layout User Interface (for details see here)

Feature Overview

- Removes collision of hairpins with slurs, ties, notes, articulations (except with articulations between the start/end note of top slurs)
, expressions, barlines and repeat brackets (below staff only). (mm.4, 6, 9, 15, 19, 29/30, 43, 55,etc.)
- Removes collision of (standard) articulations with (one!) other articulation on top of the staff, with slurs (only if connected with start or end note of slur), ties and dynamic expressions. (mm.1, 2, 4, 7, 35, 37 / m.1)
- Removes collision of dynamic expressions with slurs, ties, repeat brackets, notes, accidentals and barlines (below staff only). (mm.6, 22, 23, 24, 28, 51, 52, 54, 56, 59)
- Removes collision of trill line smartshapes with up/down bow articulations. (m.37)
- Removes collision of text repeats and notes, articulations and multi-measure rest numbers (on top of the staff only). (m.61)
- Removes collision of ottava and trill lines (not custom line trills) with notes, accidentals and articulations (on top of the staff only). (m.23)
- Removes collision of rehearsal mark letters, rehearsal mark texts and tempo mark text expressions with notes, articulations and left-aligned chord symbols. (mm.4, 25-38, 58)
- Removes collision of voice 1 note with voice 2 articulation. (m.25)
- Removes collision of Voice1/Layer1 dynamic expressions with Voice2/Layer2 notes). (m.25)
- Removes collision of glissando lines with accidentals and augmentation dots (together with optimized vertical alignment). (m.40)
- Tremolo articulations on whole notes are corrected. (m.59)
- Not all slur parameters are currently supported, unsymmetric slurs may still have tiny collisions.

Each collision system just checks the collisions of two individual elements. It is not a general collision avoidance system that checks all surrounding elements and calculates the best spacing solution. In most cases this system works fine, but from time to time there are situations where the suggested solution is not the optimum.
- Expressions and hairpins are aligned horizontally and vertically, and, if necessary, corrected in its measure position according to a great number of (notation) rules that try to achieve a visually balanced, musically clear and collision-free look.
- Hairpins and dynamic expressions below the staff are aligned vertically (expressive text in conjunction with dynamic expressions also). Vertical alignment is reset after a few measures, a certain distance and on each new system. (mm.3/4, 8-10, 12-14, 15-16, 24-30 and more)
- Dynamic expressions and expressive text on the same measure position are aligned horizontally and vertically. (m.53)
- Adjacent hairpins and dynamic expressions are connected with a small visual gap in between. (mm.6, 9, 10, 12 and more)
- Moves dynamic expressions slightly up on systems with slash staff style measures where no other object goes below the bottom staff line. This reduces unnecessary space e.g. on drumset parts with lots of slash notation. (mm.63)

- Moves dynamic expression up on slash staff style measure with invisible very low notes. (mm.65)
- Positions dynamics expressions in the centre below the note. (mm.1, 3 and more)
- Corrects vertical alignment of hairpins with line breaks (i.e. two alignments necessary). (mm.14/15)
- Dynamic expressions attached to very low notes and shifted left and upwards are kept on that position and will not be centered below the note to avoid very low dynamics. It doesn't work the other way round yet: centered dynamics on very low notes are kept on the centered position and will not be shifted left and upwards. (m.32)
- Alignment of expressions is content-dependent (e.g. pp and mf get a reduced vertical offset value compared to fff, so that the actual distance to a note or articulation is identical).
- Corrects wrong horizontal position of a niente hairpin expression under a rest. (m.68)
- Tempo marks, tempo alterations and rehearsal marks are aligned horizontally. (mm.4-7)
- Tempo marks, tempo alterations and rehearsal marks can be aligned vertically.
Two different modes are available:
a) minimum distance to staff (each mark is aligned individually)
b) align according to highest offset (all marks are vertically aligned according to the highest mark). (mm.25-38)
- Centered "più ff" expressions become quasi right-aligned. (m.59)
- Centered "ff sub." expressions become quasi left-aligned (same for poss., s(i)empre, espr., secco, etc.). (m.40)
- Moves expressions connected to a centered "real" whole rest to other layers' notes on measure position 0 if available. (m.49)
- Numbers from the Finale "Number Repeated Measures" plugin are centered. (m.45)
- Moves an expression that is assigned to "All Layers" to another layer if layer 1 is invisible. Otherwise Finale doesn't do a correct vertical alignment. (m.58)
- Moves dynamic expression from the end of the measure to next measure's position 0 if it either has a huge horizontal offset to the right or if the note on measure position 0 is tied backwards. (m.54/55)
- Slurs at line breaks which end with high notes will be re-aligned, for example when a run with a slur ends on the next system (This feature is implemented, but only works on manually adjusted slurs because of a JW Lua bug). (m.14)
- Harp glissando optimization can be achieved with the Elbsound Harp Glissando plugin (mm.40)
- Creates multi-measure rests in score and parts if they had not been created automatically yet. (mm.41/42 and (mm.62-71)
- Can remove multi-measure rests in measures that have non-MM breaking expressions and/or hairpins. (mm.14/15)
- Removes multi-measure rests in parts if the measures have changed after the first MM rest creation. (mm.51/52)
- Moves multi-measure rest numbers slightly down on 1-line staff measures. (mm.73-75)
- Shows/hides measure number ranges below multi-measure rests if the multi-measure rest has a defined length. (hidden mm.41-42, shown mm.72-77)
- Updates all multi-measure rests to the current style from the multi-measure rest document settings (e.g. change from shape to symbol). (m.72)
- Updates the settings of measure number ranges to valid values (centered, below, square brackets)
- GP (=Generalpause) expressions are detected and split MM rests. (m.42)
- If a multi-measure rest ends with a clef change, then the MM rest will be reduced in size to avoid collision between the MM rest and the clef. (m.42)
- A measure number group below the MM rest will also be shifted slightly to the right to match the new position. (m.42)
- Hairpins are connected, if possible, to adjacent note entries or notes with dynamic expressions for optimal playback. (mm.4, 6, 9, 10, 12 and more)
- Moves hairpins that are attached to rests to note before, otherwise the Finale 2014 hairpin playback doesn't work correctly. (m.13)
- Lets hairpins start slightly right to a note/rest and lets them end slightly before a note/rest. (mm.4, 13, 9, 10 and more)
- Shortens hairpins that end on measure position 0 of the next system to end on the last beat of the last measure of the previous system, in order to avoid hairpin line breaks (but for optimal playback this should not be done, it's just for visual reasons)
- Automatically resets hairpin horizontal break offset to 0, so that they align with measure start and measure end. (mm.14/15)
- Support of "niente" hairpins: automatic connection of hairpin with any niente ("o") text expression or a niente text ("niente" or "quasi niente") (currently restricted to one niente hairpin per measure). (mm.66 and 67)
- Can auto-connect to the next/previous note if it is close enough. (m.34)
- Hairpins can be made horizontal. (m.34)
- Hairpins can be resized to the default opening width. (m.13)
- Hairpins that start on measure position 0 before the note can be reset to a horizontal offset of 0. (m.3)
- Hairpins that end on a rest are shortened to the start of the rest (if not followed by a note with a dynamic expression). (m.13)
- Hairpins that end in the middle of an empty measure are shortened to the end of the previous measure. (mm.59/60)
- Puts articulations on rhythmic and slash notation measures on top of the staff (except for those marked as "Below Note") (mm.19-22)
- Moves articulation on high-pitched grace notes from below staffline to above the note. (m.59)
- Combinations of two symbol staccato/tenuto plus accent articulations are correctly aligned on articulations above the notes (not supported below the note yet).
- Creates inside slur articulations if necessary for collision with steep slurs (but not if there are multiple articulations on that note). (m.12)
- Changes certain shape articulations with helpful descriptions in the shape definition to character articulations.
For example, different staccato dot articulations may have a shape symbols of their duration, i.e. 30%,50%,75%, etc. The shape is great for the score/playback creation process, but for printing it will be reverted to the staccato dot character. (m.39)
- Puts tuplets on notes with lyrics on top in order to avoid collision with lyrics on bottom. (m.18)
- Puts tuplets over one line (percussion) staves on top in order to avoid collision with dynamics on bottom. (m.43)
- Optimized tuplet and/or default values from the tuplet preferences can be applied to all tuplets. (m.33)
- Tuplets on extreme notes can be moved on top of the notes instead of staying on the stem side. (m.60)
- Tuplet brackets on quarter note tuplets (and higher) can be hidden (turned off by default).
- Nested tuplets are split: the main tuplet will be on the stem side, the sub tuplet on the note side.
- Splits fake tuplets where the first half of a tuplet is a regular note (e.g. dotted eight note plus three 16th notes in a 8th note triplet become eighth note plus three 16th notes in a 16th note tuplet). (m.55)
- Optimize tuplet numbers: if the tuplet number doesn't match the longest/shortest note duration, it can be adjusted (e.g. 6 16th notes with a tuplet number 3 (i.e. 3 8th notes), get a new tuplet number 6). (m.58)
- Missing tuplet brackets are added if it simplifies reading (e.g. within a group of beamed notes without secondary beam breaks).
- Moves typically right-aligned text repeats to the right border of the measure (D.C., D.S., Fine, etc.). (m.61)
- Moves typically left-aligned text repeats to the left border of the measure (Coda, Segno, etc.). (m.39)
- Unifies vertical offset of all text repeats.
(mm.39, 61)
- Repeat brackets will horizontally (not vertically yet!) aligned with their starting/ending measure.
- Moves a system starting with a "Coda" rehearsal mark slightly down in extracted parts. (mm.62-71)
- Adds 5-line staff symbol at the end of a measure if it is a 1-line staff measure followed by a 5-lines staff with a new clef. (m.48)
- 1-line staves have different distance values or baselines than 5-Line staves (for example dynamics can come closer to the staff line). (mm.43-48)
- Minimizes the distance between the top lyrics baseline and lowest note and articulation. (mm.5, 17-18)
- Fixes the distance between multiple lyric baselines of the same type (unless multiple different lyrics types and numbers occur in one measure). (m.5)
- Removes vertical offset from manually adjusted syllables. (m.5)
- Removes invalid syllables.
- Removes invalid lyric flags.
- Broadens measures with condensed hairpins to improve the hairpins visually. (m.12)
- Sets slash style measures to time signature spacing. (mm.21, 63-67)
- Sets slash style measures with visible offbeat notes in other layers to note spacing.
- Removes uneven slash measure spacing caused by non-hidden, but invisible notes. (mm.21, 64)
- Apply music spacing to full score (turned off by default).
- Adaptive spacing for chord symbol collisions: measures with chord collisions are set to "Avoid chord" collisions in spacing, others are set to not use it. (mm.13, 14, 34)
- Reduces the measure width in blank notation style, slash and repeat style measures with individual values for minimum measure widths.
- Adaptive spacing for blank notation and repeat styles measures: if the staff is very crowded, these special measures will be squeezed more. (m.11)
- If a measure holds a preparation clef for the next measure, the measure will be broadened and extra space at the end added if there is a collision with a note entry or a slash symbol (from the slash staff style) in that measure. (mm.24, 48)
- Inserts additional beat chart elements to measures if necessary for improved spacing (e.g. in a measure with one whole note, but several hairpins or expressions: (m.56))
- Relinks all expressions, articulations and hairpins from the parts with the score before further processing (older Finale documents can have expressions attached to different beats in score and part which might confuse the alignment). (m.39)
- Clears manual positioning of articulations, dynamic expressions, rehearsal marks and tempo expressions. (m.24, 52 and more)
- Removes unneccessary articulations on rests (e.g. if staccato dots were copied to rests with the explode function. Allowed articulations like a fermata remain.). (m.18, 32)
- Removes duplicate articulations of the same kind on the same note (resulting for example from staff implode). (m.32)
- Removes duplicate (nearly) identical expressions at the same position. (m.54)
- Removes duplicate (nearly) identical hairpins at the same position. (m.59)
- Removes duplicate (nearly) identical slurs. (m.35)
- Corrects dynamic expression placement at the beginning of a pickup measure.
- Non-opaque expression enclosures with line width 0 will be removed.
- Right-aligned multi-measure rest breaking expressions are duplicated and also stored in measure 1 of the multi-measure rest, so that they don't disappear anymore at the end of the mm rest.
- Separated "f" and "p" dynamics on a note will be connected to "fp". (m.48)
- Resets manual accidental shifts (turned off by default).
- Unisons are slightly separated.
- Warning message is issued when the pickup measure is set to a value less than 32 EDUs (which may result in undesired symbols being displayed).
- Apply optimized tie preference settings. (m.61)
- Apply optimized slur preference settings.
- Measure numbers on measures with "space before music" (i.e. key or time sig changes) can be shifted to the left to appear directly above/below the barline (instead of at the beginning of the music). (m.16, 68)
- Removes (unnecessary) accidentals from backwards tied notes. (m.51)
- Sets tempo marks, tempo alterations and rehearsal marks to "break multi-measure rests".
- Tempo alterations can be optionally be hidden under multi-measure rests.
- Tempo alterations are hidden at the end of a piece, if no note entries follow.
- Can optionally hide tempo alterations in MM rests (turned off by default).
- Split three beamed eighth notes in pickup measure to one eighth note plus two beamed eighth notes.
- Removes 'open ties' (i.e. tie starts that don't have a corresponding tie end). Laisser-vibrer staves like harp, timpani, cymbals or vibraphone are ignored. (m.13)
- Close hairpins are "connected" with a gap. (mm.63-68)
- Assigns noteID to entry-based glissando lines that are connected with a note, but have no noteID.
- Sets vertically moved rests to standard position if it is a one-layer and one-voice measure. (m.7)
- Detects text expressions assigned to invalid categories and moves them to "Miscellaneous".
- Invalid expressions are deleted (i.e. if the expression ID doesn't exist anymore).
- Certain smart lines will be placed at a fixed vertical position on top of a staff (for example Fill-in-------¬ on drumset staves). They will also be aligned with right before the barline if they are close. (m.66)
- Deletes empty pages at the end of a part. (m.68-71 - not visible)
- Corrects expressions that are connected to a slightly wrong measure position (e.g. Pos 32 instead of 0) to the correct position (this occurs especially in older Finale documents). (m.9)
- All single grace notes get slashes. (m.59)
- All single grace notes become 8th notes, all multiple grace notes become 16th notes.
- Rests are checked if they match the time signature and otherwise splitted/merged and the measures respaced (not in measures with the different notation styles as in m.49). (mm.23, 50, 51, 57, 61)
- Invalid composite time sigs that are actually non-composite time sigs are included in the rest check for time signature matching.
- Rebar is optionally possible (same as Utilites->Rebar, turned off by default because of its side effects on quantization)
- Measures can optionally be padded with rests if incomplete (turned off by default, in order not to pad layers that are incomplete on purpose)
- Removes stunted slurs that start and end on the same note/position. (m.5)
- Removes hairpins that start and end on the same note/position. (m.5)
- Deletes invisible articulations with invalid articulation definitions (i.e. those articulation definitions that were already deleted).
- Expressions that were assigned beyond measure duration (e.g. position 4096 EDUs in a 3072 EDUs measure) are corrected and assigned to the best fitting note position where they are currently visible. (ff in m.6 was actually assigned to measure 7)
- Manual adjustments of slurs can be removed. (m.24)
- Accidentally flipped hairpins that start and end in the same measure are corrected.
- Accidentally flipped ties are corrected if there are no voice2 entries and no entries in other layers (only if the FlipTie flag is used, not with the Special flag). (m.54)
- Accidentally flipped/frozen stems are corrected if there are no voice2 entries and no entries in other layers. (m.31)
- Voice2Launch flags are reset if there is no voice2 on that beat. This also corrects the direction of wrong stems and slurs. (m.8: the wrong flag results in an upsidedown stem)
- Corrects messed up measure number region indices.
- Removes slurs that double ties. (m.7)
- Replaces slurs with ties if slurs were applied accidentally. (m.23)
- Dynamic expressions which are assigned to non-dynamic categories are automatically shifted to 'Dynamic Expressions'. (f in m.12)
- Typical expressive text expressions which are assigned to non-expressive text categories are automatically shifted to 'Expressive Text'. (legato in m.52)
- Typical tempo mark text expressions which are assigned to non-tempo mark categories are automatically shifted to 'Tempo Marks'.
- Typical tempo alteration text expressions which are assigned to non-tempo alteration categories are automatically shifted to 'Tempo Alterations'. (A tempo in m.79)
- Measure number expressions which are assigned to the "Miscellaneous" category can be shifted to "Rehearsal Marks".
- Slurs can be updated from on/off to automatic engraver slur. (m.38)
- Slurs not connected to the end note of a series of tied notes will be connected to the end note (except for grace note slurs). (m.59)
- Invalid invisible slurs (attached only to one entry instead of two) are deleted.
- Wrong SmartShape flags in measures are cleared.
- Wrong Expression flags in measures are cleared.
- Wrong Special flags in note entries are cleared.
- Wrong Articulation flags in note entries are cleared.
- Manual positioning of notes can be cleared. (m.5)
- Group brackets can be automatically added on groups with at least 3 staves (and bracket set to none).
- Moves entries that were accidentally placed on layers 2-4 to layer 1. Cue notes, non-playback layers, or notes under alt notation staff styles are not moved. (m.7,9)
- Hairpins with a start or end measure position greater than the acutal measure duration are reset to the measure duration.
- Hairpins that end after the last measure are reset to end in the last measure.
- Horizontal custom smart lines are forced to be horizontal. If you don't want that feature, uncheck "Horizontal" in the custom smart line definition. (m.66)
- Cue notes get all stems down/up depending on the placement of the whole measure rest. (m.11)
- Cue note instrument texts move below the staff. (m.11)
- Cue note instrument texts are connected with the first note of the cue (instead of rests). (m.11)
- Assigns cue note instrument text to the same layer as the cue note, so that they have a reduced size as the cue note. (m.11)
- Hides "cue notes only"-measures in the score and applies an "Blank Notation with Rests" staff style. (m.11)
- Hides "100% sized"-cue notes that were only created to have 100% sized lyrics with a "Blank Notation: Layer X" staff style.
- Cue note text expressions (e.g. "(Fl.)") without notes can now break multi-measure rests. (m.68)
- If an "empty" pick-up measure holds a cue note clef change only, the width of the measure will be fixed so that the clef is displayed correctly
(i.e. this is necessary if a part starts with a clef followed by a cue note clef which can only be handled with an empty extra measure)
- Hairpins, custom line and trills can be hidden in cue measures (m.11)
- All measures with notes on a certain layer are set to blank notation on that layer (for example to remove playback only layers or playback for cue notes). (m.11)
- Hides unnecessary group names that are also part names (e.g. Piano or Harp).
- Hides chord symbols on selected staves in the score, but shows them in the parts (to reduce complexity in the score). (m.63)
- Hides rehearsal mark texts that have the same text as the lyrics in that measure. (m.5)
- Hides all expressions in the score that are only to be shown in page view (e.g. harp tuning or solo markings) based on user-defined expression categories. (m.16)
- Hides instrument-specific articulations in the score that are only to be shown in the parts to reduce complexity of the score (e.g. up/down bow). (m.1, m.1)
- Adds automatic measure counting to slash measures (every xth measure and after double barlines). (m.63-67)
- Add automatic measure counting to one-bar repeat measures (every measure, optionally in parts only (see m.45)). (m.44-46)
- The plugin runs over the score AND all linked parts in one go, making different adjustments in the parts and score (e.g. vertical alignment of dynamics/hairpins has different results on the score and the parts as their staff systems include different measures).
- All the functions mentioned above can be switched on/off and have many parameters.
- The plugin uses the same font database as the House Style Changer and recognizes music symbol and glyph spacing from more than 300 music fonts. (mm.24, 30, 51, 52)
These issues can't be fixed because of limitations in JW Lua or Finale, or they will be fixed in a future update.

- The installer currently doesn't support Windows user folders with unicode characters (i.e. the folder c:\users\.....\). At the moment only symbols from Windows-1252 encoding are supported (i.e. allowed are Western European symbols like äôáèüß, but not letters like ǧȒʥԖש).
- No support for scores with staff dependent time signatures.
- GPOS tables in OpenType fonts are currently not supported by our font engine (e.g. vertical glyph placement as in the Figurato font currently leads to wrong metrics in the plug-in)
- Finale 27: SMuFl .json files are not taken into account for the symbol metrics. Perfect Layout uses the actual symbol metrics from the font file.
- Diagonal hairpins are only partially supported.
- Non left-aligned chords are only partially supported in collision detection.
- The chord styles Solfeggio, Nashville and Roman are not yet supported in collision detection (the plugin always assumes one of the CDEFGA(BH)-standards).
- Cross-staff smartshapes are not supported for collision detection.
- The activated option "Allow Horizontal Split" in the measure dialog is only partially supported. It's not very recommended to use this feature anyway, because not even Finale supports it fully. It's recommended to fake a measure split with two measures, fake time signature settings and a hidden right barline.
- Dynamics on cross-staff notes in two-staff groups (e.g. piano) are only partially corrected in placement.
- Not all cross-staff scenarios are yet supported for optimal staff/system balancing. Should you notice any problems, please let us know, so that we can support them.
- Staves or staff styles with line spacing other than the default 24 EVPU are not fully supported yet which may lead to collisions or unoptimized spacing.
- No support for non-smart (=old-style) word extensions. These can not be detected correctly in JW Lua. Please activate "Use Smart Word Extensions" in the Lyrics->Word Extension dialog.
- Some fonts will work better on Windows/macOS if they are/are not added to MacSymbolFonts.txt. The plug-in font database currently only supports the state that works better on Windows. As a result the plug-in might require to update the MacSymbolFonts.txt file, if it doesn't find the correct fonts listed.
- Multi-measure rests are automatically created/validated. But as this may affect the system layout, it's possible that systems end up on different pages than before or that extra pages are added somewhere in between. Automatic multi-measure rest creation should be avoided if the part has systems with different number of staves (e.g. hidden staves) and many empty measures that would be consolidated to a multi-measure rest. This would massively influence the part layout. In this case create the multi-measure rests manually before calling the plugin and adjust the measure layout to your needs.
- The left/right metrics of consolidated rests are not always calculated correctly (JW Lua or Finale plugin SDK bug). The best result appears when the active layer in Finale is layer 1.
- In custom line definitions the values in the "Line Adjustments" group (Start H, Continue H, End H, V) cannot be read by JW Lua. If possible, set them to 0, otherwise the lines may align wrong.
- Rests in very ambiguous time signatures are not corrected (e.g. 11/4).
- The very old Finale "Special Parts Extration" feature from the 90s is only partially supported and tested as it's usually not used nowawadays anymore.
It's recommended to use Finale's linked parts or extracted parts instead.
- Chord spacing is not fully correct in measures that have all of the following properties: slash/repeat style, overlapping chords, more notes than chord positions and not notes on all chord positions.
- Tracking (of text elements) is not calculated 100% correctly.
- Diagonal hairpins that cross staff lines are made horizontal.
- Finale's tool palettes are sometimes resorted by the minimization and maximization of the Finale Windows. We are still looking for a solution to this phenomenon.
- System/staff balancing may not work optimally if the pages have different scaling percentages.
- Automatic staff system balancing works best when all pages have the same page scaling, system scaling and staff scaling. Should they not match, it is not guaranteed that the result over all pages is fully convincing.
- When clicking on "Undo" and then on "Redo" after having run the plug-in, JW Lua or the Finale PDK has a bug that may lead to a different page layout/measure spacing or even systems vanishing in the score. It's possible to use undo/redo, but use it with care - i.e. check the page layout is still ok.
- The staff stem setting "Always Up" and "Always Down" cannot be detected (JW Lua bug). This can lead to stems being falsely flipped.
- Fingering articulations are only supported in articulation stacking if they have a horizontal offset of 0.
- Stacked hairpins (one above the other) are currently not handled correctly and might be placed on top of each other.
- Hairpins are vertically aligned to dynamics, expressive text, articulations, slurs, ties, notes and the staff line. Other symbols (e.g. custom lines) between hairpin and the staff line are currently not taken into account.
- Graphics attached to measures are currently not supported by JW Lua. So they are not taken into account for collision detection (Page graphics aren't taken into account either, as page elements aren't taken into account in general).
- Expressive text as custom smart lines (e.g. cresc. - - - -) is currently not automatically aligned with dynamics.
- Accidentals as expressions are not taken into account for collisions.
- Glissando smartshapes are not connected correctly to the notes, if their custom smart lines use an offset ("Start H" and "End H" values). JW Lua doesn't support reading this offset.
- Collision detection of rehearsal marks, tempo marks and tempo alterations only works good if there are at maximum two expressions per measure at the same measure position from two different expression categories.
- The clef slots are assumed to be used as in the Finale default document (i.e. slot 1=violin clef, slot 4=bass clef, etc.).
- JW Lua doesn't allow the detection of full or short barline in 1-line staves, so they are both aligned identically.
- Three stacked articulations (e.g. downbow, fermata and accent) are not included in collision removal.
- Lyrics baseline optimization currently only works for lyrics below the staff.
- All staff systems on a page should have the same Staff Height value.
- Document options for tie placement currently can't be read through the plugin interface, so the plugin always assumes Finale's standard values for tie positionings.
- Tie alterations that affect the tie metrics are currently not supported, i.e. collisions might occur. The functionality is supported by the Finale PDK, but currently not implemented yet in JW Lua.
- Collision of articulations with ties on top of the staffline is currently not supported yet, but also occurs rather seldom.
- Pickup duration detection is unstable: if a pickup measure is created with the "Use a different time signature for display" method and the second measure has a completely different time signature, the pickup is only detected if one of the first measures has at least one rest. (JW Lua bug: it has limited support for "Use a different time signature".)
- Automatic shape detection is currently switched off in Finale 2014 as JW Lua currently crashes Finale when examining shape instructions (i.e. down/up bow shapes are not detected as valid articulations for collision detection). - Automatic detection of shape articulations is only supported in Finale 2014.5, 25, 26 and above.
- The few supported shape articulations (like "Up+Down Bow") must be designed "on baseline" (they must not cross below the baseline). Otherwise the stacked articulation collision doesn't work.
- As shape expressions are hardly supported, molto crescendo "end of hairpin" expressions are only detected if they are text expressions, not shape expressions.
- Shape articulations and expressions are currently not supported for collision detection.
- The articulation "inside slur" capability of Finale 26 is currently not supported by JW Lua. The plug-in automatic inside/outside slur feature only works up to Finale 25.
- Time signatures with decimals are currently not supported by JW Lua (e.g. .625/2 for a 5/16 time signature with one beaming group).
- JW Lua currently doesn't support updates of the Vertical Baseline Offset on shape expressions. This may lead to displaced expressions when they are baseline dependent and the baseline offset has changed.
- For all features to work with cross-staff notes, make sure to have the staves grouped. Cross-staff notes in non-grouped staves are not always detected correctly.
- Because of a Finale bug with the "Slur Tips Avoid Staff Lines" option, there may be collisions with slurs in rare cases that appear on the screen only. But: when printing the document to a printer or to PDF, the collisions are not visible.
- Hairpins that appear on three staff systems in a row are only checked for collision on the first and last system.
- Slur collisions are only detected correctly for slurs without line break or for the first system of slurs with a linebreak (i.e. slur collisions after the linebreak are only estimated very roughly or not taken into account at all, because of a JW Lua or Finale PDK bug).
- When an alert message dialog is clicked, Finale may lose the window focus (This is a known JW Lua bug). Simply click on the Finale window to get the focus back.
- Dynamic expressions might get close to steep beams. Those beams are currently not included in collision detection.
- You must not specify a different configuration folder name and directory other than Finale's default ("Configuration Folder" or "Konfigurationsdateien"). Otherwise the directory will not be detected and the plug-in doesn't work.
- The superscript command is not yet supported in collision detection and niente alignment.
- Rest optimization is currently not activated on slash and repeat style measures with multiple layers.
- Document default fonts (from the Document Options->Fonts menu) are only partially supported if they are set to "Fixed" size (which they usually aren't).
- Resized staff systems have not been fully tested yet (-> planned for future update). If possible, use other scaling options like staff height or page percentage and/or make sure all staff systems have the same scaling.
- Only partial support yet for individually resized staves.
- The plug-in has many optimizations for two-staff groups, like piano notation. These do not always work on three staff groups (e.g. a piano in contemporary three staff notation).
- User-defined font annotation files are currently not supported. Only the original font metrics are used. This can lead to incorrect metrics and thus collisions or too big distances if the Finale document loads user-defined FAN files.
- Staves that don't have 1- or 5 staff lines are only partially supported in spacing/collision optimizations.
- The values from the Smart Shape Placement menu are currently not accessible from JW Lua. So the plugin assumes the default values.
- A ttf, ttc, otf, dfont or suit font file must be available on the hard disk for font metrics analyzation in OS registered font directory, otherwise the metrics are not available.
- Priorization: manually adjusted tremolo articulations may be messed up when the connected note entry has illegal flags (like Special or Voice2Launch). So note entry flag correction has a higher priority than tremolo articulation placement. So it's recommended to run for example the JW Yada Yada plugin after having run the Perfect Layout plugin.
- The plugin has not been tested with all international versions of Finale and might not fully work in these because of different keywords. If you notice a difference, please contact us.

  • Perfect Layout v3: Finale® 2014, 2014.5, v25, v26, v27 for 64bit Windows 10, 11 or macOS 10.13+ - 13.x (tested until 13.2).
    Note 1: PL v3 should also work in Windows 7 and 8 when all the latest Windows updates are installed, but Elbsound.studio doesn't support that.
    Note 2: According to some users PL v2 also works in 10.11/10.12, but Elbsound.studio doesn't support that either.
  • Perfect Layout v2: Finale® 2014, 2014.5, v25, v26, v27 for 64bit Windows 7, 8, 10, 11 or macOS (tested in 10.13 - 12.6, according to some users also working in 10.11/10.12)
  • Minimum 4 GB RAM, for huge orchestra scores exceeding about 20.000 frame assignments 8-12 GB RAM and Finale® v25, v26 or v27 are required, otherwise the plug-in may run out of memory.
  • Windows: 250 MB, macOS: 400 MB of free hard drive space (after installation 250 MB), plus space for the font annotation files dependent on the number of fonts that are installed
  • For the installation/(de-)activation you need a user with administration rights
  • Internet connection during the installation and update process, and an email address to receive the activation code or an installed email program to request the activation code.
  • macOS (PL v2.x+) and Windows (PL v3.x+): an internet connection is required during the processing of the plug-in for checking the activation
  • macOS only: You need to grant access to Finale to use the Terminal app, Image Events and System Events for activating/checking the license, downloading updates, displaying the plug-in's progress bar (optional) and finding out the number of screens for correct coordinates.
  • macOS only: The macOS standard tool "sudo" is used for some system calls. You may need to disable sudo plug-ins, if they cause problems with Perfect Layout's sudo calls.
  • Windows only: Powershell, WMIC, cmd and curl must be installed (it is installed by default on Windows unless the user has removed it manually)
  • macOS only: The macOS Bash system must be available together with the tools curl, defaults, sudo, echo and osascript. They are available in macOS by default.
  • The faster the processor speed, the faster the plug-in (see this comparison). The plug-in is single-threaded, so multiple cores do not speed up the processing.
  • Data Privacy: For the activation and license validation of the software some data will be stored on our servers. For more info read Data Privacy at Elbsound.studio and the EULA