預計閱讀 1 分鐘原文來源
把 MIDI 腳踏板變成 Mac 鍵盤的 fcbnerd 工具
在 Mac 上想要把 MIDI 腳踏板當作額外的鍵盤使用嗎?開源工具 fcbnerd 能直接連接任意 CoreMIDI(蘋果的 MIDI 框架)來源,讓每一次踏板訊號都能觸發 Shell 指令,或是輸出 JSON 物件供其他程式自行解析。即使是最常見的 Behringer FCB1010,也能立即投入使用,且程式本身並不限定於特定硬體。
背景與核心功能
- 純讀取 MIDI:fcbnerd 只負責接收 MIDI 訊息,不需要任何系統權限。所有需要執行的動作(如模擬鍵擊、執行腳本)交由使用者自行指定的 Shell 完成,避免了沙盒應用程式無法取得的權限問題。
- 即時事件輸出:標準輸出 (stdout) 只保留事件資料,每一行在寫入後立即 flush,確保管道 (pipe) 能即時取得訊號。錯誤訊息則送至標準錯誤 (stderr)。
- 彈性綁定:使用
PATTERN=COMMAND形式設定綁定,PATTERN支援*通配符,例如1:30:*代表第 1 頻道、控制器 30 的所有值,常用於表達踏板。--bind可以重複使用,允許同時綁定多個指令。 - 背景執行:指令以
/bin/sh -c(或使用者自行指定的--shell)在背景執行,stdin 連到/dev/null,stdout 重新導向至 fcbnerd 的 stderr,避免汙染事件串流。若加上--quiet,則輸出會回到 stdout。
使用方式概述
-
偵測訊號:
fcbnerd -f text會以文字形式顯示每一次踏板按下或放開時傳送的 MIDI 訊息。 -
設定綁定:例如
--bind 'pc:1:127=/usr/local/bin/next-track',當第 1 頻道的程式變更 (Program Change) 值為 127 時,執行next-track指令。 -
處理連續滑動:對於表達踏板等會快速連續傳送大量值的控制器,fcbnerd 只保留最新值,確保同一時間只跑一個指令,避免指令堆疊。若指令執行超過 5 秒,會在 stderr 中提示。
影響與未來展望
fcbnerd 以最小權限介入 MIDI 訊號,讓使用者可以自由組合 Hammerspoon、Keyboard Maestro 或自訂腳本,打造高度客製化的工作流程。未來若 macOS 持續加強安全模型,只要保持「純讀取」的設計,fcbnerd 應仍能在新系統上順利運作。對於音樂製作人、現場表演者或任何需要腳踏板快速觸發電腦動作的使用者而言,這是一把將硬體與軟體無縫銜接的利器。
小提醒:在設定寬鬆的通配符(如
*:*:127)時,請留意可能會捕捉到雜訊設備的訊號,以免意外觸發大量指令。只要適度調整 PATTERN,便能在安全與效率之間取得最佳平衡。
分享
