智能 SOLO 脚本集 - 提升音乐与游戏音效制作的效率

智能Solo脚本集介绍

在音频制作与编辑领域,无论是音乐制作还是游戏音效设计,对不同元素进行精确的Solo操作是提高工作效率和细化制作过程的关键。我专门为REAPER开发了这套智能Solo脚本集,它涵盖了对轨道、Item、MIDI Item及MIDI音符的控制。该集合包括30个脚本,分为“持续Solo”、“即时Solo”和“切换Solo”三种模式,以满足各种音频处理需求。

Hold to Solo (持续Solo)
该模式通过绑定一个虚拟按键来实现控制。当按住指定的按键时,系统将根据脚本设置对特定对象进行Solo播放,释放按键后停止播放并恢复原始的Solo状态。这种模式适合于需要临时且精确控制Solo状态的场合,如实时编辑和调整。

Instant(即时Solo)
即时Solo模式提供了迅速响应的Solo操作。通过绑定快捷键,可以快速切换特定对象的Solo状态。按下快捷键触发Solo,再按一次停止Solo并恢复原始状态。此模式适用于快速试听和调节音轨的情境,要求操作者对快捷键的控制要精确。

Toggle Solo(切换Solo)
在切换Solo模式中,脚本允许切换选中轨道或鼠标下轨道的Solo状态。通过简单的快捷键绑定,可以轻松地在不同轨道之间进行Solo状态切换,非常适合于复杂项目中多轨道的快速管理和控制。

这套脚本集的设计旨在满足用户在不同编辑环境下的需求,不仅适用于精细的音乐制作,也极为适合游戏音效的制作和调整。通过智能Solo脚本集,你可以更加自如地操控音频项目中的各个元素,实现音频创作的无限可能。

请注意:要使用持续Solo脚本,您必须通过相应的设置脚本配置虚拟按键。持续Solo脚本属于开关式脚本,一旦启动,将在后台持续运行。若需停止该脚本,您需要再次运行相同的脚本。

SOLO TRACK.gif

脚本清单:

-- Item (对象)
Hold to Solo Item from Edit Cursor
Hold to Solo Item from First Selected Item
Hold to Solo Item from Mouse Position
Hold to Solo Item Without Moving Edit Cursor
Hold to Solo Item Setting

Instant Solo Item from Edit Cursor
Instant Solo Item from First Selected Item
Instant Solo Item from Mouse Position

-- MIDI Item (MIDI 对象)
Hold to Solo MIDI Item from Edit Cursor
Hold to Solo MIDI Item from Mouse Position
Hold to Solo MIDI Item Setting

-- MIDI Note (MIDI音符)
Hold to Solo Note from Edit Cursor
Hold to Solo Note from Mouse Position
Hold to Solo Note Setting

Instant Solo Note from Edit Cursor
Instant Solo Note from Mouse Position

-- Track (轨道)
Hold to Solo Track from Edit Cursor (Exclude Item Selection)
Hold to Solo Track from Edit Cursor
Hold to Solo Track from Mouse Position (Exclude Item Selection)
Hold to Solo Track from Mouse Position
Hold to Solo Track Without Moving Edit Cursor (Exclude Item Selection)
Hold to Solo Track Without Moving Edit Cursor
Hold to Solo Track Setting

Instant Solo Track from Edit Cursor
Instant Solo Track from Mouse Position

-- Toggle Solo (切换独奏)
Toggle Solo Automatically for Selected Tracks
Toggle Solo for Selected Tracks
Toggle Solo for Selected Tracks or Track Under Mouse
Toggle Solo for Specific Track
Toggle Solo for Specific Track Setting

下载脚本:
添加我的 Reapack 源(两个源只能选一个使用):
https://github.com/zaibuyidao/ReaScripts/raw/master/index.xml (Github源)
https://group.reaget.com/mirrors/zaibuyidao/ReaScripts/index.xml (Tee佬提供的国内专线)

在 ReaPack 搜索:zaibuyidao solo
找到脚本后右键点击下载。

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