Version History

v0.66 Mar. 10, 2023 Scripts can now register to run when Finale starts up.
Report the 1st return value of a script, regardless of type. (Previously only strings were reported.) This behavior can be suppressed with a new finaleplugin.IgnoreReturnValue property.
Fix bug that prevented finenv.ExecuteLuaScriptItem from returning the script's 1st return value when the script had no error.
Fix FCMiscDocPrefs.SpecialExtractionID for Finale 25 and 26.1.
FCString now uses double for all floating point conversions.
Added FCUI::DisplayExpressionDialog to add support for choosing either text or shape expressions.
Added FCNote::CalcNumberOfLedgerLines
Added __FCStaffBase::CalcTopLineStaffPosition and __FCStaffBase::CalcBottomLineStaffPosition
FCTimeSignature and FCKeySignature now derive from __FCBase. They were never valid data structs, and calling Load or Save on them never had any effect.
Added FCAllotment and FCAllotments to lua classes.
Added functions to FCBeatChartElement and FCBeatChartElements.
Added FCArticulation.OnStemDistanceFromStemEnd property.
Embed and (optionally) preload the luaosutils library.
Added FCNoteheadMod.EnharmonicFlip property and support function FCNote::MatchSpellingToScore.
Added FCCustomLuaWindow::RegisterHandleActivate so that scripts can detect window activation/deactivation.
Upgrade utf8 library from Lua 5.3 version to Lua 5.4 version.
Change global script path string and global last undo string to be per-session.
v0.65 Dec. 7, 2022 Errors in Lua callback functions now cause the script to abort, same as if the error had occurred in any other Lua code.
Add new Finale 27.3 properties to FCGeneralPrefs.
Disallow self-execution with FCLuaScriptItem.
Add full smart shape prefs, including FCSlurContourPrefs
Add FCCellGraphic (edit-only, similar to FCPageGraphic)
Add visible flags for repeats
Add new playback types for FCTextExpressionDef
Add new methods for handling voiced parts, and update several FCNoteEntry calculations to take voicing exclusions into account.
v0.64 Aug. 28, 2022 Add FCString::EndsWithString
Add FCSeparateMeasureNumber::Get/SetIsAlternateNumber
Add missing properties to FCGeneralPrefs
Add FCCtrlComboBox class
Support RestorePosition with modal dialogs (Mac)
Add FCLuaScriptItem and FCLuaScriptItems to allow scripts to launch other scripts
Add FCUI::GetUserLocaleName
Add FCCtrlRadioButton and FCCtrlRadioButtonGroup
Add FCCtrlImage
Add __FCUserWindow::IsDarkModeAppearance and corresponding (mac-only) event handler
Add DPI-awareness for Windows dialogs.
Add FCControl::CreateFontInfo.
Add notifications to FCCtrlSlider.
Add full luasocket base (including both socket and socket.core) plus compatibility with the rest of luasocket, if finaleplugin.LoadLuaSocket = true specified.
Fix longstanding bug in FCSmartShape::CalcRightCellMetricPos
v0.63 Jul. 8, 2022 Add method FCMusicRegion::IsEmptyAndNotSinglePos and change FCLuaIterator to use it.
Implement SetFileFolder for macOS in FCFileSaveAsDialog.
Allow CreateDisplayFullNameString and other base-class functions that call FX_AutoNumberedName_UTF16 to work with FCCurrentStaffSpec.
Add methods CalcStaffInPageView, CalcStaffInScrollView, and CalcStaffInCurrentView to FCExpression.
Add method FCSmartShape::CalcLyricBased
Backport the utf8 library from Lua 5.3 into Lua 5.2. It is now added automatically in the RGP Lua environment.
Add eachstaff() standard iterator for FCMusicRegion instances.
Add FCSecondaryBeamMods collection to Lua, plus a few enhancements to make secondary beams easier to edit.
Added FCBeamExtensionMod class.
FCStaffNamePosition::SetJustification and GetJustification work as documented. To activate the record you now *must* set UsePositioning true.
Add FCUI::IsLayerVisible method.
Add FCControl::SetFont method.
Add FCCtrlStatic::SetTextColor method.
Add FCCustomWindow::MoveAllControls method.
Hooked up FCControl::MoveRelative, MoveAbsolute, and ResizeRelative to Lua.
v0.62 May 17, 2022 Add FCParts.GenerateParts()
Add FCLayerPrefs.GetMaxLayers()
Add support for auto-numbered names on staves (including multistaff names).
Add FCCellText.Visible property.
Remove sorting in Win config list.
Fixed FCBaselines::AssureSavedLyricNumberForPiece and FCBaselines::AssureSavedStaffForPiece to work as documented. (Previously they returned null unless the baseline record already existed.)
The Class Browser is now *much* faster and is no longer dependent on an external XML parser.
Add FCBrokenBeamMod support.
Add FCTieMod support.
Replaced FCNoteEntry.CalcMultiLayeredCell method with efficient fast version.
Add FCBaselines.LoadAllForSystemStaff method.
v0.61 Mar. 2, 2022 Added SetFocus and SetKeyboardFocus to Lua.
Fix issue with LoadString becoming LoadStringA on Windows.
Fix issue with Win dialog controls not scaling correctly with system settings.
Add new FCPartStaffVoicing class.
Add new properties to FCCustomSmartLineDef.
Add missing FCNote and FCNoteEntry bit settings.
Add missing static functions.
Add new StrechHorizontally property on multimeasure rests and prefs.
Add stand-alone configuration mode.
Add finenv.DebugEnabled and finenv.LoadedAsString.
Call plugindef() function before executing script (to match JW Lua behavior).
Feb. 1, 2022
Added finenv.RetainLuaState, which allows scripts to maintain state across calls.
Added finaleplugin.LoadAsString, which allows any script to request to be loaded as a string, overriding the RGP Lua setting.
Fixed bug in FCCell.CalcClefIndexAt
Added method FCGuides.SaveAll to work around Finale bug in Finale 26.2+ when saving FCGridsGuidesPrefs.
It is now possible to create new FCEnclosure instances.
RGP Lua Class Browser only builds the class index once and remembers its settings.
RGP Lua Class Browser now allows you to start editing the class field while the class index is building.
RGP Lua for Windows now reads text files correctly.
Added "Load As String" setting. This specifies that a script (or folder of scripts) should be loaded into a string and then passed to Lua. The main advantage is that if the file contains a NULL character, Lua interpretation stops at the NULL. (Otherwise the Lua interpreter would fail with a compiler error.)
Jan. 14, 2022
Correct window levels for modal file open and folder browser dialogs (Windows).
Add missing properties for cloned marks to FCArticulation.
Add methods to FCCell and FCCellClefChanges to allow modifying or deleting mid-measure clefs.
Add methods and properties to FCCell, FCCompositeTimeTop, and FCCompositeTimeBottom to allow full creating and editing of composite time signatures and time signatures for display (including independent time signatures for display).
Added optional System Prefix that RGP Lua adds to every script it runs. (One use case would be to add a common library path to package.path and/or package.cpath.)
Allow Auto Folders to have prefixes that affect all scripts in the folder. (Similar to the System Prefix, but only applied to the folder.)
Added finenv.QueryInvokedModifierKeys function to allow scripts to determine which (if any) modifier keys were pressed when the menu option was invoked.
Fixed memory leak in FCCell:CreateCellMetrics.
Added FCFontInfo:IsSMuFLFont, which works only on F27.1 and higher. (Always returns false otherwise.)
Added FCString.InsertStringAt to provide a type-safe version of InsertItemAt.
Added FCDistancePrefs.AccidentalCrossLayerPositioning property.
Added Download Scripts button to setup dialog.
v0.58 Dec. 23, 2021 New methods and properties for FCEntryMetrics and FCCellMetrics.
Obtain and execute OS menu commands directly.
Ability to create expression categories.
Support for custom key signatures for the purpose of transposing.
Support for stacking articulations.
All prefs now work correctly with Finale 26.2 and higher.
v0.57 Dec. 5, 2021 This was an emergency fix for 0.56.
Fixed bug that caused finale constants to be numbered sequentially instead of given their correct values.
Included improved focus handling for modeless dialogs on macOS.
v0.56 Dec. 4, 2021 Added FCCustomLuaWindow::ShowModeless and support routines for running modeless Lua scripts.
Fixed Finale crash on macOS due to CFRelease of a CFBundleRef we did not own. (In FCString::LoadResource)
Fixed macOS FCCustomWindows so that tab key works correctly in both keyboard navigation modes.
Added support for SetTimer/StopTimer on modal and modeless dialogs in Windows and macOS.
v0.55 Nov. 24, 2021 Initial version starting with next version number after last JW Lua version (which was 0.54). This facilitates backwards compatibility with existing scripts.

Return to RGP Lua main page.