Overview: Perfect Layout, v3.0201, macOS/Windows

Perfect Layout v3.0 includes nearly 720 new features and improvements.
The chronological list of changes in the sub-versions 3.0007-3.0201 is available here.

Perfect Layout (beta) v3 is available for free testing until the official
release of v3 to all users who have bought a license of Perfect Layout v2.
After the official release of v3 the free beta v3 license automatically becomes invalid and Perfect Layout v2 has to be re-installed or the update for PL v3 has to be purchased.
All clients who bought the full version of Perfect Layout v2 after 1. July 2022 are also eligible for a free update to the official v3 release.
Clients who only have bought updates, upgrades or student versions of Perfect Layout after the 1. July 2022 are not eligible for a free update to v3.

What is new?

Page/Measure Layout

-Linked part layout now includes automatic vertical staff/system spacing.

Image 1a: Automatic Staff System Layout in Parts

-New feature: Messed up system staves in scroll view with staff distances beyond 1.000.000 EVPU which may lead to invisibility of all notation elements and other problems are reset
-New feature: If the last page in parts only has one (short) measure, it is moved to the previous staff when "Reflow Across Systems" is activated.
-New option (Gold only): "Optimize->Add Double Barline Preceding Key Changes" which was activated by default in previous versions of Perfect Layout can now be deactivated (in the Silver version it's always activated).
-Improved algorithm for shifting measures to the next/previous system: it now takes into the horizontal stretching and the number of accidentals. If there are no or only few accidental a more dense spacing is possible.
-Improved algorithm for detecting empty pages at the end of the score (which will be deleted)
-If the last system only has one bar, it's not shifted anymore to the previous system if it's very dense notation.
-When the score has a single measure system on the last page, the measure will be shifted to the previous page (if there is enough space). In previous versions of Perfect Layout this feature was only activated for linked parts.
-New Option "Systems->Shift Single Measure with Double Barline ('New Section') to Previous or Next System". It will only be shifted in parts and only if there is sufficient horizontal space after shifting (i.e. the horizontal stretch must be at least >0.95).
To enable this feature you also need to activate "Reflow Across Systems" in Finale's preferences.

Image 1b: Shifting a new section start to the next system in parts

-Pages with the size of 0 height x 0 width are not taken into account for page size dimensions anymore.

-New feature: Optimized page turns with rest bars: Perfect Layout now includes an option to find good page turns and adjust the systems and/or the measure layout that rest bars will be at the end of the page or at the beginning of the next page. This system is very powerful has many options. Details are described here.

Image 1c: Automatic measure layout in parts with empty bars at the end of the page for easy page turns

Image 1d: Rest priorities for good page turns

Measure Numbers

-Default measure number placement is now dependent on loose/tight spacing preset and number of bars
-Improved default placement of measure numbers in some cases (especially on very wide measure numbers)
-New feature: Measure numbers centered in the middle of the measure colliding with notation elements below the staff are shifted further down
-New options: "Centered above Clef, Center Justified, Above Staff" and "...Below Staff" are two new options on "Alignment->Measure Number Alignment at System Start"
-Improved placement of measure numbers below barline colliding with ties/slurs when a hairpin starts on beat 1: if the hairpin is at least 22 EVPU away from the measure number, the measure number will be shifted down. If the measure number has to be shifted very low (more than 35 EVPU), then the distance to the colliding object will be reduced by 6 EVPU. The maximum distance that the measure number will shifted down is 36 EVPU (=42-6 EVPU).
-New option "MMRests->Show Measure Range at Start of System". If the measure range is set to be shown only on at least x bars wide multi-measure rests, then it will still always show up below multi-measure rests at the start of the systen. Activated by default.
-New option for placement of measure numbers at system start:" Set to User-Defined Offsets"
-Gold only: The option "Alignment->Measure Numbers->Move Left-Aligned Measure Numbers onto Barline" can now be deactivated. By default (and it Silver) the option is still activated.
-In some cases improved measure number placement when there differrent placements between the score and linked parts
-Improved measure number alignment at system start for the "Above/Below Clef" options
-Improved detection of hidden measure numbers when "Clear Individual Measure Number Positions and Visibility" is deactivated
-Improved detection of adjacent "empty" measures over multiple measures with rests and fermatas only.
-Measure numbers are now also corrected on clef collisions at system start if the standard clefs (violin, bass, alto) are not on their vertical default position.
-In Finale 27.4 the option "Alignment->Alignment of Measure Numbers->Move Left-Aligned Measure Numbers onto Barline" is now deactivated by default as this is a new built-in feature of Finale 27.4.
When Perfect Layout supports RGP Lua 0.69+, it will read the Finale option and activate the value again when it's deactivated in Finale.
-The "Hide Measure Range if <= x Adjacent MM Rest Bars" is not activated anymore by default.
-New in Finale 27.3 only: Individual horizontal and vertical placement of measure numbers in parts

Image 2a: Individual Measure Number Alignment in Linked Parts with Finale 27.3
This image also features improved alignment of the second accidental if there is enough horizontal space.

-Automatic vertical offsets for measure numbers improved when the violin clef has a different height than in the Maestro font
-If only a partial region was selected and "Show Measure Numbers on Top Staff Only Instead of on All Staves" activated, then the measure number in the non-selected area would also disappear on non-top staves.
-"Show Measure Numbers on Top Staff Only Instead of on All Staves" is now also active when only measure numbers "on every xth bar" are used (not only on measure numbers at start of staff system).
-On large jazz clefs improved detection if the measure numbers fit to the left of the clef or need to be put above
-Measure numbers in the score on each measure below the bottom staff are now optimized to not collide with the notation symbols above.
This is done consistently over the whole score: they will all get the new vertical distance.
In the Gold edition the distance can be adjusted with the new option "Alignment->Measuren Numbers->On Collisions with Other Objects Below Bottom Staff Shift Down by" plus the value of "Alignment->Extra Collision Offset" and it can also be fully deactivated.
In the Silver edition the distance is only handled indirectly with the "Alignment->Extra Collision Offset" value. The default distance is 19 EVPU (=14 EVPU Vert. Distance + 5 EVPU Extra Offset).
This only affects measure numbers on a score below the bottom (!) staff.
Note: if there is no collision because the measure numbers are already very far below the staff, then they will keep their position. They will not be shifted upwards.
-If measure number regions are "misused" for other symbols (e.g. system dividers), these measure number regions are not set to new positions anymore.
-If there are multiple measure number regions with a "Show Measure Ranges on MM Rests" activated, PL handles them better to not have multiple ranges in the parts. However it's not recommended to have multiple measure number regions with identical settings as this might lead to many problems.
-Improved detection of multi-measure rest ranges when the measure number region is only defined for a few bars
-Improved metrics of centered measure numbers on 0-line staves
-If a measure number region uses identical position values for measure numbers at system start and for multiples, then the measure numbers at system start won't be changed anymore.
-In some cases improved measure number placement over curved group brackets in the score
-Improved detection of identical/similar measure number regions
-In some cases improved placement of measure number expressions above large time signatures
-As unlinked separate measure numbers are still not possible in JW Lua measure number shifts that affected other parts negatively were removed.
-The option "Keep Current Position" for placement of measure numbers at system start is now more strict: extra offset for curved group brackets are not added anymore, the vertical/horizontal offsets can't be changed and "Clear Individual Measure Number Positions and Visibility" is also deactived. This ensures that measure numbers at system start should now stay at their position. The old functionality is now available under "Set to User-Defined Offsets".
-Prefix and Suffix symbols are supported in measure number collision removal
-Improved automatic detection of measure number placement below the staff for automatically keeping the placement below staff if this is the default setting for the parts.
-Improved placement of wide, enclosed measure numbers at the start of the system in case of clef collisions
-In some cases improved placement of measure numbers at system start (for example below 1-line staves with the "Drumset" clef)
-On "extracted parts" files or scores with only one staff and no parts, the unused measure number regions that Perfect Layout generates for (linked) parts are automatically deleted.


-Two staff choir groups with only one lyrics line in the middle are moved closer together with the lyrics being in the center (similar to piano two staff groups). It only works if most of the bottom staff has no own lyrics, but shares the lyric from the top staff.
-Improved dynamics placement above the staff on lyrics staves
-Improved lyrics alignment when a lyrics section only has a "blank" syllable
-In rare cases improved vertical lyrics layout (when there are two verses at the beginning of a system and the system ends with only a third verse in the last measure)
-Improved lyrics metrics in some multi-layer and multi-verse scenarios
-Improved recognition of lyrics syllables when the font changes to a font with spaces in the font name within the same verse
-Improved lyrics placement on tall uppercase lyrics letters like ▄─Í╔╚, etc.
-In some cases of multi-layer bars with slurs improved vertical placement of lyrics
-In some cases improved detection of invisible lyrics (which leads to improved staff metrics and staff distances)
-Improved closer vertical staff spacing if lyrics below staff are also intended for the staff below. The lyrics spacing follows the values for piano two-staff groups (default distance 280 EVPU).
-In some cases lyrics improved handling of lyrics above the staff for optimization of staff distances
-Improved music spacing on lyrics over hidden notes
-Improved music spacing with lyrics over hidden notes and multiple layers with repositioned notes
-In some cases improved staff distances on (empty) lyric staves if more lyric staves follow below
-The lyrics baseline is improved on wide ties that could would collide with the word extension line.
-In some cases improved metrics of word extensions
-Improved handling of word extensions in the final bar
-Improved collision detection of word extensions on lyrics staves if the word extension has a large offset at the end
-In some cases improved placement of hairpins below word extensions and hyphens
-Manually repositioned notes in two staff groups with lyrics are now correctly detected from both staves. If the manual repositioning is probably correct in one staff, it will be kept in the other staff too.
-Improved lyrics spacing in case of many font changes within a verse
-An error message could occur in a scenario with lyrics, rests and niente hairpins in the same measure. Fixed now.
-Fixed: In some cases an error message could occur on bracket and underscore symbols in lyrics texts.
-Perfect Layout will now break lyrics alignment into two blocks per staff system, if there are two separated lyric phrases where one lyrics text is placed very far away from the bottom staff line and one very close.
This is only activated if there is only one line of lyrics.
PL Gold has three new options for this in the user dialog:
"For Large Vertical Distances, Create Two Separate Lyrics Baselines per Staff System"
"Min. Horizontal Distance Between Two Lyric Blocks": the default value 4096 EDUs (=4 beats).
"Min. Vertical Distance": the default value is 67 EVPUs.
In PL Silver/Silver400 the default values are used.

Image 2b: Two Lyrics Baselines


-New feature: Chord symbols are automatically vertically aligned: three algorithms to select from.

Image 2c: Chords Before/After Perfect Layout v3.0

-Fixed: If there were two chord symbols in one measure at the identical measure position, an error message could occur. However, stacking of chord symbols is not supported in Perfect Layout. If you need two chord symbols on top of each other, please do it manually.
-If chords in linked parts are not on the vertical default position, then in some cases expressions above the chord may now get an improved placement on collisions.
-Chords are not shifted anymore to above an expression with both the ABOVECHORDS and the EXCLUDE tag.
-If you add ABOVECHORD to the description text of an expression or an expression category, the expression will be placed above a chord. By default all expressions (except tempo and rehearsal expressions) are placed below chord symbols.
-The ABOVECHORD feature can also be used for creating priorities when placing two expressions at the same measure position. The tempo/rehearsal mark expressions will be placed on top, followed by the ABOVECHORD expression, followed by all other expressions.

Image 2d: The ABOVECHORD tag

-New option: "Keep Chords Below Staff" (activated by default). If chords are placed below a staff, they are not automatically put above the staff anymore if this is activated.
-If an extracted part includes fretboards, then "Chords->Set Chord Alignment to 'Left'" feature is not activated by default anymore.
-Improved chord metrics calculation on chords not attached to note entries
-In some cases improved spacing between colliding chords
-Chord symbols are not placed above text repeats symbols anymore.
-Chord symbols will now be placed below centered measure numbers above the staff. Make sure to give enough vertical space below the measure numbers above the staff as they won't be shifted upwards automatically in case of collisions with chord symbols.
-Chord symbols with fixed size fonts now have the correct metrics
-Improved chord collision removal, especially in measures with several collisions
-Chord placement on grouped staves where the chords are visible above the top staff, but assigned to the bottom staff could throw an error message if the chord alignment features are deactivated. Fixed now.
-Support for invalid/corrupt chord suffix IDs (e.g. ID 0 with no root): the plug-in will not crash anymore, but ignore these suffix IDs
-Improved chord metrics when the last element is a seven (i.e. reduced bottom width)
-Improved chord metrics on shifted notes and on chord clusters with seconds
-Improved detection if respacing is required in the case of only one chord per measure

Image 2e: Example of automatic chord alignment on the line of best fit. Outliers (m.6) are not included.


-New feature: Arpeggio signs can now be automatically shifted before the accidental/note. In Gold only the distance is adjustable (in Silver and by default it is: 9 EVPU).
The new option is "Reset->Shift Arpeggio Articulations Before Note. Horizontal Distance: 9 EVPU".
If there is not sufficient space before the note, space will be added.
In dense measures the results are better when "Document Options->Music Spacing->Avoid Collisions of Articulations" is activated before running Perfect Layout.

Image 3: First measure sufficient space, second measure extra space added

-Starting with v3.0135 predefined arpeggio symbols are now also supported if they don't have the "Copy Main Symbol" property activated.
-New feature: The function "Remove Duplicate Articulations" can now be deactivated ("Reset/Hide->Remove Duplicate Articulations"). In the Gold version it's also possible to define articulations which are to be excluded from the "Remove Duplicates" function ("Reset/Hide->Keep Duplicate Articulations".
-New option "Place Harmonics Articulations (Circles) Outside Tuplet Brackets" (Gold: on the Articulation tab/Silver: on the Tuplets tab). Use this option to define inside/outside tuplet bracket placement of the circle articulation.
-New Feature: The articulation property "Copy Main Symbol Horizontally" is now supported which leads to improved collision detection and staff alignment for example for trill extension articulations. However it's recommended to use custom smartlines for this purpose instead. They are more flexible.
-New option in Perfect Layout Gold: "Shift Fermatas on Bottom Staves of Two-Staff Groups Below the Staff". In Silver this is activated by default. Fermatas are only shifted below the staff in very simple scenarios (i.e. single layer, single voice, no cross staff notes).
-The option "Artics.->Inside Slur: Offset Before Articulation Gets 'Inside Slur' Style" which auto-generates inside slur articulation if otherwise too far outside the slur will now also work in some cases in Finale 26+. In RGP Lua it will now always work, in JW Lua it will work if the articulation is set to slur interaction mode "Ignore".
-Fingering articulations remain at their position in multi-layer scenarios where some articulations are on the wrong side
-New sub-option "Keep Duplicate Circle Symbols from String Harmonics" in the "Reset/Hide->Remove Duplicate Articulations" section. If there are multiple string harmonic articulations, then they are kept by default.
In the PL Gold this feature can now be deactivated/activated. In PL Silver it is always activated.
-More tolerance when detecting two matching Ped. * articulations that are placed on slightly different vertical positions. If they are more than 20 EVPU apart, they are not kept like they are, but vertically reset when "Reset Pedal Articulations" is activated. When less than 20 EVPU apart, they will remain at their place.
-Improved handling of several l.v. tie articulations on chords
-When multiple layers are used, then in some cases improved placement of articulations on articulations with slur/tie collisions
-Improved handling of jazzy "Fall" articulations
-In rare cases an error message could occur on pedal articulations in combination with hidden staves. Fixed now.
-In some cases the option "Place Harmonics Outside Tuplets" didn't save correctly
-In some cases slightly improved placement of tremolo articulations on whole notes
-Improved shifting of wiggle lines next to trill articulations when the articulations are shifted (however it's recommended to use trill smartshapes instead of articultion+wiggle lines as they are much easier to handle and to place correctly)
-Finale 26/27: in some cases of notes below the staff and two articulations above the staff improved vertical placement of articulations
-RGP Lua/Fin26+27: in some cases improvement placement of articulations on slur start and end notes -In some cases improved placement of breath mark comma articulations at the end of the measure (However it's recommended to use breath mark expressions instead, because they are not dependent of a note entry position)
-Improved articulation placement in a certain two-layer/two-voice scenario
-Improved placement of two articulations where one is set to inside slurs and one isn't
-In some cases improved placement of articulations above ties, if the articulation has a large area below the baseline.
-In Finale 26+ articulations that use the wrong stacking order because their IDs are in the wrong order in the Articulation Definitions dialog are kept as they are as it might be intentionally.
-Inside slur articulations on steep slurs are now also automatically created when the note has (additionally) a tremolo articulation
-Improved handling of piano fingering articulations (in more cases they are not moved at all)
-The "Reset/Hide->Hide Bow Marks in the Score" feature is now more intelligent: if a score includes many bow marks (>10 per string staff), then the bow marks are automatically hidden. It includes less, then they are kept.
-Automatic hiding of bow marks in the conductor score is now only activated by default if there are very many bow marks which probably are not required for the conductor. If there are only very few, but thus probably very important bow marks these are kept in the score.
-To avoid collisions of articulations with lyrics and to prevent the lyrics from being shifted too far away from the notes, two new options have been added for articulation placement on lyric staves (see Gould, Behind Bars, p.434)
Articulations->Shift Articulations on All Lyric Notes Above Staff (deactivated by default)
Articulations->Shift Articulations on Low Lyric Notes Above Staff (activated by default)
This option moves all articulations that could interfere with lyrics to above the staff. On the "Low Note" option you can set max. distance below the staff that is stil ok before shifting the articulation to above the staff (default value 42 EVPU).
In PL Silver/Silver400 the default setting is always used.

Image 4: Options for articulation placement over lyrics


-Improved accidental/note collision handling on resized staves
-Improved accidental collision detection if straight flags are used
-Improved horizontal collision detection between notes and accidentals on note entries with multiple accidentals
-Improved note collision removal over multiple staves in measures with grace notes and accidentals
-Improved metrics and collision detection on double flats and double sharps
-JW Lua: Added a new warning message to check if 'Document Options->Accidentals->Use cross-layer accidental positioning' is activated if the horizontal alignment of multiple accidentals feature is activated. This mainly affects very old Finale documents from the 90s, as the cross-layer feature is activated by default in all new Finale templates.
-RGP Lua: If the plug-in is run on a selected region only (and not the full document) and 'Document Options->Accidentals->Use cross-layer accidental positioning' is not activated, then the 'Alignment->Alignment of Multiple Horizontal Accidentals' feature is now deactivated. Otherwise it would be possible that duplicate accidentals on multi-layer unisons pop up. This mainly affects very old Finale documents from the 90s, as the cross-layer feature is activated by default in all new Finale templates.
-RGP Lua: If Perfect Layout activates Finale's 'Document Options->Accidentals->Use cross-layer accidental positioning' on old documents, then Perfect Layout will remove all accidental duplicates that are generated on multi-layer unisons that only have one accidental to keep the original accidental look of the old document.
-RGP Lua only: If "Use Cross-Layer Accidental Positioning" is not activated, Perfect Layout will now keep the congruent position of identical accidentals on multi-layer unisons. -Horizontal movements of multiple accidentals are not performed anymore on transposed staves with simplified keys (and "Display in Concert Pitch" deactivated) as JW Lua sometimes returns false flat/sharp values
-Corrupt accidental modifications are now detected and ignored
-Improved metrics on manually adjusted accidentals that use a different font than the default accidental font
-RGP Lua only: Added one more scenario of colliding accidentals that can only be detected in RGP Lua
-RGP Lua only: automatic activation of "Document Options->Accidentals->Use cross-layer accidental positioning" if "Alignment of Multiple Horizontal Accidentals" is activated in Perfect Layout
-RGP Lua only: The automatic "Use Cross-Layer Accidental Positioning" option now works the same way as the manual activation in Finale (including deleting all manual accidental positionings).


-Dynamic expression on stems from cross staff notes are now shifted before the stem:

Image 5: Before/After Perfect Layout v3.0

-Expressions from user-defined "Expressive Text" categories are now also taken into account for vertical/horizontal alignment with dynamics
-Improved compound f + p detection, if both dynamic expressions are on the same beat together with a hairpin
-Improved detection of hairpin/dynamic connections if the hairpin is upon a staff line (not above or below) and both a dynamic above the staff and a dynamic below the staff follows
-In some cases of steep diagonal hairpins improved vertical placement of surrounding dynamics
-In some cases improved placement of dynamics that were assigned to rests before a new phrase starts in two-staff notation in the bottom staff (e.g. piano).
-In some cases improved horizontal placement of dynamics above lyrics staves
-Improved connection of dynamics with expressive text expressions on long notes where the EDUs distance between the dynamics and the expressive text is more than 650 EDUs.
-Improved detection of dynamics above the staff with vertical alignment set to "Staff Reference Line" -Improved horizontal placement of dynamics on stemless staff styles. Note: Stemless staff styles can lead to a number of metric problems. If possible, avoid them.
-If two dynamics on adjacent measure positions are followed by an expressive text (like cresc.), then in some cases the expressive text now aligns better with the second dynamics
-Improved shifting to beat 1 of a horizontally misplaced dynamics on a full measure duration chord in the last measure
-Improved placement of dynamics when three (!) dynamic expressions are attached to the same beat. However: To avoid ambiguities it's not recommended to attach three dynamics to the same beat.
-Improved horizontal placement of dynamics at the end of the final bar of a system with a backwards repeat where a dynamic collides with the wings of the repeat bracket.
-In some cases improved placement on dynamics on very low notes (if followed by expressive text expressions)
-Piu, subito and sempre text expressions are not shifted before a dynamic anymore, if the dynamic is connected to a hairpin on the left
-subito dynamic expressions (e.g. sub.p) that are connected to a centered whole rest are now correctly aligned at the beginning of a measure (and not at the whole rest anymore).
-On rhythmic notation where an accent is set below the staff (instead of above), then a dynamic on the same measure position will not be moved before that (very low) note anymore, because the accent will be moved on top (if that feature is activated).
-Improved support for ffz, ffp, fsf and fffz dynamics
-Improved processing speed for searching dynamic expressions in a given region
-In some cases improved placement of dynamics in MusicXML documents
-In some cases improved horizontal placement of compound dynamics ("sub.p") on scores that have differently resized staves.
-Improved horizontal placement of expressive text connected with dynamics ("f" + "espr.") on resized staves
-Improved support for dynamics in the wrong category (Miscellaneous) that are assigned to flexible staves (top staff, bottom staff)
-Improved placement of dynamics before note clusters with many accidentals and very low notes
-Imprved placement of dynamics on two-staff groups (e.g. piano) with cross staff notes that have a default placement above (!) the staff, but which are placed below the staff.
-Improved detection of "best layer" for optimized layer assignment of dynamics in multi-layer scenarios with linked parts that only show selected layers
-In some cases improved horizontal placement of dynamic expressions on rests before very low notes
-In some case improved placement of dynamics and hairpins on very low notes
-Improved individual handling of dynamics below very low notes, if the score and the linked part have different "Display in Concert Pitch" settings
-Improved placement of dynamics on slash notation staff styles in empty measures that include only quarter rests (instead of no rests or a whole rest)
-Improved placement of dynamic expressions on very low stemmed-down notes with tremolo articulations
-Added one more scenario for vertical dynamics alignment on the baseline
-Improved placement of mf dynamics on (very) low notes below upstem notes (slightly further away).
-Improved detection of forte-piano dynamics built from two separate expressions
-Improved detection of new phrases after at least three rests. This can lead to improved dynamics placement if they were assigned between the rests and the first note of the phrase.
-In rare cases an expression with the EXCLUDE tag could cause an error message. Fixed now.
-Dynamics with an EXCLUDE tag are not aligned with hairpins anymore
-Dynamics are not moved before a note anymore if they collide with a pedal articulation below the note
-Dynamics above the staff on beat 1 on a rest are not shifted to the end of the previous measure anymore.
However, in most cases it's not recommended to place dynamics on rests as this can be confusing.
-Improved (non-)detection of compound "f"+"p" ("fp") dynamics when the first dynamic is assigned to a grace note on the same beat.
-Improved detection of compound sub./poco/pi¨ dynamic expression if the "sub." text expression is in the Dynamics expression category (instead of the Expressive Text or Technique Text category)
-Improved vertical alignment of dynamics in a rare combination of two voices plus articulations and dynamics.
-Improved placement of dynamics on beat 2, if the hairpin starts at the end of the previous measure and (accidentally) ends on beat 1 instead of beat 2
-Improved detection of compound "fp" dynamics if these are created with two dynamics ("f"+"p").
-Improved detection of automatic above/below staff placement of dynamics in some cases
-Improved placement of dynamics above the staff before the end of the bar or before very high notes
-Improved horizontal placement of instrument numbers (e.g. 1., 1.+2.) if a dynamic expression is on the same beat
-In very rare scenarios of multi-layer note entries improved placement of dynamics with attached hairpins
-In some cases improved vertical alignment of several dynamics in parts where the second hairpin is also followed by a very low hairpin. In much more cases these two dynamics are not vertically aligned anymore.
-In somes cases improved vertical dynamics/hairpins alignment
-In somes cases improved horizontal dynamics/hairpins alignment


-Improved placement of hairpins ending with dynamics on beat 1, if beat 1 is a long rest
-One case of connected cresc./dim. hairpins with improved vertical alignment
-One more cases of handling hairpins going beyond the last visible measure added
-Finale's hairpin opening width settings are not optimized anymore when the score is only selected partially
-One 1-line staves one more case for not creating diagonal hairpins was added
-In some cases improved spacing for hairpins in dense measures
-Improved collision detection for hairpins (far) above the staff on upstem notes
-In some cases improved placement of hairpins in complex cross staff scenarios where the hairpin crosses some stems.
-Hairpins with a width of 1 EVPU or less are not taken into account for measure widening anymore, as they probably are not used as standard hairpins.
-Improved handling of very badly placed (corrupted?) hairpins where the start point is attached to the end of the measure and the end point is attached to a measure position beyond the duration of the measure. Still these hairpins are not handled perfectly, because the intended end point is unknown.
-In some cases improved alignment of the hairpin start on long notes (more than 3072 EDUs)
-In some cases improved connection of hairpins with dynamics, if the staff has several hairpins below and above the staff
-Duplicate hairpins whose start attachment point is identical to the end point and which both have the identical start and end point are now correctly identified as "duplicate hairpins" and one of them is automatically removed.
-Improved alignment of hairpins with dynamics when a bar only has one long note, a hairpin ending somewhere in the middle of the bar and a dynamic attached to beat 1, but visually attached to the ending of the hairpin.
-In one case of hairpins/tie collisions on hairpins that span at least three systems improved vertical placement of the hairpin on the final system
-If a hairpin continues on the next page, the staff on the second page has a different position, but still the hairpin has the identical vertical page position as on the first page, in some cases the vertical hairpin alignment on the second page has been improved.
-Invalid hairpins where the start and/or end measure don't fit the measure of the SmartShapeMeasureMark are now deleted (and not made visible anymore). A warning message is issued.
-Improved hairpin metrics in case of staff styles that hide expressions
-In some cases of improved placement of hairpins below cross staff notes on the bottom staff of two staff groups (e.g. piano)
-In some cases improved snapping of hairpins to dynamics if the hairpin ends on beat 1 and the dynamics is on the next beat
-In some cases improved snapping of hairpins to dynamics if the dynamic is connected to a very long note (at least dotted whole note)
-If only a system is selected, then hairpins from the last (unselected) measure from the previous system are not changed anymore.
-In some cases improved hairpin placement on slur collisions where only the hairpin has a system break
-In rare cases improved horizontal ending of hairpins at system end before barline if the next system starts with a time signature change, Finale's "Display courtesy time signature at end of staff system" is activated and the top and the bottom staff of the staff system don't have a time signature (i.e. the time signature only appears on inner staves, not on outer staves).
-In rare cases improved horizontal ending of hairpins at system end before barline if the next system starts with a key signature change, Finale's "Display courtesy key signature at end of staff system" is activated and the top and the bottom staff of the staff system don't have a key signature change.
-In some cases improved placement of hairpins before dynamics on very low notes
-In one case improved placement of hairpins in very stretched measures if the hairpin ends close to the dynamics.
-Improved connection of dynamics with hairpins where the dynamic has a large horizontal offset (compared to the attached beat position), but it is visually attached to the hairpin in the score

Niente Hairpins

-Improved connection of niente expressions to hairpins in one case (niente expression at end of measure, followed by a rest and a new dynamic on the next beat 1)
-Improved connection of niente expressions with hairpin if the niente expression is at the beginning of a measure and the hairpin ends in the previous measure
-Improved placement of niente expressions below chord clusters with notes on the opposite of the stem -In some more cases improved niente expression/hairpin connection.
-RGP Lua only: if the document uses niente hairpin expressions, but has no expressions with enclosures, you won't see a warning message anymore as RGP Lua can create new enclosures.
-Improved support for niente symbols from text fonts that end with a dot ("n.")


-Improved placement of two parallel glissando lines that start on the same pitch, but end on two different notes.
-Glissando lines that were accidentally connected to two notes although they visually only refer to one note (i.e. a glissando from undetermined start note to the end note) are now better placed
-When multiple glissando lines are attached to a chord and some of them are visually attached to the wrong note, these glissando lines are now ignored (as it is unclear what the composer wanted).
-Glissando lines are better taken into account for staff collisions and text expression placement
-Glissando lines with horizontal note offsets >250 EVPU on both sides are ignored for placement optimization


-New option (Gold only): "Optimize Slur Settings" now has a suboption to "Optimize Slur System Break Settings".
-New Option "Reset/Hide->Convert False Beat-Attached Slurs to Entry-Attached":
Especially in old Finale documents slurs are sometimes beat-attached instead of entry-attached, but still have the entry attributed activated.
This leads to some problems and these slurs usually don't look as good as the standard engraver slurs.
With this option activated the slurs are attached to the closest notes. If there is no close note (>= 256 EDUs away) or if there are notes in multiple layers, then it won't be changed.
This feature is activated by default, but only enabled if also "Reset Manual Slur Adjustments" is activated.
-RGP Lua/Finale 27 only: When most of the "Smart Shape Placement" settings are still set to 0,0, Perfect Layout initializes the slur placement settings with Finale's default settings. However, for whatever reason this does not work with very old files created with Finale v1.x or v2.x.
-When "Optimize Slur Settings" was deactivated, then "Optimize Slur System Break Settings" was still activated on the next plug-in start. Fixed now.
-In some cases improved slur metrics on system breaks and with custom slur offsets. Typically this is not relevant with the default settings of Perfect Layout, but only when "Reset/Hide->Reset Manual Slur Adjustments" is deactivated or on special slurs where custom offsets are not automatically reset (e.g. slurs across staves).
-Manual break offsets on slurs that span multiple systems and that at least have two bars in between on the second system are not removed anymore.
-Improved support for detecting collisions on slurs that start and end on cross-staff notes
-In some cases improved metrics on some slurs with a system break, on flipped slurs with direction set to "Over"
-Finale 26/27: in some cases improved metrics on slurs with articulations on the inner notes
-Slur to tie conversion now also takes place when both notes have the same pitch, but one has the enharmonic flip bit set to "not flip".
-Hidden slurs remain hidden even if "Reset Manual Slur Adjustments" is activated
-Improved handling of (misused) slurs as laisser vibrer ties or articulations
-Slightly improved slur metrics in some cases of slurs with no ending note
-Improved slur metrics if the start or end note has two articulations where one has the "inside slur" and the other one the "auto inside/outside" flag set, but still are both placed outside the slur.
-Improved metrics on inverted backwards oriented slurs
-Improved slur metrics on end notes of slurs that have several "Inside Slurs" articulations
-Improved slur metrics if the start or end note have two articulations where one is set to inside slurs and one isn't

Other Smartshapes

-Dashed or solid lines that are visually connected to expressions can now be aligned horizontally with them (but not vertically!). The horizontal distance can be set with the new option "Align Expressions with SmartShape Lines Horizontally. Distance: x EVPU". In PL Gold this option is on the "SmartShapes" tab, in PL Silver it's on "Alignment".
-Ottava smartshapes that start on a rest are not horizontally aligned anymore, but kept at their starting position
-Custom smartshapes after the final barline that are used for visual effects are kept as they are
-Custom lines far away from the staff (left and right offset >500 EVPU) are ignored for staff spacing
-Custom lines with an empty space symbol for as line character are ignored for spacing on the inner staves if they span at least three staves and thus the inner staves don't have any line or text symbol from this custom line.
-Improved support for corrupted smartshapes (removed an error message that could occur in rare cases)
-When SmartShapes with line style "Character" are used in the score (e.g. trill extension), PL now makes sure that the SmartShape is not shortened so that it becomes invisible: at least a "one character width" is now achieved.
-Improved horizontal placement of custom lines above the staff at the end of a measure
-In some cases improved metrics and collision detection when custom lines are used for glissandi. However, it's recommended to use the Glissando or Tab Slide tool instead which attaches the glissando to noteheads (instead of beats).
-On smartshapes that span at least three systems and two pages in some cases a rehearsal mark/tempo mark/tempo alteration expression could be placed at the wrong vertical position. Fixed now.
-Improved placements of the ottava symbols 0xe510, 0xe511, 0xe514 and 0xe515 from the font "Finale Maestro" in Finale 27 (in other Finale versions it already worked fine)
-Improved handling of smartshapes that internally end beyond the last visible measure
-Improved metrics of "dashed/solid line up/down" smartshapes that are set to "Make Horizontal"
-On corrupt documents with invisible custom smart lines in rare cases an error message could occur when the invisible smart line ended in a deleted measure beyond the current last measure. Fixed now.
-Custom smart lines that are directly on the staff lines (and not above) don't get a barline offset anymore when colliding with the right bar line.
-Improved placement of custom smart lines below the staff at the right barline
-Gold (only): The distance of smartshapes above the staff (i.e. trills, ottava lines) can now be set on the new "SmartShapes" tab. Three distances are available: distance to top staff line (default: 25 EVPU), distance to top staff line on 1-line staves (58 EVPU), distance to top note symbol (23 EVPU). These settings were already used in previous versions, but were not adjustable.


-If "Optimize Tie Settings" is activated, the tie settings are now only updated if the full document is processed.
-Cross-staff notes are not retied over the middle of a bar if this will break a complex beam structure.
-Improved tie/articulation collision detection of whole notes on a rhythmic notation staff style when there is also a hidden note above the staff
-Improved tie metrics on ties starting on grace notes
-Improved tie metrics on downstemmed bottom notes
-Improved detection of tie collisions with expressions, hairpins and articulations on grace notes
-In some cases improved detection of (falsely) hidden accidentals through wrong "Tie End" flags
-Improved handling of "Tie End" flags where the previous tied note is on a different layer
-Improved handling of "Tie End" flags where the previous measure has a backward repeat or a slash/repeat/blank notation staff style
-New feature: If the "Tie End" flag is not set on the first beat of a (second or higher) repeat ending, then it will be set automatically if the last note in the last measure before the first repeat ending is tied (see image below).

Image 6: Tie End Flags

-Improved collision detection of backwards tied notes in repeat endings.
-L.V. ties are not removed on resized notes any more as these could be cue notes from other instruments
-L.V. ties are not removed on notes before slash or one-/two bar repeat notation staff styles
-The option "Ties->Re-tie Notes Only if First Tied Note Starts After Beat 1" is now deactivated by default
-"Re-tie Notes Which Cross the Middle of the Bar" now also supports the "Voice 2 Launch" flag
-New suboptions (in Gold only) for "Re-tie Notes Which Cross the Middle of the Bar":
a) "Re-tie if it Yields More Dotted Notes" (activated by default)
b) "Re-tie if it Yields More Short Dotted Notes" (deactivated by default)
c) "Re-tie Simple Patterns (max. 3 Notes)" (deactivated by default)
The "Re-tie Simple Patterns" does not refer to patterns where the note durations are only exchanged. I.e. even if the option is deactivated a half note tied with a quarter note is automaticall changed to a quarter note with a half note if the half note crossed the middle of the bar.
In compound time signatures it behaves the other way round: more dotted notes becomes less dotted notes.
In Perfect Layout Silver/Silver400 the default values always apply.

