DJ TechTools
DJ TechTools Midi Fighter Twister
DJ TechTools Midi Fighter Twister 是 DJ TechTools 的 MIDI 硬體控制器:16 顆無段旋鈕、22 顆按鈕。
它在 頻道 1、2、4 送出 CC,設定檔引用了 2 份出處。 其中 6 個控制項標了未確認:數字是照目前出處的最佳判讀,按「學習」一次就能重新對應。
- 原廠文件
- LED 回饋
- 6 個未確認
- 類型
- 硬體裝置
- 廠牌
- DJ TechTools
- 控制項
- 38 個控制項
- 訊息種類
- CC
- MIDI 頻道
- 1, 2, 4
- LED 回饋
- 有,燈光由 MIDI 控制
- 訊號
midi/twister/…- 埠名稱比對
/midi\s*fighter\s*twister/i
拖曳旋鈕和推桿 · 點打擊墊和琴鍵 · 或接上真機按「接上」。除非你加了 MIDI 輸出,否則什麼都不會送出去。
MIDI 實作表
DJ TechTools Midi Fighter Twister 每個控制項送出什麼
直接從設定檔產生,跟畫面上彈的是同一張表。頻道是 1–16,編號是真正的 MIDI 編號。
| 控制項 | 類型 | 訊息 | 頻道 | 編號 | 訊號 | LED 回饋 | 已確認 |
|---|---|---|---|---|---|---|---|
1 enc1 |
無段旋鈕 | CC · 絕對值 | 1 | 0 | midi/twister/enc1 |
— | 是 |
2 enc2 |
無段旋鈕 | CC · 絕對值 | 1 | 1 | midi/twister/enc2 |
— | 是 |
3 enc3 |
無段旋鈕 | CC · 絕對值 | 1 | 2 | midi/twister/enc3 |
— | 是 |
4 enc4 |
無段旋鈕 | CC · 絕對值 | 1 | 3 | midi/twister/enc4 |
— | 是 |
5 enc5 |
無段旋鈕 | CC · 絕對值 | 1 | 4 | midi/twister/enc5 |
— | 是 |
6 enc6 |
無段旋鈕 | CC · 絕對值 | 1 | 5 | midi/twister/enc6 |
— | 是 |
7 enc7 |
無段旋鈕 | CC · 絕對值 | 1 | 6 | midi/twister/enc7 |
— | 是 |
8 enc8 |
無段旋鈕 | CC · 絕對值 | 1 | 7 | midi/twister/enc8 |
— | 是 |
9 enc9 |
無段旋鈕 | CC · 絕對值 | 1 | 8 | midi/twister/enc9 |
— | 是 |
10 enc10 |
無段旋鈕 | CC · 絕對值 | 1 | 9 | midi/twister/enc10 |
— | 是 |
11 enc11 |
無段旋鈕 | CC · 絕對值 | 1 | 10 | midi/twister/enc11 |
— | 是 |
12 enc12 |
無段旋鈕 | CC · 絕對值 | 1 | 11 | midi/twister/enc12 |
— | 是 |
13 enc13 |
無段旋鈕 | CC · 絕對值 | 1 | 12 | midi/twister/enc13 |
— | 是 |
14 enc14 |
無段旋鈕 | CC · 絕對值 | 1 | 13 | midi/twister/enc14 |
— | 是 |
15 enc15 |
無段旋鈕 | CC · 絕對值 | 1 | 14 | midi/twister/enc15 |
— | 是 |
16 enc16 |
無段旋鈕 | CC · 絕對值 | 1 | 15 | midi/twister/enc16 |
— | 是 |
push1 |
按鈕 | CC · 按住 | 2 | 0 | midi/twister/push1 |
CC 0 · ch 2 · 亮 127 / 暗 0 | 是 |
push2 |
按鈕 | CC · 按住 | 2 | 1 | midi/twister/push2 |
CC 1 · ch 2 · 亮 127 / 暗 0 | 是 |
push3 |
按鈕 | CC · 按住 | 2 | 2 | midi/twister/push3 |
CC 2 · ch 2 · 亮 127 / 暗 0 | 是 |
push4 |
按鈕 | CC · 按住 | 2 | 3 | midi/twister/push4 |
CC 3 · ch 2 · 亮 127 / 暗 0 | 是 |
push5 |
按鈕 | CC · 按住 | 2 | 4 | midi/twister/push5 |
CC 4 · ch 2 · 亮 127 / 暗 0 | 是 |
push6 |
按鈕 | CC · 按住 | 2 | 5 | midi/twister/push6 |
CC 5 · ch 2 · 亮 127 / 暗 0 | 是 |
push7 |
按鈕 | CC · 按住 | 2 | 6 | midi/twister/push7 |
CC 6 · ch 2 · 亮 127 / 暗 0 | 是 |
push8 |
按鈕 | CC · 按住 | 2 | 7 | midi/twister/push8 |
CC 7 · ch 2 · 亮 127 / 暗 0 | 是 |
push9 |
按鈕 | CC · 按住 | 2 | 8 | midi/twister/push9 |
CC 8 · ch 2 · 亮 127 / 暗 0 | 是 |
push10 |
按鈕 | CC · 按住 | 2 | 9 | midi/twister/push10 |
CC 9 · ch 2 · 亮 127 / 暗 0 | 是 |
push11 |
按鈕 | CC · 按住 | 2 | 10 | midi/twister/push11 |
CC 10 · ch 2 · 亮 127 / 暗 0 | 是 |
push12 |
按鈕 | CC · 按住 | 2 | 11 | midi/twister/push12 |
CC 11 · ch 2 · 亮 127 / 暗 0 | 是 |
push13 |
按鈕 | CC · 按住 | 2 | 12 | midi/twister/push13 |
CC 12 · ch 2 · 亮 127 / 暗 0 | 是 |
push14 |
按鈕 | CC · 按住 | 2 | 13 | midi/twister/push14 |
CC 13 · ch 2 · 亮 127 / 暗 0 | 是 |
push15 |
按鈕 | CC · 按住 | 2 | 14 | midi/twister/push15 |
CC 14 · ch 2 · 亮 127 / 暗 0 | 是 |
push16 |
按鈕 | CC · 按住 | 2 | 15 | midi/twister/push16 |
CC 15 · ch 2 · 亮 127 / 暗 0 | 是 |
L1 sidel1 |
按鈕 | CC · 按住 | 4 | 8 | midi/twister/sidel1 |
— | 未確認 |
◀ sidel2 |
按鈕 | CC · 按住 | 4 | 9 | midi/twister/sidel2 |
— | 未確認 |
L3 sidel3 |
按鈕 | CC · 按住 | 4 | 10 | midi/twister/sidel3 |
— | 未確認 |
R1 sider1 |
按鈕 | CC · 按住 | 4 | 11 | midi/twister/sider1 |
— | 未確認 |
▶ sider2 |
按鈕 | CC · 按住 | 4 | 12 | midi/twister/sider2 |
— | 未確認 |
R3 sider3 |
按鈕 | CC · 按住 | 4 | 13 | midi/twister/sider3 |
— | 未確認 |
這一台有 16 個控制項寫了 LED 回饋,上面表格的 LED 欄就是讓它亮的訊息。
個別控制項的說明
sidel1Left side button 1 (top). Bank 1: CC 8 / note G#-1 on the system channel (4). The manual lists this number for a side button set to a MIDI function; which function the factory configuration gives it is not printed, so the number is the manual's, the default behaviour unconfirmed.sidel2Left side button 2 (middle). By default it decrements the bank (an internal action, no MIDI): the manual's Bank 1 table lists CC 9 / note A-1 for it only when the Utility makes it a MIDI button.sidel3Left side button 3 (bottom). Bank 1: CC 10 / note A#-1 on the system channel (4); factory function not printed.sider1Right side button 1 (top). Bank 1: CC 11 / note B-1 on the system channel (4); factory function not printed.sider2Right side button 2 (middle). By default it increments the bank (an internal action, no MIDI): the manual's Bank 1 table lists CC 12 / note C0 for it only when the Utility makes it a MIDI button.sider3Right side button 3 (bottom). Bank 1: CC 13 / note C#0 on the system channel (4); factory function not printed.
出處
- 原廠 Midi Fighter Twister User Guide v1.01 (DJ TechTools)official. Appendix 1, Bank 1: encoders CC 0–15, switches CC 0–15 (switch type defaults to CC), side switches CC 8–13; the guide counts channels 0–15, so its 'channel 0' is MIDI channel 1 on the wire; encoder types CC / Note / 'Enc 3FH/41H' (relative: 65 per clockwise step, 63 per anti-clockwise step); switch actions CC hold / toggle, note hold / toggle, reset, fine, shift; RGB segment: 'a MIDI message of the same MIDI number, on channel 1' (= MIDI channel 2), 0 = inactive colour, 127 = active colour, 1–126 a colour on the scale; animation messages on the next channel; bank change notes; banks 2–4 use CC 16–31, 32–47, 48–63
- 原廠 Midi Fighter Twister User Guide v1.03 (DJ TechTools; copy hosted by a retailer, justmusic.de)official document, third-party host. Says it in 1-based channels: 'Channel 1: Encoders & LED Rings · Channel 2: Encoder Switches (RGB) · Channel 3: Encoder Switches animations & brightness · Channel 4: System MIDI Channel (Banks & Side Buttons) · Channel 5: Shift Encoders & LED Rings'; side-button messages on the system channel (4 by default); bank-select notes on channel 4, CC 0–3; the animation values 1–16 and brightness 17–47
說明
Models the factory configuration of the Midi Fighter Utility, Bank 1 of 4 (the unit starts on Bank 1; the middle side buttons change bank by default, an action that sends no CC). Each of the 16 encoders is two controls: the encoder (CC 0–15, channel 1, absolute 0–127) and its push switch (CC 0–15, channel 2, 127 while held, 0 on release). The encoder is endless in your hand but sends an absolute value by default. Switch an encoder to 'Enc 3FH/41H' in the Utility and it becomes relative: 65 for each clockwise step, 63 for each anti-clockwise one, which is relative "offset64" in this format (set it on the control or with learn). Banks 2–4 send encoders and switches on the same channels with CC 16–31, 32–47 and 48–63 (the v1.01 guide's bank 3 switch column skips CC 37; the encoder column does not), and the side buttons move up with the bank: none of that is modelled, and any encoder or switch you remap in the Utility leaves this table. LED feedback: send the push switch's own CC on channel 2 (value 0 = its inactive colour, 127 = its active colour, 1–126 a colour on the guide's scale) and the 11-LED ring follows a CC of the same number on channel 1: that is how a DAW or this page shows a parameter's value on the unit. Animations (strobe 1–8, pulse 9–16, rainbow 127) go to channel 3. The six side buttons send on channel 4; their numbers are the manual's but its factory function for them is not printed, so they are flagged. On the unit they sit on the left and right edges; here they are drawn beside the grid. Ring colours follow DJ TechTools' product image (a yellow-to-red gradient, row by row).
認得的埠名稱
- 比對
/midi\s*fighter\s*twister/i- 避開
/boot/i
訊號
每個控制項都會發出 midi/twister/<控制項>(0..1)和 /raw。打擊墊多一個 /hit,無段旋鈕多 /delta,琴鍵有 /on、/off 和 n<音高>。最後動到的那個控制項是 midi/twister/last。
用起來
把 DJ TechTools Midi Fighter Twister 用在你的作品裡
一行嵌入
不用 import map,也不用建置。可以改
layout,加上hardware="ask"就有「接上」按鈕。<script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="djtechtools-midi-fighter-twister" readout></oav-controller>或用 iframe
給只能貼 iframe 的地方。每個事件都以
postMessage傳回來。<iframe src="https://openaudiovisual.com/embed/controller/?profile=djtechtools-midi-fighter-twister&readout" width="720" height="656" style="border:0;max-width:100%" allow="midi" title="DJ TechTools Midi Fighter Twister"></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="djtechtools-midi-fighter-twister" 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=djtechtools-midi-fighter-twister,畫面上的控制器就是這一台;真的 DJ TechTools Midi Fighter Twister 接上時,會依埠名稱自動認出來。
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=djtechtools-midi-fighter-twister' }));function draw() {
background(20);
}無段旋鈕、按鈕、滾輪和觸控條沒有編號:用 midi.cc[編號] 讀(編號見上面的表),或寫 controlChange(cc, value, ch) 接。
找不到
沒有你那台?
開一張 issue,寫廠牌型號、手上有沒有這台、手冊的連結。也可以自己寫設定檔,它就是一個 JSON 檔。
GitHub
這台的資料有錯嗎?
這一頁的每個數字都來自一個 JSON 檔。如果跟你的機器或手冊對不上,告訴我們你查的是哪個韌體版本,我們就改檔案。