智能SOLO脚本16件套

该脚本可以在鼠标位置下按照当前轨道的状态智能地SOLO轨道
简单使用,按一下播放,再按一下停止

SOLO Track 有三个脚本,一个脚本基于鼠标位置,一个脚本基于鼠标下的 Item开始 (snap)位置
SOLO Track (Play From Play State) 只切换SOLO单一轨道,这类似Cubase的切换solo轨功能
SOLO Item 同上,主要针对Item

操作:
默认不选中item,单轨选中(不选中也有效)后直接切换要SOLO的轨道
默认不选中item,多轨选中后直接切换SOLO轨道
当item被选中,优先SOLO选中的item对应的轨道,支持跨轨道选中item

SOLO TRACK.gif
在鼠标位置播放

SOLO TRACK (Play From First Item Position).gif
在鼠标下item的开始(snap)位置播放

SOLO TRACK (Play From Play State).gif
无限切换SOLO轨道

新增的 SOLO Item 没有动图演示,它与 SOLO 轨道规则类似。

脚本名:
zaibuyidao_Solo Track (Play From Mouse Position)
zaibuyidao_Solo Track (Play From First Item Position)
zaibuyidao_Solo Track (Play From Play State)
zaibuyidao_Solo Item (Play From Mouse Position)
zaibuyidao_Solo Item (Play From First Item Position)

从 Reapack 仓库下载:
https://github.com/zaibuyidao/ReaScripts/raw/master/index.xml
https://forum.reaget.com/mirrors/zaibuyidao/ReaScripts/index.xml (Tee佬提供的国内专线)

4 Likes

刀兄辛苦。
我有一个solo操作的需求,不知道能不能实现。
操作如下:(假定solo的快捷键为S)
当选中轨道1按下S键时,轨道1切换为solo状态。
当选中轨道1已经是solo状态时,按下S键,SOLO关闭。
当轨道1为SOLO状态时,我选中轨道2,并按下S键,轨道2打开solo状态,同时关闭轨道1的solo状态。

选中轨道需要鼠标点击,这个操作其实可以直接点击独占solo就实现了。

独占solo是哪个?我是英文版的。。。关键词是啥?

不在动作列表中,默认快捷键就是ctrl+alt+左键点击,右键可以看到菜单。

谢谢,用鼠标去点solo非常不习惯,所以想用快捷键来解决。动作列表里有这条命令,可惜不能切换开关。

你的需求跟 SOLO Track 脚本基本重合,有没有试一试效果?

我都试了,最接近需求的是Script: zaibuyidao_Solo Track (Play From Play State).lua
但就差一个关闭solo,这个脚本可以方便的切换轨道进行solo,但是不能关闭solo。如果能关闭solo就好了。可以不可以加一个关闭的功能呢?

我意思是如果当前轨道是solo状态,我依然可以用相同的快捷键来关闭solo状态。

应该没什么问题,我找个时间加一下。

好的。我等着。 :partying_face:

可以了。脚本名称改了请下载这个:zaibuyidao_Solo Track.lua

刀兄就是reaper的瑞士军刀!

zaibuyidao_Solo Track.lua使用之後,有些調整建議,希望能采納。
1.能否要讓脚本不響應鼠標位置,只根據所選軌道來進行solo。
2.能否讓這個脚本支持多軌?
3.能否讓這個脚本支持支持全局快捷鍵?或者說在midi 編輯器中也能使用solo。

感謝刀兄。

1.可以的;
2.沒問題;
3.MIDI編輯器中也可以使用該脚本,只需要綁定一個快捷鍵就可以了。

這個脚本使用了新的名稱:zaibuyidao_Solo Track (For Selected Tracks).lua

轨道的solo搞定了。非常完美。感谢感谢!

但midi编辑器中的solo还是有问题,时常发生不生效的情况。
我试了一下MPL的的脚本,也有这个问题,经常不听使唤。不知道是什么原因。

MPL的脚本如下

