open-audiovisual
搜尋 GitHub

teenage engineering

teenage engineering OP-1 field

teenage engineering OP-1 field 是 teenage engineering 的 MIDI 硬體控制器:24 個琴鍵、4 顆無段旋鈕、33 顆按鈕。

它在 頻道 1 送出 CC、音符,設定檔引用了 2 份出處。 沒有任何控制項被標為未確認。

  • 原廠文件
  • 社群整理
類型
硬體裝置
廠牌
teenage engineering
控制項
61 個控制項
訊息種類
CC · 音符
MIDI 頻道
1
LED 回饋
不會送出
訊號
midi/op1field/…
埠名稱比對
/\bop-?1\b/i
·············································································································volOP-1 fieldOP–1fieldshift

在畫面上彈 teenage engineering OP-1 field 全螢幕 ↗ 原始 JSON ↗ 全部控制器

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

MIDI 實作表

teenage engineering OP-1 field 每個控制項送出什麼

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

OP-1 field 的 MIDI 實作表
控制項類型訊息頻道編號訊號LED 回饋已確認
enc1 無段旋鈕 CC · 絕對值 1 1 midi/op1field/enc1 — 是
enc2 無段旋鈕 CC · 絕對值 1 2 midi/op1field/enc2 — 是
enc3 無段旋鈕 CC · 絕對值 1 3 midi/op1field/enc3 — 是
enc4 無段旋鈕 CC · 絕對值 1 4 midi/op1field/enc4 — 是
push1 按鈕 CC · 按住 1 66 midi/op1field/push1 — 是
push2 按鈕 CC · 按住 1 67 midi/op1field/push2 — 是
push3 按鈕 CC · 按住 1 68 midi/op1field/push3 — 是
push4 按鈕 CC · 按住 1 69 midi/op1field/push4 — 是
? help 按鈕 CC · 按住 1 5 midi/op1field/help — 是
♩ metronome 按鈕 CC · 按住 1 6 midi/op1field/metronome — 是
↗ input 按鈕 CC · 按住 1 48 midi/op1field/input — 是
com 按鈕 CC · 按住 1 49 midi/op1field/com — 是
∿∿ synth 按鈕 CC · 按住 1 7 midi/op1field/synth — 是
◉ drum 按鈕 CC · 按住 1 8 midi/op1field/drum — 是
ꝏ tape 按鈕 CC · 按住 1 9 midi/op1field/tape — 是
ılı mixer 按鈕 CC · 按住 1 10 midi/op1field/mixer — 是
1 t1 按鈕 CC · 按住 1 11 midi/op1field/t1 — 是
2 t2 按鈕 CC · 按住 1 12 midi/op1field/t2 — 是
3 t3 按鈕 CC · 按住 1 13 midi/op1field/t3 — 是
4 t4 按鈕 CC · 按住 1 14 midi/op1field/t4 — 是
1 in k1 按鈕 CC · 按住 1 50 midi/op1field/k1 — 是
2 out k2 按鈕 CC · 按住 1 51 midi/op1field/k2 — 是
3 ↺ k3 按鈕 CC · 按住 1 52 midi/op1field/k3 — 是
4 ꝏ k4 按鈕 CC · 按住 1 21 midi/op1field/k4 — 是
5 я k5 按鈕 CC · 按住 1 22 midi/op1field/k5 — 是
6 ⋯ k6 按鈕 CC · 按住 1 23 midi/op1field/k6 — 是
7 m1 k7 按鈕 CC · 按住 1 24 midi/op1field/k7 — 是
8 m2 k8 按鈕 CC · 按住 1 25 midi/op1field/k8 — 是
⋰ seq 按鈕 CC · 按住 1 26 midi/op1field/seq — 是
⤒ lift 按鈕 CC · 按住 1 15 midi/op1field/lift — 是
⤓ drop 按鈕 CC · 按住 1 16 midi/op1field/drop — 是
✂ split 按鈕 CC · 按住 1 17 midi/op1field/split — 是
● rec 按鈕 CC · 按住 1 38 midi/op1field/rec — 是
▶ play 按鈕 CC · 按住 1 39 midi/op1field/play — 是
■ stop 按鈕 CC · 按住 1 40 midi/op1field/stop — 是
← left 按鈕 CC · 按住 1 41 midi/op1field/left — 是
→ right 按鈕 CC · 按住 1 42 midi/op1field/right — 是
Keys keys 琴鍵 音符 · 力度 1 53–76(F3–E5) midi/op1field/keys/on · midi/op1field/keys/off · midi/op1field/n53…n76 — 是

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

