Ableton Live使用自定义脚本编写Midi控制器映射
› VFX大学 › Logic,Cubase电影音乐制作社区 › Ableton Live使用自定义脚本编写Midi控制器映射
标签: Ableton live, Midi
-
作者帖子
-
-
2023-11-21 - 14:26 #126915
手里有一些旧的Midi控制器(Korg Nano Kontrol或其他型号的),上面有推子、旋钮,连接Ableton后却无法控制上面的参数,或者只能通过Midi学习功能来分配按键功能,Midi学习功能非常好用,但每次控制都需要重新分配一次,使用起来也并不算方便。尤其是控制效果器上的参数,或者控制midi宏按钮,这种非常频繁的操作,最佳的方式是:选定哪个效果器,控制器就能自动分配控制当前效果器。
我们能不能使用任意能发出Midi信号的推子、旋钮、按钮来自定义对应的Ableton操作呢?
答案是肯定的。Ableton Live允许用户通过编写自定义MIDI脚本来扩展控制器的功能,这在定制控制器的行为或添加新功能方面非常有用。MIDI脚本可以使用Python语言编写,Ableton提供了一个API供用户创建自定义功能,只需要三个步骤即可快速创建控制器与Ableton的控制。
1、Ableton提供了MIDI Remote Scripting API文档,可以通过输入Midi CC号即可编写并指定控制器的行为。
2、将编写的脚本放置在Ableton的MIDI Remote Scripts目录下,通常这个目录是在安装路径下的文件夹中。
Mac:
1HD:/Users/[Username]/Library/Preferences/Ableton/Live x.x.x/User Remote ScriptsWindows:
1C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote Scripts3、在Ableton的首选项中,找到“Link/MIDI”选项卡,在“Control Surface”部分选择你的自定义脚本作为控制器。
下面我们将重心放到第二步:MIDI Remote Scripting的更改上来,如何进行Midi信号分配,以及脚本对应的功能进行分享。
-
2023-11-21 - 14:41 #126917
User Remote Scripts(用户自定义Midi脚本文件夹)的文件结构与UserConfiguration.txt
使用本目录中提供的文件’UserConfiguration.txt’,你可以创建自己的即时映射,只需要将你midi控制器的 CC信息填写到对应的栏目即可。
1、在用户远程脚本文件夹中,将看到两个文件,InstantMappings-HowTo.txt文件和UserConfiguration.txt文件。
Mac:
1HD:/Users/[Username]/Library/Preferences/Ableton/Live x.x.x/User Remote ScriptsWindows:
1C:\Users\[Username]\AppData\Roaming\Ableton\Live x.x.x\Preferences\User Remote ScriptsInstantMappings-HowTo.txt文件描述了如何以及在哪里保存文件。
UserConfiguration.txt文件包含有关如何编辑文件本身的说明,以便它与您的MIDI控制器配合使用。
2、创建自定义User Remote Scripts控制表面的方法
2.1、在’User Remote Scripts’中创建一个目录。该目录的名称将显示在Live的控制表面列表中。
命名:目录的名称应以字母开头(不能是数字或特殊字符,如’_’)。2.2、将文件’UserConfiguration.txt’复制到你的目录中。文件的名称必须保持不变。
2.3、使用文本编辑器(TXT或者Atom、Dw)打开新创建文件夹内的UserConfiguration.txt。
Ableton自定义Midi控制表面的UserConfiguration.txt文件内容中文详解
此文件中没有加#注释的地方都是用于控制信息填写的位置,-1的号码用于填写你控制器的cc信息,可以将以下内容粘贴替换到你的UserConfiguration.txt中。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298# ======================================================# 用户定义即时映射的配置文件# ======================================================[Globals]# 控制器的Midi通道:在0-15范围。GlobalChannel: 0# ======================================================# 控制设置信息# ======================================================# 下面的设置允许你通过你的控制器发送的MIDI消息来控制Live中的各种功能。# 除了指定音符号的PadxNote功能外,所有其他功能都期望CCs。CCs和音符号编号范围为0-127。# 大多数情况下,期望CCs和音符号在GlobalChannel上发送。然而,对于一些功能,比如EncoderChannelx,可以指定不同的通道。在这些情况下,如果通道设置为-1,则将使用GlobalChannel。通道编号范围为0-15。# 除了用于MixerControl的按钮外,预期你控制器上的按钮不是开关(即,每次按下时发送值0)。# 最后,对于某些功能,你可以指定分配给该功能的MIDI消息的映射模式。以下映射模式可用:# - 绝对模式(Absolute)# - 绝对14位模式(Absolute14Bit)# - 线性有符号位模式(LinearSignedBit)# - 线性有符号位2模式(LinearSignedBit2)# - 线性二补码模式(LinearTwoCompliment)# - 线性二进制偏移模式(LinearBinaryOffset)# - 加速度有符号位模式(AccelSignedBit)# - 加速度有符号位2模式(AccelSignedBit2)# - 加速度二补码模式(AccelTwoCompliment)# - 加速度二进制偏移模式(AccelBinaryOffset)# 对于具有固定范围的推子和旋钮,你将使用Absolute或Absolute14Bit。对于无限旋钮,你将使用其他模式之一。要找出应使用哪种模式,可以:# - 参考控制器的文档。# - 查看Live手册的27.2.4节:# https://www.ableton.com/en/manual/midi-and-key-remote-control/# - 尝试各种模式,看哪种对你最有效。# ======================================================# 下面的Pad设置允许你分配将用于播放Drum Racks中可见Pad的音符号编号。Pad的排列方式如下:# 1 2 3 4# 5 6 7 8# 9 10 11 12# 13 14 15 16Pad1Note: -1Pad2Note: -1Pad3Note: -1Pad4Note: -1Pad5Note: -1Pad6Note: -1Pad7Note: -1Pad8Note: -1Pad9Note: -1Pad10Note: -1Pad11Note: -1Pad12Note: -1Pad13Note: -1Pad14Note: -1Pad15Note: -1Pad16Note: -1Pad1Channel: -1Pad2Channel: -1Pad3Channel: -1Pad4Channel: -1Pad5Channel: -1Pad6Channel: -1Pad7Channel: -1Pad8Channel: -1Pad9Channel: -1Pad10Channel: -1Pad11Channel: -1Pad12Channel: -1Pad13Channel: -1Pad14Channel: -1Pad15Channel: -1Pad16Channel: -1# ======================================================[DeviceControls]# 下面的设置适用于Live中选定的设备,比如效果器参数,每次会自动映射到选中的效果器。# Encoder1-Encoder16同时控制最多16个设备参数。这里使用的编码器数量确定了下面描述的银行按钮的工作方式。如果使用8个或更少的编码器,则银行按钮将选择8个参数的一个银行供编码器控制。如果使用9个或更多编码器,则银行按钮将选择两个包含8个参数的银行供编码器控制。Encoder1: 16Encoder2: 17Encoder3: 18Encoder4: 19Encoder5: 20Encoder6: 21Encoder7: 22Encoder8: 23Encoder9: -1Encoder10: -1Encoder11: -1Encoder12: -1Encoder13: -1Encoder14: -1Encoder15: -1Encoder16: -1EncoderChannel1: -1EncoderChannel2: -1EncoderChannel3: -1EncoderChannel4: -1EncoderChannel5: -1EncoderChannel6: -1EncoderChannel7: -1EncoderChannel8: -1EncoderChannel9: -1EncoderChannel10: -1EncoderChannel11: -1EncoderChannel12: -1EncoderChannel13: -1EncoderChannel14: -1EncoderChannel15: -1EncoderChannel16: -1EncoderMapMode: Absolute# Bank1Button-Bank8Button直接选择编码器要控制的设备参数的银行(们)。Bank1Button: -1Bank2Button: -1Bank3Button: -1Bank4Button: -1Bank5Button: -1Bank6Button: -1Bank7Button: -1Bank8Button: -1# NextBankButton和PrevBankButton选择下一个或上一个编码器要控制的设备参数的银行(们)。NextBankButton: 56PrevBankButton: 40# OnOffButton切换设备激活开关。OnOffButton: 54# LockButton将其他DeviceControls锁定到当前选定的设备。LockButton: 38# ======================================================[MixerControls]# 下面的设置允许你同时控制8个轨道的各种混音功能。# VolumeSlider1-VolumeSlider8控制轨道音量。VolumeSlider1: 0VolumeSlider2: 1VolumeSlider3: 2VolumeSlider4: 3VolumeSlider5: 4VolumeSlider6: 5VolumeSlider7: 6VolumeSlider8: 7Slider1Channel: -1Slider2Channel: -1Slider3Channel: -1Slider4Channel: -1Slider5Channel: -1Slider6Channel: -1Slider7Channel: -1Slider8Channel: -1# Send1Knob1-Send1Knob8控制轨道发送A。Send1Knob1: 41Send1Knob2: 42Send1Knob3: 43Send1Knob4: 44Send1Knob5: 45Send1Knob6: 46Send1Knob7: 47Send1Knob8: 57# Send2Knob1-Send2Knob8控制轨道发送B。Send2Knob1: 9Send2Knob2: 25Send2Knob3: 26Send2Knob4: 27Send2Knob5: 28Send2Knob6: 29Send2Knob7: 30Send2Knob8: 31# TrackMuteButton1-TrackMuteButton8控制轨道静音。TrackMuteButton1: 32TrackMuteButton2: 33TrackMuteButton3: 34TrackMuteButton4: 35TrackMuteButton5: 36TrackMuteButton6: 37TrackMuteButton7: -1TrackMuteButton8: -1# InvertMuteButtonFeedback指定发送到TrackMuteButtons的反馈是否被反转(True)或不反转(False)。# 当反转时,未静音的轨道会发送一个开启值,而静音的轨道会发送一个关闭值。InvertMuteButtonFeedback: True# TrackSoloButton1-TrackSoloButton8控制轨道独奏开启或者关闭。TrackSoloButton1: 48TrackSoloButton2: 49TrackSoloButton3: 50TrackSoloButton4: 51TrackSoloButton5: 52TrackSoloButton6: 53TrackSoloButton7: -1TrackSoloButton8: -1# TrackSelectButton1-TrackSelectButton8用于选择轨道。TrackSelectButton1: 74TrackSelectButton2: 75TrackSelectButton3: 76TrackSelectButton4: 121TrackSelectButton5: 122TrackSelectButton6: 82TrackSelectButton7: 124TrackSelectButton8: 125# TrackArmButton1-TrackArmButton8控制轨道录音启用或关闭。TrackArmButton1: 59TrackArmButton2: 60TrackArmButton3: 61TrackArmButton4: 62TrackArmButton5: 63TrackArmButton6: 70TrackArmButton7: 71TrackArmButton8: 72# NextBankButton和PrevBankButton平移上面控制的8个轨道的上一组或下一组推子或旋钮。NextBankButton: 12PrevBankButton: 10# MasterVolumeSlider控制总轨道音量。MasterVolumeSlider: 8MasterSliderChannel: -1# CueVolumeSlider控制Cue/预览音量。CueVolumeSlider: 24CueSliderChannel: -1# CrossfaderSlider控制十字淡入淡出。CrossfaderSlider: -1CrossfaderSliderChannel: -1CrossfaderMapMode: Absolute# VolumeMapMode指定所有音量控件使用的映射模式。VolumeMapMode: Absolute# SendsMapMode指定所有发送控件使用的映射模式。SendsMapMode: Absolute# MixerButtonsToggle指定本部分的按钮是切换(True)还是瞬时(False)。MixerButtonsToggle: True# ======================================================[TransportControls]# 下面的设置允许你控制各种与传输相关的功能。# StopButton停止播放。StopButton: 68# PlayButton开始播放。PlayButton: 65# RecButton切换Arrangement录制。RecButton: 69# SessionRecButton切换Session录制。SessionRecButton: -1# OverButton切换Arrangement Overdub。OverButton: -1# MetroButton节拍器开关。MetroButton: 39# LoopButton切换Arrangement循环。LoopButton: 67# RwdButton倒带播放。RwdButton: 64# FwdButton快进播放。FfwdButton: 66# PunchInButton控制Punch-In。PunchInButton: -1# PunchOutButton控制Punch-Out。PunchOutButton: -1# NudgeUpButton触发Phase Nudge Up。NudgeUpButton: -1# NudgeDownButton触发Phase Nudge Down。NudgeDownButton: -1# TapTempoButton 通过点按来手动探测节拍。TapTempoButton: 55
3、获取控制器在哪个MIDI通道上发送数据,按钮以及编码器和滑块的MIDI CC信号值。并填写到UserConfiguration.txt
找到手中Midi控制器Midi cc信号值的快速方法是在Live中进行MIDI遥控器分配,并记下相应的CC值。或者可以使用Mac版Snoize MIDI Monitor或PC版OBDS MIDI Monitor。
-
2023-11-21 - 15:19 #126922
小拓展:使用上面的方法可以使任何能够发出Midi信息的设备按照我们期望的方式映射到Ableton中实现硬件控制,当然还有更高阶的Midi 控制脚本编写方式:Ableton Live Custom MIDI Remote Scripts,这主要用于开发控制硬件的厂家进行硬件设计使用。
以上的方式适用于我们个人快速编写控制命令,个人最偏爱的是[DeviceControls],这可以快速的用旋钮控制任何插件(包括第三方插件)中选定的设备,比如效果器参数,每次会自动映射到选中的效果器,使得制作效率大大提升。
如果在编配控制脚本的过程中遇到问题,可以随时留言,会在看到的第一时间回复,如果有新的更好的方式也可以跟帖回复噢。
本帖未经允许不得转载,禁止二次转载,转载请注明出处并保留在本站的完整链接,谢谢^_^
-
-
作者帖子
- 在下方一键注册,登录后就可以回复啦。