--[[ 任务目标:在面板上创建10个旋钮,名字是由'xuanniu' +1-9数字组成, 例如第一个旋钮名字'xuanniu 1',第二个旋钮是'xuanniu 2', 根据接收到的midi系统码的第五位数据,选择第几个旋钮, 根据接收到的midi系统码的第六位数据,给旋钮赋值 ]]

-- 导入ctrlr Lua API require("CtrlrLua")

-- 创建全局变量保存旋钮对象 local knobs = {}

-- 创建面板 panel = Panel("MIDI Knobs", 600, 400)

-- 创建10个旋钮,并保存到knobs表中 for i = 1, 10 do knobs[i] = panel:addModulator(MidiSlider('xuanniu ' .. i, i, 0, 127)) end

-- 定义MIDI消息处理函数 function handleMidiMessage(midiMessage) -- 获取MIDI系统码的第五位数据 local knobIndex = (midiMessage:getData1() >> 4) & 0x0F -- 获取MIDI系统码的第六位数据 local knobValue = midiMessage:getData2()

-- 判断旋钮索引是否有效
if knobIndex >= 1 and knobIndex <= 10 then
    -- 设置旋钮的值
    knobs[knobIndex]:setValue(knobValue)
end

end

-- 注册MIDI消息处理函数 panel:addMidiMessageCallback(handleMidiMessage)

-- 显示面板 panel:show()

Ctrlr Lua 脚本:使用 MIDI 控制面板上的旋钮

原文地址: https://www.cveoy.top/t/topic/fQiz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录