通用版面
通用 16 打擊墊
通用 16 打擊墊是通用版面,不對應任何一款產品:16 個打擊墊。它的訊息是慣例,不是哪個廠牌的對照表。找不到你那一台的話,先挑它,按「學習」,再照順序動每個控制項。
- 通用版面
- 類型
- 通用版面
- 控制項
- 16 個控制項
- 訊息種類
- 音符
- MIDI 頻道
- 10
- LED 回饋
- 不會送出
- 訊號
midi/g16p/…- 埠名稱比對
- 無:手動指定,再用學習模式
拖曳旋鈕和推桿 · 點打擊墊和琴鍵 · 或接上真機按「接上」。除非你加了 MIDI 輸出,否則什麼都不會送出去。
MIDI 實作表
通用 16 打擊墊 每個控制項送出什麼
直接從設定檔產生,跟畫面上彈的是同一張表。頻道是 1–16,編號是真正的 MIDI 編號。
| 控制項 | 類型 | 訊息 | 頻道 | 編號 | 訊號 | LED 回饋 | 已確認 |
|---|---|---|---|---|---|---|---|
1 pad1 |
打擊墊 | 音符 · 力度 | 10 | 36 · C2 | midi/g16p/pad1 |
— | 是 |
2 pad2 |
打擊墊 | 音符 · 力度 | 10 | 37 · C#2 | midi/g16p/pad2 |
— | 是 |
3 pad3 |
打擊墊 | 音符 · 力度 | 10 | 38 · D2 | midi/g16p/pad3 |
— | 是 |
4 pad4 |
打擊墊 | 音符 · 力度 | 10 | 39 · D#2 | midi/g16p/pad4 |
— | 是 |
5 pad5 |
打擊墊 | 音符 · 力度 | 10 | 40 · E2 | midi/g16p/pad5 |
— | 是 |
6 pad6 |
打擊墊 | 音符 · 力度 | 10 | 41 · F2 | midi/g16p/pad6 |
— | 是 |
7 pad7 |
打擊墊 | 音符 · 力度 | 10 | 42 · F#2 | midi/g16p/pad7 |
— | 是 |
8 pad8 |
打擊墊 | 音符 · 力度 | 10 | 43 · G2 | midi/g16p/pad8 |
— | 是 |
9 pad9 |
打擊墊 | 音符 · 力度 | 10 | 44 · G#2 | midi/g16p/pad9 |
— | 是 |
10 pad10 |
打擊墊 | 音符 · 力度 | 10 | 45 · A2 | midi/g16p/pad10 |
— | 是 |
11 pad11 |
打擊墊 | 音符 · 力度 | 10 | 46 · A#2 | midi/g16p/pad11 |
— | 是 |
12 pad12 |
打擊墊 | 音符 · 力度 | 10 | 47 · B2 | midi/g16p/pad12 |
— | 是 |
13 pad13 |
打擊墊 | 音符 · 力度 | 10 | 48 · C3 | midi/g16p/pad13 |
— | 是 |
14 pad14 |
打擊墊 | 音符 · 力度 | 10 | 49 · C#3 | midi/g16p/pad14 |
— | 是 |
15 pad15 |
打擊墊 | 音符 · 力度 | 10 | 50 · D3 | midi/g16p/pad15 |
— | 是 |
16 pad16 |
打擊墊 | 音符 · 力度 | 10 | 51 · D#3 | midi/g16p/pad16 |
— | 是 |
這一台還沒有寫 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/g16p/<控制項>(0..1)和 /raw。打擊墊多一個 /hit,無段旋鈕多 /delta,琴鍵有 /on、/off 和 n<音高>。最後動到的那個控制項是 midi/g16p/last。
用起來
把 通用 16 打擊墊 用在你的作品裡
一行嵌入
不用 import map,也不用建置。可以改
layout,加上hardware="ask"就有「接上」按鈕。<script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="generic-16p" readout></oav-controller>或用 iframe
給只能貼 iframe 的地方。每個事件都以
postMessage傳回來。<iframe src="https://openaudiovisual.com/embed/controller/?profile=generic-16p&readout" width="720" height="742" style="border:0;max-width:100%" allow="midi" title="Generic 16 pads"></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>送進 Ableton、TouchDesigner、Resolume
你在畫面上彈的,會變成真正的 MIDI,從 macOS 的 IAC 匯流排或 Windows 的 loopMIDI 埠送出。步驟在圖鑑頁。
<!-- 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-16p" 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-16p,畫面上的控制器就是這個版面。
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=generic-16p' }));| 在草稿裡 | 控制項 | 訊息 |
|---|---|---|
pad1 | 1 pad1 | 音符 36 · C2 · 頻道 10 |
pad2 | 2 pad2 | 音符 37 · C#2 · 頻道 10 |
pad3 | 3 pad3 | 音符 38 · D2 · 頻道 10 |
pad4 | 4 pad4 | 音符 39 · D#2 · 頻道 10 |
pad5 | 5 pad5 | 音符 40 · E2 · 頻道 10 |
pad6 | 6 pad6 | 音符 41 · F2 · 頻道 10 |
pad7 | 7 pad7 | 音符 42 · F#2 · 頻道 10 |
pad8 | 8 pad8 | 音符 43 · G2 · 頻道 10 |
pad9 | 9 pad9 | 音符 44 · G#2 · 頻道 10 |
pad10 | 10 pad10 | 音符 45 · A2 · 頻道 10 |
pad11 | 11 pad11 | 音符 46 · A#2 · 頻道 10 |
pad12 | 12 pad12 | 音符 47 · B2 · 頻道 10 |
pad13 | 13 pad13 | 音符 48 · C3 · 頻道 10 |
pad14 | 14 pad14 | 音符 49 · C#3 · 頻道 10 |
pad15 | 15 pad15 | 音符 50 · D3 · 頻道 10 |
pad16 | 16 pad16 | 音符 51 · D#3 · 頻道 10 |
function draw() {
background(20);
}
function padPressed(n, velocity) { // n = 1…16, as in the table
circle(random(width), random(height), velocity * 100);
}這是通用版面,要在畫面上選它當控制器,編號才會照這份設定。接上不認識的真機時,旋鈕會依你轉動的順序編號。
找不到
沒有你那台?
開一張 issue,寫廠牌型號、手上有沒有這台、手冊的連結。也可以自己寫設定檔,它就是一個 JSON 檔。
GitHub
這台的資料有錯嗎?
這一頁的每個數字都來自一個 JSON 檔。如果跟你的機器或手冊對不上,告訴我們你查的是哪個韌體版本,我們就改檔案。