open-audiovisual
搜尋 GitHub

通用版面

通用 8 推桿

通用 8 推桿是通用版面,不對應任何一款產品:8 支推桿。它的訊息是慣例,不是哪個廠牌的對照表。找不到你那一台的話,先挑它,按「學習」,再照順序動每個控制項。

  • 通用版面
類型
通用版面
控制項
8 個控制項
訊息種類
CC
MIDI 頻道
1
LED 回饋
不會送出
訊號
midi/g8f/…
埠名稱比對
無:手動指定,再用學習模式
8 FADERSFADERSF1F2F3F4F5F6F7F8

在畫面上彈 通用 8 推桿 全螢幕 ↗ 原始 JSON ↗ 全部控制器

拖曳旋鈕和推桿 · 點打擊墊和琴鍵 · 或接上真機按「接上」。除非你加了 MIDI 輸出,否則什麼都不會送出去。

MIDI 實作表

通用 8 推桿 每個控制項送出什麼

直接從設定檔產生,跟畫面上彈的是同一張表。頻道是 1–16,編號是真正的 MIDI 編號。

通用 8 推桿 的 MIDI 實作表
控制項類型訊息頻道編號訊號LED 回饋已確認
F1 f1 推桿 CC 1 20 midi/g8f/f1 — 是
F2 f2 推桿 CC 1 21 midi/g8f/f2 — 是
F3 f3 推桿 CC 1 22 midi/g8f/f3 — 是
F4 f4 推桿 CC 1 23 midi/g8f/f4 — 是
F5 f5 推桿 CC 1 24 midi/g8f/f5 — 是
F6 f6 推桿 CC 1 25 midi/g8f/f6 — 是
F7 f7 推桿 CC 1 26 midi/g8f/f7 — 是
F8 f8 推桿 CC 1 27 midi/g8f/f8 — 是

這一台還沒有寫 LED 回饋,OAV 不會讓它的燈亮,但每個控制項照樣可以彈、照樣送出各自的訊息。

出處

  • 慣例 open-audiovisual generic layoutNo device behind it: default messages are a convention (knobs CC 70–77 like many 8-knob pads, faders CC 20–27 in the undefined range, pads GM drum notes from 36 on channel 10). Plug an unknown controller in, pick this layout, and auto-learn binds its messages in the order you move the controls.

認得的埠名稱

通用版面不會自己比對埠:手動指定一個埠,再用學習模式。

訊號

每個控制項都會發出 midi/g8f/<控制項>(0..1)和 /raw。打擊墊多一個 /hit,無段旋鈕多 /delta,琴鍵有 /on、/off 和 n<音高>。最後動到的那個控制項是 midi/g8f/last。

用起來

把 通用 8 推桿 用在你的作品裡

  1. 一行嵌入

    不用 import map,也不用建置。可以改 layout,加上 hardware="ask" 就有「接上」按鈕。

    html
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="generic-8f" readout></oav-controller>
  2. 或用 iframe

    給只能貼 iframe 的地方。每個事件都以 postMessage 傳回來。

    html
    <iframe src="https://openaudiovisual.com/embed/controller/?profile=generic-8f&readout"
            width="720" height="339" style="border:0;max-width:100%" allow="midi"
            title="Generic 8 faders"></iframe>
    <script>
      // every control the visitor plays arrives here
      addEventListener('message', (e) => {
        if (e.data?.source !== 'openav' || e.data.type !== 'control') return;
        console.log(e.data.detail.signal, e.data.detail.value);
      });
    </script>
  3. 送進 Ableton、TouchDesigner、Resolume

    你在畫面上彈的,會變成真正的 MIDI,從 macOS 的 IAC 匯流排或 Windows 的 loopMIDI 埠送出。步驟在圖鑑頁。

    html
    <!-- what you play on this controller → the IAC bus (macOS) → Ableton, TouchDesigner, Resolume -->
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="generic-8f" midi-out="IAC" readout></oav-controller>
    <!-- Windows: midi-out="loopMIDI" · let the visitor pick a port: midi-out="ask" -->

    macOS:音訊 MIDI 設定 → MIDI 工作室 → IAC 驅動程式 → 勾「裝置在線上」。Windows 11:內建的 Windows MIDI Services 有 loopback(我們沒有實測);舊版 Windows:安裝 loopMIDI、新增一個埠,用 midi-out="loopMIDI"。

在 p5.js 裡,只要一行

一行注入會依這個版面裡的順序(也就是上面表格的順序)替旋鈕、推桿和打擊墊編號。網址加上 ?profile=generic-8f,畫面上的控制器就是這個版面。

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=generic-8f' }));
在草稿裡控制項訊息
fader1F1 f1CC 20 · 頻道 1
fader2F2 f2CC 21 · 頻道 1
fader3F3 f3CC 22 · 頻道 1
fader4F4 f4CC 23 · 頻道 1
fader5F5 f5CC 24 · 頻道 1
fader6F6 f6CC 25 · 頻道 1
fader7F7 f7CC 26 · 頻道 1
fader8F8 f8CC 27 · 頻道 1
p5.js 草稿
function draw() {
  background(fader1 * 255);   // F1 · CC 20
  circle(width / 2, height / 2, 50 + fader2 * 300);   // F2 · CC 21
}

這是通用版面,要在畫面上選它當控制器,編號才會照這份設定。接上不認識的真機時,旋鈕會依你轉動的順序編號。

p5.js 完整說明 →

找不到

沒有你那台?

開一張 issue,寫廠牌型號、手上有沒有這台、手冊的連結。也可以自己寫設定檔,它就是一個 JSON 檔。

GitHub

這台的資料有錯嗎?

這一頁的每個數字都來自一個 JSON 檔。如果跟你的機器或手冊對不上,告訴我們你查的是哪個韌體版本,我們就改檔案。