Image 7: Re-tie Note Options


-Improved collision detection on clefs that don't use the default clef font
-When only one staff in one system is selected, then the previous measure could be affected in music spacing if the selected system started a clef change - although it was a outside the selected region. Fixed now.
-RGP Lua only: The processing speed was improved on huge orchestra scores (>500 measures with many staves) by using the "Change to Default/Whole Rests" plug-in instead of using a Lua function. It is required for detecting all clef changes.
-Improved violin clef metrics when the previous staff system ends with a double or final barline.
-Clef changes at the end of a bar before an empty bar remain at that position and are not moved to before the bar where the notes start
-Much faster startup process of the plug-in (=faster clef detection), especially on macOS and on large files with more than 1000 measures

Piano/Organ Notation

-Perfect Layout Gold only: New option "Center if Also Dynamics on Bottom Staff" as sub-option of "Center Dynamics and Hairpins Between Two-Staff Groups". If there are dynamics below top staff and below bottom staff on a piano two-staff group, then the top dynamic will not be centered between top and bottom staff anymore, but attached to the top note. On Silver this is deactivated by default.
-In dense piano parts improved placement of dynamics on beat 1 after hairpins in the previous measure
-In some cases improved hairpin start on two staff groups (e.g. piano)
-In 3-staff groups (e.g. organ) improved assignment of dynamics to the correct staff (below top staff instead of above middle staff)
-Improved centering of dynamics between two staves on piano notation in parts
-Improved vertically centered placement of compound dynamics with expressive text in piano (two staff) notation (e.g. "piu" + "ff")
-Improved placement of dynamics/hairpins centered between two piano staves in case of a technique text expression below the dynamics.
-Improved placement of dynamics/hairpins centered between two piano staves very low placed beamed rests (with "Extend Beams over Rests" activated)

