POUNDING
Documentation

MIDI Mapping Guide

This comprehensive guide explains how to create, configure, and manage MIDI mappings in Gamepad MIDI.

Understanding MIDI Mapping

What is MIDI Mapping?

MIDI mapping is the process of assigning gamepad controls (buttons, sticks, triggers) to MIDI messages. When you move a mapped control, Gamepad MIDI sends MIDI data to your DAW or music software, allowing you to control parameters, trigger notes, or automate effects.

Control Types

Gamepad MIDI supports mapping these control types:

Analog Controls:

  • Left Stick X/Y axes
  • Right Stick X/Y axes
  • Left Trigger (L2)
  • Right Trigger (R2)
  • Touchpad X/Y axes and pressure
  • Gyroscope X/Y axes
  • Accelerometer X/Y axes

Digital Controls (Buttons):

  • Face buttons (A, B, X, Y)
  • Shoulder buttons (L1, R1)
  • D-Pad directions (Up, Down, Left, Right)
  • Stick buttons (L3, R3)
  • Touchpad button

MIDI Message Types

Gamepad MIDI can send two types of MIDI messages:

1. Control Change (CC)

  • Continuous control messages (0-127)
  • Best for: Volume, pan, filter cutoff, effect parameters, etc.
  • Analog controls send continuous values
  • Buttons send on (127) or off (0) values

2. Note Messages

  • Note On/Off messages
  • Best for: Triggering samples, playing notes, sequencing
  • Can be configured as Toggle or Trigger mode
  • Supports dual gates for bidirectional controls

Creating a MIDI Mapping

Step 1: Open the Mapping Editor

The mapping editor is visible on the right side of the main window. If it's not visible, check that the window is wide enough.

Step 2: Select a Control Tab

Click one of the tabs to view controls in that group:

  • Left Stick - Left analog stick controls
  • Right Stick - Right analog stick controls
  • L Shoulder - Left trigger and shoulder
  • R Shoulder - Right trigger and shoulder
  • D-Pad - Directional pad buttons
  • Face Buttons - A, B, X, Y buttons
  • Touchpad - Touchpad axes and button
  • Gyroscope - Motion sensors
  • Accelerometer - Acceleration sensors
  • System - Smoothing settings

Step 3: Add a Mapping

  1. Find the control you want to map
  2. Click the "Add Mapping" button next to that control
  3. The MIDI Mapping dialog opens

Step 4: Configure the Mapping

The mapping dialog presents different options based on the control type and MIDI message type you choose.

Control Change (CC) Mappings

CC mappings are the most common type, used for continuous parameter control.

Basic CC Configuration

In the mapping dialog:

MIDI Type:

  • Select "Control Change (CC)"

Channel:

  • Choose MIDI channel 1-16
  • Most DAWs use channel 1 by default
  • Use different channels to organize mappings

CC Number:

  • Select from CC 0-127
  • Common CCs:
    • CC 1: Modulation
    • CC 7: Volume
    • CC 10: Pan
    • CC 11: Expression
    • CC 74: Filter Cutoff (common in synths)
    • Or choose any CC number

Min Value:

  • The minimum MIDI value (0-127)
  • Sent when control is at minimum position
  • Default: 0

Max Value:

  • The maximum MIDI value (0-127)
  • Sent when control is at maximum position
  • Default: 127

Example: Mapping a Stick to Filter Cutoff

  1. Select the Left Stick tab
  2. Find "Left Stick X"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Control Change (CC)
    • Channel: 1
    • CC Number: 74 (Filter Cutoff)
    • Min Value: 0
    • Max Value: 127
  5. Click "OK"

Now moving the left stick horizontally will send CC 74 values from 0 to 127.

Inverted Ranges

You can create inverted mappings by swapping min and max:

  • Min Value: 127
  • Max Value: 0

This reverses the control direction.

Invert Toggle: For convenience, there's an "Invert" checkbox that reverses the control direction. When enabled, the maximum MIDI value is sent at the minimum input position and vice versa.

Limited Ranges

