Kurz nach Veröffentlichung habe ich das Video angesehen und bin erzittert. Großartige Idee!
Nichts konnte mich mehr bremsen und das Behringer CMD Studio 2a ziert seit heute Mittag meinen Schreibtisch. Stationär arbeite ich unter Windows 10, musste mir also den USB Audio/MIDI Driver V1.7.0 installieren.
In Reaper ist es erforderlich den Controller als MIDI Device hinzuzufügen. Mittels MIDI-OX (gibt’s nichts aktuelleres?) waren alle MIDI-Signale sofort zu verfolgen.
Den Nachmittag habe ich dann mit nerden verbracht. Ich konnte alle Funktionen aus dem Video von @rstockm nachbauen.
Allerdings war es erforderlich die Skripte anzupassen. Das war mein Erstkontakt mit LUA.
Als es dann lief, sah der Code zum Trimmen des Inpoints so aus:
function run()
is_new, name, sec, cmd, rel, res, val = reaper.get_action_context()
if is_new then
-- reaper.showconsolemsg(name .. "\nrel: " .. rel .. "\nres: " .. res .. "\nval = "
OffSet = 0.05
if val == 63 then
startOut, endOut = reaper.GetSet_LoopTimeRange(false, true, 0, 0,false)
newstart = startOut - OffSet
startOut, endOut = reaper.GetSet_LoopTimeRange(true, true, newstart, endOut, true)
end
if val ==65 then
startOut, endOut = reaper.GetSet_LoopTimeRange(false, true, 0, 0,false)
newstart = startOut + OffSet
startOut, endOut = reaper.GetSet_LoopTimeRange(true, true, newstart, endOut, true)
end
end
-- reaper.defer(run)
end
-- debug
function onexit()
reaper.ShowConsoleMsg("<-----\n")
end
reaper.defer(run)
-- reaper.atexit(onexit)
Der Code zum Trimmen des OutPoints sieht so aus:
function run()
is_new, name, sec, cmd, rel, res, val = reaper.get_action_context()
if is_new then
-- reaper.showconsolemsg(name .. "\nrel: " .. rel .. "\nres: " .. res .. "\nval = "
OffSet = 0.05
if val == 63 then
startOut, endOut = reaper.GetSet_LoopTimeRange(false, true, 0, 0,false)
newend = endOut - OffSet
startOut, endOut = reaper.GetSet_LoopTimeRange(true, true, startOut, newend, true)
end
if val ==65 then
startOut, endOut = reaper.GetSet_LoopTimeRange(false, true, 0, 0,false)
newend = endOut + OffSet
startOut, endOut = reaper.GetSet_LoopTimeRange(true, true, startOut, newend, true)
end
end
-- reaper.defer(run)
end
-- debug
function onexit()
reaper.ShowConsoleMsg("<-----\n")
end
reaper.defer(run)
-- reaper.atexit(onexit)
Im abschließenden Überblick war das schon Gefrickel. Das Ergebnis lohnt aber auf jeden Fall den Aufwand. Ich freue mich schon diebisch auf die nächsten Schneidearbeiten.
Vielen Dank @rstockm für dieses Sahneschnittchen. Das öffnet viele Möglichkeiten. Ich bin gespannt, was da noch alles kommt. Buttons und Potis sind noch genug frei …