Copy link to clipboard
Copied
I'm looking for more functionality from the Behringer X-Touch control surface and hope it is possible to bind inputs from the control surface encoder knobs at the top of the fader bank to x, y, and z values for a selected property in the effects control panel.
It is easy enough to map a single encoder to change a selected value, but I'd like to, for example, press the EQ button under Encoder Assign (red box, upper right), which will pre-select the first property in the Premiere Pro Effects Panel, unless a property is already selected; also, set the first three encoders on the X-Touch (8 encoders, yellow box) are bound to the x, (y, and z if there) values, and the fourth encoder is set up to navigate up and down the effects panel, choosing properties with x,y,z numeric values or a selection list. For fields with a selection list, if the x value encoder doesn't work, then the fifth encoder could be employed, leaving 6, 7 and 8 for future use.
If other Encoder Assign banks (red box) could be accessed beyond EQ (that being Send, Plugin & Inst), then three more banks of 8 could be opened up for whatever - such as Lumetri controls or color selection.
Would a combination of Adobe ExtendScript and Bome Midi Translator Pro do the job? I use the Bome software to use the X-Touch as a DMX light control board, but could something similar be done to control the Effects Control Panel in Premiere Pro (and After Effects)?
This idea could work on other control surfaces, such as those used for live-streaming, or even the configurable/programmable touch-screen control surfaces for tablets.
Okay, someone smarter than me went through all of this already. MIDI Control Surface - Premiere Pro | Peltmade PrControl
This cat went places I didn't even think of. He can have my $29.
Copy link to clipboard
Copied
The encoder assign buttons - if they can be utilized - the first two are utilized by Premiere Pro already - the TRACK and PAN/BALANCE assignments, with the PAN/BALANCE assignment being the only one that actually change something in Premiere Pro. The EQ button lights up, but the encoders have no apparent function. It would be cool to have the EQ assignment button set up control of the track effects in the audio track mixer, the SEND assignment button set up control of the Effects Controls panel, the PLUG-IN assignment to control the Properties Panel and the INST assignment to control the Lumetri panel.
Anyway, here's a start from Grok:
First Prompt:
// Assume this script is called when a MIDI note is pressed to switch properties function switchToProperty(propertyName) { var mySequence = app.project.activeSequence; var clips = mySequence.videoTracks[0].clips; if (clips.length > 0) { var clip = clips[0]; var effect = clip.getComponent("Transform"); // Example effect, change as needed if (effect) { var property = null; switch(propertyName) { case "Position": property = effect.properties.getByName("Position"); break; case "Scale": property = effect.properties.getByName("Scale"); break; // Add more cases for other properties as needed } if (property) { // Store this property for later use or return it return property; } } } return null; } // This function would be called by each encoder's CC message function adjustProperty(property, dimension, value) { if (property) { // Adjust the specific dimension (X, Y, Z) based on MIDI input // Assuming value is normalized (0-127) and we're converting to something meaningful var adjustedValue = (value / 127) * 100; // Example normalization switch(dimension) { case "X": property.setValueAtKey(1, [adjustedValue, property.value[1], property.value[2]]); break; case "Y": property.setValueAtKey(1, [property.value[0], adjustedValue, property.value[2]]); break; case "Z": property.setValueAtKey(1, [property.value[0], property.value[1], adjustedValue]); break; } } } // Example usage: var currentProperty = switchToProperty("Position"); // Triggered by MIDI note adjustProperty(currentProperty, "X", 64); // Triggered by Encoder 1 moving, for example
Copy link to clipboard
Copied
The latency introduced by the several software layers required to make MIDI inputs something that ExtendScript can understand and transmit to Premiere Pro is unacceptable. Instead, using the SDK to write a custom plug-in would be the way to go, but I don't have the chops for that. Maybe somebody who can code will have a similar idea someday.
In the meantime, I'm just going to use Bome MIDI translator to do a simple version. Here is action=keystroke=control surface list.
Navigate to and select values in selected panel = [TAB], [SHIFT][TAB] = Encoder knob 1
Change selected value (coarse) = [SHIFT][UP ARROW], [SHIFT][DOWN ARROW] = Encoder knob 2
Change selected value (normal) = [UP ARROW], [DOWN ARROW] = Encoder knob 3
Change selected value (fine) = [SHIFT][UP ARROW], [SHIFT][DOWN ARROW] = Encoder knob 4
Here is one answer from Grok about how this can be done. Note: replace example keyboard shortcuts with your choice. I've not tried yet, but will add a post later with results:
Prompt:
Incoming Trigger: - Type: Program Change - Channel: X-Touch's MIDI Channel (e.g., 1) - PC Value: 1 (for EQ), 2 (for Track), 3 (for Pan/Balance) Rules: - For PC 1: currentMode = "eq" - For PC 2: currentMode = "track" - For PC 3: currentMode = "pan"
Incoming Trigger for Encoder 1 (Bass EQ): - Type: Control Change - Channel: X-Touch's MIDI Channel - CC#: 1 Rules: - if currentMode == "eq" then proceed, else exit rules, skip Outgoing Action Outgoing Action: - Type: Keystroke - Key: Ctrl+Shift+E (for increasing bass frequency) - [x] Repeat active for continuous control Incoming Trigger for Encoder 2 (Mid EQ): - Type: Control Change - Channel: X-Touch's MIDI Channel - CC#: 2 Rules: - if currentMode == "eq" then proceed, else exit rules, skip Outgoing Action Outgoing Action: - Type: Keystroke - Key: Ctrl+Shift+R (for increasing mid frequency) - [x] Repeat active for continuous control Incoming Trigger for Encoder 3 (Treble EQ): - Type: Control Change - Channel: X-Touch's MIDI Channel - CC#: 3 Rules: - if currentMode == "eq" then proceed, else exit rules, skip Outgoing Action Outgoing Action: - Type: Keystroke - Key: Ctrl+Shift+T (for increasing treble frequency) - [x] Repeat active for continuous control // Repeat for each encoder you want to control different EQ parameters with different shortcuts
Copy link to clipboard
Copied
Reading this, just made me so glad I've got a Tangent Elements panel, as i can map most anything, anywhere in Premiere, to the buttons, knobs, and wheels of that panel via simple actions selecting the options in Tangent's mapping software.
It's actually easier than what you're showing here to map their panels, in Resolve, out of Resolve's native mapping, with Tangent's "Warp Engine" software.
Copy link to clipboard
Copied
I hear ya, brother. And the Tangent excels in Resolve. Luckily I already know Bome MIDI Translator from DMX stuff, and the X-Touch makes a decent light board! The only reason I wanted to involve scripting or SDK was to dynamically get property labels and values to display in the scribble strip and timecode display on the X-Touch. But now, avoiding ExtendScript and the SDK keeps things pretty simple and tedious, just like mapping most any other control surface.
The Mackie options in preferences are too limiting, so one needs Bome in the middle and keyboard shortcuts to expand functionalty of the X-Touch in Adobe.
Bome can get a bit heavy with the massive heap of MIDI spaghetti. I'm using Grok to twirl the spaghetti and spit out the meatballs I need for Bome, and I figured a way to make the previously underutilized Encoder Assign buttons do something cool, and how to write to the scribble strips, but only static text. Dynamic values require scripting, which is too slow anyway, or the SDK to make a custom plug-in, but 'ain't nobody got time for that.'
I'll post what I found after I reformat and clean up the Grok session. Then, after I get the Bome translators all tweaked in I'll post the file here for others to add to, or use as a start for their own control surface, or just use if they have an X-Touch.
Copy link to clipboard
Copied
Here is what I came up with:
Keep things simple. Use Bome MIDI Translator to intercept and translate MIDI from the X-Touch to keystrokes for Adobe keyboard shortcuts. But to keep the regular audio control surface functionality Bome needs to know some way of knowing which mode - audio or effects control - you want to be in. On the X-Touch are six buttons under the header Encoder Assign. While connected to Premiere Pro, only the first three, TRACK, PAN/BALANCE and EQ toggle on their lights, and even then, the EQ button doesn't seem to do anything useful. Maybe that's the magic button.
Using Grok AI to help sift through the MIDI data and determine which MIDI values to use in Bome MIDI Translator, the result is pretty flexible. Pressing the [EQ] button triggers Bome MIDI Translator Pro to senkeyboard shortcuts to Adobe instead of MIDI strings, and it also triggers Bome to send new text to display in the scribble strips. When I get the Bome file tweaked in I will post it here. The file will also include translators to change the background color of the X-Touch scribble strips LCD's, assigned to keyboard shortcuts. But for now, I'm just going to post the conclusions reached while using Grok here. If you'd like to see the whole Grok AI session, including all the MIDI captures from the X-Touch (which takes up most of the pages), it can be seen here: Grok Session-X-Touch and Adobe
And here is the conclusive stuff:
New Prompt:
Objective: To configure Bome MIDI Translator Pro (BMT) for using the Behringer X-Touch (Logic Control) with Adobe Premiere Pro, particularly for switching between audio mixing and video effects control modes.
Key Points and Findings:
Control Surface Setup: Encoder Assign Buttons (like EQ, Track, Pan/Balance): These are momentary switches that trigger state changes, often indicated by B0 Control Change (CC) messages alongside Note On/Off messages.
The EQ button (B0 4B 05, B0 4A 11) was considered for switching to an "Effects Control" mode where controls would map to Premiere Pro shortcuts. Track and Pan/Balance buttons have unique B0 messages that could be used for mode verification or switching.
Other Controls: Scrub Button: Momentary, toggling something (like a light) but without distinct MIDI state changes for on/off (90 65 7F for press, 90 65 00 for release). Not ideal for mode switching due to lack of unique MIDI messages for different states.
Magnifier Button: Also a momentary button, toggling a light with Note On/Off messages (90 64 7F for on, 90 64 00 for off). No B0 messages, suggesting direct control rather than mode switching.
BMT Configuration: Mode Switching: Use unique B0 messages from Encoder Assign buttons for switching profiles or modes.
Direct Control: Use Note On/Off messages for controls like Scrub or Magnifier for direct command execution in Premiere Pro.
Feedback Management: Ensure BMT ignores feedback or echoes to prevent unintended actions.
State Management: Use BMT to keep track of control states or modes when direct MIDI feedback isn't available for state changes.
Next Steps:
Capture MIDI Streams: capture streams to ensure clarity in MIDI messages for each control. Refine BMT Setup: Update translators and profiles in BMT based on these cleaner streams for precise control mapping and mode switching.
This summary should help as you restart the session with a cleaner MIDI capture, aiming to finalize your BMT configuration for an efficient integration of the X-Touch with Premiere Pro.
New Response:
Thank you for the detailed summary. Here’s how we can proceed based on the information provided:
Steps to Finalize BMT Configuration:
1. Recapture MIDI Streams:
2. Refine BMT Setup:
3. Testing:
4. Optimization:
This approach should lead to a more integrated and responsive control surface for Premiere Pro using the Behringer X-Touch through Bome MIDI Translator Pro. If you encounter any specific issues during recapture or configuration, feel free to detail them for further assistance.
New Prompt:
I think that is enough data, especially if the provided manuals are consulted, to complete the mission of using up the X-Touch control surface to navigate, select and edit values in various Adobe control panels.
Here are the functions other than default that I am looking for exclusively in [EQ] Encoder Assign:
Using the information in this session, the manuals for which links were provided, and any other resources Grok may need to complete this task, please provide detailed instructions for how to set things up in Bome MIDI Translator Pro, given the following conditions:
The instruction should include an examination of the current set-up in Bome, which is functioning correctly, seemingly, in default settings, as well as details on setting up the translators for each of the desired functions.
New Response:
Here's a step-by-step guide for configuring Bome MIDI Translator Pro (BMT) to achieve the functions you've outlined for the X-Touch control surface when using the [EQ] Encoder Assign button:
Examination of Current Setup:
This setup looks appropriate for both capturing and sending MIDI messages while managing potential echo or feedback loops.
Setting Up Translators in BMT:
Step 1: Create a New Project or Profile
Step 2: Configure [EQ] Encoder Assign Button
Step 3: Set Up Translators for Jog Wheel and Encoders
Step 4: Echo and Feedback Management
Step 5: Testing
Step 6: Save and Enable
This setup will allow you to use the X-Touch in a custom way within Adobe Premiere Pro, focusing on navigation and value adjustment within panels. Remember, you might need to tweak some mappings or add additional translators based on real-world use to account for any nuances in how Premiere Pro responds to these commands.
New Prompt
Given the following conditions:
Using the data from this session, the manuals and other documents for which links are provided in this session, and any other resource Grok requires, please provide detailed instructions on a practical build of a translator(s) and other setup required in Bome MIDI Translator Pro to change the text displayed in the scribble strip when the [EQ] button is pressed in the Encoder Assign section of the X-Touch control surface - using the CC, B0 4B 05 as the trigger to change the scribble strip text. Use Channel 1 in this practical build, and display "NAVIG" on the upper row and "<- ->" on the lower row.
New Response:
Here's a detailed guide for setting up Bome MIDI Translator Pro (BMT) to change the scribble strip text on Channel 1 of the X-Touch when the [EQ] button is pressed, using B0 4B 05 as the trigger:
Step-by-Step Configuration:
Step 1: Create or Open Project
Step 2: Verify MIDI Routing and Aliases
Step 3: Create a Translator for Scribble Strip Text Change
Step 4: Set up the Output
Step 5: Test the Setup
Step 6: Save and Finalize
Notes:
This setup should now change the scribble strip text for Channel 1 whenever the [EQ] button is pressed, using the specified MIDI message as a trigger.
New Prompt:
What changes to the previous response would need to be made for displaying text on Channel 2 instead, or 3, 4, 5, 6, 7 or 8?
New Response:
To change the text display on different channels (2 through 8) instead of Channel 1, you need to modify the SysEx messages in the outgoing section of the translator. Here's how you would adjust the setup:
Adjusting for Different Channels:
For channels 2 through 8, you adjust the byte following 12 in the SysEx message:
Changes to the Translator in BMT:
1. Incoming Message:
2. Outgoing Message:
3. SysEx 1 (Upper Line):
4. SysEx 2 (Lower Line):
5. Rules:
6. Testing:
7. Save:
Remember, these modifications are based on the MIDI Implementation document for the X-Touch where it specifies how to address different channels for display updates. Ensure your BMT configuration does not create feedback loops when sending these messages back to the X-Touch.
Copy link to clipboard
Copied
slovill,
That is an awesome, epic post to help some users speed up their workflow. Thanks for posting all that!
Copy link to clipboard
Copied
Thanks! It'll be a bunch of gobbledygook to most, but I hope those who need it will appreciate it. This info can help with any control surface as long as you know the MIDI strings the device uses. With all of the podcast controllers coming out the choices are many. Using Bome to capture MIDI for each button, fader and encoder, and then individually copy/pasting and labelling them in the AI is a bit tedious (I still left 41 buttons uncaptured.), but since I could not find this data documented anywhere it was the only way. Still, using AI to help sift the MIDI mess was cool and worth the effort. I am building the Bome translators today.
Copy link to clipboard
Copied
I know that's what a lot of people are going to run to, for devices. The Tangent stuff is still for professional use more sensible. As you can 'natively' map Hades out of Premiere on any Tangent panel, without needing to do any of that stuff.
And there are a number of used Tangent panels for sale most of the time, for budget issues.
Still, that was an amazing bit of work you did, and will help a lot of users ... thanks again!
Copy link to clipboard
Copied
I finished the translators for changing the background color of the LCD scribble strips on a Behringer X-Touch control surface, and I am sharing the Bome Midi Translator Pro (BMTP) file here. If you don't want to download the file, here is a visual reference, which I'll use to explain what it is doing:
First, the main window where default MIDI inputs and outputs are selected. Not shown here is the installation of a Bome Virtual MIDI Port. I used Bome's VMP because it came with BMTP, but there are a bunch of VMP's available. In Default MIDI Ports section, notice the italicized label for "From X-Touch 1 -> X-Touch 1" - that is an alias for the X-Touch. Using an alias is recommended, but I don't recall why:
Then, if you click the Preset in the far left column, you'll see the Preset page:
And for the tranlator itself: the "Incoming" is the trigger for this translator. I set it to a keystroke, [ctrl][alt][4], because the bit code for blue is 04. Here are all the colors and bit codes: Red=01, Green=02, Yellow=03, Blue=04, Magenta=05, Cyan=06, White=07, Blank=00. So I chose [ctrl][alt][1 thru 8] as the shortcuts for color, but it could be any key/modifier of your choice.
The color change is accomplished by sending a sysex (system exclusive) message to the X-Touch. Bome is used to interpret a keyboard shortcut into this sysex message which Bome then sends to the X-Touch. There are no rules for this translator.
So the sysex message itself and what it is saying to the X-Touch:
F0=Hey, here is the start of a sysex message (Sysex message start)
00 00 66=I'm talking to you, X-Touch (Manufacturer, device ID)
14 72=Specifically I am talking to the scribble strip and am going to tell them a color
04 04 04 04 04 04 04 04=Make Channel 1 blue, make Channel 2 blue,...make Channel 8 blue (color bit)
F7=Over and out (Sysex message end)
Unfortunately, I have not been able to make translators 9 thru 12 to work. They are supposed to change the brightness of the scribble strip but so far have not worked.
Copy link to clipboard
Copied
Okay, someone smarter than me went through all of this already. MIDI Control Surface - Premiere Pro | Peltmade PrControl
This cat went places I didn't even think of. He can have my $29.
Copy link to clipboard
Copied
In case anyone wants to tackle this on their own, or if they are just looking for a comprehensive list of which MIDI notes are mapped to the Beheringer X-Touch Universal Control Surface buttons:
Global Variable | ZONE | BUTTON | MIDI NOTE | HEX | LED ON (to x-touch) | LED OFF (to x-touch) |
i0 | Channel Strips | Record Arm 1 | 00 | 00 | 90 00 7F | 90 00 00 |
i1 | Channel Strips | Record Arm 2 | 01 | 01 | 90 01 7F | 90 01 00 |
i2 | Channel Strips | Record Arm 3 | 02 | 02 | 90 02 7F | 90 02 00 |
i3 | Channel Strips | Record Arm 4 | 03 | 03 | 90 03 7F | 90 03 00 |
i4 | Channel Strips | Record Arm 5 | 04 | 04 | 90 04 7F | 90 04 00 |
i5 | Channel Strips | Record Arm 6 | 05 | 05 | 90 05 7F | 90 05 00 |
i6 | Channel Strips | Record Arm 7 | 06 | 06 | 90 06 7F | 90 06 00 |
i7 | Channel Strips | Record Arm 8 | 07 | 07 | 90 07 7F | 90 07 00 |
i8 | Channel Strips | Solo 1 | 08 | 08 | 90 08 7F | 90 08 00 |
i9 | Channel Strips | Solo 2 | 09 | 09 | 90 09 7F | 90 09 00 |
ia | Channel Strips | Solo 3 | 10 | 0A | 90 0A 7F | 90 0A 00 |
ib | Channel Strips | Solo 4 | 11 | 0B | 90 0B 7F | 90 0B 00 |
ic | Channel Strips | Solo 5 | 12 | 0C | 90 0C 7F | 90 0C 00 |
id | Channel Strips | Solo 6 | 13 | 0D | 90 0D 7F | 90 0D 00 |
ie | Channel Strips | Solo 7 | 14 | 0E | 90 0E 7F | 90 0E 00 |
if | Channel Strips | Solo 8 | 15 | 0F | 90 0F 7F | 90 0F 00 |
ig | Channel Strips | Mute 1 | 16 | 10 | 90 10 7F | 90 10 00 |
ih | Channel Strips | Mute 2 | 17 | 11 | 90 11 7F | 90 11 00 |
ii | Channel Strips | Mute 3 | 18 | 12 | 90 12 7F | 90 12 00 |
ij | Channel Strips | Mute 4 | 19 | 13 | 90 13 7F | 90 13 00 |
ik | Channel Strips | Mute 5 | 20 | 14 | 90 14 7F | 90 14 00 |
il | Channel Strips | Mute 6 | 21 | 15 | 90 15 7F | 90 15 00 |
im | Channel Strips | Mute 7 | 22 | 16 | 90 16 7F | 90 16 00 |
in | Channel Strips | Mute 8 | 23 | 17 | 90 17 7F | 90 17 00 |
io | Channel Strips | Select 1 | 24 | 18 | 90 18 7F | 90 18 00 |
ip | Channel Strips | Select 2 | 25 | 19 | 90 19 7F | 90 19 00 |
iq | Channel Strips | Select 3 | 26 | 1A | 90 1A 7F | 90 1A 00 |
ir | Channel Strips | Select 4 | 27 | 1B | 90 1B 7F | 90 1B 00 |
is | Channel Strips | Select 5 | 28 | 1C | 90 1C 7F | 90 1C 00 |
it | Channel Strips | Select 6 | 29 | 1D | 90 1D 7F | 90 1D 00 |
iu | Channel Strips | Select 7 | 30 | 1E | 90 1E 7F | 90 1E 00 |
iv | Channel Strips | Select 8 | 31 | 1F | 90 1F 7F | 90 1F 00 |
iw | Channel Strips | V-Pot 1 | 32 | 20 | 90 20 7F | 90 20 00 |
ix | Channel Strips | V-Pot 2 | 33 | 21 | 90 21 7F | 90 21 00 |
iy | Channel Strips | V-Pot 3 | 34 | 22 | 90 22 7F | 90 22 00 |
iz | Channel Strips | V-Pot 4 | 35 | 23 | 90 23 7F | 90 23 00 |
j0 | Channel Strips | V-Pot 5 | 36 | 24 | 90 24 7F | 90 24 00 |
j1 | Channel Strips | V-Pot 6 | 37 | 25 | 90 25 7F | 90 25 00 |
j2 | Channel Strips | V-Pot 7 | 38 | 26 | 90 26 7F | 90 26 00 |
j3 | Channel Strips | V-Pot 8 | 39 | 27 | 90 27 7F | 90 27 00 |
j4 | Assignment | Track | 40 | 28 | 90 28 7F | 90 28 00 |
j5 | Assignment | Send | 41 | 29 | 90 29 7F | 90 29 00 |
j6 | Assignment | Pan | 42 | 2A | 90 2A 7F | 90 2A 00 |
j7 | Assignment | Plug-In | 43 | 2B | 90 2B 7F | 90 2B 00 |
j8 | Assignment | EQ | 44 | 2C | 90 2C 7F | 90 2C 00 |
j9 | Assignment | Instrument | 45 | 2D | 90 2D 7F | 90 2D 00 |
ja | Fader Bank | Left Bank | 46 | 2E | 90 2E 7F | 90 2E 00 |
jb | Fader Bank | Right Bank | 47 | 2F | 90 2F 7F | 90 2F 00 |
jc | Fader Bank | Left Channel | 48 | 30 | 90 30 7F | 90 30 00 |
jd | Fader Bank | Right Channel | 49 | 31 | 90 31 7F | 90 31 00 |
je | Fader Bank | Flip | 50 | 32 | 90 32 7F | 90 32 00 |
jf | Fader Bank | Global View | 51 | 33 | 90 33 7F | 90 33 00 |
jg | Display | Name/Value | 52 | 34 | 90 34 7F | 90 34 00 |
jh | Display | SMPTE/Beats | 53 | 35 | 90 35 7F | 90 35 00 |
ji | Functioin Key | F1 | 54 | 36 | 90 36 7F | 90 36 00 |
jj | Functioin Key | F2 | 55 | 37 | 90 37 7F | 90 37 00 |
jk | Functioin Key | F3 | 56 | 38 | 90 38 7F | 90 38 00 |
jl | Functioin Key | F4 | 57 | 39 | 90 39 7F | 90 39 00 |
jm | Functioin Key | F5 | 58 | 3A | 90 3A 7F | 90 3A 00 |
jn | Functioin Key | F6 | 59 | 3B | 90 3B 7F | 90 3B 00 |
jo | Functioin Key | F7 | 60 | 3C | 90 3C 7F | 90 3C 00 |
jp | Functioin Key | F8 | 61 | 3D | 90 3D 7F | 90 3D 00 |
jq | Global View | MIDI Tracks | 62 | 3E | 90 3E 7F | 90 3E 00 |
jr | Global View | Inputs | 63 | 3F | 90 3F 7F | 90 3F 00 |
js | Global View | Audio Tracks | 64 | 40 | 90 40 7F | 90 40 00 |
jt | Global View | Audio Instrument | 65 | 41 | 90 41 7F | 90 41 00 |
ju | Global View | Aux | 66 | 42 | 90 42 7F | 90 42 00 |
jv | Global View | Busses | 67 | 43 | 90 43 7F | 90 43 00 |
jw | Global View | Outputs | 68 | 44 | 90 44 7F | 90 44 00 |
jx | Global View | User | 69 | 45 | 90 45 7F | 90 45 00 |
jy | Modifier | Shift | 70 | 46 | 90 46 7F | 90 46 00 |
jz | Modifier | Option | 71 | 47 | 90 47 7F | 90 47 00 |
k0 | Modifier | Control | 72 | 48 | 90 48 7F | 90 48 00 |
k1 | Modifier | Alt | 73 | 49 | 90 49 7F | 90 49 00 |
k2 | Automation | Read | 74 | 4A | 90 4A 7F | 90 4A 00 |
k3 | Automation | Write | 75 | 4B | 90 4B 7F | 90 4B 00 |
k4 | Automation | Trim | 76 | 4C | 90 4C 7F | 90 4C 00 |
k5 | Automation | Touch | 77 | 4D | 90 4D 7F | 90 4D 00 |
k6 | Automation | Latch | 78 | 4E | 90 4E 7F | 90 4E 00 |
k7 | Automation | Group | 79 | 4F | 90 4F 7F | 90 4F 00 |
k8 | Utility | Save | 80 | 50 | 90 50 7F | 90 50 00 |
k9 | Utility | Undo | 81 | 51 | 90 51 7F | 90 51 00 |
ka | Utility | Cancel | 82 | 52 | 90 52 7F | 90 52 00 |
kb | Utility | Enter | 83 | 53 | 90 53 7F | 90 53 00 |
kc | Transport | Marker | 84 | 54 | 90 54 7F | 90 54 00 |
kd | Transport | Nudge | 85 | 55 | 90 55 7F | 90 55 00 |
ke | Transport | Cycle | 86 | 56 | 90 56 7F | 90 56 00 |
kf | Transport | Drop | 87 | 57 | 90 57 7F | 90 57 00 |
kg | Transport | Replace | 88 | 58 | 90 58 7F | 90 58 00 |
kh | Transport | Click | 89 | 59 | 90 59 7F | 90 59 00 |
ki | Transport | Solo | 90 | 5A | 90 5A 7F | 90 5A 00 |
kj | Transport | Rewind | 91 | 5B | 90 5B 7F | 90 5B 00 |
kk | Transport | Fast Forward | 92 | 5C | 90 5C 7F | 90 5C 00 |
kl | Transport | Stop | 93 | 5D | 90 5D 7F | 90 5D 00 |
km | Transport | Play | 94 | 5E | 90 5E 7F | 90 5E 00 |
kn | Transport | Record | 95 | 5F | 90 5F 7F | 90 5F 00 |
ko | Cursor/Zoom Key | Cursor Up | 96 | 60 | 90 60 7F | 90 60 00 |
kp | Cursor/Zoom Key | Cursor Down | 97 | 61 | 90 61 7F | 90 61 00 |
kq | Cursor/Zoom Key | Cursor Left | 98 | 62 | 90 62 7F | 90 62 00 |
kr | Cursor/Zoom Key | Cursor Right | 99 | 63 | 90 63 7F | 90 63 00 |
ks | Cursor/Zoom Key | Zoom | 100 | 64 | 90 64 7F | 90 64 00 |
kt | Jog/Scrub Wheel | Scrub | 101 | 65 | 90 65 7F | 90 65 00 |
ku | 102 | 66 | 90 66 7F | 90 66 00 | ||
kv | 103 | 67 | 90 67 7F | 90 67 00 | ||
kw | Faders | Touch 1 | 104 | 68 | 90 68 7F | 90 68 00 |
kx | Faders | Touch 2 | 105 | 69 | 90 69 7F | 90 69 00 |
ky | Faders | Touch 3 | 106 | 6A | 90 6A 7F | 90 6A 00 |
kz | Faders | Touch 4 | 107 | 6B | 90 6B 7F | 90 6B 00 |
l0 | Faders | Touch 5 | 108 | 6C | 90 6C 7F | 90 6C 00 |
l1 | Faders | Touch 6 | 109 | 6D | 90 6D 7F | 90 6D 00 |
l2 | Faders | Touch 7 | 110 | 6E | 90 6E 7F | 90 6E 00 |
l3 | Faders | Touch 8 | 111 | 6F | 90 6F 7F | 90 6F 00 |
l4 | Faders | Touch Master | 112 | 70 | 90 70 7F | 90 70 00 |
l5 | 113 | 71 | 90 71 7F | 90 71 00 | ||
l6 | 114 | 72 | 90 72 7F | 90 72 00 | ||
l7 | 115 | 73 | 90 73 7F | 90 73 00 | ||
l8 | 116 | 74 | 90 74 7F | 90 74 00 | ||
l9 | 117 | 75 | 90 75 7F | 90 75 00 | ||
la | 118 | 76 | 90 76 7F | 90 76 00 | ||
m0 | 119 | 77 | 90 77 7F | 90 77 00 | ||
m1 | 120 | 78 | 90 78 7F | 90 78 00 | ||
m2 | 121 | 79 | 90 79 7F | 90 79 00 | ||
m3 | 122 | 7A | 90 7A 7F | 90 7A 00 | ||
m4 | 123 | 7B | 90 7B 7F | 90 7B 00 | ||
m5 | 124 | 7C | 90 7C 7F | 90 7C 00 | ||
m6 | 125 | 7D | 90 7D 7F | 90 7D 00 | ||
m7 | 126 | 7E | 90 7E 7F | 90 7E 00 | ||
m8 | 127 | 7F | 90 7F 7F | 90 7F 00 |
Find more inspiration, events, and resources on the new Adobe Community
Explore Now