在 Logic Pro 中创建脚本编辑器 MIDI 插件控制

本节概述了如何使用脚本编辑器来创建标准界面控制器,如脚本编辑器插件的滑块和菜单。只有“名称”是您必须为新参数定义的强制属性。这是基本滑块的默认值。另外,您可以使用更多属性来更改控制的类型和功能。

载入相应的 Tutorial 设置以在脚本编辑器中查看脚本。这有助于您理解语法结构以及代码和注释的布局。请参阅使用脚本编辑器

可选属性

  • 类型:键入以下一种字符串作为值:

    • “lin”:创建线性推子。

    • “log”:创建对数推子。

    • “momentary”:创建一个瞬时按钮。

    • “menu”:创建菜单。

      菜单类型需要附加的 valueStrings 属性(显示在菜单中的一系列字符串)。请参阅 Tutorial 脚本 13。

  • defaultValue:键入一个整数或浮点数以设定默认值。如果未键入值,那么默认为 0.0。

  • minValue:键入一个整数或浮点数以设定最小值。如果未键入值,那么默认为 0.0。

  • maxValue:键入一个整数或浮点数以设定最大值。如果未键入值,那么默认为 1.0。

  • numberOfSteps:键入一个整数以定义步进数。

  • 单位:键入一个字符串作为插件控制中的单位描述。如果不键入值,则默认不显示单位。

  • text:键入文本以在插件 UI 中创建分隔器或标头。

Tutorial 脚本 11:创建滑块

在 Logic Pro中,在脚本编辑器窗口中键入以下内容,以创建一个名为“Parameter x”的滑块,其默认范围为 0 到 1。滑块的中间点值设定为 0.5。

var PluginParameters = [{name:"Parameter x", defaultValue:0.5}];

Tutorial 脚本 12:滑块范围

在 Logic Pro中,在脚本编辑器窗口中键入以下内容,以创建一个线性滑块类型,具有五个可能的位置(步进),其范围为 0 到 5。

var PluginParameters = [{name:"Octaves", defaultValue:3, minValue:0, maxValue:5, numberOfSteps:5, unit:"octaves", type:"lin"}];

Tutorial 脚本 13:创建菜单

在 Logic Pro中,在脚本编辑器窗口中键入以下内容,以创建一个名为“范围”的菜单,此菜单选项包括“低”、“中”和“高”。

var PluginParameters = [{name:"Range", type:"menu", valueStrings:["Low", "Mid", "High"]}];

动态隐藏或显示 MIDI 插件控制

在复杂的 Logic Pro 脚本中,动态隐藏或显示参数控制可能有所帮助。例如,对于一个菜单项,可让您选取要显示的一组控制。在脚本编辑器窗口中键入以下内容,以创建这些控制器类型。

  • var PluginParameters = [{name:'uno'}, {name:'dos', hidden:true}];

    调用 UpdatePluginParameters() 以进行动态更改。

获取插件参数值

使用参数名称调用 GetParameter(),以使用参数的当前值返回一个值(数字对象)。GetParameter() 通常用在 HandleMIDI 函数ProcessMIDI 函数内。

在 Logic Pro中,此代码示例将调制事件转换为音符事件,并提供了一个用来确定音符长度的滑块。

  • “/*”之后的文本显示解释 JavaScript 代码的注释。

    var PluginParameters = [{name:"Note Length", minValue:0, maxValue: 100, unit:"%"}]; /* create a slider (default range 0 - 100) */function HandleMIDI(event) {if(event instanceof ControlChange && event.number == 1) { /* if event is MIDI cc1 (modwheel) */var note = new NoteOn; /* create a NoteOn object */if(event.value == 0)/* because modwheel range is 0-127 and pitch range is 1-127, convert a modwheel value of 0 to 1 */event.value = 1;note.pitch = event.value; /* use cc value as note pitch */note.velocity = 100; /* use velocity 100 */note.send(); /* send note on */ var off = new NoteOff(note); /* create a NoteOff object that inherits the NoteOn pitch and velocity values */ var delayInBeats = GetParameter("Note Length")/100 + 0.1; /* retrieve the parameter value of the slider you created (add 0.1 to guarantee note on and off are not simultaneous) */ off.sendAfterBeats(delayInBeats); /* send note off after the length in beats is set via the slider */ }}

Logic Pro 使用手册:Apple Books

Logic Pro 乐器:Apple Books

Logic Pro 效果:Apple Books

Morty Proxy This is a proxified and sanitized view of the page, visit original site.
有帮助?
字符限制: 250
最多 250 个字符。
感谢您的反馈。
Morty Proxy This is a proxified and sanitized view of the page, visit original site.