# MIDI to OSC

1\. Add the Generic OSC element

![](/files/-LuZre05DAOf_l7qWNle)

On the **Elements** section, click the **Add** button to add one element to the project:

* External Control > OSC > Generic OSC

### Enable the Element

Click the toggle buttons on the element to enable it.

2\. Add MIDI device element

Use the **Add** button again to add your MIDI device element through **External Control > MIDI**. Currently, RD/ShowCockpit has out-of-the-box support for multiple MIDI devices - [check out the complete compatibility list here](https://showcockpit.com/site/docs/).

{% hint style="info" %}
If your device is not listed, you will need to use the **Generic MIDI** driver and map your device controls manually.&#x20;
{% endhint %}

When using a specific MIDI device driver, you can skip to Step 4.

### Set Element Options

After adding the element, make sure that the correct device is selected under both Input Device and Output Device options.

### Enable the Element

Finally, click the toggle button on the MIDI device element to enable it.

## 3. Learn MIDI Controls (Generic MIDI only)

In case you selected the **Generic MIDI** driver, now you need to "teach" this driver what controls (faders, buttons and encoders) your device has. For the officially supported MIDI devices, controls are automatically mapped, so you can skip to the next step.

Double-click the **Generic MIDI** element to open its window - you will start by mapping the **Faders**. Click on **Enable Learn** on the top-right to start listening to MIDI input.

![](/files/-Lub1GCEgZ2P2gLob46Z)

* Move, one-by-one, all **Faders** on your MIDI device. They will be added to the **Faders** list.
* To map the **Buttons**, click on **Buttons** (above the table) and repeat the procedure now for all your device buttons.
* Finally, map your **Encoders** by clicking on **Encoders** and repeat the procedure for all the encoders.

You can now close the **Generic MIDI** window by clicking **Back to Elements** or clicking on any menu button.

## 4. Configure OSC Outputs

![](/files/-Lub1m-m0RMrh8iQkA9s)

Double-click the **Generic OSC** element and add your **OSC Functions to the Outputs list**:

* **Name**: name identifier of your control
* **Address**: the OSC address
* **ValueIndex**: (ignored for functions)
* **Range**: min and max values for internal normalization
* **Type**: button, fader or encoder

{% hint style="info" %}
**Note:** Name and ValueIndex must be unique (no duplicates)
{% endhint %}

## 5. Map MIDI controls to OSC Output

Open the **Mapping** section and select the desired **OSC Output** functions. Start by selecting the **OSC Output element on the left list** (functions) and the desired output.

Finally select the **MIDI Device on the right list** (controls) and assign the previously selected OSC function to one of your controls.

{% hint style="info" %}
**Note**: In case your previously mapped controls do not show up, you can click the **Refresh** button to reload the controls list.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://academy.showcockpit.com/showcockpit-for-windows/tutorials/protocol-conversion/midi-to-osc.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
