Input Learn Mode
Input Learn is the fastest way to create mappings in Conductor v3.0. Instead of manually entering note numbers, button IDs, or MIDI parameters, simply press a control on your device and let Conductor auto-detect everything.
What is Input Learn?
Input Learn (formerly “MIDI Learn”) is a one-click workflow that works with both MIDI controllers and Game Controllers (HID):
- Click “Learn” next to a trigger field
- Press a control on your device (pad, button, stick, encoder, etc.)
- Conductor auto-fills the trigger configuration
- Assign an action and save
That’s it! No need to know note numbers, button IDs, CC values, or MIDI channels.
Supported Device Types
Input Learn works with:
MIDI Controllers
- Pad controllers: Maschine, Launchpad, etc.
- Keyboards: MIDI keyboards with velocity sensitivity
- Encoders/knobs: Rotary encoders, faders
- DJ controllers: Mixers, CDJs
Game Controllers (HID)
- Gamepads: Xbox, PlayStation, Nintendo Switch Pro
- Joysticks: Flight sticks, arcade sticks
- Racing wheels: Logitech, Thrustmaster, Fanatec
- Flight controls: HOTAS systems
- Custom controllers: Any SDL2-compatible HID device
How to Use Input Learn
Basic Workflow
-
Open Conductor GUI and ensure your device is connected
-
Navigate to Mappings panel
-
Click “Add Mapping” or edit an existing one
-
Click the “Learn” button next to the Trigger field
-
Input Learn window opens with a 10-second countdown:
Input Learn Mode Waiting for input... Press any control on your device Time remaining: 8 seconds [Cancel] -
Press any control on your MIDI or gamepad device:
- MIDI: Pad, button, encoder/knob, fader, touch strip
- Gamepad: Button, analog stick, trigger, D-pad
-
Trigger auto-fills (examples):
MIDI Pad:
Trigger Type: Note Note: 36 Channel: 0Gamepad Button:
Trigger Type: GamepadButton Button: 128Analog Stick:
Trigger Type: GamepadAnalogStick Axis: 130 Direction: Clockwise -
Assign an action (Keystroke, Launch, Text, etc.)
-
Click “Save”
-
Test it! Press the same control - the action should execute
Supported Trigger Types
Input Learn auto-detects and configures these trigger types:
MIDI Triggers
1. Note (Basic Pad/Button Press)
What it detects:
- Note number
- MIDI channel
- Velocity range (if applicable)
Example:
- Press pad → Auto-fills:
Note: 36, Channel: 0
Use cases:
- Basic pad mappings
- Button presses
- Keyboard keys
2. Velocity Range (Pressure-Sensitive)
What it detects:
- Note number
- Soft/medium/hard press patterns
- Velocity thresholds
Example:
- Press pad softly →
VelocityRange: Note 36, Min: 0, Max: 40 - Press pad hard →
VelocityRange: Note 36, Min: 81, Max: 127
Use cases:
- Different actions for soft vs hard hits
- Velocity-sensitive controls
3. Long Press
What it detects:
- Note number
- Hold duration (auto-calculated from your press)
Example:
- Hold pad for 2 seconds →
LongPress: Note 36, Duration: 2000ms
Use cases:
- Hold pad to open app
- Long press for alternate action
4. Double-Tap
What it detects:
- Note number
- Double-tap timing window
Example:
- Tap pad twice quickly →
DoubleTap: Note 36, Window: 300ms
Use cases:
- Quick double-tap for special actions
- Distinguishing single vs double taps
5. Chord (Multiple Notes)
What it detects:
- All pressed notes
- Chord window (how fast notes must be pressed together)
Example:
- Press pads 36, 40, 43 together →
Chord: [36, 40, 43], Window: 100ms
Use cases:
- Shortcuts requiring multiple pads
- Musical chord detection
6. Encoder/Knob Rotation
What it detects:
- CC (Control Change) number
- Direction (Clockwise/Counterclockwise)
- Value range
Example:
- Turn encoder right →
EncoderTurn: CC 1, Direction: Clockwise - Turn encoder left →
EncoderTurn: CC 1, Direction: Counterclockwise
Use cases:
- Volume control
- Scrolling
- Parameter adjustment
7. Control Change (CC)
What it detects:
- CC number
- Value range
- Continuous vs momentary
Example:
- Move fader →
CC: 7, Range: 0-127 - Press button →
CC: 64, Value: 127
Use cases:
- Faders
- Knobs with CC messages
- Sustain pedals
8. Aftertouch (Pressure)
What it detects:
- Note number (if channel aftertouch)
- Pressure threshold
Example:
- Press pad harder after initial hit →
Aftertouch: Note 36, Threshold: 64
Use cases:
- Pressure-sensitive effects
- Dynamic parameter control
9. Pitch Bend
What it detects:
- Pitch bend range
- Direction (Up/Down/Center)
Example:
- Move pitch wheel up →
PitchBend: Direction: Up, Threshold: 8192
Use cases:
- Pitch wheel mappings
- Touch strip controls
Game Controller (HID) Triggers
10. GamepadButton
What it detects:
- Button ID (128-255 range)
- Device type (gamepad, joystick, wheel, etc.)
Example:
- Press A button (Xbox) →
GamepadButton: 128 - Press Cross button (PlayStation) →
GamepadButton: 128 - Press B button (Switch) →
GamepadButton: 128
Use cases:
- Face button mappings (A, B, X, Y)
- Shoulder buttons (LB, RB, L1, R1)
- D-pad buttons
- Menu buttons (Start, Select, Home)
Button ID Reference:
- Face buttons: 128-131 (A/B/X/Y)
- D-pad: 132-135 (Up/Down/Left/Right)
- Shoulder buttons: 136-137 (LB/RB, L1/R1)
- Stick clicks: 138-139 (L3/R3)
- Menu buttons: 140-142 (Start/Select/Home)
- Digital triggers: 143-144 (LT/RT, L2/R2, ZL/ZR)
11. GamepadButtonChord
What it detects:
- Multiple button IDs pressed simultaneously
- Chord timing window
Example:
- Press A + B together →
GamepadButtonChord: [128, 129], Window: 50ms - Press LB + RB together →
GamepadButtonChord: [136, 137], Window: 50ms
Use cases:
- Multi-button shortcuts
- Mode switching combos
- Emergency actions
12. GamepadAnalogStick
What it detects:
- Axis ID (128-131 for stick axes)
- Direction (Clockwise/CounterClockwise)
- Dead zone (automatic 10%)
Example:
- Move right stick right →
GamepadAnalogStick: Axis 130, Direction: Clockwise - Move left stick up →
GamepadAnalogStick: Axis 129, Direction: Clockwise - Move right stick left →
GamepadAnalogStick: Axis 130, Direction: CounterClockwise
Use cases:
- Navigation controls
- Scrolling
- Cursor movement
Stick Axes:
- 128: Left stick X-axis (left/right)
- 129: Left stick Y-axis (up/down)
- 130: Right stick X-axis (left/right)
- 131: Right stick Y-axis (up/down)
13. GamepadTrigger
What it detects:
- Trigger ID (132-133 for analog triggers)
- Threshold value (0-255 range)
- Pull depth detection
Example:
- Pull right trigger halfway →
GamepadTrigger: 133, Threshold: 128 - Pull left trigger fully →
GamepadTrigger: 132, Threshold: 200
Use cases:
- Pressure-sensitive actions
- Volume control
- Acceleration/braking (racing wheels)
- Throttle control (flight sticks)
Trigger IDs:
- 132: Left trigger (L2, LT, ZL)
- 133: Right trigger (R2, RT, ZR)
Advanced Input Learn Features
Countdown Timer
The Input Learn window shows a 10-second countdown. This gives you time to:
- Position your hand
- Find the right control
- Try different velocities/pressures
- Test analog stick directions
Countdown reaches zero → Input Learn cancels automatically
Cancellation
Click “Cancel” at any time to abort Input Learn without creating a mapping.
Keyboard shortcut: Press Esc to cancel
Pattern Detection
Input Learn is smart - it detects patterns automatically:
MIDI Patterns
Long Press Detection:
- If you hold a pad for >1 second during Learn mode, Conductor suggests a Long Press trigger
Double-Tap Detection:
- If you tap a pad twice quickly, Conductor suggests a Double-Tap trigger
Chord Detection:
- If you press multiple pads within 100ms, Conductor suggests a Chord trigger
Velocity Variation:
- If you press the same pad with varying velocities, Conductor suggests a Velocity Range trigger
Game Controller Patterns
Button Hold Detection:
- Hold a button for >1 second → Suggests LongPress trigger
Button Double-Tap Detection:
- Tap a button twice quickly → Suggests DoubleTap trigger
Multi-Button Detection:
- Press multiple buttons simultaneously → Suggests GamepadButtonChord trigger
Analog Stick Movement:
- Move stick in any direction → Detects axis and direction automatically
Trigger Pull Detection:
- Pull analog trigger → Detects threshold and creates GamepadTrigger
Velocity Range Suggestions
When Input Learn detects a note, it suggests velocity ranges:
Input Learn Complete!
Detected: Note 36
Suggested velocity ranges:
- Soft (0-40): Gentle tap
- Medium (41-80): Normal press
- Hard (81-127): Strong hit
Create separate mappings for each range?
[Yes] [No, use single Note trigger]
This makes it easy to create pressure-sensitive mappings.
Device-Specific Workflows
Gamepad Example (Xbox Controller)
Goal: Map A button to copy text (Cmd+C)
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Press A button on Xbox controller
- Auto-detects:
GamepadButton: 128 - Select Action: Keystroke
- Use Keystroke Picker: Press
Cmd+C - Save
Result: Pressing A button executes Cmd+C
Flight Stick Example
Goal: Map trigger to enter key
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Pull trigger on flight stick
- Auto-detects:
GamepadButton: 128(or GamepadTrigger if analog) - Action: Keystroke →
Return - Save
Result: Pulling trigger presses Enter
Racing Wheel Example
Goal: Map wheel rotation to browser navigation
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Turn wheel right
- Auto-detects:
GamepadAnalogStick: Axis 128, Direction: Clockwise - Action: Keystroke →
Cmd+RightArrow(forward in browser) - Save
Result: Turning wheel right navigates forward in browser
HOTAS Example
Goal: Map throttle up to volume increase
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Move throttle up
- Auto-detects:
GamepadAxis: 129, Direction: Clockwise - Action: Volume Control → Up
- Save
Result: Moving throttle up increases system volume
Hybrid MIDI + Gamepad
Goal: Use MIDI pad and gamepad button together
You can freely mix MIDI and gamepad inputs:
MIDI Pad for Copy:
- Learn → Press MIDI pad 36 → Auto-detects
Note: 36 - Action: Keystroke
Cmd+C
Gamepad A Button for Paste:
- Learn → Press A button → Auto-detects
GamepadButton: 128 - Action: Keystroke
Cmd+V
No conflicts: MIDI uses IDs 0-127, gamepads use IDs 128-255
Troubleshooting
No Input Detected
Symptoms: Input Learn countdown reaches zero without detecting anything
Solutions:
- Check device connection:
- MIDI: Ensure device shows in Device Panel
- Gamepad: Verify connection in system settings
- Check Event Console: Open Event Console and verify events are being received
- Try different control: Some controls may not send events (e.g., mode buttons)
- Restart device: Disconnect and reconnect the device
Wrong Button/Note Detected
Symptoms: Input Learn detects incorrect button ID or note number
Solutions:
- Verify in Event Console: Check what events are actually being sent
- Check button ID range:
- MIDI: 0-127
- Gamepad: 128-255
- Load device template: Use a pre-configured template for your controller
- Manual override: Click “Advanced” and manually enter the correct ID
Gamepad Not Recognized
Symptoms: Gamepad buttons don’t trigger Input Learn
Solutions:
- Ensure SDL2 compatibility: Check if gamepad is SDL2-compatible
- Check system recognition:
- macOS: System Settings → Game Controllers
- Linux:
ls /dev/input/js* - Windows: Devices and Printers
- Try USB instead of Bluetooth (or vice versa)
- Restart Conductor daemon:
conductorctl stop && conductor --foreground
Multiple Events Detected
Symptoms: Input Learn shows “Multiple events detected, please try again”
Solutions:
- Press only one control at a time
- Wait for button/pad to release before pressing again
- Disable auto-repeat: Some controllers send rapid-fire messages
Analog Stick Not Detected
Symptoms: Moving stick doesn’t trigger Input Learn
Solutions:
- Move stick beyond dead zone: Move at least 15% from center
- Check axis ID: Ensure using correct stick (left vs right)
- Verify in Event Console: See if axis events are being received
- Try different direction: Some sticks may have faulty axes
Trigger Pull Not Detected
Symptoms: Pulling analog trigger doesn’t work
Solutions:
- Pull trigger fully: Some triggers need >50% pull
- Check threshold: Try different pull depths
- Use digital trigger instead: Try the digital trigger button (LT/RT button)
- Verify in Event Console: Check if trigger axis events appear
Velocity Not Detected
Symptoms: Input Learn only creates Note trigger, not Velocity Range
Solutions:
- Vary velocity: Try pressing soft, medium, and hard during different Learn attempts
- Manual configuration: Create Velocity Range trigger manually after Learn
- Check controller: Some pads don’t send velocity (always velocity 127)
Examples
Example 1: Basic MIDI Pad Mapping
Goal: Map pad to copy text (Cmd+C)
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Press pad → Auto-fills
Note: 36 - Select Action: Keystroke
- Use Keystroke Picker: Press
Cmd+C - Save
Result: Pressing pad executes Cmd+C
Example 2: Gamepad Multi-Button Combo
Goal: LB + RB switches to Media mode
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Press LB + RB together → Auto-fills
GamepadButtonChord: [136, 137] - Action: Mode Change → Select “Media”
- Save
Result: Pressing LB + RB together switches to Media mode
Example 3: Velocity-Sensitive Volume
Goal: Soft press = volume down, hard press = volume up
-
Click “Add Mapping”
-
Click “Learn” next to Trigger
-
Press pad softly → Auto-fills
VelocityRange: Note 36, Min: 0, Max: 40 -
Action: Volume Control → Down
-
Save
-
Click “Add Mapping” again
-
Click “Learn”
-
Press same pad hard → Auto-fills
VelocityRange: Note 36, Min: 81, Max: 127 -
Action: Volume Control → Up
-
Save
Result: Soft press = volume down, hard press = volume up
Example 4: Long Press to Launch App
Goal: Hold pad for 2 seconds to open Spotify
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Hold pad for 2+ seconds → Auto-fills
LongPress: Note 36, Duration: 2000ms - Action: Launch → Select
/Applications/Spotify.app - Save
Result: Holding pad for 2 seconds opens Spotify
Example 5: Encoder for Volume
Goal: Turn encoder to adjust volume
-
Click “Add Mapping”
-
Click “Learn” next to Trigger
-
Turn encoder right → Auto-fills
EncoderTurn: CC 1, Direction: Clockwise -
Action: Volume Control → Up
-
Save
-
Click “Add Mapping” again
-
Click “Learn”
-
Turn encoder left → Auto-fills
EncoderTurn: CC 1, Direction: Counterclockwise -
Action: Volume Control → Down
-
Save
Result: Turning encoder controls system volume
Example 6: Analog Stick Navigation
Goal: Right stick controls browser navigation
-
Click “Add Mapping”
-
Click “Learn” next to Trigger
-
Move right stick right → Auto-fills
GamepadAnalogStick: Axis 130, Direction: Clockwise -
Action: Keystroke →
Cmd+RightArrow -
Save
-
Click “Add Mapping”
-
Click “Learn”
-
Move right stick left → Auto-fills
GamepadAnalogStick: Axis 130, Direction: CounterClockwise -
Action: Keystroke →
Cmd+LeftArrow -
Save
Result: Moving right stick navigates forward/back in browser
Example 7: Racing Wheel Throttle
Goal: Wheel triggers control volume
- Click “Add Mapping”
- Click “Learn” next to Trigger
- Pull right trigger → Auto-fills
GamepadTrigger: 133, Threshold: 128 - Action: Volume Control → Up
- Save
Result: Pulling right trigger increases volume
Tips & Best Practices
Tip 1: Use Event Console
Before starting Input Learn:
- Open Event Console
- Press your control
- Verify the event appears
This helps debug “Learn not detecting” issues.
Tip 2: Learn in Context
When creating per-app profiles, Learn with that app in focus:
- Switch to target app (e.g., Logic Pro)
- Switch back to Conductor GUI
- Use Input Learn
- Assign action relevant to that app
Tip 3: Batch Learn
Create multiple mappings quickly:
- Click “Learn”
- Press control
- Assign action
- Save
- Immediately click “Add Mapping” and repeat
Tip 4: Device Templates First
Before manual Learn:
- Check if a device template exists for your controller
- Load template to get 90% of mappings
- Use Learn to customize the remaining 10%
Tip 5: Test Immediately
After creating a mapping:
- Click “Save”
- Immediately test by pressing the control
- Verify action executes correctly
- Adjust if needed
Tip 6: Gamepad Button IDs
Remember the ID ranges:
- MIDI: 0-127 (notes, CC, etc.)
- Gamepad: 128-255 (buttons, axes, triggers)
- No overlap: Both can coexist in same config
Tip 7: Analog Stick Dead Zones
Analog sticks have 10% dead zones:
- Center position won’t trigger
- Move at least 15% from center
- Prevents false triggers
Tip 8: Hybrid Setups
Combine MIDI and gamepad strengths:
- MIDI pads: Velocity-sensitive music actions
- Gamepad buttons: Navigation and shortcuts
- MIDI encoders: Fine parameter control
- Gamepad triggers: Pressure-sensitive volume
Next Steps
- Gamepad Support Guide - Complete gamepad documentation
- Device Templates - Pre-configured controller mappings
- Trigger Reference - All trigger types explained
- Action Reference - All action types explained
- Per-App Profiles - Automatic profile switching
Last Updated: November 21, 2025 (v3.0)