# Using OBS Studio as a Commentary System

Recently, I was involved in a live sports video production where I needed to set up a commentary station. It was nothing unusual, as I have used many Dante commentary stations in my NDI productions. However, this time, I wanted to find a solution where a single device could offer the audio functionality of a commentary station and receive video feedback from the production, thus avoiding connecting two devices with two network cables.

I created this project using a small Windows computer and OBS Studio. In this tutorial, I will explain how to create your own NDI commentary station with these simple tools.

### What you need to complete this project:

#### Hardware

* A Windows computer. I used the **LattePanda 3 Delta**.
  * <https://www.lattepanda.com/lattepanda-3-delta>. This computer is compact, powerful, and very affordable.
* An audio interface with **Side Tone** functionality.&#x20;
  * This feature is essential in a commentary station, as it allows the commentator to hear themselves without delay, helping them avoid straining their voice in a noisy environment. I used the **Focusrite Vocaster Two** audio interface.
  * <https://focusrite.com/products/vocaster-two>
* A control surface to manage the commentary station functions. The **Elgato Stream Deck** is a great choice.
  * <https://www.elgato.com/it/en/p/stream-deck-plus-black>

#### Software:&#x20;

OBS Studio and the following plugins:

* Distro AV for NDI support
* OBS Mute Filter
* OBS-Asio

### Typical functions of a commentary station include:

* Transmitting the commentator's microphone signal to the production
* Sending and receiving talkback audio for coordination between the commentator and production
* Receiving and displaying the program video feed from the production with specific audio (usually international audio or an N-1 mix)

### Step-by-step guide to setting up your commentary station:

#### Step 1

Install the drivers for your audio interface on your Windows computer. ASIO driver support is preferable.

#### Step 2

Install NDI Tools.

#### Step 3

Download and install OBS Studio from this link: <https://obsproject.com/>

After the installation, OBS will prompt you with some options

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/5XzteoV1DtXN5Bj5kTPc/image.png" alt=""><figcaption></figcaption></figure>

No specific selections are necessary as we will not be streaming or recording. You can click **Cancel** and proceed.

#### Step 4

Set the video format in OBS to match the video production format, which in my case is **1080 P50**.&#x20;

Go to **Settings** and then **Video**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/gWsBnwCKD3RA56xDcKVj/image.png" alt=""><figcaption></figcaption></figure>

#### Step 5&#x20;

Download and install the necessary plugins:

* Distro AV to add NDI support to OBS Studio - <https://github.com/DistroAV/DistroAV/releases/download/6.0.0/distroav-6.0.0-windows-x64-Installer.exe>
* ASIO drivers support for OBS - <https://github.com/Andersama/obs-asio/releases/download/v3.2.1f/obs-asio-3.2.1-windows-x64-Installer.exe>
* OBS Mute Filter - <https://github.com/norihiro/obs-mute-filter/releases/download/0.3.0/obs-mute-filter-0.3.0-obs27-Windows.zip>

{% hint style="warning" %}
This plugin doesn’t have an installer, so you’ll need to install it manually in OBS Studio by following the developer’s instructions. - <https://github.com/norihiro/obs-color-monitor/wiki/Install-Windows>
{% endhint %}

#### Step 6&#x20;

Now that OBS Studio and the plugins are installed, configure the commentary station:

* Create the audio channel for live commentary:&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/H9UOgImG0UDUW2bQngtS/image.png" alt=""><figcaption></figcaption></figure>

* Select **Asio Input Capture** as the source and rename it to **MIC-LIVE**. Configure this source by selecting the **Focusrite USB Audio** in **MONO** mode with the **Host Microphone** as OBS **Channel 1**. Then, close the source panel.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/thRE4VoFReTiK6ql1rbB/image.png" alt=""><figcaption></figcaption></figure>

* Set up the talkback channel:&#x20;
  * Select **Asio Input Capture** again and rename it to **MIC-TALKBACK**. Configure this input the same way as **MIC-LIVE**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/1ugrVBReEAVn1pzw0V0C/image.png" alt=""><figcaption></figcaption></figure>

