请教如何将MIDI BUS发送到音源,在MIDI editor中通过改变channel来切换音色

问题详情

这个视频的7分40秒开始,这个UP主用了一个方法,他似乎是把整个MIDI BUS发送到kontakt的,然后通过切换MIDI通道来切换演奏法,而不是用KEYSWITCH,这对我来说简直太香了! :grinning:

做过的尝试

我按他的方法routing了,可是并不知道他是如何在MIDI Editor切换MIDI通道(他切换的时候说是用数字控制,但我看他MIDI Editor的channel并没有发生改变,只显示All channel),如果有时间的情况能否指点一下

没有细看视频,单从这个疑问来说。切换 channel 时,是不会在 UI 上有显示的。

示范为把 events 切换到 channel 3

Peek 2021-12-06 12-02

即他切换了,你是看不见的。

音符颜色显示为chan,并且把chan相关的动作做成快捷方式,但在一轨里面操作不同的chan我是不太赞同的。

感谢Tee大,我再试一试

感谢蛋总 :grin:
我回头再多试试这两种方法,感觉用channel的话,模板不需要那么多MIDI轨,看起来清爽一些,之前没这么用过

有些音源的技巧之间是关联的,比如吉他闷音和开放,只能出现一个,如果分配到不同的通道,会造成一起发声,听感就不对了。
所以正规的用法还是建议用原厂设定的键控,

我主要是想在管弦模板里这样试一下,这样的好处可能是我在一个kontakt或opus里面建多轨演奏法,这样就不需要在midi工程里一大堆legato,stac.pizz什么的轨道了,只需要一个V1V2简单明了,出谱也省去再编辑掉keyswitch的烦恼,当然肯定还会遇到一些新的不适应,只能试试看了,先忙完手头的事再折腾一下看看 :laughing:
届时有不懂的问题再来请教 :grin:

实验了一下,爽点是,框选音符,直接快捷键改演奏法,可以不再需要多MIDI轨,直接在一轨内编辑且脱离keyswitch,只需要建立自己的演奏法逻辑背下来就好

痛点
1.显示所有chan时,MIDI CC信息太杂乱
2.录音的时候只能录到chan1,即使预先选择成其他chan也不行
3.编辑CC的时候,不知道怎么实现选择音符即跳转相应chan,即使可以通过快捷键实现跳转,但是这样操作痛点就大于爽点了

1 Like

感谢分享!

如果针对的只是演奏法(keyswitch),不知道你是否知道这个模式,named notes 模式。

提前制作好键位名称,按住 ctrl + left drag 拖动这个“键”(只应用在 named notes 模式。在需要写 keyswitch 时,切换到这个模式。

Peek 2021-12-06 21-21

不知道这个啊 :laughing:
我还处于摸索阶段,太多东西不明白了,明天研究一下,感谢 :grinning:

Tee大,求教Midi editor的快捷键和main的快捷键怎么捆绑啊

具体是把midi editor的show only channel 1…12和main的map selected tracks midi input to channel 1…12捆绑

需要写一个简短的脚本。

midi editor 的命令用 MIDIEditor_OnCommand,main 窗口的命令用 Main_OnCommand

一行一个函数即可,参数填写对应的 command id,非常简易。

啊这…果然还要学编程吗…
捣鼓了半天还是不会,我是想用shift+F2,一键同时执行show only channel 2和map selected tracks midi input to channel 2,如果只执行一个我会弄,那个网页的Lua命令我捣鼓半天也不对 :sob:

不需要脚本,作自定义动作就行了。这2动作是现成的。

可是我无论在main还是editor新建custom,都无法找到另一个list里的命令,求解

原来如此,那还是需要脚本,而且需要你当前的编辑器这一轨单独被选中。

你把详细信息发上来才能帮你判断。包括代码本身,执行过程,初次信息等。若需要动图说明也一并配上。

我这个可能逻辑也不对,然后英语渣也不懂代码,太难了 :sob:
不知道怎么实现逻辑,就互相穿透一下试试,结果当然是不行,看起来太蠢了 :sleepy:
boolean retval = reaper.MIDIEditor_OnCommand(HWND midieditor, 40219)
reaper.Main_OnCommand(_S&M_MAP_MIDI_INPUT_CH2, 0)
得到这个
微信图片_20211208093028

能不能开通个付费求助功能呀,虽然可能不多但聊表心意,我不想做伸手党,可又实在没时间精力研究脚本,之前当归蛋大佬帮我做了个脚本,也只是口头感谢了 :flushed:

editor=reaper.MIDIEditor_GetActive()
take=reaper.MIDIEditor_GetTake(editor)
Track=reaper.GetMediaItemTake_Track(take)
reaper.SetOnlyTrackSelected(Track) --select take track

reaper.MIDIEditor_OnCommand(editor,40219) --show only channel 2
reaper.Main_OnCommand(reaper.NamedCommandLookup(’_S&M_MAP_MIDI_INPUT_CH2’),0) --map selected tracks midi input to channel 2

1 Like

最后2行代码中的40219 和_S&M_MAP_MIDI_INPUT_CH2 可以替换为其他的通道动作ID
第2个动作有个前提,必须打开录音,和设置输入为MIDI IN才能起作用。

1 Like