在MIDI编辑器窗口打开乐器界面窗口
-
显示乐器界面非常实用,在MIDI编辑器窗口就可以直接打开关联的乐器界面,避免了经常要到Main窗口点开FX的尴尬,干活必备。
复制下面这段代码到记事本, 另存为: Show or Hide Instrument.lua 到REAPER脚本文件夹下面(示例的C盘请换成自己的):
C:\REAPER\Scripts_DBG=false function DBG(str) if _DBG then reaper.ShowConsoleMsg(str.."\n") end end -- a list of MIDI plugin manufacturers or just plugins that -- report as VSTi but aren't instruments. Add your own here. local blacklist = { "Insert Piz Here", "RapidComposer", "graywolf2004", "Kirnu" } local function isFXonBlacklist(name) for i = 1, #blacklist do if name:match(blacklist[i]) then return true end end return false end local function getInstrumentIdx(track) -- iterate through FX, checking if instruments are -- actual instruments and not on blacklist local num_fx = reaper.TrackFX_GetCount(track) local idx = -1 for i = num_fx,1,-1 do local ok, name = reaper.TrackFX_GetFXName(track, i-1,"") if name:match("VSTi") == "VSTi" and not isFXonBlacklist(name) then idx = i-1 break end end return idx end local function showHideFX(track,fx_idx) -- showflag=0 for hidechain, =1 for show chain(index valid), =2 for hide floating window(index valid), -- =3 for show floating window (index valid) local flag=reaper.TrackFX_GetFloatingWindow(track, fx_idx)==nil and 3 or 2 reaper.TrackFX_Show(track,fx_idx,flag) end local function checkReceives(track) local num_receives=reaper.GetTrackNumSends(track,-1) if num_receives > 0 then local ot=reaper.BR_GetMediaTrackSendInfo_Track(track, -1 , 0, 0) showHideFX(ot,getInstrumentIdx(ot)) return true end return false end function openInstrument() local sts=reaper.CountSelectedTracks(0) if sts==1 then local tr=reaper.GetSelectedTrack(0,0) if tr~=nil then local fx=getInstrumentIdx(tr) if fx>-1 then showHideFX(tr,fx) return else if reaper.GetTrackNumSends(tr,0)>0 then local ok, str=reaper.GetTrackSendName(tr, 0, "") -- 0s = idx, idx, tracktype local st=reaper.BR_GetMediaTrackSendInfo_Track(tr,0 , 0, 1) local bus=reaper.BR_GetSetTrackSendInfo(tr, 0, 0, "I_MIDI_DSTBUS", false, 0) if bus==-1 then --check if it's an output track checkReceives(tr) end local fx=getInstrumentIdx(st) showHideFX(st,fx) return else checkReceives(tr) end end end end end openInstrument()
动作列表section部分选择MIDI Editor,在ReaScript位置导入这个脚本
设定一个快捷键,比如: F9,便可随时显示或隐藏乐器界面。
在MIDI编辑器的工具栏做一个按钮,方便随时切换显示乐器界面:
在工具栏上右键,选择Customize toolbar
在左下角添加动作,找到Show or Hide Instrument.lua
点击 Text icon 设定文本图标(要用图片就选择Change icon)
完成!
以上,已发布到:
https://www.soundengine.cn/topic/32/定制cubase习惯的reaper发布贴
-
也可以直接pass through出去调用main的track fx面板(小声bb)
-
@aadsache 在 在MIDI编辑器窗口打开乐器界面窗口 中说:
也可以直接pass through出去调用main的track fx面板(小声bb)
我刚开始也是这么做的,不过马上发现一个问题,FX面板只能在当前轨道才能调出来。如果一个音源的16个通道都用上的话,那么16个通道的FX面板是空的,按这种方式就失效了。而上面的脚本可以调出当前轨道对应的音源,只要你的通道跟音源连上,一定会被调出来。
-
@リーパー 龙舌兰(大神BB)
-
这太赞了,解决了大麻烦!
-
感谢版主。不过有个小问题不知道能否解决,就是钢琴卷帘全屏时,点击编辑时乐器窗还是会隐藏
-
-
@怪力乱神 我瓜了!我错了!
-
@futurewy 多谢,你说得是哪个全局命令?
-
@怪力乱神 我错了错了!之前没有好好看回帖,现在看了才发现全局命令只能打开单通道的。多通道那种不行。
-
@怪力乱神 话说今天搜索来到了这里,真是好地方啊!辛苦你整理这些资料了!
-
另外,有没有办法在轨道上就直接能选择发送的通道呢?不想一次性创建16个通道,也觉得点进轨道路由设置再设置通道号很繁琐,所以现在基本上已经把所有的多通道音源到单通道音源用了。而且轨道上不能显示通道号,都不知道用到第几个通道了,每次要增加一轨还要打开音源先看看,好麻烦。
不知道在轨道上快捷的显示并设置通道号是否可以实现呢?
-
@futurewy 没有研究过这个地方,要实现应该可以。
轨道上的路由按钮可以设置快捷键,弹窗显示也很方便查看通道。除了一键创建16轨,也可以自己建立轨道设置路由。
-
@怪力乱神 在 在MIDI编辑器窗口打开乐器界面窗口 中说:
@futurewy 没有研究过这个地方,要实现应该可以。
轨道上的路由按钮可以设置快捷键,弹窗显示也很方便查看通道。除了一键创建16轨,也可以自己建立轨道设置路由。我感觉在轨道上显示通道号不容易吧,毕竟要对ui进行修改了。