
Скрипт не работает все время в фоне,он запускается,только чтобы вытянуть аудио из JS.Поэтому отследить инпут текущего трека нельзя.Понимаю,что некрасиво,но изменить не получитсяМожно ли сделать так, чтобы input скрытого аудио retrorec-трека подстраивался под инпут записываемого трека?
Да,конечно. Можно и в самом скрипте прописать,надо глянуть,там довольно запутанная схема,если вспомню, то вечером добавлю.автоматом становится моно(L+R).
local tcp_layouts = { -- TCP layout names from the default theme (REAPER v5.0pre36)
    "", -- default
    --"aa - Standard",
    --"ab --- Standard + value readouts",
    --"ac --- Standard Media",
    --"ad --- Standard Media stretch",
    --"ae --- Standard expanding",
    --"af --- Standard expanding, popup fader",
    --"ag --- Standard Extra-expanding",
    --"ba - Small",
    --"bb --- Small + value readouts",
    --"bc --- Small Media",
    "bd --- Small Full Meter",
    --"bd --- Small Full Meter + value readouts",
    --"be --- Small expanding, popup fader",
    --"ca - Large",
    --"cb --- Large + value readouts",
    --"cc --- Large Media",
    "cd --- Large expanding, popup fader"
}
function get_current_layouts_and_pos(track) -- "pos" means index in "tcp_layouts" -table
  local current_mcp_layout, current_tcp_layout = reaper.BR_GetMediaTrackLayouts(track)
  local i = 1
  local pos = 0
  for k, v in ipairs(tcp_layouts) do
    if v == current_tcp_layout then
      pos = i
    end
    i = i + 1
  end
  return current_mcp_layout, current_tcp_layout, pos
end
function set_next_tcp_layout()
  reaper.PreventUIRefresh(1)
  for i=1, reaper.CountSelectedTracks(0) do
    local track = reaper.GetSelectedTrack(0, i-1)
    if track ~= nil then
      current_mcp_layout, current_tcp_layout, pos = get_current_layouts_and_pos(track)
      if current_tcp_layout == tcp_layouts[#tcp_layouts] then
        new_tcp_layout = tcp_layouts[1]
      else
        new_tcp_layout = tcp_layouts[pos+1]
      end
      reaper.BR_SetMediaTrackLayouts(track, current_mcp_layout, new_tcp_layout)
    end
  end
  reaper.PreventUIRefresh(-1)
end
set_next_tcp_layout()local mcp_layouts = { -- MCP layout names from the default theme (REAPER v5.0pre36)
    "eb --- Strip Full Controls",
    "ed --- Strip Meter Bridge"
}
function get_current_layouts_and_pos(track) -- "pos" means index in "mcp_layouts" -table
  local current_tcp_layout, current_mcp_layout = reaper.BR_GetMediaTrackLayouts(track)
  local i = 1
  local pos = 0
  for k, v in ipairs(mcp_layouts) do
    if v == current_mcp_layout then
      pos = i
    end
    i = i + 1
  end
  return current_mcp_layout, current_tcp_layout, pos
end
function set_next_mcp_layout()
  reaper.PreventUIRefresh(1)
  for i=1, reaper.CountSelectedTracks(0) do
    local track = reaper.GetSelectedTrack(0, i-1)
    if track ~= nil then
      current_tcp_layout, current_mcp_layout, pos = get_current_layouts_and_pos(track)
      if current_mcp_layout == mcp_layouts[#mcp_layouts] then
        new_mcp_layout = mcp_layouts[1]
      else
        new_mcp_layout = mcp_layouts[pos+1]
      end
      reaper.BR_SetMediaTrackLayouts(track, current_tcp_layout, new_mcp_layout)
    end
  end
  reaper.PreventUIRefresh(-1)
end
set_next_mcp_layout()local mcp_layouts = { -- MCP layout names from the default theme (REAPER v5.0pre36)
    "eb --- Strip Full Controls",
    "ed --- Strip Meter Bridge"
}
function get_current_layouts_and_pos(track) -- "pos" means index in "mcp_layouts" -table
  local current_tcp_layout, current_mcp_layout = reaper.BR_GetMediaTrackLayouts(track)
  local i = 1
  local pos = 0
  for k, v in ipairs(mcp_layouts) do
    if v == current_mcp_layout then
      pos = i
    end
    i = i + 1
  end
  return current_mcp_layout, current_tcp_layout, pos
end
function set_next_mcp_layout()
  reaper.PreventUIRefresh(1)
  for i=1, reaper.CountSelectedTracks(0) do
    local track = reaper.GetSelectedTrack(0, i-1)
    if track ~= nil then
      current_tcp_layout, current_mcp_layout, pos = get_current_layouts_and_pos(track)
      if current_mcp_layout == mcp_layouts[#mcp_layouts] then
        new_mcp_layout = mcp_layouts[1]
      else
        new_mcp_layout = mcp_layouts[pos+1]
      end
      reaper.BR_SetMediaTrackLayouts(track, current_tcp_layout, new_mcp_layout)
    end
  end
  reaper.PreventUIRefresh(-1)
end
set_next_mcp_layout() У меня не сбрасывало. Сейчас ещё покопаюсь.
 У меня не сбрасывало. Сейчас ещё покопаюсь.fx_name = 'RBass Stereo'
tr = reaper.GetSelectedTrack(0,0)
wanded_fx = reaper.TrackFX_GetByName(tr, fx_name, true)
reaper.TrackFX_Show(tr, wanded_fx, 1) -- 1 for show chain, 3 for show floating windowИспользуя FX GUIDВообще, если нужно, можно написать скрипт, который работает и с переименованными плагинами
for p = 1, 100 do
  retval = reaper.EnumProjects(p, '')
  if retval == nil then x = p break end
endfor p = 1, 100 do
  retval = reaper.EnumProjects(p, '')
  if retval == nil then x = p break end
end
retval_0  = reaper.EnumProjects(-1, '')
for p = 1, x do
  retval  = reaper.EnumProjects(p-1, '')
  if retval == retval_0 then cur_proj_tab = p break end
endвот в этом и причина.P.S. На входе трека установлен режим записи "Record: MIDI overdub"
Да, причина понятна, в другом режиме запись начинается с момента нажатия REC. была просьба помочь создать создать кастом экшн или скрипт.вот в этом и причина.
 
	