User Tools

Site Tools


jwlua:quickscripts

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
jwlua:quickscripts [2014/09/06 10:09]
jariw [Using Unicode]
jwlua:quickscripts [2015/07/13 18:07] (current)
jariw [Swap Metatool Key Assignment]
Line 763: Line 763:
 fileinfotext:​SetText(str) fileinfotext:​SetText(str)
 fileinfotext:​SaveAsComposer()</​code>​ fileinfotext:​SaveAsComposer()</​code>​
 +
 +----
 +
 +==== Align Repeat Brackets ====
 +
 +The following script example aligns the top lines of the repeat brackets within the selected region to the topmost position. It does not look at staves with independently moved bracket positioning.
 +
 +All ending repeat brackets and backward repeat brackets are first scanned for the highest vertical position. The initial "​highest position"​ is set to a extremely low value, to make sure that a true top position is found. After that, all the brackets are set to the highest vertical position found.
 +
 +The script requires beta 0.29 or higher.
 +
 +<code lua alignrepeatbrackets.lua>​local region = finenv.Region()
 +if region:​IsEmpty() then return end
 +
 +-- Scan to find the highest bracket position in the selected measures:
 +local highest = -10000
 +local count = 0
 +for m = region.StartMeasure,​ region.EndMeasure do
 +    local endingrepeat = finale.FCEndingRepeat()
 +    local backwardrepeat = finale.FCBackwardRepeat()
 +    if endingrepeat:​Load(m) then
 +        if endingrepeat.VerticalTopBracketPosition > highest then
 +            highest = endingrepeat.VerticalTopBracketPosition
 +        end
 +        count = count + 1
 +    end
 +    if backwardrepeat:​Load(m) then
 +        if backwardrepeat.TopBracketPosition > highest then
 +            highest = backwardrepeat.TopBracketPosition
 +        end
 +        count = count + 1
 +    end
 +end
 +
 +if count > 1 then
 +    -- Set the new bracket positions:
 +    for m = region.StartMeasure,​ region.EndMeasure do
 +        local endingrepeat = finale.FCEndingRepeat()
 +        local backwardrepeat = finale.FCBackwardRepeat()
 +        if endingrepeat:​Load(m) then
 +            endingrepeat.VerticalTopBracketPosition = highest
 +            endingrepeat:​Save()
 +        end
 +        if backwardrepeat:​Load(m) then
 +            backwardrepeat.TopBracketPosition = highest
 +            backwardrepeat:​Save()
 +        end
 +    end
 +end</​code>​
 +
 +----
 +
 +==== Swap Metatool Key Assignment ====
 +
 +The following script swaps the expression metatool keyboard assignments for the keys '​1'​ and '​2'​. Metatools are saved to the (ASCII) key number, and the Lua ''​string.byte()''​ function is used to find the key number. Simply resaving to the other key number will do a swap of the metatool keys. Beta version 0.40 or later is required for this sample code.
 +
 +<code lua swapmetatools.lua>​-- Load all existing metatool assignments for the Expression Tool
 +local mas = finale.FCMetatoolAssignments()
 +mas:​LoadAllForMode(finale.MTOOLMODE_EXPRESSION)
 +-- Find the current expression metatools for keyboard keys '​1'​ and '​2'​
 +metatool1 = mas:​FindKeystroke(string.byte("​1"​))
 +metatool2 = mas:​FindKeystroke(string.byte("​2"​))
 +-- Swap the keyboard mapping for these 2 objects
 +if (metatool1 ~= nil) then
 +    metatool1:​SaveAsKeystroke(string.byte("​2"​))
 +end
 +if (metatool2 ~= nil) then
 +    metatool2:​SaveAsKeystroke(string.byte("​1"​))
 +end</​code>​
 +
  
 ---- ----
jwlua/quickscripts.1409998149.txt.gz ยท Last modified: 2014/09/06 10:09 by jariw