Image 8: Examples of Optimized Piano Notation with Perfect Layout v3

-Dynamics on beat 1 assigned to the bottom staff in two staff groups (piano notation) where the top staff only includes a whole rest are now assigned to a new layer in the top staff. Otherwise they would appear centered below the whole rest in the middle of the bar.
-Improved text expression placement on piano (two staff) groups with a whole note in one hand and several notes in the other hand.
-Improved placement of dynamic expressions on very low notes in two staff groups (e.g. piano notation), if the bottom staff is empty.
-Measure counting expressions are not added on bottom staves of two staff groups (e.g. piano) anymore
-Automatic removal of hairpin on empty measures now also works on 2-staff piano groups

Page Texts

-New Feature: Hidden measure-attached texts are now supported in JW Lua and RGP Lua
-New feature: The bottom margin on the first page is automatically adjusted if otherwise text elements (e.g. copyright text) would collide after stretching the system(s) on the first page to the page margin (Option "Systems->Auto-Adjust Bottom Margin for Colliding Page Texts on Bottom of First Page")
-Improved bottom page text element detection on the first page in parts and adjusting of the page bottom margin, if the systems neither have a "Bottom Margin" nor a "Distance Between Systems" value greater than 0.
-Better detection of text elements assigned to a page (not to a measure) that are used as movement names
-Improved handling of colliding copyright page text at the bottom of the first page when "Expand Horizontally" is deactivated for that text block
-On detected movement names as page texts, PL now automatically sets the "Begin a New Staff System" attribute, so that the the start measure of the new movement always remains at the beginning of the measure, even if "Reflow Measures Across Systems" is activated.
-Improved measure layout optimization if the document includes several movements separated by page texts
-All four system divider symbols from SMuFL fonts are now detected correctly (0xE007 - 0xE00A).
-Improved detection of movement title page texts when they overlap with the staff system
-Improved placement of system dividers (slightly higher)
-Improved recognition of text elements on the first page that are actually invisible (far outside the page)
-System dividers (as page text elements) in the score are now handled correctly if they are not not hidden in parts, but appear on hidden pages from a part which turn to visible pages through the plug-in processing and system respacing.
-Support for system dividers with different font sizes on each page: if each page has a different page scaling and uses system dividers with different font sizes, these system dividers now keep their original font size. However for a good score look it's usually not recommended to use a different page scaling and differently sized system dividers on each page.
-Measure texts in the middle of a score with a very high vertical offset (>200 EVPU) are only taken into account for vertical spacing, if the vertical offset minus the text height is below 200 EVPU.
-Small measure texts above the first measure that actually should be page texts are ignored in vertical system spacing (e.g. composer names)
-Metric calculation of page texts attached to measures now supports borders and the "Expand Horizontally"/"Expand Vertically" feature.