-- @description Solo MIDI Editor active take track
-- @version 1.2
-- @author MPL 
-- @website http://forum.cockos.com/showthread.php?t=188335
-- @changelog
--    # changed to solo in place behaviour

  local scr_title = 'Solo MIDI Editor active take track'
  for key in pairs(reaper) do _G[key]=reaper[key]  end 

----------------------------------------------------------
  function main()
    Undo_BeginBlock()
    local ME = MIDIEditor_GetActive()
    if not ME then return end
    local take = MIDIEditor_GetTake(ME)
    if not take then return end
    local take_track = GetMediaItemTake_Track(take)
    local is_solo = GetMediaTrackInfo_Value(take_track, 'I_SOLO')
    
    
    if is_solo == 1 or is_solo == 2 then 
      SetMediaTrackInfo_Value(take_track, 'I_SOLO',0)
      SetButtonOFF()
     else 
      SetButtonON()
      Main_OnCommand(40340,0) --Track: Unsolo all tracks
      SetMediaTrackInfo_Value(take_track, 'I_SOLO',2) 
    end
      
      -- deprecated//changed argument to 2 (solo in place)
    --[[local parent_track
    repeat  
      parent_track = GetParentTrack(take_track)
      if parent_track then
        SetMediaTrackInfo_Value(parent_track, 'I_SOLO', math.abs(is_solo-1))
        take_track = parent_track
      end
    until parent_track == nil ]]  
    Undo_EndBlock(scr_title, 1)
  end
----------------------------------------------------------
  -- http://github.com/ReaTeam/ReaScripts-Templates/blob/master/Templates/X-Raym_Background%20script.lua  
  
  -- Set ToolBar Button ON
  function SetButtonON()
    is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
    state = reaper.GetToggleCommandStateEx( sec, cmd )
    reaper.SetToggleCommandState( sec, cmd, 1 ) -- Set ON
    reaper.RefreshToolbar2( sec, cmd )
  end
  
  -- Set ToolBar Button OFF
  function SetButtonOFF()
    is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
    state = reaper.GetToggleCommandStateEx( sec, cmd )
    reaper.SetToggleCommandState( sec, cmd, 0 ) -- Set OFF
    reaper.RefreshToolbar2( sec, cmd )
  end
----------------------------------------------------------
  main()

无效的情况,极大可能是轨道没有被选中。

你那里在midi编辑器中测试都是正常的吗?
我这边测试在midi编辑器中如果打开solo,很大概率是不能马上切换回非solo状态的,可能需要等很长时间,再按一下快捷键就能关闭solo,或者移动一下光标,也有可能可以切换了,但就是有概率的,不能做到立即切换,你试试呢,不要移动光标,直接用快捷键来回切换,应该是不能顺利切换的吧?

SOLO TRACK

测试看起来没问题,测试不移动光标也正常。

找到问题了。
1.我在midi编辑器中按下solo的快捷键后,midi编辑器窗口会失焦,需要再在这个窗口点击一下鼠标左键重新激活,就可以继续用快捷键来solo了。是我动了什么设置吗?我试了一下其他的快捷键也不会让midi窗失焦啊~~

2.我看到你右边的音轨列表可以在选中时同时和主界面的音轨相关联的,我这里在音轨列表上选择,主界面的轨道并不会跟着联动选择呢,请问这是哪里的设置呢?

1.Solo Track脚本安装后,在动作列表 Section:MIDI Editor 下可以搜索到脚本,绑定一个快捷键:
image
以上绑定后我这边测试不会丢失聚焦,你是不是把S快捷键穿透到主界面?

2.跟随联动,应该是我使用了选中Item即选中轨道的脚本。你运行下这个脚本:
Script: zaibuyidao_Track Follows Item Razor Selection.lua

这个脚本建议设置为全局启动脚本,启动REAPER时就让它运行,看这里:

安装脚本后,你将下面这个脚本的ID放到全局启动动作的窗口内:
_RS3ba593ccf697db6860211edd4c79a92f1ba172aa

image

点击OK,完成!

如果你用的是国内源,ID可能会有偏差。你需要自行复制一下ID:
image