Skip to content

Commit 6cc696a

Browse files
committed
Fix MIDI values being dropped
1 parent 1fc18d5 commit 6cc696a

File tree

1 file changed

+24
-23
lines changed

1 file changed

+24
-23
lines changed

Diff for: FX/Lokasenna_Adjust ReaSamplomatic 5000 Pitch Offset.lua

+24-23
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
--[[
22
Description: Adjust ReaSamplomatic 5000 pitch offset
3-
Version: 2.1.0
3+
Version: 2.1.1
44
Author: Lokasenna
55
Donation: https://paypal.me/Lokasenna
66
Changelog:
7-
Add: Actions for the last-touched RS5K (track FX only)
7+
Fix: Script not reading the MIDI value correctly
88
Links:
99
Lokasenna's Website http://forum.cockos.com/member.php?u=10417
1010
About:
@@ -50,7 +50,7 @@
5050
[main] . > Lokasenna_Adjust ReaSamplomatic 5000 pitch offset/Lokasenna_Adjust pitch offset of last-touched ReaSamplomatic 5000 - Up 0.1 semitones.lua
5151
[main] . > Lokasenna_Adjust ReaSamplomatic 5000 pitch offset/Lokasenna_Adjust pitch offset of last-touched ReaSamplomatic 5000 - Up 0.05 semitones.lua
5252
[main] . > Lokasenna_Adjust ReaSamplomatic 5000 pitch offset/Lokasenna_Adjust pitch offset of last-touched ReaSamplomatic 5000 - Up 0.5 semitones.lua
53-
[main] . > Lokasenna_Adjust ReaSamplomatic 5000 pitch offset/Lokasenna_Adjust pitch offset of last-touched ReaSamplomatic 5000 - Up 1 semitone.lua
53+
[main] . > Lokasenna_Adjust ReaSamplomatic 5000 pitch offset/Lokasenna_Adjust pitch offset of last-touched ReaSamplomatic 5000 - Up 1 semitone.lua
5454
5555
Donation: https://www.paypal.me/Lokasenna
5656
]]--
@@ -62,12 +62,17 @@ local MODE_LASTTOUCHED = 2
6262
local PARAM_NUMBER = 15 -- RS5K's Pitch Offset parameter
6363
local PARAM_MULTIPLIER = 0.0000625002384186 -- RS5K's internal value == 0.01 semitones
6464

65-
dm = false
65+
local dm = false
6666

6767
local function dMsg(str)
6868
if dm then reaper.ShowConsoleMsg(tostring(str) .. "\n") end
6969
end
7070

71+
local action_context = (function()
72+
local c = ({reaper.get_action_context()})
73+
74+
return { is_new = c[1], fn = c[2], sId = c[3], cId = c[4], mode = c[5], res = c[6], val = c[7] }
75+
end)()
7176

7277

7378
------------------------------------
@@ -76,10 +81,7 @@ end
7681

7782

7883
local function parse_script_name()
79-
80-
local script_name = ({reaper.get_action_context()})[2]:match("([^/\\_]+).lua$")
81-
82-
dMsg(script_name)
84+
local script_name = action_context.fn:match("([^/\\_]+).lua$")
8385

8486
local script_mode
8587
if string.match(script_name, "focused ReaSamplomatic") then
@@ -92,7 +94,7 @@ local function parse_script_name()
9294
dMsg("no script mode found")
9395
return
9496
end
95-
97+
9698
local dir
9799
if string.match(script_name, " %- Up") then
98100
dir = 1
@@ -117,10 +119,13 @@ end
117119

118120

119121
local function convert_adjust_amt(adjust_amt)
122+
local multiplier = adjust_amt * 100 * PARAM_MULTIPLIER
120123

121-
local new_val, fn, sID, cID, mode, res, val = reaper.get_action_context()
122-
return adjust_amt * 100 * PARAM_MULTIPLIER * ((mode > 0 and val ~= 0) and (math.abs(val) / val) or 1)
123-
124+
return multiplier * (
125+
(action_context.mode > 0 and action_context.val ~= 0)
126+
and (math.abs(action_context.val) / action_context.val)
127+
or 1
128+
)
124129
end
125130

126131

@@ -143,7 +148,7 @@ end
143148
local function is_RS5K(name)
144149

145150
name = string.lower(name)
146-
if string.match(name, "reasamplomatic")
151+
if string.match(name, "reasamplomatic")
147152
or string.match(name, "rs5k") then
148153
return true
149154
end
@@ -197,9 +202,9 @@ local function adjust_focused(adjust_amt)
197202

198203

199204
if not retval or retval == 0 then
200-
205+
201206
return
202-
207+
203208
-- Track FX
204209
elseif retval == 1 then
205210

@@ -239,9 +244,9 @@ local function adjust_lasttouched(adjust_amt)
239244
local track = reaper.GetTrack( 0, tracknumberOut - 1 )
240245

241246
if not retval then
242-
247+
243248
return
244-
249+
245250
-- Track FX
246251
else
247252

@@ -273,7 +278,7 @@ end
273278

274279
local function adjust_selected_tracks(adjust_amt)
275280

276-
for idx, track in SelectedTracks() do
281+
for _, track in SelectedTracks() do
277282

278283
for i = 0, reaper.TrackFX_GetCount(track) - 1 do
279284

@@ -300,10 +305,6 @@ local function Main()
300305
local script_mode, adjust_amt = parse_script_name()
301306
if not (script_mode and adjust_amt) then return end
302307

303-
--script_mode, adjust_amt = MODE_ALLSELECTED, 0.01
304-
dMsg("got mode: " .. tostring(script_mode))
305-
dMsg("got amt: " .. tostring(adjust_amt))
306-
307308
adjust_amt = convert_adjust_amt(adjust_amt)
308309

309310
if script_mode == MODE_FOCUSED then
@@ -318,4 +319,4 @@ local function Main()
318319

319320
end
320321

321-
Main()
322+
Main()

0 commit comments

Comments
 (0)