Generic layout
Generic 8 faders
Generic 8 faders is a generic layout, not a product: 8 faders. Its messages are conventions rather than one maker's chart. Pick it for a controller that is not in the library, press Learn and move your controls in order.
- Generic layout
- Kind
- generic layout
- Controls
- 8 controls
- Messages
- CC
- MIDI channels
- 1
- LED feedback
- none sent
- Signals
midi/g8f/…- Port name matches
- none: assign by hand, then learn
Drag knobs and faders · tap pads and keys · or plug the real one in and press Connect. Nothing is sent anywhere unless you add a MIDI out.
MIDI implementation
Every control of Generic 8 faders and the message it sends
Generated from the profile file, so it is the same table the on-screen controller plays. Channels are 1–16; numbers are real MIDI numbers.
| Control | Type | Message | Ch | Number | Signal | LED feedback | Verified |
|---|---|---|---|---|---|---|---|
F1 f1 |
fader | CC | 1 | 20 | midi/g8f/f1 |
— | yes |
F2 f2 |
fader | CC | 1 | 21 | midi/g8f/f2 |
— | yes |
F3 f3 |
fader | CC | 1 | 22 | midi/g8f/f3 |
— | yes |
F4 f4 |
fader | CC | 1 | 23 | midi/g8f/f4 |
— | yes |
F5 f5 |
fader | CC | 1 | 24 | midi/g8f/f5 |
— | yes |
F6 f6 |
fader | CC | 1 | 25 | midi/g8f/f6 |
— | yes |
F7 f7 |
fader | CC | 1 | 26 | midi/g8f/f7 |
— | yes |
F8 f8 |
fader | CC | 1 | 27 | midi/g8f/f8 |
— | yes |
LED feedback is not modeled for this one yet, so OAV does not light its LEDs. Every control still plays and sends its message.
Sources
- convention 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.
Port names it recognises
Generic layouts never match a port by themselves: assign one by hand, then learn.
Signals
Every control publishes midi/g8f/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/g8f/last.
Use it
Use Generic 8 faders in your own work
Embed it with one line
No import map, no build step. Change
layout, addhardware="ask"for a Connect button.<script type="module" src="https://openaudiovisual.com/packages/midi/element.js"></script> <oav-controller profile="generic-8f" readout></oav-controller>Or as an iframe
For places that only take an iframe. Every event arrives as a
postMessage.<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>Send it to Ableton, TouchDesigner or Resolume
What you play on screen leaves as real MIDI on the IAC bus (macOS) or a loopMIDI port (Windows). The steps are on the catalog page.
<!-- 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: Audio MIDI Setup → MIDI Studio → IAC Driver → “Device is online”. Windows 11: the built-in Windows MIDI Services have a loopback (not tested by us); older Windows: install loopMIDI, add a port and use
midi-out="loopMIDI".
In p5.js, with one line
The one-line injection names knobs, faders and pads by their order in this layout, the order of the table above. Add ?profile=generic-8f to make the on-screen controller this one.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=generic-8f' }));| In your sketch | Control | Message |
|---|---|---|
fader1 | F1 f1 | CC 20 · Ch 1 |
fader2 | F2 f2 | CC 21 · Ch 1 |
fader3 | F3 f3 | CC 22 · Ch 1 |
fader4 | F4 f4 | CC 23 · Ch 1 |
fader5 | F5 f5 | CC 24 · Ch 1 |
fader6 | F6 f6 | CC 25 · Ch 1 |
fader7 | F7 f7 | CC 26 · Ch 1 |
fader8 | F8 f8 | CC 27 · Ch 1 |
function draw() {
background(fader1 * 255); // F1 · CC 20
circle(width / 2, height / 2, 50 + fader2 * 300); // F2 · CC 21
}This is a generic layout. Its numbering applies when you choose it as the on-screen controller; an unknown real controller numbers its knobs in the order you turn them.
Missing
Is your controller not here?
Open an issue with the brand and model, whether you have the unit and a link to the manual. Or write the profile yourself: it is one JSON file.
GitHub
Is something in this data wrong?
Every number on this page comes from one JSON file. If it disagrees with your unit or the manual, tell us which firmware you checked and we fix the file.