Arturia
Arturia KeyStep 37
Arturia KeyStep 37 is a MIDI hardware controller by Arturia: 37 keys, 4 knobs, 1 button and 2 touch strips.
It sends Pitch bend, CC and Note on channel 1. The profile cites 2 sources. 41 of its controls are marked unverified: the number is our best reading, and Learn rebinds it in one move.
- Manufacturer docs
- Community notes
- 41 unverified
- Kind
- hardware device
- Maker
- Arturia
- Controls
- 44 controls
- Messages
- Pitch bend · CC · Note
- MIDI channels
- 1
- LED feedback
- none sent
- Signals
midi/keystep37/…- Port name matches
/keystep\s*37/i
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 Arturia KeyStep 37 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 |
|---|---|---|---|---|---|---|---|
Pitch pitch |
touch strip | Pitch bend · springs to centre | 1 | 0–16383 · centre 8192 | midi/keystep37/pitch |
— | yes |
Mod mod |
touch strip | CC | 1 | 1 | midi/keystep37/mod |
— | yes |
Sustain sustain |
button | CC · momentary | 1 | 64 | midi/keystep37/sustain |
— | yes |
1 k1 |
knob | CC | 1 | 74 | midi/keystep37/k1 |
— | unverified |
2 k2 |
knob | CC | 1 | 71 | midi/keystep37/k2 |
— | unverified |
3 k3 |
knob | CC | 1 | 76 | midi/keystep37/k3 |
— | unverified |
4 k4 |
knob | CC | 1 | 77 | midi/keystep37/k4 |
— | unverified |
Keys keys |
keys | Note · velocity | 1 | 48–84 (C3–C6) | midi/keystep37/keys/on · midi/keystep37/keys/off · midi/keystep37/n48…n84 |
— | unverified |
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
- manufacturer KeyStep Manual v1.1.2 (Arturia)mod strip CC 1, pitch strip = pitch bend snapping to centre, sustain CC 64; user channel set with Shift + key
- community Spectrasonics — Setting up the KeyStep 37 (non-official)knob bank 1: CC 74, 71, 76, 77
Notes
Channel 1 and lowest key C3 (48) are assumptions (the manual leaves the defaults to MIDI Control Center); the keys follow any note on the channel, so an octave shift on the unit just scrolls the on-screen keys. Knob banks 2–4 are not mapped. The original 32-key KeyStep has the same strips and pedal: use this profile or generic-keys25/49.
Port names it recognises
- matches
/keystep\s*37/i- prefers
/midi/i
Signals
Every control publishes midi/keystep37/<control> (0..1), plus /raw; pads add /hit, encoders /delta, keys /on /off and n<note>; the last control touched is midi/keystep37/last.
Use it
Use Arturia KeyStep 37 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="arturia-keystep37" 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=arturia-keystep37&readout" width="720" height="267" style="border:0;max-width:100%" allow="midi" title="Arturia KeyStep 37"></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="arturia-keystep37" 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 profile, the order of the table above. Add ?profile=arturia-keystep37 to make the on-screen controller this one; a real Arturia KeyStep 37 is recognised by its port name.
document.head.prepend(Object.assign(document.createElement('script'), { src: 'https://openaudiovisual.com/p5/oav-p5.js?profile=arturia-keystep37' }));| In your sketch | Control | Message |
|---|---|---|
knob1 | 1 k1 | CC 74 · Ch 1 |
knob2 | 2 k2 | CC 71 · Ch 1 |
knob3 | 3 k3 | CC 76 · Ch 1 |
knob4 | 4 k4 | CC 77 · Ch 1 |
notePressed(note, velocity) | 48–84 (C3–C6) | a key goes down |
function draw() {
background(knob1 * 255); // 1 · CC 74
circle(width / 2, height / 2, 50 + knob2 * 300); // 2 · CC 71
}
function notePressed(note, velocity) { // a key goes down
circle(random(width), random(height), velocity * 100);
}Encoders, buttons, wheels and strips are not numbered: read them as midi.cc[number] in the table above, or react in controlChange(cc, value, ch).
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.