@@ -3,7 +3,39 @@ $module SmartShape
3
3
]]
4
4
local smartshape = {}
5
5
6
-
6
+ local smartshape_type = {
7
+ " slurauto" = finale .SMARTSHAPE_SLURAUTO ,
8
+ " slur_auto" = finale .SMARTSHAPE_SLURAUTO ,
9
+ " autoslur" = finale .SMARTSHAPE_SLURAUTO ,
10
+ " auto_slur" = finale .SMARTSHAPE_SLURAUTO ,
11
+ " slur" = finale .SMARTSHAPE_SLURAUTO ,
12
+ " slurdown" = finale .SMARTSHAPE_SLURDOWN ,
13
+ " slur_down" = finale .SMARTSHAPE_SLURDOWN ,
14
+ " slurup" = finale .SMARTSHAPE_SLURUP ,
15
+ " slur_up" = finale .SMARTSHAPE_SLURUP ,
16
+ " dashed" = finale .SMARTSHAPE_DASHEDSLURAUTO ,
17
+ " dashedslur" = finale .SMARTSHAPE_DASHEDSLURAUTO ,
18
+ " dashed_slur" = finale .SMARTSHAPE_DASHEDSLURAUTO ,
19
+ " dashedslurdown" = finale .SMARTSHAPE_DASHEDSLURDOWN ,
20
+ " dashedslurup" = finale .SMARTSHAPE_DASHEDSLURDOWN ,
21
+ " dashedcurve" = finale .SMARTSHAPE_DASHCURVEAUTO ,
22
+ " dashed_curve" = finale .SMARTSHAPE_DASHCURVEAUTO ,
23
+ " curve" = finale .SMARTSHAPE_DASHCURVEAUTO ,
24
+ " dashedcurvedown" , finale .SMARTSHAPE_DASHCURVEDOWN ,
25
+ " dashedcurveup" finale .SMARTSHAPE_DASHCURVEUP ,
26
+ " tabslide" = finale .SMARTSHAPE_TABSLIDE ,
27
+ " tab" = finale .SMARTSHAPE_TABSLIDE ,
28
+ " slide" = finale .SMARTSHAPE_TABSLIDE ,
29
+ " glissando" = finale .SMARTSHAPE_GLISSANDO ,
30
+ " gliss" = finale .SMARTSHAPE_GLISSANDO ,
31
+ " bendhat" = finale .SMARTSHAPE_BEND_HAT ,
32
+ " bend_hat" = finale .SMARTSHAPE_BEND_HAT ,
33
+ " hat" = finale .SMARTSHAPE_BEND_HAT ,
34
+ " bend" = finale .SMARTSHAPE_BEND_HAT ,
35
+ " bendcurve" = finale .SMARTSHAPE_BEND_CURVE ,
36
+ " bend_curve" = finale .SMARTSHAPE_BEND_CURVE
37
+ }
38
+
7
39
--[[
8
40
% smartshape_entrybased
9
41
@@ -16,33 +48,29 @@ Creates an entry based SmartShape based on two input notes. If a type is not spe
16
48
function smartshape .add_entry_based_smartshape (start_note , end_note , shape_type )
17
49
local smartshape = finale .FCSmartShape ()
18
50
smartshape :SetEntryAttachedFlags (true )
19
- -- Folks: Let me know if this is just too much... or not enough...
20
- local types = {" slurauto" = finale .SMARTSHAPE_SLURAUTO , " slur_auto" = finale .SMARTSHAPE_SLURAUTO , " autoslur" = finale .SMARTSHAPE_SLURAUTO , " auto_slur" = finale .SMARTSHAPE_SLURAUTO ,
21
- "slur" = finale.SMARTSHAPE_SLURAUTO, "slurdown" = finale.SMARTSHAPE_SLURDOWN, "slur_down" = finale.SMARTSHAPE_SLURDOWN, "slurup" = finale.SMARTSHAPE_SLURUP, "slur_up" = finale.SMARTSHAPE_SLURUP,"dashed" = finale.SMARTSHAPE_DASHEDSLURAUTO, "dashedslur" = finale.SMARTSHAPE_DASHEDSLURAUTO, "dashed_slur" = finale.SMARTSHAPE_DASHEDSLURAUTO,"dashedslurdown" = finale.SMARTSHAPE_DASHEDSLURDOWN, "dashedslurup" = finale.SMARTSHAPE_DASHEDSLURDOWN, "dashedcurve" = finale.SMARTSHAPE_DASHCURVEAUTO, "dashed_curve" = finale.SMARTSHAPE_DASHCURVEAUTO,"curve" = finale.SMARTSHAPE_DASHCURVEAUTO,"dashedcurvedown", finale.SMARTSHAPE_DASHCURVEDOWN, "dashedcurveup"finale.SMARTSHAPE_DASHCURVEUP, "tabslide" = finale.SMARTSHAPE_TABSLIDE, "tab" = finale.SMARTSHAPE_TABSLIDE, "slide" = finale.SMARTSHAPE_TABSLIDE, "glissando" = finale.SMARTSHAPE_GLISSANDO, "gliss" = finale.SMARTSHAPE_GLISSANDO, "bendhat" = finale.SMARTSHAPE_BEND_HAT, "bend_hat" = finale.SMARTSHAPE_BEND_HAT,"hat" = finale.SMARTSHAPE_BEND_HAT, "bend" = finale.SMARTSHAPE_BEND_HAT, "bendcurve" = finale.SMARTSHAPE_BEND_CURVE, "bend_curve" = finale.SMARTSHAPE_BEND_CURVE}
22
- --
23
- if not shape_type then
24
- shape_type = " slur"
25
- end
51
+
52
+ shape_type = shape_type or " slur"
26
53
--
27
54
shape_type = string.lower (shape_type )
28
- local shape = types [shape_type ]
55
+ local shape = smartshape_type [shape_type ]
29
56
smartshape :SetShapeType (shape )
30
57
smartshape .PresetShape = true
31
58
if smartshape :IsAutoSlur () then
32
59
smartshape :SetSlurFlags (true )
33
60
smartshape :SetEngraverSlur (finale .SS_AUTOSTATE )
34
61
end
35
62
--
36
- local leftseg = smartshape :GetTerminateSegmentLeft ()
37
- local rightseg = smartshape :GetTerminateSegmentRight ()
63
+ local left_segment = smartshape :GetTerminateSegmentLeft ()
64
+ local right_segment = smartshape :GetTerminateSegmentRight ()
38
65
--
39
- leftseg :SetEntry (start_note )
40
- leftseg :SetStaff (start_note .Staff )
41
- leftseg :SetMeasure (start_note .Measure )
66
+ left_segment :SetEntry (start_note )
67
+ left_segment :SetStaff (start_note .Staff )
68
+ left_segment :SetMeasure (start_note .Measure )
42
69
--
43
- rightseg :SetEntry (end_note )
44
- rightseg :SetStaff (end_note .Staff )
45
- rightseg :SetMeasure (end_note .Measure )
70
+ right_segment :SetEntry (end_note )
71
+ right_segment :SetStaff (end_note .Staff )
72
+ right_segment :SetMeasure (end_note .Measure )
73
+
46
74
47
75
if (shape == finale .SMARTSHAPE_TABSLIDE ) or (shape == finale .SMARTSHAPE_GLISSANDO ) then
48
76
if shape == finale .SMARTSHAPE_GLISSANDO then
@@ -51,9 +79,10 @@ function smartshape.add_entry_based_smartshape(start_note, end_note, shape_type)
51
79
smartshape .LineID = 2
52
80
end
53
81
-- smartshape:SetAvoidAccidentals(finale.SS_ONSTATE) -- Actually appears to do nothing :/
54
- leftseg .NoteID = 1 -- If there is more than 1 note in the entry, shape will be attached to the first one entered
55
- rightseg .NoteID = 1
56
- rightseg :SetCustomOffset (true )
82
+ left_segment .NoteID = 1 -- If there is more than 1 note in the entry, shape will be attached to the first one entered
83
+ right_segment .NoteID = 1
84
+ right_segment :SetCustomOffset (true )
85
+
57
86
local accidentals = 0
58
87
local start_note_staff_pos = 0
59
88
local end_note_staff_pos = 0
@@ -77,8 +106,8 @@ function smartshape.add_entry_based_smartshape(start_note, end_note, shape_type)
77
106
if accidentals > 0 then
78
107
offset_x_add = offset_x_add + 28
79
108
end
80
- rightseg :SetEndpointOffsetX (rightseg .EndpointOffsetX - offset_x_add )
81
- rightseg :SetEndpointOffsetY (rightseg .EndpointOffsetY + offset_y_add + (staff_pos_difference / 2 ))
109
+ right_segment :SetEndpointOffsetX (right_segment .EndpointOffsetX - offset_x_add )
110
+ right_segment :SetEndpointOffsetY (right_segment .EndpointOffsetY + offset_y_add + (staff_pos_difference / 2 ))
82
111
end
83
112
smartshape :SaveNewEverything (start_note , end_note )
84
113
end
0 commit comments