Dup Ver Goto 📝

TimeSelection1

PT2/music/daw/reaper/scripts/examples does not exist
To
252 lines, 687 words, 7552 chars Page 'TimeSelection1' does not exist.

Some trivial scripts to manipulate the time selection. This allows these actions to be bound to OSC messages. For most scripts, the length of one bar is taken from the time signature at the start of the time selection. For scripts that add or subtract a bar, the time signature is taken from the end.

set_time_sel_1bar.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 1.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + offset
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

set_time_sel_1beat.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + 1.0
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

set_time_sel_2bars.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 2.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + offset
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

set_time_sel_2beats.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + 2.0
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

set_time_sel_4bars.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 4.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + offset
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

set_time_sel_8bars.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 8.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bstart + offset
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

time_sel_add_1_bar.lua

Note time signature is taken from end of time selection.

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tend) -- we take the bar length from the end of the time selection
qn_per_bar = 4.0*num/denom
offset = 1.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bend + offset
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

time_sel_add_1_beat.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bend + 1.0
ntend = reaper.TimeMap_QNToTime(nbend)
--s = "Range: "..tstart.." -- "..tend.." : "..bstart.." -- "..bend
--reaper.ShowConsoleMsg(s)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

time_sel_double.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
blen = bend - bstart
nbend = bstart + 2 * blen
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

time_sel_half.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
blen = bend - bstart
nbend = bstart + blen * 0.5
ntend = reaper.TimeMap_QNToTime(nbend)
reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)

time_sel_left_1_bar.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 1.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbstart = bstart - offset
nbend = bend - offset
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end

time_sel_left_1_beat.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbstart = bstart - 1.0
nbend = bend - 1.0
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end

time_sel_left_1_sel.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
blen = bend - bstart
nbstart = bstart - blen
nbend = bend - blen
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end

time_sel_minus_1_bar.lua

Note time signature is taken from end of time selection.

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tend)
qn_per_bar = 4.0*num/denom
offset = 1.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bend - offset
if nbend > bstart then
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)
end

time_sel_minus_1_beat.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbend = bend - 1.0
if nbend > bstart then
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,tstart,ntend,true)
end

time_sel_right_1_bar.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
num,denom,tempo = reaper.TimeMap_GetTimeSigAtTime(0,tstart)
qn_per_bar = 4.0*num/denom
offset = 1.0*qn_per_bar

bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbstart = bstart + offset
nbend = bend + offset
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end

time_sel_right_1_beat.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
nbstart = bstart + 1.0
nbend = bend + 1.0
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end

time_sel_right_1_sel.lua

tstart,tend = reaper.GetSet_LoopTimeRange(false,false,0,0,0)
bstart = reaper.TimeMap_timeToQN(tstart)
bend = reaper.TimeMap_timeToQN(tend)
blen = bend - bstart
nbstart = bstart + blen
nbend = bend + blen
if nbstart >= 0.0 then
  ntstart = reaper.TimeMap_QNToTime(nbstart)
  ntend = reaper.TimeMap_QNToTime(nbend)
  reaper.GetSet_LoopTimeRange(true,true,ntstart,ntend,true)
end