* Add the intercom (talkback) audio channel from the production:&#x20;
  * Select **NDI® Source** as the source and rename it **INTERCOM**. In the configuration panel, select the NDI source the director or production team will use to communicate with the commentator. In my case, this source is generated by a computer named **PRODUCTION-PC**, and the NDI stream is called **TALKBACK\_TO\_COMM**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/LU2KXvw8pGU4WnoBctq3/image.png" alt=""><figcaption></figcaption></figure>

* Add the NDI feed the commentator will view, called **PGM\_MIX\_MINUS**, also generated by **PRODUCTION-PC**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/8zvMUjPZLboYHK0A8tmJ/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/zBGlRayhKvC5WjQtrurU/image.png" alt=""><figcaption></figcaption></figure>

#### Step 7

Organize the audio workflow:

* Select the **MIC-LIVE** source and click on **Filters**.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/N7vxjg9xrj6AxYzghALD/image.png" alt=""><figcaption></figcaption></figure>

Add the following filters:

* Discard Audio by UI&#x20;
* Dedicated NDI® output (Audio Only)

&#x20;Configure the NDI stream as **MIC-LIVE**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/zzuvzhpsBtMR5wFo7dcy/image.png" alt=""><figcaption></figcaption></figure>

* Repeat for **MIC-TALKBACK**, naming this stream **MIC-TALKBACK**.
* The **Discard Audio by UI** plugin lets users control the audio channel to broadcast commentary or talk with production. It ensures that muting the audio channel in the mixer also mutes the NDI output.

#### Step 8

Route the **PGM** and **INTERCOM NDI** sources to the commentator’s headphones:

* Ensure the Windows audio interface is the same as used in OBS.
* In OBS Audio Mixer, under **Advanced Audio Properties**, enable monitoring for the **PGM** and **INTERCOM** channels.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/99JuFl51m15n7geyEllE/image.png" alt=""><figcaption></figcaption></figure>

#### Step 9&#x20;

Customize the OBS Studio interface:

* In the **Docks** menu, disable **Scenes**, **Sources**, **Scene Transitions**, and **Controls**.
* Hide the **Desktop Audio** source in the audio mixer as it’s not needed.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/6ACZl5Dba45XTIdPHtRH/image.png" alt=""><figcaption></figcaption></figure>

Then, move the audio mixer to one side of the interface. Changing the layout direction gives more space to the preview window showing the **PGM** return feed.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/SpIxnZTXLxDoFlXBGmyD/image.png" alt=""><figcaption></figcaption></figure>

**Step 10**

Set up and configure the **Stream Deck** and **OBS Studio plugin** to manage the **LIVE**, **TALKBACK** channels, and **PGM** and **INTERCOM** levels.&#x20;

* Create a **TALKBACK** button that mutes **MIC-LIVE** and enables **MIC-TALKBACK**, using the **Multi Action Switch** function.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/8FoouiJGGBBhJe1LEVyp/image.png" alt=""><figcaption></figcaption></figure>

First action disables **MIC-LIVE** and enables **MIC-TALKBACK**, and the second reverses the process.&#x20;

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/3Cb7ODT1jat776UM94Of/image.png" alt=""><figcaption></figcaption></figure>

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/7BXVc3V0jUH2lu5iozlb/image.png" alt=""><figcaption></figcaption></figure>

* Add a **Push to Mute** button for the **MIC-LIVE** channel for a **cough button**.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/K51AKCHFcPC6UutG544a/image.png" alt=""><figcaption></figcaption></figure>

* Add a toggle mute button for **MIC-LIVE**.

<figure><img src="https://3444609009-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDO9LSaUxLOBIgPjyrjR1%2Fuploads%2F0982mqUpItjTSr7WkXDe%2Fimage.png?alt=media&#x26;token=6c970721-482c-4638-848a-041cb44ad0bb" alt=""><figcaption></figcaption></figure>

* Use two rotary controls to adjust the **PGM** and **INTERCOM** channel volumes.

<figure><img src="https://content.gitbook.com/content/DO9LSaUxLOBIgPjyrjR1/blobs/1jRRHy7Sp132LhdW0YmY/image.png" alt=""><figcaption></figcaption></figure>

And that’s it! You now have a fully functional commentary station with NDI.
