编程 SoftStep 编辑器开源:Qt6 构建 MIDI 踏板配置工具,Ableton 控制脚本的 CC 避坑表

2026-09-22 00:04:40

SoftStep 开源软件栈:编辑器构建、Live 控制面脚本与 CC 避坑

项目信息:

硬件与两种编辑器界面

SoftStep 是 Muse Kinetics(原 Keith McMillen Instruments)的 MIDI 脚踏控制器,每个 pad 用传感器检测 3D 压力,可映射 X/Y/Z 到 CC。SoftStep3 使用 USB-C(MIDI over USB-C)、TRS MIDI Out (type A)、2 路 CV 输出,取消了 MIDI Expander 口与串行 MIDI In,只能经 USB 收 MIDI。

编辑器有两个界面:

  • Basic:10 预设,每键单功能,不支持 CV。
  • Advanced:16 预设,每键多动作、可定制 LED、更多传感器响应参数。

当前版本 Editor 3.0.7 / Firmware 2.0.7。系统要求 Qt 6.3.2+(推荐 6.9.2)、C++17、Windows 10+、macOS 10.15+、Linux ALSA。编辑器功能包括 MIDI CC 映射/通道/力度曲线、预设管理、固件更新、硬件测试 pad 灵敏度与脚踏开关,模板库含主流 DAW。

softstep_editor 是跨平台 Qt6 应用套装,许可证 MPL-2.0,Qt 使用 LGPLv3,动态链接。代码来自 KMI Music, Inc. 2025。

hosted / standalone 与 MIDI CC

hosted 模式下,编辑器把传感器数据转成 MIDI,经虚拟端口 SoftStep Share 输出;standalone 模式下,硬件直接经 SoftStep Control Surface 端口输出。

固件更新采用分包(chunk-safe)传输,shared/ 下有 firmware .syx。Windows 上,Windows MIDI Services (WMS) 可用时优先,缺失时自动回退 WinMM。支持 Windows/macOS(Intel+Apple Silicon)/可能 Linux。

从源码构建

git clone --recursive
cd SoftStep
cd standalone/ezpz && qmake softstepezpz.pro && make
cd standalone/advanced && qmake SoftStepAdvanced.pro && make

目录结构:

  • standalone/ezpz
  • standalone/advanced
  • shared/KMI_MDMrtmidisendsysexfirmware .syx
  • Content/DocumentationPresetsTemplates
  • win-deploy/
  • Signing and Notarization/

贡献需真机测试 macOS+Windows。

Windows 打包与 macOS 签名公证

Windows 打包由 .vscode/make-installer.ps1 驱动,通过 VS Code 任务执行;.pro 没有部署目标。需要 Windows SDK(signtool)、QtIFW、代码签名证书。

make-installer.ps1 会从 SoftStepAdvanced.proVERSION 同步版本到 win-deploy/config/config.xml 与 package meta,复制可执行文件并签名、执行 windeployqt、拷贝 OpenSSL DLL,最后用 binarycreator.exe 生成并签名安装包。安装器会检测已装版本,并可先卸载。

macOS 签名与公证:

export DEVELOPER_ID=...
export APPLE_KEYCHAIN_PROFILE=...
export APPLE_TEAM_ID=...
export APPLE_ID=...
export APPLE_APP_PASSWORD=...
cd "Signing and Notarization"
./SoftStep\ -\ build\ sign\ package\ mac\ qt6\ universal.sh

产出 universal binary、签名、DMG、公证。

Ableton Live 12 控制面脚本 modeStep

modeStep 是面向 SoftStep 2 的 Ableton Live 12 控制面脚本(Python)。

安装:把仓库放到 Live User Library 的 Remote Scripts/ 下,目录名需为合法 python 模块名,如 modeStep。重启 Live → Preferences 的 Link, Tempo & MIDI → 选择 modeStep 作为 control surface,输入输出都选 SoftStep 主端口(一般是 SoftStep (Control Surface)SoftStep)。

Track/Sync/Remote/MPE 勾选框:一般全关;若用 standalone 预设,则输入端口需打开 Remote,其余全关。SoftStep 侧无需预设,固件需 v2.0.3+,脚本会把控制器置于 hosted 模式。

模式包括:Transport、Utility(长按)、Device Parameters Y Increment、Expression Pedal Map(映射到号码对应的参数 slot)、Device Parameters Pressure / Pressure Latch、XY Position、Device Bank、Track Controls(keys 1-5,默认 8 轨单参数,clip launch 为 2x4,key 5 为 session record)。

user.py 与按 Set 覆盖

在该目录建 user.py

from .control_surface.configuration import Configuration, override_nav

Configuration(
    initial_mode="track_controls_5",
    key_safety_strategy="single_key",
    override_elements={...}
)

override_track_controlsoverride_modes

按 Set 覆盖:在 session view 建一个名为 ms={"initial_mode": "device_parameters_pressure"}ms<{...} 的 clip。ms= 完全覆盖 user.pyms< 保留 user.py 只覆盖指定字段。只在打开 set 时加载,需保存后重开。

现场编辑 track controls:长按 Mode Select 的 1-5 键选择上下排控制,上下不同 = 4 轨双控制,相同 = 8 轨;key 5 动作可在编辑界面按 5 再按 1-9 指定(长按取 Utility 布局);编辑时按住 key 0 可禁用该模式,并关掉模式选择屏对应 LED。

Standalone 预设:

override_modes={5: ("standalone_1", "standalone_2")}

按下即进入 standalone、发送 program change 1 并交出 LED/显示控制;回到 modeStep 需在预设里把按钮绑定 Foot On = CC 80 (channel 1),推荐 key 0。standalone 期间其它 MIDI 消息被忽略。

要避开的 CC 区间

避免 CCs 40-86 (channel 1):hosted 模式下 SoftStep 用它们传传感器数据。

避免 CCs 20-29、40-42、50-53、110-119(任意通道),否则 Live 的反馈会干扰踏板 LED 与显示。

切换 in/out standalone 时 LED 被覆盖的坑:在配置里设置 background_program

Implicit Arm 与 Push 等其他 control surface 可能冲突。

本文基于上述公开 README 整理;硬件实际响应、不同 Live 版本差异等未实测部分,以 README 描述为准。

复制全文 生成海报 Soft Step MIDI 控制器 Qt6 CC 固件升级 Ableton Live

推荐文章

程序员茄子在线接单