You can map to a specific value range:

  • Min Value: 32 (25% of full range)
  • Max Value: 96 (75% of full range)

Useful for controlling parameters within specific ranges.

Split Axis Mode (Advanced)

Available on: Bidirectional axes (Analog sticks X/Y, Gyroscope X/Y, Accelerometer X/Y)

Split Axis Mode allows you to split a single bidirectional axis into 2 separate MIDI CC parameters - one for each direction. Instead of mapping the full range (-1 to +1) to a single CC, you get independent control over positive and negative movement.

How it works:

  • Positive: Sends CC when moving in the positive direction (right/forward/up: 0-127)
  • Negative: Sends CC when moving in the negative direction (left/back/down: 0-127)

When the control is centered, both CCs send their minimum value. As you move in either direction, only that direction's CC increases from min to max.

To enable Split Axis Mode:

  1. Create a CC mapping for a bidirectional axis (e.g., Left Stick X)
  2. In the mapping dialog, enable "Split Axis Mode"
  3. Configure 2 different CC numbers:
    • Positive: CC for positive direction (right/forward/up)
    • Negative: CC for negative direction (left/back/down)
  4. Set your desired min/max value range (applies to both directions)
  5. Click "OK"

Example: 2-Parameter Control per Axis

Control 2 synth parameters with Left Stick X:

  1. Select Left Stick tab
  2. Find "Left Stick X"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Control Change (CC)
    • Channel: 1
    • Enable Split Axis Mode
    • Positive: CC 74 (Filter Cutoff)
    • Negative: CC 71 (Resonance)
    • Min Value: 0
    • Max Value: 127
  5. Click "OK"

Now the left stick X-axis controls 2 parameters:

  • Push right → increases filter cutoff (CC 74)
  • Push left → increases resonance (CC 71)
  • Center → both at minimum value

Example: 4-Parameter Control with One Stick

To control 4 parameters with one stick, create two mappings:

Mapping 1 (Left Stick X):

  • Enable Split Axis Mode
  • Positive: CC 74 (Filter Cutoff)
  • Negative: CC 71 (Resonance)

Mapping 2 (Left Stick Y):

  • Enable Split Axis Mode
  • Positive: CC 73 (Attack)
  • Negative: CC 72 (Release)

Result:

  • Push right → increases filter cutoff
  • Push left → increases resonance
  • Push up → increases attack time
  • Push down → increases release time

Notes:

  • Each axis mapping is independent - create separate mappings for X and Y
  • The min/max range and invert setting apply to both directions of that axis
  • Split mode is only available for CC messages, not Note messages
  • Each direction outputs a value from 0 to 127 based on how far you move in that direction

Note Mappings

Note mappings send MIDI note messages, useful for triggering sounds or sequencing.

Basic Note Configuration

MIDI Type:

  • Select "Note"

Channel:

  • Choose MIDI channel 1-16

Note Number:

  • Select the MIDI note (C-2 to G8)
  • Shows note names for easy selection
  • This is "Gate A" for bidirectional controls

Note Mode:

  • Trigger: Momentary - note on while pressed/active, note off when released
  • Toggle: Latching - press once for note on, press again for note off
  • Chord: Multiple notes play together when threshold is crossed
  • Strum: Notes trigger sequentially as you sweep an axis (like strumming a guitar)

Velocity:

  • Note velocity (0-127)
  • Default: 127 (maximum)
  • Controls how "loud" the note is

Button Note Mappings

Buttons are straightforward:

Trigger Mode:

  • Press button = Note On (at specified velocity)
  • Release button = Note Off

Toggle Mode:

  • First press = Note On
  • Second press = Note Off
  • Note stays on until toggled off

Axis Note Mappings

Axes (analog sticks, triggers) can trigger notes when they cross a threshold.

Threshold:

  • Default: 0.75 (75% of full range)
  • Axis must exceed this value to trigger the note
  • Adjustable from 0.0 to 1.0

Single Gate Mode:

  • One note number
  • Triggers when axis exceeds threshold
  • Used for triggers and unidirectional controls

Dual Gate Mode (Bidirectional Controls)