Tempo/Rehearsal Mark Expressions

-In rare cases improved vertical placement of above staff text expressions (especially over chords)
-In some cases improved placement of tempo text expressions over hidden bow marks in the score.
-Tempo/rehearsal mark expressions on hidden staves that are visible in the score on the staff below (for whatever reason) are now taken correctly into account for staff spacing and alignment
-Improved placement of rehearsal marks in case of multiple collisions with stems, articulations and other expressions.
-Improved placement of rehearsal marks when Document Options->Key Signatures->Cancel Outgoing Key Signature->When switching between sharps and flats is deactivated
-Improved metrics of enclosed rehearsal marks with thick lines
-If tempo/rehearsal marks have very different horizontal offsets in score and parts, then in some cases they will now have improved placement in the parts.
-Improved (non-)detection of rehearsal mark-like expressions that have huge horizontal or verticals offsets above 500 EVPU
-Improved alignment of tempo marks and alterations on bars with one (long) note only where the tempo marks goes slightly beyond the next barline and either collides with another expression or is on the last bar of that system.
-Improved placement of rehearsal marks over barlines on tied upstem notes that cross the barline
-Improved vertical placement of two tempo/rehearsal mark text expressions in some cases
-Improved metrics and collision removal on enclosed expressions that includes tempo definitions with upstem notes
-Improved placement of rehearsal letters over fixed size measure numbers on individually resized staves
-Improved detection of rehearsal mark expressions in case of combined rehearsal mark plus tempo mark text expressions.
-In rare cases improved placement of tempo/rehearsal marks on slur collisions with the previous measure.
-In some cases improved horizontal placement of rehearsal/tempo expressions on beat 1 if the note has a slur from the previous measure
-In some cases improved of vertical placement of reh./tempo mark expressions if there are at least two expressions on that beat
-In some cases improved spacing of tempo marks, if there are at least four text expression above the staff (one rehearsal mark, one tempo expression and two other expressions)
-In some cases improved placement of rehearsal mark letters after an ending bracket instead of above
-In some case improved alignment of rehearsal marks with tempo marks when the alignment option "Per System (On the Line of Best Fit)" (Don't Skip Rehearsal Marks) is selected and some other tempo marks on that system absolutely don't fit on that line.
-Improved detection of tempo alteration expressions visually connected with dashed smartshape lines.
-Improved detection of duplicate identical expressions on the top staff when one expression is assigned both to score and part, and one expression to score only.
-Improved detection of tempo mark expressions with notes made of grace note symbols
-Improved detection of rehearsal mark with repeat bracket collisions on the top staff when "Ending & Text Repeats" is deactivated in the staff attributes dialog, but the repeat bracket is set to "Top Staff" only
-If "Alignment->Place Rehearsal Marks at Start of System" is set to "Keep Current Position", then the rehearsal marks will stay at their position even if they get horizontally very close to measure numbers.
-Improved collision elimination on rehearsal marks with repeat brackets
-Duplicate tempo/reh. expressions are not only detected and removed on the top staff, but also on other staves.
-In some cases improved placement of rehearsal marks on collisions with text repeat symbols
-Faster sorting of vertical text expression order
-In some cases improved measure width on wide tempo/rehearsal marks above the staff that go past the barline when the next bar starts with an expressive text expression on beat 1
-In corrupt documents (invalid staff IDs with values above 15000) in rare cases tempo/rehearsal expressions with a staff list would be hidden in parts. Fixed now.
-Wide text expressions on beat 1 that collide with a rehearsal mark in the next measure now also widen the measure if their expression category name is user-defined, but the expression definition is set to break multi-measure rests.
-In some cases rehearsal marks at the beginning of a system which starts with an over slur from the previous system get an improved vertical position
-Improved placement of rehearsal marks between two chord symbols
-Improved vertical placement of multiple reh./tempo mark, alteration expression above the staff if they are all from different categories, but have the identical font size and style.
-Rehearsal/tempo mark expressions with chord symbols in the same measure, but without collisions are placed vertically better in some cases
-Improved placement of rehearsal marks over the barline that have a very low horizontal offset(below -200 EVPU)
-Improved vertical placement of multiple text expressions on the same measure position
-Improved placement of text expressions above barlines in certain scenarios of multi-measure rests with ranges
-Fixed: In very rare cases an error could occur when deciphering page text elements (this only occured once in an old score from Finale 2001 which also had other problems).

Technique Text Expressions

-Improved vertical placement of opaque Technique Text expressions
-Short standard Technique Text expressions like pizz., arco, div., a2, etc. on very high notes are now put close to the staff before the note if there are only rests before that note and if the expression otherwise would have a very high offset (image 8).

Image 9: Option "Shift Expressions From Above to Before Note if Otherwise High Vertical Offset"
-Text expressions that collide slightly with the left barline are moved to the right (like already on right barline collisions to the left)
-Improved handling of barline collisions with technique text expressions
-Improved horizontal alignment of dynamics followed by a technique/expressive text expressions when the technique/expressive text expressions starts at the exact horizontal position as the dynamics. It's not necessary anymore to be place them slightly to the right.
-In one case improved placement of Technique Text expressions on collision with a note with a flat accidental (no movement to the right, only downwards)
-Technique Text expressions that collide only collide a little bit with the barline or that are very short (4 letters) are now shifted before the barline if the barline collision feature is activated
-In some cases improved horizontal placement of Technique Text expressions on beat 1
-In some cases improved vertical alignment of Technique Text expressions before dynamics
-Improved collision handling on Technique Text expressions that collide with multi-measure rest numbers
-Two technique text expressions from the same category and with the same text style that are placed above the staff and at the same measure position are now correctly aligned on top of each other, if they were colliding.
If they were already separated, then the top expression will remain on top. If they were overlapping, then the expression with the smaller expression ID will be put on top.
This feature will only be activated if there are no chords in that measure.
-"Express.->Vertical Offset to Closest Symbol" is not cut off at 50 EVPU anymore. The new max. value is 300 EVPU.
-In one case the option "Express.->Max. Vertical Snap Distance" was grayed out though it had to be enabled. Fixed now.
-New expression tags "DONOTRAISE" and "DONOTLOWER" for text only expressions that are affected by the "Snap Text Expressions to Symbols" feature. This feature prevents a placement too close to the staff while at the same it allows movement away from the staff in case of collisions.
If the description text of the expression includes any of these tags, the expression will not be moved closer to the staff than the default settings of the expression allow. I.e. the expression is "stopped" at its baseline. "DONOTLOWER" is for expressions above the staff, "DONOTRAISE" for expressions below the staff.

Measure Counting Expressions

-New option "Restart Measure Counting on Time Signature Changes" added to the measure counting options (activated by default).
-Improved vertical placement of measure counting expressions of slash staff styles on 1-line staves.
-When only single measures or tiny regions were selected and slash or repeat staff styles were applied to large regions, then the measure counting feature is turned off to avoid wrong counting.
-If a one-bar staff style follows directly after a slash staff style (not good practice), then only one measure counting expression will be added (not two).
-Improved placement of measure counting expressions on drum set/percussion staves even if the notes are far above the staff
-Improved placement of measure counting expressions on collisions with repeat text (e.g. D.S. al Coda)

Other Expressions

-New option "Shift Expressions on Right Barline Collisions to the Left (If Enough Space and Only Rests Before)" (in Silver on the Alignment tab, in Gold on the Expressions tab). Technique text and other (non-tempo/rehearsal mark) expressions that are taken into account for vertical correction (i.e. "Snap Expressions to Symbols" activated) are shifted to the left if they would otherwise collide with the right barline. This is only done when there is sufficient space to the left and when there are only rests before the note where the expression is attached.
-G.P. text expressions ("Generalpause") are now included in collision detection and shifted upwards, if necessary
-Better placement of below staff expressions that collide with measure number ranges on multi-measure rests that are far below staff (more than 50 EVPU below the lowest the staffline)
-In some cases improved placement of Expressive Text expressions in old Finale documents that use "Vertical Click Position" alignment
-Improved detection of multiple line expressions on expressions with hidden text
-Improved checking of expressions that are "Scaled with the Attached Entry" to avoid slightly moving an expression to a beat where the scaling changes.
-Expression category names of the Spanish Finale version are now correctly detected
-In some cases improved collision removal on expressive text on the same beat with dynamics that also collide with accidentals.
-Support for the expression category names in the new French edition of Finale 27.3
-Improved detection of multi-word "molto" expressive texts below hairpins (e.g. "molto cresc.")
-Improved detection of linked expressions in score/linked parts when the expression is horizontally aligned to start or end of measure and the measure position is set to a value not equal to 0.
-Fermata expressions near rests (<120 EDU) are now also recognized for rest optimization. Especially in very old Finale documents where expressions didn't snap to notes, the fermata expressions were not correctly detected. However, usually it is recommended to use fermata articulations above notes and rests. Fermata expressions, for example, should be used above barlines or if unrelated to notes.
-Duplicate expressions are now detected where one expression is assigned to all layers and one to a single layer, but only one layer exists in that bar. In this case the single layer assigned expression is removed if all other attributes are also identical.
-Improved handling of invalid/corrupt text expressions
-Corrupt expressions with negative IDs are automatically deleted
-Corrupt (=empty) expression definitions are cleared and replaced with a valid expression with no text
In Gold the distance to the barline is adjustable with the option "Expression to Barline Distance".
By default and in Silver the barline distance is set to 16 EVPU.

Image 10: Option "Shift Expressions on Right Barline Collisions to the Left"
-If hidden/corrupt expression definitions are found, a warning message is shown. This can occur especially in old Finale documents that have gone through several different versions of Finale. It might be possible to fix this by running the "Delete Corrupt Expression Definitions" lua script before Perfect Layout. (Available from https://elbsound.studio/download.php?f=DeleteCorruptExpressionDefinitions.lua )
-Improved handling of expressions in parts that are far, far away from their (0,0) original attachment point (like 1000 EVPU to the right and 500 EVPU to the top). These are kept where they are.
-Improved vertical/horizontal placement of bracket-only expressions (expressions that only have bracket symbols with space in between) that include another expression in its middle.
-Additional "5 staff line"-expressions for clef changes on 1-line staves at system end are not added anymore if the "Display Courtesy Clef at End of Staff System" option is deactivated.
-Invalid expressions with a negative ID don't throw an error message anymore, but are deleted.
-Pedal expressions that collide with dynamics are now shifted below them if there are no other pedal expressions/articulations in that measure
-Resorted text expression creation in the code to reduce number of text expression definition accesses to make the code slightly faster
-Expressive text above the staff next to dynamics will vertically align better in some cases
-Improved metrics calculation on unicode characters from the "nonspacing mark" category (https://www.compart.com/en/unicode/category/Mn)


-Improved cue text expression placement on two staff piano notation if the top staff is empty.
-Cue texts on highpitched stem-up notes above the staff don't collide anymore with the note
-On cue note sections that include empty bars and clef changes in the score, the unnecessary clefs in the empty bars are now also hidden by default.
-In some cases improved direction of cue note stems
-Cue notes on slash/rhythmic and repeat notation are not taken into account anymore for automatic detection of cue note layers and removal of cue notes in the score
-When hiding notes in cue note measures in score the "Display Empty Rests" attribute in that bar will remain the same as before.
-When hiding notes in cue note pick up measures in the score, rests in non-cue layers will remain.
-New warning log message when a cue note measure in the score includes no rest on the "normal" layer and it's a (short) pickup measure where "Display Rests in Empty Bars" makes no sense
-Slightly improved settings of the "Hide Cue Notes in Score" staff style


-New feature: Tuplet collisions with accidentals are now detected and fixed
-New default setting for the "Put Tuplet Numbers on Notes Far Above the Staff on Top (And Vice Versa) and Add Brackets": it will add brackets if there are at least 3 ledger lines and the tuplet is not surrounded by small steps.
The feature has also been fine-tuned a little bit more. It now looks even more at the surrounding notes to decide whether tuplet brackets are to be added or not.
-On multiple nested tuplets the tuplet brackets of all nested tuplets are now placed on the opposite side.
-In some cases improved placement of split nested tuplets
-Improved tuplet placement on many mixed up-/downstem tuplets
-Collision support for several tuplets nested in one large tuplet (e.g. three 16th note triplets in an 8th note triplet)
-Tuplet brackets are not put on the other side on very high/low notes if these include ties or slurs (in previous versions it was only slurs)
-On lyrics measures with multiple layers tuplet brackets are not put on top of a note
-In some cases of tuplets on note clusters improved tuplet metrics
-In some cases improved tuplet metrics on tuplets that end at the barline and which have the "Bracket Full Duration" option activated.
-Finale's tuplet default settings are not optimized anymore when the score is only selected partially
-In some cases improved placement of tuplets in linked parts (if they had certain different settings between score and parts, and the default settings were set to "Always Flat")
-In some cases improved tuplet number placement on tuplets with "Center number using duration" activated
-In some cases improved placement of "outside tuplet" articulations, if the tuplet also includes "inside tuplet" articulations
-Improved calculation of tuplet brackets below notes in some cases
-Improved metrics on tuplets using the "Full Bracket Duration" option
-Improved metrics on some tuplets with the "Always Flat" option where the first note is unbeamed
-Improved detection of tuplet bracket collisions with ties
-Improved decision of whether tuplet brackets are required for the case of notes where the duration was slightly changed manually (for playback purposes) and where the duration doesn't match its actual note length. Accetable is note duration deviation of 30 EDUs
-Improved metrics of some tuplets that include whole notes
-Tuplets that start with a rest and only include whole notes are now placed on the correct side (fixes a Finale bug)

-Mixed up-/downstem tuplets are now handled more precisely. Finale's default placement of these tuplets is very often poor.
These tuplets can now get the "Always Flat" attribute and will be placed on the proper side according to Gould in "Behind Bars" on page 198. It takes into account the number of collisions with slurs, articulations, dynamics and hairpins and finds the best placement, preferably on stem-side and/or above the staff.
For this feature the Gold edition of Perfect Layout gets three new options:
"Tuplets->Flip Mixed Up-/Downstem Tuplets, if Necessary" (activated by default)
"Tuplets->On Dynamics or Hairpins Always Shift Above the Staff" (deactivated by default)
"Tuplets->Flatten Mixed Stem Tuplets" (activated by default).

Image 9a: Option: Flip Mixed Up-/Downstem Tuplets, if Necessary

Image 9b: Option: On Dynamics or Hairpins Always Shift Above the Staff

Image 9c: Option: Flatten Mixed Stem Tuplets

-Tuplet collisions with accidentals are now detected and fixed (v3.0187):

-In some cases improved placement of tuplet brackets over tied notes
-Tuplet brackets on slash notation are now set unvisible when the tuplet notes are hidden behind the slashes

Multi-Measure Rests

-PL Gold only: New option "Multi-measure Rests->Allow Hidden Expressions to Break Multi-Measure Rests". When activated hidden expression with the "Break Multi-measure Rest" attribute activated, will break multi-measure rests. This feature is deactivated by default.
However, it's still possible to break multi-measure rests with visible expressions that use the "hidden" text style. This feature also works in PL Silver/Silver400.
-Multi-measure rest numbers from SMuFl fonts now have the correct vertical metrics.
-In some cases of new multi-measure rest creation improved measure metrics
-If only some measures were selected in a part which included a multi-measure rest with a dynamic expression (!) at the end of the system, then in some cases the dynamic used to be shifted to the start of the system. Fixed now.
-Multi-measure rests are not created automatically anymore on aleatoric measures: these are detected if "Display Rests in Empty Measures" is activated on the staff, but deactivated on the current staff style.
-Improved handling of "single measure multi-measure rests" when "Start Numbering At" is set to 1.
-PL now breaks multi-measure rests on collapsed or cutaway measures. This is a different behaviour than Finale's own multi-measure creating algorithm. But it makes more sense and is more what the composer would expect.
-If the only symbols of a measure are a hidden rest and a custom smart line, then the measure will not be consided for multi-measure rest creation anymore.
-Under a multi-measure rest with hidden expressions and non-hidden expressions both hidden under a blank notation staff style with invisible notes in parts in some cases PL used to break the multi-measure rest. Now it is kept as a multi-measure rest.
-Under the contradictory situation that a linked part didn't have multi-measure rests yet, but multi-measure rest creation was activated in PL, while at the same time "Only With Systems" was activated in the Finale "Measure Reflow" settings, an error message could occur under certain multi-measure rest scenarios. Fixed now.
-Clef/multi-measure rest collisions are now also handled when the multi-measure has a width of x measures where x = the value "Use Symbols for Rests Less Than x Measures". In previous versions it was only handled if the mm rests had a width of x+1 measures.
-The "MMRests->Set Repeat Staff Style Measure Width to" value is now correctly updated when changing the measurement unit.
-Slightly improved metrics on the measure number ranges below multi-measure rests
-Gold only: New suboption "MMRests->Allow Reflow Across Pages". When automatic measure reflow on multi-measure rest (re-)creation is activated, this new option let's you decide whether the measures will reflow across pages when "Finale->Preferences->Edit->Reflow Across Pages" is deactivated.
In previous versions this was always activated. It's still activated by default and in the Silver edition.


-New feature: Vertical alignment of first and second ending brackets is finally available in Perfect Layout.
You will find this new feature under "Groups/Repeats->Repeats->Align Ending Repeat Brackets Vertically".
With the first release of this feature all notation elements will be put under the ending bracket, except tempo and rehearsal mark expressions.
Current Limitations:
The feature currently only works in scores with just one repeat bracket per measure (e.g. not one bracket above the score and one bracket somewhere in the middle of the staves). Also the property "Allow Individual Edits per Staff" must be deactivated for the repeat element.
However, ending brackets in linked parts are already supported.
At the moment the feature has six options:
1. "Align Ending Repeat Brackets Vertically": (de-)activates the feature
2. "Reset Ending Brackets to Default Height": If deactivated and a bracket was manually set to a high offset, it will remain there. I.e. it will only be shifted upwards on collisions, but never shifted downwards. If activated, the plug-in will always first reset the brackets to the default distances and increase the distance on collisions.
3. Gold only: "Additionally Reduce Default Height On 1-Line Staves": on 1-line staves the height of the ending repeat can be reduced which usually looks better (default reduction: 20 EVPU)
4. Gold only: "Reset Ending Text Position": if activated, the ending text position will first be reset to the default position and shifted upwards in case of collisions. Deactivated by default and in Silver.
5. Gold only: "Vertically Align All Adjacent Ending Brackets": by default it aligns all adjacent brackets on a staff system vertically. If deactivated, each ending bracket will get its individual height.
6. "Vertical Distance on Collisions": the distance of the bracket/ending text to the next notation element (20 EVPU by default)

-Gold only: New option "Repeats->Hook Heights". With this option you can select whether the hooks of repeat endings will remain their height when shifted upwards or whether they should be extended. By default "Auto-Detect" is selected which automatically analyzes the hooks of the first three repeat endings. In PL Silver the auto-detection is always used.
-Improved horizontal placement of text repeat symbols with inconsistent justification values
-In some cases improved vertical placement of text repeat symbols from staff lists
-Improved metrics of text repeats elements over 1-line staves
-On collisions of right-aligned coda symbols with measure numbers above the barline from the next measure, the coda symbol is moved before the measure number.
-Two ending brackets (without repeat brackets) in adjacent measures don't overlap anymore, when the repeat bracket is missing in the first measure.
-Improved handling of repeat symbol visibility, if repeat symbols are hidden in the staff properties of some staves
-Less collisions with repeat brackets in parts
-When the "Use Thin Inner Barline" is selected in the repeat prefences and the repeat bracket spans multiple measures, then in some cases the width of the repeat bracket is improved
-Collisions on wide repeat texts with notes or slurs from the previous measure are now fixed.
-In some cases improved metrics on repeat texts in parts when the staff property "Items to Display: Ending and Text Repeats" is deactivated, but the repeat symbol is forced to show up.
-Support for detecting and eliminating collisions of repeat texts with multi-measure rest numbers in SMuFL documents
-Removal of collisions of repeat texts with measure numbers at the start of a bar
-Ending brackets that extend over several measures are not shortened to a one bar width if they have an ending hook of at least "10 EVPU" height. In previous versions at least 17 EVPU was required for the hook.
-Fixed: When only a few measures were selected, an error could occur in some cases of repeat text definitions.
-In some cases improved placement of text repeats in linked parts when the measure width changes

System/Staff Spacing

-Vertical system/staff spacing reworked with many improvements
-Improved vertical staff/system layout in some cases: more intelligent algorithms that automatically update options to prevent unnecessary pages or too wide vertical spacing
-Improved vertical staff/system layout dialog layout. Separated into four sections: staff distance, system distance, system alignment at the page margins and other system options.
-Vertical system spacing now supports scores where each page has different heights, bottom or top margins.
-Vertical system spacing now supports totally collapsed staves with a negative "Space Between Systems" value
-New feature: The option Systems->Adjust Top System Margin to Max. Position of Top Staff in Parts is not automatically activated by default anymore when there are page text elemens below the top page margin (which would then collide with the systems).
Improved auto-detection for the best setting of "Adjust Top System Margin to Max. Position of Top Staff in Parts" option. When "Reflow systems across pages" is activated and the staff systems don't have a huge top margin (<=110 EVPU), it's not deactivated automatically anymore. Make sure to put your top page texts above the top page margin before running Perfect Layout to avoid collisions with systems.
-New option "Systems->Max. Distance Between Staff Systems". It's now possible to explicitly set the maximum distance between staff systems. This also means: if the maximum distance is reached, then the systems won't align with the page bottom margin on that page anymore.

Image 11: Fixed max. staff system distances (above) or alignment at the page bottom margin (below)
-New option: "Systems->Max. Distance Between Staff Systems (Parts)". The max. distance between staff systems can now be set for score and parts separately. By default this is handled automatically. So you have to activate each option manually. The score uses a default of 800 EVPU, loose spacing 280 EVPU and tight spacing 200 EVPU.
-New option: "Systems->Distribute Single Staff Systems Evenly Over Last Two Pages if at Least (5) Systems on Last Page".
When activated (by default), this feature distributes all systems on the last two pages evenly.
When deactivated, it's possible that the last page only has very few systems which only fill the top part the page.
-In some cases slightly improved processing speed on the vertical system layout algorithm
-New option "Alignment->Exclude Large or Far Away Text Expressions from Vertical Staff Alignment (unless FORCEINCLUDE added)". While in previous versions this feature was always activated, it's now possible to ALWAYS include these large or far away expressions in vertical spacing by deactivating this option. This is especially helpful for musical theatre/opera scores with lots of large text inserts.
When activated only those large/far away text expressions are included in spacing where the text FORCEINCLUDE has been added to the description field in the Expression Designer dialog (see FORCEINCLUDE and EXCLUDE command in "Quickstart: How to use").
-New option "Auto-Suggest 'Parts' Value" (activated by default): automatically suggests a value for "Systems->Min. Bottom Margin for Parts" dependent on the current system distances in the parts before Perfect Layout.
-When activating/deactivating the "Optimize Staff/System Distances" on some scores you will now get a message to restart the plug-in, as some system processing may already have been performed before changing the feature (which can't be undone) or because some processing needs to be done before the main dialog of the plug-in. In that case just re-run the plug-in and confirm everything with "Ok". The settings from your plug-in setup have been saved before re-running the plug-in.
-"Systems->Min. Bottom Margin of Staff System" is now available separately for score and (linked) parts (Score default: 80 EVPU, parts default: 200 EVPU)
-Support for "ghost staff systems": A valid hidden ghost staff system below a regular staff system in the score doesn't mess up the layout on that page anymore. Valid means: all staves with the "collapse" staff style and at least one measure included on that system.
-Better automatic vertical staff spacing on scores with two systems per page: very large empty areas between the two systems are now automatically reduced if it looked better to give slightly more space to the staves.
-On very low hairpins between the staves of piano notation there will now be larger vertical staff distances.
-Improved staff/system distance slider values for extra space in vertical spacing when there is very much free space between the systems on less than 4 systems per page with a max. of 3 staves.
-In some cases improved staff distances on piano notation in case of hairpins with expressive text below.
-In some cases improved vertical distance between two-staff groups (e.g. piano) in scores that also include other instruments.
-Improved metrics of the bottom staff if the bottom staff has more than 96 EVPU of size (e.g. 6 strings or 5 tab lines with wider line spacing).
-Improved vertical staff distances on two-staff groups (e.g. piano) when a dynamic is placed at least -185 EVPU below the top staff on a cross staff note.
-If there is a "Begin a new staff system" flag in measure 1 only, it won't trigger the warning message to remove all "Begin a new staff system" entries any more.
-When a staff on a staff system only has word extensions or just a few lyrics, but long word extensions, it will now be detected as staff with lyrics which improves the vertical spacing.
-In some cases improved vertical staff/system layout, if there are several lyrics staves
-Improved vertical spacing of systems in linked parts: if optimized page turns leads to only few systems per (<=6), then they are less often spread to the bottom of the page. Now the bottom of page is now usually left free.
-In some cases the distances between empty and used single line tablature staves could be slightly different (e.g. in guitar tabs). Fixed now.
-In some cases improved vertical system distances in linked parts (especially on the Tight Spacing option)
-Improved vertical staff/system layout dialog layout. Separated into three sections: staff distance, system distance, system alignment at the page margins.
-When only some staves are selected in the score from first to last measure and these staves have their own linked parts, these parts are now handled as "fully selected parts" which enables more features for that part
-In some cases improved measure layout per staff system in the linked parts
-Improved dense vertical spacing between systems in extracted or linked parts with the "Allow Overlapping Systems" feature
-The "General->Bypass Empty Staves" feature now supports staves that are totally hidden in the score and parts (=collapsed). When this feature is deactivated, this doesn't irritate the vertical staff spacing algorithm anymore.
-"Systems->Allow Overlapping Systems" is now activated by default which improves the system layout in parts.
-Note entries on two staff (piano) groups placed on the top staff, but with downstem beams below the bottom staff don't influence the vertical spacing anymore.
-Vertical spacing between systems now also works correctly if a staff system uses huge negative "Distance Between Systems" values
-Support for "fake cross staff rests" in vertical staff spacing: if a rest is placed so low (e.g. rest offset -40) that it virtually appears on the next staff although it is not a cross staff note, then the rest will be ignored in vertical staff spacing and not lead to large vertical staff distances anymore.
-Improved vertical staff system spacing in some cases that use a very small page scaling (e.g. 10%) and a large staff system scaling (e.g. 170%).
-Small text elements attached to measures/staves, but vertically visible on other staves (because of high vertical offsets) are now better taken into account for vertical staff alignment
-Improved vertical spacing if a part has many completely empty systems (hidden with a staff style).
-Vertical system layout now also works correctly if "Resize Vertical Space" was deactivated on some systems
-When only one system and a part of the next system (not the full system) on the first page were selected, then the vertical staff distance in the first system would be reduced to the minimum collision distance, but not expanded if there was sufficient space.
-If the first page with systems in a part has a different (usually larger) page bottom margin than the following pages and "Systems->Align Page Bottom Margin with..." is set to the default value (Auto-Detect: Fixed/Lowest), then the last system on the first page will be aligned better with the page bottom margin.
-Improved vertical staff/system spacing in some cases of three systems per page with at least four staves
-Improved staff distance on piano systems with cross staff notes when beams come close to the upper staff.
-Improved vertical system spacing on parts with only few systems (that don't span the full page)
-Improved vertical system spacing if a two-staff system has both staves superimposed.
-Improved vertical spacing in some case of staves that are hidden in some systems
-Improved vertical spacing in some case of staves that are hidden in the score and used in parts only
-Improved detection of two staves at identical positions (on top of each other, e.g. in piano notation): in case of rounding problems these are now also detected if they have a +/-1 EVPU system distance.
-In some cases improved vertical staff spacing with hidden staves in the score
-When activating/deactivating the "Optimize Staff/System Distances" on some scores you will now get a message to restart the plug-in, as some system processing may already have been performed before changing the feature (which can't be undone) or because some processing needs to be done before the main dialog of the plug-in. In that case just re-run the plug-in and confirm everything with "Ok". The settings from your plug-in setup have been saved before re-running the plug-in.
-In vertical staff/system spacing the last system on a page is not moved to the next page anymore (which could happen only in very rare cases, especially cases when the staff height in a system was not at 100% in parts).
-Improved detection of "two staff groups" (e.g. piano notation)
-In some cases slightly faster vertical system spacing in parts
-Improved automatic detection whether a part needs to have music spacing applied. This is still an incomplete check that only tests a few measures. If required, then the Optimize->Always Apply Music (Re-)Spacing will be activated, but it will only be applied to those parts where the plug-in detects it. When you manually activate this option, it will be applied to all parts.
-Fixed: When running the system/staff optimization only one some pages (and not all pages), then in some cases the bottom staff wasn't accurately placed according to the selected "Align Page Bottom Margin with" setting.
-Fixed: When "Optimize Staff/System Distances" was deactivated and the average staff system bottom margin was above 220 EVPU, then in some cases the staff system layout was still affected by PL.
-Support for corrupt staff systems where the first measure of the staff system is set to 0. This probably comes from very old versions like Finale 3.5. Perfect Layout will reapply a page update which fixes this issue.

Image 12: Automatic Score Alignment with the Default Settings of Perfect Layout v3.0


-Coda expressions that are set to align with the "Horizontal Click Position" and which have a huge offset (>30 EVPU) are not reset to 0 EVPU anymore as it is unclear where are to be placed exactly.
-When coda systems in parts started with a multi-measure rest, then in some cases the systems were not shifted down. Fixed now.
-If the very last measure is a single coda measure, then it will not be automatically shifted at the end of the previous system.
-Improved detection of coda symbols in expressions for shifting down coda systems
-Improved detection of coda expressions at the start of the coda block
-The "Shift Coda Systems Down" feature now also works in linked parts


-New Feature: "Empty" note shape modifications (i.e. where no features are activated) are now deleted
-Improved rest metrics in some multi-voice scenarios
-Improved metrics calculation of the inner side of beams
-Improved detection of unnecessary freeze stem flags under tuplets and under slurs
-"Minimize Rests" now also supports rests with activated "Voice 2 Launch" flags
-Improved rest optimization under slash notation staff styles with measure counting expressions
-In some cases improved horizontal placement of unison notes on two layers
-No more layer optimization when a note has a smartshape and a freeze stem.
-The "Freeze Stem" not flag is not deleted anymore on a certain cross staff notation scenario.
-Resets the corrupt cross staff note entry flag if no cross staff notes are found
-Improved metrics on percussion staves on note clusters with unknown percussion maps
-Better support collisions of percussion notes that are not found in the percussion layout. However, it's recommended to always have the used percussion notes included in the percussion layout.
-Improved collision removal between two notes, especially on accidental/note collisions
-RGP Lua: Automatic activation of the "Layer/Cues->This document uses linked parts with "Specify Voicing"..." feature, if necessary
-Very long rest symbols (8192, 16384, 32768 EDUs) are not converted to whole rests anymore if there is only one of this rest in a measure.
-When a half rest is used in a 2/4 measure (instead of a whole rest), it is automatically converted to a whole rest. If the half rest was also shifted to the right, its position will be reset as whole rests are automatically placed in the center of the bar.
-Partial support for ledger line collisions with expressions. Only the top ledger line is taken into account and only with a fixed ledger line width.
-Detection of notehead modifications if only the enharmonic flip flag was set
-Improved detection of instrument changes and key signature changes when one instrument uses a percussion notation and the other one doesn't
-If only one layer above layer 1 is used (Layer 2-4) and the automatic "Move to Layer 1" feature is activated, Perfect Layout will now also include measures with ties to previous/next measures if this doesn't mess up the tie.
-Improved respacing in the case of measure stacks that only include hidden notes
-Gold only: New option "Reset/Hide->Reset Note Offset to 0 even for Bars with Only one Note" (deactivated by default). If there is only one note in a bar that lasts for the whole measure duration, it is common in older notation to have these notes centered in the middle of the bar.
By default Perfect Layout now keeps these notes centered unless they have a shorter duration than the measure duration.
In Silver this feature is always deactivated which means that shifted single notes that last for the full measure or longer always keep their current offset.

Note/Measure Spacing

-New feature: Horizontal collision removal of dotted stem-up notes colliding with stem-down notes one second below.

Image 13: Dotted Note Collisions

-Improved spacing in measure 1 if the default clef is different than the actual clef and measure 2 is empty.
-Improved measure spacing on wide text expressions when a multi-measure rest follows in the next measure and the expressions collides with text expression in the measure after the multi-measure.
-Improved metric calculation of whole note chords
-Improved width optimization of single empty bars
-The "Document Options->Music Spacing->Maximum Measure Width" is not reset to 1800 or 2000 EVPU anymore, if it was set to a value above 1800 EVPU before running Perfect Layout.
-Improved note spacing on multiple note layers in percussion notation
-Improved adding of horizontal space in some note collisions, especially with accidentals
-Improved placement of notes on note/accidentals collisions: if after inserting space, the note flag at the end of the measure collides with the barline
-In some cases improved detection of note/accidental collisions.

Image 14: Improved Spacing for Multi-layer Dot and Accidental Collisions


-New Gold option for rest optimization: "Keep Beamed 16th Note / 8th Rest / 16th Note Pattern" (see Gould, Behind Bars p.163). In the Silver version this feature is activated by default.
-New option "Also Optimize Rests on Dashed Barlines, Ticks or No Barlines at All" (deactivated by default). If activated, then rest optimization is also performed on measures with dashed barlines, ticks or without barlines.
-Rest optimization now supports more composite time signatures that are usually written in a more simple way, e.g. (3+3/8)=6/8
-Improved placement of consolidated rests in "two octave" transposing instruments when "Keep Octave Transposition" is activated
-In one case improved rest splitting on tuplets
-In case of at least three layers with two rests and one note at the same measure position, there will be no consolidated rests on the middle of the staff anymore. Even if "Optimize Rests->Force Consolidated Rests" is activated.

Staff Properties/Staff Styles

-Detection of hidden notes when the staff settings (not the staff style settings) are set to use slash notation
-Improved detection of "Alternate Notation" staves that don't use staff styles
-New option "Also Add Double Barline If More Than One Key Signature Changes are Found" added. In previous versions Finale's "Double Barline Preceding Key Signature Changes" was automatically activated when exactly one key signature change was found. Now it's also possible to activate it automatically when multiple key signature changes were found (Deactivated by default).
-Improved detection of percussion notation staves, if neither the staff name nor the instrument attribute includes any hints. Now the group name and the staff clef are also taken into account. This is relevant for some percussion specific notation features.
-Improved handling of corrupt staff styles: invalid staff style assignments (=not existing, corrupt staff styles with no name) are deleted from the score.
-Improved next staff detection in 3-staff groups when the inner staff is completely hidden
-Improved detetion of groups where the curved group bracket is missing
-Improved handling of documents with corrupted staves with negative staff IDs -Invalid staves (ID:-1) are now detected and removed.
-Added collision detection for tablature staves with stems and beams over/under the staff. In previous versions the stems and beams were ignored.

Time Signatures

-Support for fractional time signatures: If irrational time signatures are used (e.g. 0.375/1 or 16.25/4), Perfect Layout doesn't crash anymore. Note: JW Lua can't read these time signatures, so please don't use them. For 0.375/1 write 3/8.
-If the current staff is the bottom staff of the staff system, large time signatures are now also taken into account for vertical spacing if they are attached to the previous or the penultimate staff, but have their bottom margin below the current staff
-Support for 0/4 as "Display Time Signature"
-"X" time signatures (i.e. "No Time Signature) with expressions are now supported. They are not detected as "Rehearsal Marks" anymore. Note: to be detectly correctly they must be between 46 and 124 EVPU of size, use the horizontal alignment "Left Barline" or "Start of Time Signature" and the vertical alignment "Staff Reference Line"
-The plug-in doesn't crash anymore on composite fractional time signatures with a "+" sign (e.g. (4+0.5)/4).
-Improved detection of hidden time signature changes


-Improved font metrics if a font has kerning tables with multiple sub tables
-Improved .OTF font detection on both macOS and Windows
-Improved font detection on fonts using "-Roman" as name extension
-Improved detection of font files on non-English Windows/macOS, especially for the French edition of Finale 27.3/Windows 11.
-Improved detection of font files with style names (bold, italic, etc.) on non-English Windows/macOS
-Improved metrics for fonts that have integrated enclosures (like EnclSans or RehearsalSans), if they are used for measure numbers or rehearsal marks.
-MacOS: improved font file detection and conversion for OTF fonts
-macOS: Improved handling of fonts with "Bold Italic" style
-More music fonts are automatically recognized by Perfect Layout
-Better detection of the Sebastian font which exists in a SMuFl and a non-SMuFl version with identical attributes
-If an unknown SMuFl is was used where the niente symbol (0xe541) is missing, then PL doesn't show an error message anymore.
-Support for Concerto, Concerto STD, CapoScore, CapoScore STD, cap1800, Bravaccidental, Engraver Time C, Lelandia font family, Lighthouse, Scherzo, Scherzo Std, Legato Music Font and Groove music fonts. Make sure to not have the other "Legato" font from Melody/Harmony Assistant installed together with "Legato Music Font". These two fonts don't work together.
-Improved text font file detection on font names with LT/MT Std, "Roman" in the file name and/or where the Finale font name is written with blank spaces and the internal OS font name is written without blank spaces.
-Improved font name and font file detection: scanning the font files now takes a slightly longer, but detects more different (sub-)font names.
-Added better font file name support for some music fonts (i.e. detection of the font despite weird file names)
-Added more new font symbols to the font database to recognize all SMuFl symbols from the Finale 27 default document and to give better support to all Finale SMuFl fonts
-Exponential hairpins are now also supported from the fonts Norfolk Special Std, Opus Special, Opus Special Std
-If Node.js and/or the required plug-in scripts are not installed and thus an OTF font can't be read, Perfect Layout will now display an error message. Just re-run the Perfect Layout installer to solve this.
-Windows: Perfect Layout didn't recognize Node.js if the Node.js environment variable was not set correctly. The new installer now sets the environment variable and doesn't depend on the Node.js feature anymore.
-When the default music font from the "Dynamics" expression category is not in the Perfect Layout database, you will now be asked if the font is Maestro-compatible. On 'Yes' it will use the Maestro entries from the font database. On 'No' the plug-in will cancel.
-Improved log message on font annotation file creation
-Windows: The font annotation file is now also included for the optional Bach font
-Corrected accidental symbols in the font engine for the latest versions of the fonts November2 and Sebastian (SMuFL)

New Installer on Windows

The Windows installer has been completely rewritten and uses a new installer system.
The plug-in registration and activation is now the same as on macOS:
it's done directly in the plug-in and not in the installer anymore.
It's also possible to quickly deactivate the plug-in on the General tab of the plug-in.
Reactivation only takes a few seconds. You just to need to run the plug-in again (see this tutorial video).

Like on macOS it's now possible to run the installer again and again. It will overwrite the current installation and thus make it easy to install updates.
Of course, the quick "self-update" of the plug-in is still available too.
Note: you need internet access when running the plug-in for checking/registering the license.

There is also a new "Remove Perfect Layout Windows Installation" tool which totally removes Perfect Layout on Windows in case of installation problems.

Installer on macOS

-Solved rare installer bug: the -10673 Error which affects installers from many software companies (see FAQ)
-Under certain circumstances the "Two Activation" license had problems when one computer had a IPv4 address and the other an IPv6 address. Fixed now.
-Improved installer for updating the RGP Lua version
-Improved installer when changing the installation folder
-Updated the macOS installer builder to work with notarytool instead of altool
-macOS: better error codes when entering the wrong or no password during the auto-update feature
-macOS: Improved position of the progress bar on setups with multiple monitors.
-macOS: Support for several multiple monitor setups stored in /Library/Preferences/com.apple.windowserver.plist (earlier versions of Perfect Layout supported only ONE multiple monitor setup)

RGP Lua: (PL v3 now also works in the new Finale plug-in platform RGP Lua by Robert Patterson)

-The v3 installer installs RGP Lua v0.66 (as of 14th March 2023). This is now also the minimum version that is required. v0.65 and earlier are not supported anymore by Perfect Layout/RGP Lua. However, JW Lua 0.54 is still supported.
-Instead of JW Lua the PL installer now installs the latest version of RGP Lua in Finale 25-27+. In Finale 2014/2014.5 (32Bit) JW Lua is still installed, because RGP Lua only supports 64bit as in Finale 25-27.
-Making PL compatible with RGP Lua (Part 1): changing dialog styles
-Making PL compatible with RGP Lua (Part 2): Fin25/Fin26 version number corrections, changing dialog styles, updating articulation functions
-Making PL compatible with RGP Lua (Part 3): articulation metrics and tie setting fixes
-Making PL compatible with RGP Lua (Part 4): solving issues with articulations in RGP Lua/Fin26+
-Making PL compatible with RGP Lua (Part 5): Grace notes with articulations
-Making PL compatible with RGP Lua (Part 6): The "Stack Automatically" option is now detected in JW Lua.
-Making PL compatible with RGP Lua (Part 7): More articulation compatibility stuff, fixed an issue with stem modifications in RGP Lua in Finale 26+, fixed an issue with accidental detection in RGP Lua
-Making PL compatible with RGP Lua (Part 8): In Fin26+ articulations that are usually inside the slur and that are set to slur interaction mode "Auto Inside/Outside" are set to "Ignore".
-Making PL compatible with RGP Lua (Part 9): In some cases improved placement of an articulation over grace notes if the articulation is actually assigned to the following non-grace note.
-Making PL compatible with RGP Lua v0.66: no more dialog pop-up at the end of the processing when using Perfect Layout in batch processing
-Making PL compatible with RGP Lua v0.66: Updated the "Apply to Parts Only" plug-in to work with the "return value" feature of RGP Lua.
-Making PL compatible with RGP Lua v0.66: Music spacing now also works in the redesigned beat chart spacing behaviour of RGP Lua v0.66
-Making PL compatible with RGP Lua v0.66: In rare cases an error message came up in PL's "Time Signature Width" function which didn't occur in previous versions. Fixed now.
-Making PL compatible with RGP Lua v0.67: some improvements on mathematical functions
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (FCBeatChartElement:SetWidth requires EVPU16 value)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (FCSystemStaves with no staves, tonumber() with numbers, support for negative chord suffix IDs, FCPage:GetFirstSystem)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (Angle calculation)br> -Making PL compatible with RGP Lua v0.67/Lua 5.4 (FCBeatChart.ReferenceWidth, FCSmartShapeSegment:SetEndpointOffsetX, FCExpression:SetHorizontalPos, FCExpression:SetVerticalPos, FCTextRepeat.HorizontalPos)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (glissando connections, accidental distances, loading pages and a few more)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (More glissando connections, lyrics baselines and a few more)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (Staff system problems with staves with ID -1)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (Beat chart and measure width problems)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (Region problems)
-Making PL compatible with RGP Lua v0.67/Lua 5.4 (Articulation and staff system problems)
-RGP Lua only: on a staff that is included with "Specific Voicing" in linked parts the feature "Layer/Cues->Remove Unnecessary Use of Layers 2-4, if possible" is not executed anymore
-RGP Lua only: In very rare cases the pickup measure duration was reset to 0 as RGP Lua falsely reported invisible rests on beat 1 as visible although they were actually hidden because of the pickup measure setting. In JW Lua this problem didn't occur.
-RGP Lua 0.68+: When a new update is found, the plug-in will now list all the new features and improvements in the new version.
-Probably less false positive antivirus alerts by having even more tools directly included in a single RGP Lua file
-Partial support for beam extension modifications added.
-Partial support for tie modifications added.
-The title of the main user dialog now includes a JW Lua or a RGP Lua tag and their version number
-Unnecessary warning message about Fin26 compatibility removed
-Improved metrics on 8VB, 15MB and trill symbols in smart shapes
-Help buttons now have a question mark symbol
-Help images are now shown directly in the plug-in and not in the external web browser anymore.
-In Finale 25-27 "Automatic Music Spacing" is now deactivated automatically through Perfect Layout. The warning message doesn't pop up anymore.
-Windows only: Added an error message when the default DOS code page is set to an invalid value (65001). This typically occurs when the Windows Beta option 'Beta: Use Unicode UTF-8 for worldwide language support' is activated in the Windows "Region Settings" dialog. It's a known Windows issue that this option doesn't support old DOS commands like the ones Perfect Layout requires.
-Windows only: Support of non-850 ANSI Code Pages for the activation of the plug-in (e.g. Taiwan Windows). -Windows only: Removed the black popup windows
-Windows only: changed the internet and system access functions to (hopefully) be more resistent against false antivirus alerts


New Feature: -"Apply Perfect Layout to All Parts Only" is a new feature that was requested a lot.
If you have completed the score and have run Perfect Layout, then you do the parts and want to apply Perfect Layout to the parts only, you can use this new sub-plug-in "ES Perfect Layout - Apply to Parts Only".
It will appear in the Finale menu below your original ES Perfect Layout entry:

This will run Perfect Layout separately on each part (so the plug-in will be called for each part individually).
But you have to adjust the settings in the user dialog values only once.
Perfect Layout will then be applied to all parts.
You can either apply the plug-in to all measures (default) or you select a measure stack in the score and it will only be applied to these measures.
It's currently not possible to apply it to selected parts only.
Note: Running the plug-in on parts only reduces the number of available Perfect Layout features.
Note: This feature is only available in Finale 25+ with RGP Lua (not supported in Finale 2014/2014.5 and JW Lua).
To be consistent with the score, all features that would also affect the score are deactivated or not applied.
It is recommended to always apply Perfect Layout to the score at least once, before applying it to the parts later:
this is required to prepare the whole document for Perfect Layout.
--The Finale undo/redo feature for a quick before/after Perfect Layout preview no longer messes up the bar widths anymore.
-New feature: Spanish has been officially added to the supported user dialog languages

-The Silver edition now also has the "Bypass Empty Staves" option on the General tab which can speed up the processing time in some cases. By default this is activated.
-Gold only: When changing the measurement unit in Perfect Layout a minor rounding inconsistency (e.g. 799.99 instead of 800 EVPU) could occur on the two "Systems->Max. Distance Between Staff Systems" values. Fixed now.
-Improved log messages
-The log file now includes the version number of the plug-in
-When the "Deactivate All Settings" preset is loaded, then the measure number alignment will now be saved correctly as "Keep Current Position" (and not as "Automatic Detection" anymore).
-Italian/Japanese Finale version only: support for plug-in detection. Needed for the "ES Perfect Layout - Apply to Parts Only" plug-in and for accessing other plug-ins.
-When an Asian OS is detected (Japanese, Chinese, Taiwanese), the safety unicode mode is activated by default to prevent crashes with unicode symbols.
-Japanese Finale version only: support for Japanese expression category names
-A score consisting only of one staff plus its tablature staves is now detected as a part, and not as a score anymore.
-Less log messages when several duplicate identical expressions are found on the same beat
-Added new warning message if antivirus software blocks the plug-in registration
-Added more error messages on installation and activation problems
-Perfect Layout's check and warning message if "Display in Concert Pitch" is activated now works again in Finale 26 and 27. In Finale 25 it only works correctly in the default "RGP Lua" engine (in JW Lua it's deactivated in Finale 25). It also works correct (and has always been) in Finale 2014/2014.5.
-Updates that require running the full installer (e.g. when RGP Lua has been updated) now have an extra message and the automatic self-update won't work in that case.
-Windows/RGP Lua: The self-update feature has been improved. Self-update sometimes did not work on slow computers.
-Added one more other error message for self-update problems
-Windows: Improved stability and more error messages for the activation process when (probably) the antivirus system blocks the activation
-Improved dialog: when run on parts only, the option "Alignment->Place Measure Number at Start of System" is disabled in the dialog.
-The activation dialog now also shows the version of the current plug-in in the title.
-More preview images
-Improved log files for the Node.js installer
-When clicking on "Load->Last Saved Settings" the measure number alignment setting and the rehearsal mark aligment setting sometimes selected the wrong algorithm. Fixed now. However, this didn't occur with the last saved settings that are automatically loaded when starting the plug-in: in this default case the plug-in always selected the correct algorithm.
-If a Finale document was exchanged between macOS and Windows which had different MacSymbolFonts.txt settings and used symbols from a legacy "MacSymbol Font" from the slots 0x0152 to 0x2200, then the metrics calculation was incorrect in some cases. Now the plug-in checks if the corresponding MacSymbolFont symbol is available and, if so, uses the correct metrics from that symbol. This affected, for example, enclosure symbols from the SwingText font.
-Partial support for mirror measures: in some cases wrong note metrics were calculated. In general it's not recommended to use mirror measures in Finale.
-Partial support for mirror measures (Multi-measure rests). Still mirror measures are officially not supported by PL.
-Partial support for mirror measures (Rehearsal mark expressions in mirror measures). Still mirror measures are officially not supported by PL.
-Improved support for the old "Special Part Extraction" feature: correct horizontal alignment of repeat brackets.
-Improved support for the old "Special Part Extraction" feature: correct chord width detection
-Windows: Improved system accesses for better acception of some antivirus software (Avira and Panda)
-Added more help for rare installation problems to the FAQ
-Improved detection of invisible key signature changes
-The "Double Barline Preceding Key Changes" feature in Finale is not activated anymore when an invisible key signature change on a percussion staff is detected.
-The "Remove Unnecessary Use of Layers 2-4" now also checks the MIDI channel before allowing the layer change. The MIDI channels are different between layer 1 and layer x, then it won't change the layers anymore.
-The "Have you saved the document" dialog will not popup anymore when the document was saved right before calling the plug-in.
-Improved warning message about a missing internet connection. The warning messages now mentions that sometimes the firewall prevents access to the internet.
-Running the plug-in on a non-selected region means that the plug-in will process the full document. In extremely rare cases (like errors in other Finale plug-ins directly before running Perfect Layout) Perfect Layout did nothing as it thought nothing at all should be processed. Fixed now.
-Added a detailed list of Finale document options that change through Perfect Layout (https://elbsound.studio/perfect-layout/optimize.php#go-to-optimize8)
-Windows: the Progress Bar application on Windows now had its first update since v1.x. In batch processing and on the new "Apply to All Party Only" plug-in it used to show the progress bar only on the first file or part. Now it is shown on each file/part. To update the Progress Bar file you need to run the Perfect Layout full installer. The self-update does not include it.
-"Invalid slur" message is not shown in the log anymore if only a partial region was selected and the slur was partially attached to a measure outside the selected region
-Warning message added when many staves from measure 1 to the last measure are selected, but not all: was this intended or should it have been the selection of the full document?
-Improved detection of "full score selected"
As some features of Perfect Layout only work if the full document is selected and some users have accidentally selected the visible staves only, the warning message should help to avoid this problem.
-The warning message in the log file "Text repeat element in measure 54 is set to left justification, but currently (nearly) aligned with the right barline." (and vice versa with left) is not shown anymore on staves where the text repeat element is hidden because of a text repeat stafflist.
-Improved support for hybrid SMuFl/non-SMuFl fonts (e.g. November2, Aruvarb) in Finale 27.
-The "Download Updates" page on the Elbsound.studio website now automatically detects the operating system
-Windows: The automatic update now makes sure that the downloaded user language files don't conflict with Windows' virtual store feature.
-Support for scores where the top staff is hidden and used in the parts only (in previous editions Perfect Layout issued a warning message and cancelled the processing)
-Updated PDF manual
-Windows: Improved dialog for language selection for RGP Lua and JW Lua
-Windows: Installer automatically repairs false Windows registry Path entries for PowerShell, cmd and wmic
-The Safari/macOS browser appended a .txt file ending when downloading the additional .lua files from the homepage. Fixed now.
-Some browsers automatically appended a .zip file extension to the .exe installer.
-Translation improved in the registration dialog: in non-English languages some English words occured.
-Improved French translation (more than 200 new lines) and fixed some user dialog issues of colliding texts
-Updated Node.js to current version v16.17.0 to support native M1
-Improved Italian translation
-Improved support for preventing the "QXPScriptingAddition.osax" error on some older maOS installations.
-Improved macOS installer
-macOS: The "System Events" problem detection is now more tolerant against library problems that don't affect Perfet Layout.
-macOS: The quickstart tutorial in the browser only pops up at the end of the installation when the plug-in is installed for the first time.

System requirements:

  • 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