個別控制項的說明

出處

  • 原廠 OP-1 field user guide, fw 1.7 (teenage engineering)CTRL mode (shift + COM → T2) turns the unit into a controller; control MIDI channel settable 1–16; encoders send relative or absolute (unit setting); MIDI over USB and Bluetooth LE; the field's encoders are blue, ochre, gray and orange
  • 社群 Support for Teenage Engineering OP-1 — Zynthian forum (non-official)community report for the original OP-1: encoders = CC 1–4 (blue, green, white, orange on the original — blue, ochre, gray, orange on the field — in the MIDI log's column order), relative 1 = right, 127 = left; encoder push = CC 64–67, 127 press / 0 release. On the tested OP-1 field the encoders matched (CC 1–4); its pushes send CC 66–69 instead

說明

Before anything is sent: COM → T1 sys → midi, set NOTES and OTHER to OUT (both were OFF on the unit this was tested on, and CTRL mode sent nothing until they were set). Then CTRL mode: shift + COM → T2. Tested over USB on an OP-1 field. Its MIDI port is named just "OP-1" (macOS, USB 2367:8102), so the port match cannot tell it from the original OP-1. Control channel 1 (settable 1–16 on the CTRL page; use the element's channel attribute if yours differs). Every control was pressed once on the tested unit: encoders CC 1–4 (absolute as tested; the CTRL page can switch them to relative), encoder pushes CC 66–69, T1–T4 CC 11–14, help 5, metronome 6, synth/drum/tape/mixer 7–10, lift/drop/scissors 15–17, keys 1–3 CC 50–52, keys 4–8 CC 21–25, sequencer 26, record/play/stop 38–40, input 48, COM 49, ← → 41–42 (with OCTAVE off) — all 127 press / 0 release. Hold shift on the CTRL page for its settings: MIDI CH, KNOBS (abs/rel) and OCTAVE. With OCTAVE on, the ← → arrows shift the keyboard an octave and send nothing; turn it off to use them as CC 41/42. Shift and the volume knob send nothing (both tested): they are drawn, not mapped. On screen, tap a knob's centre to press it and drag its ring to turn it. The faceplate follows the top view in TE's user guide. No LED feedback.

認得的埠名稱

比對
/\bop-?1\b/i

訊號

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

用起來

把 teenage engineering OP-1 field 用在你的作品裡

  1. 一行嵌入

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

    html
    <script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script>
    <oav-controller profile="teenage-engineering-op-1-field" readout></oav-controller>
  2. 或用 iframe

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

    html
    <iframe src="https://openaudiovisual.com/embed/controller/?profile=teenage-engineering-op-1-field&readout"
            width="720" height="281" style="border:0;max-width:100%" allow="midi"
            title="OP-1 field"></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="teenage-engineering-op-1-field" 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=teenage-engineering-op-1-field,畫面上的控制器就是這一台;真的 teenage engineering OP-1 field 接上時,會依埠名稱自動認出來。

javascript
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=teenage-engineering-op-1-field' }));
在草稿裡控制項訊息
notePressed(note, velocity)53–76(F3–E5)琴鍵按下
p5.js 草稿
function draw() {
  background(20);
}

function notePressed(note, velocity) {   // a key goes down
  circle(random(width), random(height), velocity * 100);
}

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

p5.js 完整說明 →

找不到

沒有你那台?

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

GitHub

這台的資料有錯嗎?

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