Some controls support dual gates - triggering different notes for each direction:

Supported Controls:

  • Left Stick X/Y (left/right or up/down)
  • Right Stick X/Y (left/right or up/down)
  • Gyroscope X/Y (tilt left/right or forward/back)
  • Accelerometer X/Y (shake left/right or forward/back)

Configuration:

  • Note Number (Gate A): Note for positive direction (right, up)
  • Note Number B (Gate B): Note for negative direction (left, down)

Behavior:

Trigger Mode:

  • Push stick right → Gate A note on
  • Release → Gate A note off
  • Push stick left → Gate B note on
  • Release → Gate B note off

Toggle Mode:

  • Push stick right → Toggle Gate A (on/off)
  • Push stick left → Toggle Gate B (on/off)
  • Each direction has independent toggle state

Example: Dual Gate Trigger

Map Left Stick X to trigger two different notes:

  1. Select Left Stick tab
  2. Find "Left Stick X"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Note
    • Channel: 1
    • Note Number (Gate A): C3 (for right movement)
    • Note Number B (Gate B): D3 (for left movement)
    • Note Mode: Trigger
    • Velocity: 100
    • Threshold: 0.75
  5. Click "OK"

Now:

  • Push stick right → C3 plays
  • Center stick → C3 stops
  • Push stick left → D3 plays
  • Center stick → D3 stops

Chord Mode

Chord mode allows you to trigger multiple notes simultaneously with a single control. Instead of mapping one note per control, you can define a chord of up to 6 notes that all play together.

When to Use Chord Mode

  • Playing full chords with a single button press
  • Layering multiple notes for thick, harmonized sounds
  • Triggering complex sound combinations from a single gesture
  • Creating pad-style sustains with multiple notes

Basic Chord Configuration

Note Mode:

  • Select "Chord" from the note mode dropdown

Add Notes to Chord:

  1. Click "Add Note" button to add a note slot
  2. Use the note selector to choose the pitch
  3. Repeat to add more notes (up to 6 per chord)
  4. Notes can be reordered or removed as needed

Per-Note Velocity (Optional):

  • Each note in the chord can have its own velocity
  • Leave blank to use the global velocity setting
  • Useful for creating dynamic chord voicings

Threshold:

  • Determines when the chord triggers (for axis/sensor mappings)
  • Default: 0.75 (75% of full range)
  • All notes in the chord trigger together when threshold is crossed

Example: Button Chord Mapping

Map the A button to play a C major chord:

  1. Select Face Buttons tab
  2. Find "A Button"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Note
    • Channel: 1
    • Note Mode: Chord
    • Add notes: C3, E3, G3
    • Velocity: 100
  5. Click "OK"

Now pressing A plays all three notes simultaneously.

Example: Trigger Chord Mapping

Map the Right Trigger to sustain a chord:

  1. Select R Shoulder tab
  2. Find "Right Trigger"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Note
    • Channel: 1
    • Note Mode: Chord
    • Add notes: D3, F#3, A3, D4
    • Threshold: 0.5
  5. Click "OK"

Pulling the trigger past 50% plays the D major chord; releasing fades it out.

Strum Mode

Strum mode transforms an analog axis into a virtual guitar string. As you move across the axis range, notes trigger sequentially at different threshold positions—creating a strumming or arpeggio-like effect.

When to Use Strum Mode

  • Creating realistic strum gestures on touchpad or analog sticks
  • Building expressive arpeggios with physical motion
  • Playing melodic sequences with sweeping gestures
  • Adding expressive note triggering to any continuous control

Note: Strum mode is only available for axis controls (sticks, triggers, touchpad, gyroscope, accelerometer). For buttons, use Chord mode instead.

How Strum Mode Works

Strum mode distributes your chord notes across the axis range (0.1 to 0.9 by default). As you sweep across the axis, each note triggers when you cross its threshold position:

Axis Position:  0.0 ----[0.1]----[0.3]----[0.5]----[0.7]----[0.9]---- 1.0
                        Note 1   Note 2   Note 3   Note 4   Note 5
  • Sweeping up: Notes trigger in order (like strumming down on guitar)
  • Sweeping down: Notes trigger in reverse order (like strumming up on guitar)
  • Notes are sorted by pitch to create natural musical progressions
  • Enable Bidirectional to trigger notes when sweeping in either direction

