> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nomn.jp/llms.txt
> Use this file to discover all available pages before exploring further.

# Control Surface

> The MIDI controller map and value feedback to your controller

FOAM keeps one MIDI controller map for your computer. Assign controls with **MIDI LEARN** in the header bar (see [MIDI & Keyboard](/foam/features/midi)) or from the Control Surface dialog. FOAM can also send each control's value back to your controller, so encoder rings and displays follow the plugin.

## The Control Surface dialog

Open **Gear > Control Surface...**.

The table lists every mapping:

| Column | Shows |
| - | - |
| **Ch** | The MIDI channel the mapping listens on, or **omni** for all channels |
| **CC** | The controller number |
| **Target** | The FOAM parameter or action it controls |
| **Mode** | **absolute**, **relative** (endless encoders) or **14-bit** |
| (last) | **delete**: click it to remove every mapping on that CC |

To add a mapping from the dialog:

1. Pick a parameter from the list at the bottom
2. Click **Learn**. The hint reads "Listening... move a control on the surface."
3. Move a control on your controller

Click **Cancel** to stop listening without assigning anything.

## Feedback Output

The **Feedback Output** list at the top of the dialog picks the MIDI device FOAM sends values to. Choose your controller to have its rings and displays follow FOAM's knobs, including movement from Chaos, automation and preset changes. Choose **(none)** to turn feedback off.

FOAM opens this device itself, in a DAW exactly as in the standalone app, so no MIDI routing in the host is needed. If the device is unplugged, the list shows it as "(not connected)" and FOAM reconnects when it returns.

## Where the map is kept

The controller map and the feedback device are saved in `surface.settings`, in `~/Library/FOAM/` on macOS and `%APPDATA%\FOAM\` on Windows. They are not part of presets or DAW projects, so loading either never clears your map.

CC64 (sustain), CC74 (MPE slide), CC120 and CC123 are reserved and cannot be mapped.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.