open-audiovisual
搜尋 GitHub

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 FIGHTER TWISTER12345678910111213141516L1◀L3R1▶R3

在畫面上彈 DJ TechTools Midi Fighter Twister 全螢幕 ↗ 原始 JSON ↗ 全部控制器

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

MIDI 實作表

DJ TechTools Midi Fighter Twister 每個控制項送出什麼

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

DJ TechTools Midi Fighter Twister 的 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 欄就是讓它亮的訊息。

個別控制項的說明

出處

  • 原廠 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 用在你的作品裡

  1. 一行嵌入

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

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

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

    html
    <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>
  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="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 接上時,會依埠名稱自動認出來。

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=djtechtools-midi-fighter-twister' }));
p5.js 草稿
function draw() {
  background(20);
}

無段旋鈕、按鈕、滾輪和觸控條沒有編號:用 midi.cc[編號] 讀(編號見上面的表),或寫 controlChange(cc, value, ch) 接。

p5.js 完整說明 →

找不到

沒有你那台?

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

GitHub

這台的資料有錯嗎?

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