Automatic Edge Snapping

Strum mode intelligently handles finger lifts and sudden position changes:

  • When you lift your finger, the internal position snaps to either 0 or 1 based on your movement direction
  • If moving UP when lifted → snaps to 1.0 (top)
  • If moving DOWN when lifted → snaps to 0.0 (bottom)

This ensures each new strum starts fresh from the correct edge, preventing phantom notes from "Return to Zero" or other axis reset behaviors.

Note: Strum mode ignores the "Return XY to Zero" touchpad setting—it detects finger lifts directly and handles position resets automatically.

Strum Configuration Options

Note Mode:

  • Select "Strum" from the note mode dropdown

Strum Direction:

  • Up (Low to High): First note at low position, last at high position
  • Down (High to Low): First note at high position, last at low position
  • Controls the pitch ordering of notes along the axis

Bidirectional:

  • Enabled: Notes trigger when crossing thresholds in EITHER direction (strum up AND down)
  • Disabled: Notes only trigger when crossing in the strum direction
  • Enable for continuous back-and-forth strumming

Strum Width:

  • Controls how much of the axis range is used for strumming (0.1 to 1.0)
  • Default: 0.7 (a comfortable balance between range and ease of strumming)
  • 1.0 (Full): Notes spread across entire range (0.1 to 0.9)
  • 0.7 (Default): Comfortable strumming range (0.22 to 0.78)
  • 0.5 (Medium): Notes clustered in the middle (0.3 to 0.7)
  • 0.25 (Narrow): Notes tightly grouped in center (0.4 to 0.6)
  • Smaller values make it easier to strum quickly with less finger movement

Note Length:

  • Duration before automatic note-off (in milliseconds)
  • Default: 100ms
  • Shorter values = staccato, percussive strums
  • Longer values = legato, sustained strums

Example: Touchpad Strum

Map the touchpad Y-axis to strum a chord:

  1. Select Touchpad tab
  2. Find "Touchpad Y" (or Finger 0 Y)
  3. Click "Add Mapping"
  4. Configure:
    • Type: Note
    • Channel: 1
    • Note Mode: Strum
    • Add notes: C3, E3, G3, C4 (C major arpeggio)
    • Strum Direction: Up
    • Bidirectional: Enabled
    • Note Length: 80ms
  5. Click "OK"

Now swiping your finger up the touchpad triggers C3 → E3 → G3 → C4 in sequence. With Bidirectional enabled, swiping down plays them in reverse.

Tip: Strum mode automatically handles finger lifts—you don't need to configure "Return to Zero". Just swipe up and down naturally for continuous strumming!

Example: Analog Stick Strum

Map the Left Stick Y to strum:

  1. Select Left Stick tab
  2. Find "Left Stick Y"
  3. Click "Add Mapping"
  4. Configure:
    • Type: Note
    • Channel: 1
    • Note Mode: Strum
    • Add notes: E2, B2, E3, G#3, B3, E4 (E major chord)
    • Strum Direction: Up
    • Bidirectional: Enabled
    • Note Length: 120ms
  5. Click "OK"

Push the stick forward to strum up, pull back to strum down. With Bidirectional enabled, both directions trigger notes as thresholds are crossed.

Strum Mode Tips

For Touchpad:

  • Use the Y axis for vertical strums (most natural gesture)
  • Enable "Return to Zero" so lifting your finger resets the strum
  • X axis works well for horizontal swipe gestures

For Analog Sticks:

  • Each direction (positive/negative) can strum independently
  • Crossing through center resets the strum for the new direction
  • Great for expressive playing with thumb motion

For Best Results:

  • Start with 3-4 notes per strum for manageable gestures
  • Shorter note lengths (50-100ms) sound more percussive
  • Longer note lengths (150-300ms) create overlapping, lush sounds
  • Experiment with bidirectional for back-and-forth strumming patterns

Chord vs Strum Comparison

Feature Chord Mode Strum Mode
Note triggering All at once Sequential as axis moves
Best for Button chords, pads Touchpad/stick strums
Velocity Per-note control Per-note control
Axis behavior Threshold-based (on/off) Position-based (per note)
Note sustain Until released Auto note-off after delay

Editing Existing Mappings

To modify a mapping:

  1. Navigate to the control's tab
  2. Find the mapping in the list under the control
  3. Click the "Edit" button next to the mapping
  4. Make your changes in the dialog
  5. Click "OK" to save

The mapping updates immediately.

Deleting Mappings

To remove a mapping:

  1. Navigate to the control's tab
  2. Find the mapping in the list
  3. Click the "Delete" button (trash icon)
  4. Confirm deletion if prompted

The mapping is removed immediately.

Multiple Mappings Per Control

Each control can have multiple MIDI mappings. This allows one control to affect multiple parameters simultaneously.

Example: One Stick Controls Two Parameters

Map Left Stick X to both:

  1. CC 74 (Filter Cutoff) on Channel 1
  2. CC 71 (Resonance) on Channel 1

Steps:

  1. Add first mapping (CC 74) as described above
  2. Click "Add Mapping" again on the same control
  3. Configure the second mapping (CC 71)
  4. Both mappings now appear in the list

When you move the stick, both CC messages are sent simultaneously.

Use Cases for Multiple Mappings

  • Control multiple synth parameters with one stick
  • Send the same control to different MIDI channels
  • Create complex macro controls
  • Layer CC and Note messages (e.g., CC for filter and note for gate)

Control-Specific Notes

Analog Sticks

Range: -1 to +1 (centered at 0) MIDI Mapping:

  • -1 maps to Min Value
  • 0 maps to midpoint ((Min + Max) / 2)
  • +1 maps to Max Value

Tip: For synthesizer parameters, the center position (stick at rest) sends a mid-range value (typically 64).

Triggers

Range: 0 to 1 (not pressed to fully pressed) MIDI Mapping:

  • 0 (not pressed) maps to Min Value
  • 1 (fully pressed) maps to Max Value

Tip: Triggers are great for volume, expression, or any parameter you want to increase from zero.

Buttons

State: On or Off CC Mapping:

  • Off sends Min Value
  • On sends Max Value

Note Mapping:

  • Off sends Note Off (velocity 0)
  • On sends Note On (at specified velocity)

Touchpad

The touchpad has multiple axes:

  • X Position: Left (0) to Right (1)
  • Y Position: Top (0) to Bottom (1)
  • Pressure: Light (0) to Heavy (1)
  • Button: Pressed or not pressed

Each can be mapped independently.

Return to Zero Option:

  • Enable in System tab to make X/Y return to center (0.5) when not touched
  • Disable to make X/Y hold their last position

Gyroscope

Prerequisites:

  • Your gamepad must support gyroscope
  • Enable gyroscope in the Gyroscope tab (toggle at top)

Axes:

  • X Axis: Tilt left/right
  • Y Axis: Tilt forward/back

Range: -1 to +1 (centered at 0)

Smoothing: Adjust in System tab to reduce jitter

Accelerometer

Prerequisites:

  • Your gamepad must support accelerometer
  • Enable accelerometer in the Accelerometer tab (toggle at top)

Axes:

  • X Axis: Shake left/right
  • Y Axis: Shake forward/back

Range: -1 to +1 (neutral at 0)

Smoothing: Adjust in System tab to reduce noise

MIDI Channels

MIDI supports 16 channels (1-16). Use channels to:

Organize Your Mappings

  • Channel 1: Synth controls
  • Channel 2: Drum triggers
  • Channel 3: Effect sends
  • etc.

Control Multiple Instruments

If your DAW has multiple instruments on different channels:

  • Map some controls to Channel 1 (instrument A)
  • Map other controls to Channel 2 (instrument B)

Layer Sounds

Send the same control to multiple channels to control multiple instruments simultaneously.

Best Practices

Start Simple

  • Begin with one or two CC mappings
  • Test them in your DAW
  • Add complexity gradually

Use Descriptive Presets

  • Create presets for different workflows
  • Name them clearly (e.g., "Ableton Synth", "FL Studio Mixer")

Test Your Mappings

  • Move controls and watch the value display
  • Verify MIDI is received in your DAW
  • Use MIDI learn in your DAW for easy setup

Avoid Conflicts

  • Don't map multiple controls to the same CC on the same channel (unless intentional)
  • Keep track of which CC numbers you've used

Utilize Smoothing

  • Adjust smoothing for each control type in the System tab
  • Reduce jitter on motion sensors
  • Increase smoothing for gradual parameter changes

Leverage Motion Controls

  • Gyroscope and accelerometer add expressive dimensions
  • Great for filter sweeps, vibrato, or effect parameters
  • Enable only when needed to conserve battery

Common Mapping Scenarios

Scenario 1: Synth Parameter Control

Goal: Control a synthesizer's filter and resonance

Mappings:

  • Left Stick X → CC 74 (Filter Cutoff)
  • Left Stick Y → CC 71 (Resonance)
  • Right Trigger → CC 11 (Expression/Dynamics)

Scenario 2: Mixer Control

Goal: Control track volumes and pans

Mappings:

  • Left Stick Y → CC 7 (Track 1 Volume)
  • Right Stick Y → CC 7, Channel 2 (Track 2 Volume)
  • Left Trigger → CC 10 (Track 1 Pan)
  • Right Trigger → CC 10, Channel 2 (Track 2 Pan)

Scenario 3: Drum Triggering

Goal: Trigger drum samples with buttons

Mappings:

  • A Button → Note C1 (Kick)
  • B Button → Note D1 (Snare)
  • X Button → Note E1 (Hi-Hat)
  • Y Button → Note F1 (Tom)

Use Trigger mode for realistic drum playing.

Scenario 4: Effect Control with Motion

Goal: Control delay time with gyroscope

Mappings:

  • Gyroscope X → CC 12 (Delay Time)
  • Accelerometer Y → CC 13 (Delay Feedback)
  • Right Trigger → CC 94 (Delay Mix)

Tilt your controller to change delay characteristics!

Scenario 5: Chord Pad Performance

Goal: Use face buttons as chord pads

Mappings:

  • A Button → Chord Mode: C3, E3, G3 (C major)
  • B Button → Chord Mode: F3, A3, C4 (F major)
  • X Button → Chord Mode: G3, B3, D4 (G major)
  • Y Button → Chord Mode: A3, C4, E4 (A minor)

Press buttons to play full chords instantly—perfect for backing tracks!

Scenario 6: Touchpad Guitar Strum

Goal: Strum guitar chords with touchpad swipes

Mappings:

  • A Button → Chord Mode: E2, B2, E3, G#3, B3, E4 (hold chord selection)
  • Touchpad Y → Strum Mode: Same notes, Bidirectional enabled

Hold a button to select the chord, then swipe the touchpad up and down to strum!

Scenario 7: Expressive Arpeggiator

Goal: Play arpeggios with analog stick motion

Mappings:

  • Left Stick Y → Strum Mode:
    • Notes: C3, E3, G3, B3, C4
    • Direction: Up
    • Bidirectional: Enabled
    • Note Length: 150ms

Push the stick forward for ascending arpeggios, pull back for descending. The longer note length creates overlapping, harp-like sounds.

Troubleshooting Mappings

MIDI Not Sending

Check:

  • Is a MIDI device selected in the dropdown?
  • Is the gamepad connected and responding?
  • Are the mappings properly configured?

Wrong Values Being Sent

Check:

  • Min/Max values in the mapping
  • Control is moving in the expected direction
  • No conflicts with other mappings

Stuck Notes

If a note stays on:

  • Move the control to trigger a note off
  • Edit the mapping to verify settings
  • Delete and recreate the mapping if necessary

Jittery Control

Solutions:

  • Increase smoothing for that control in System tab
  • Increase the threshold for note mappings
  • Check for gamepad hardware issues

Next Steps