# Stream Management - RAVENNA only

Learn how to add and manage RAVENNA and AES67 audio streams. OS 2.4 brings significant updates to stream management, enabling the creation of Sender streams using HOLOPLOT Processor and improving monitoring features.

{% hint style="info" %}
In OS 2.4, stream management is also available in the **Routing** section.

The section has been renamed from "Audio Sources" to "Audio I/O" to accommodate the newly available Sender Streams.
{% endhint %}

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FLcLQWEayQjZNvpFzGpuK%2FControl_Operating_Streams.png?alt=media&#x26;token=92edce1e-e684-46e2-a740-9092336f28a8" alt=""><figcaption><p>Settings › Audio Sources</p></figcaption></figure>

## Receiver (Rx) Streams

### Stream discovery

You must subscribe to streams before routing them to audio inputs. This is done through the **Settings › Audio I/O** **› Receiver Streams** section, or on the **Routing › Audio Inputs** page.

There are two methods for discovering and subscribing to streams. They are both available through the **Add Stream** button.

* **Automatic discovery**: If the HOLOPLOT Controller is part of the same real-time audio network, we can automatically discover audio streams based on mDNS and SAP announcements.
* **Manual subscription**: If no streams are discovered automatically, you can manually input an SDP (Stream Definition Protocol) generated by your audio device.

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FxekUyx6SxcCKAkUe8HBy%2FControl_Operating_Routing_Discover-streams.gif?alt=media&#x26;token=3690c596-7eda-4e0b-80d4-39301f2d6c78" alt=""><figcaption><p>Manual subscription</p></figcaption></figure>

### Supported streams payloads

HOLOPLOT Audio Modules comply with **ST 2110-30** stream formats, specifically under the following specifications:

* Linear 24-bit PCM encoding (L24)
* 48 kHz sampling frequency (media clock)

We recommend using **Level A** for AES67 compliance among the three SMPTE Conformance Levels.

<table><thead><tr><th width="268">Levels</th><th>Description</th></tr></thead><tbody><tr><td>A (AES67 compliant)</td><td><ul><li>1-8 channels</li><li>Packet times of 1ms</li></ul></td></tr><tr><td>B</td><td><ul><li>1-8 Channels</li><li>Packet times of 0.125ms</li></ul></td></tr><tr><td>C</td><td><ul><li>1-64 Channels</li><li>Packet times of 0.125ms</li></ul></td></tr></tbody></table>

## Stream management

You can un-route audio inputs mapped to a stream or unsubscribe from streams using the contextual menu available in each stream. When you unsubscribe from a stream, its existing routings will be automatically deleted.

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FzyMp81YZadCy3O42e7w1%2FControl_Operating_Routing_Streams_Actions.png?alt=media&#x26;token=27a8d580-58d6-4a05-936f-d48ac9670f91" alt=""><figcaption><p>Contextual menu for Stream management</p></figcaption></figure>

## Stream Failover configuration

With this feature, you can configure a HOLOPLOT system to monitor and automatically switch Audio Modules between primary and backup stream sources using a pilot-tone detection or network package monitoring.

1. Click the Receiver stream's contextual menu and select **Stream Settings**.
2. Click Backup Stream and select the stream you want to add as a backup. Only Receiver streams with the same payload (including channel count) and that are not routed to any audio inputs can be assigned as backups.
3. Select a monitoring mode. There are two options for monitoring the stream's integrity:
   1. **Pilot-tone detection:** The system detects a pilot-tone to assess whether the stream is functioning correctly. This requires additional configuration of the channel, pilot-tone frequency, and loudness.
   2. **Network package monitoring:** The controllers continuously monitor the RTP packages in the stream, and if a certain threshold of failed packages is exceeded, the stream is considered insufficient.
4. (Optional) Toggle **Fallback to Analog Mode** on. This functionality is available only in projects with Analog Presets and hardware that supports analog inputs.

When the system detects an issue with the main Receiver stream and switches to the backup stream, the transition is nearly seamless for the modules and audio output. The detection interval is every half-second.

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FDNZfZr6181lr99G0wr1N%2FControl_Operating_Backup_stream.gif?alt=media&#x26;token=e8a76cb2-37f0-4aa4-8887-41efb1695621" alt=""><figcaption><p>Audio stream settings</p></figcaption></figure>

#### Failover

The subscribed streams table provides various details regarding stream failover:

* Whether the stream has a backup stream or an analog input.
* Which stream is currently active?
* Status of the main and backup streams.

**Main stream with backup stream (and Analog fallback) assigned**

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FXaQDpzhUw3pgwZoKBa0X%2FControl_ConfiguringSystem_Streams_BackupAssigned.png?alt=media&#x26;token=98fd19e9-301d-4d24-8f3a-32caffef5d43" alt=""><figcaption><p>Main stream with backup, and Analog assigned</p></figcaption></figure>

**Single streams**

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FVUNK3vdD6NTDF1KCKpWw%2FControl_ConfiguringSystem_Streams_NoBackupAssigned.png?alt=media&#x26;token=34f92e04-71bb-4c41-b4b5-979303c818b9" alt=""><figcaption><p>Single streams, no backup</p></figcaption></figure>

#### Test Mode

Toggle **Test Mode** to check the integrity of the streams without executing the failover.

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2F1VxMZlI0xmXD21pT7fv2%2FControl_ConfiguringSystem_Streams_TestMode.png?alt=media&#x26;token=dd2637c9-7507-4198-af3d-eaa3f02d5eab" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Once you subscribe to streams and these are correctly set up, map them to audio inputs in the Routing section. To learn more, go to [routing-streams](https://docs.holoplot.com/holoplot-control/operating-the-system/routing-streams "mention")
{% endhint %}

***

## Sender (Tx) Streams

{% hint style="info" %}
Creating and managing Sender Streams is only possible when setting up a Project that contains HOLOPLOT Processors. To learn more, go to [holoplot-processor](https://docs.holoplot.com/holoplot-processor "mention")
{% endhint %}

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FuUXkcnnJXTKxQ8w3uIuA%2FConfiguring_StreamMgmt_Sender.png?alt=media&#x26;token=852f8be2-857c-4d57-9b59-d5c0232282ec" alt=""><figcaption></figcaption></figure>

### Stream creation

You must create sender streams before routing them from the Processor outputs. This is done through the **Settings › Audio I/O › Sender Streams** section, or on the **Routing › `Processor_Name`** page.

There are two methods for creating Sender streams. They are both available through the **Add Stream** button.

* **Using the Stream Assistant (recommended)**: Use the Stream Assistant for a quick and guided setup.
* **Manually creating Streams:** If an advanced setup is preferred, you can manually define the Stream settings and their primary and secondary network interface ports.

| Stream Assistant                                                                                                                                                                                                                                                                                                                         | Manual creation                                                                                                                                                                                                                                                                                                             |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <div><figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2Fm0xWoNz9jzDwtILtZ0sn%2FConfiguring_StreamMgmt_Sender_Assistant.png?alt=media&#x26;token=6e4d3c7b-1470-43b3-a40e-1a4207404281" alt="" width="563"><figcaption></figcaption></figure></div> | <div><figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2FItrJmfFCw4toOlY0cXIV%2FConfiguring_StreamMgmt_Sender_Advanced.png?alt=media&#x26;token=a10b47dd-e1dd-45b7-b955-0187f5f78c39" alt=""><figcaption></figcaption></figure></div> |

### Assigning Streams to HOLOPLOT Processors

After creating a Sender Stream, assign it to the project's Processor(s) to ensure the streams are created on the correct devices. You can do this via the **Audio I/O** or **Routing** by clicking the three-dot menu on the stream and choosing 'Assign Processor.' A dialog box will then appear, displaying available Processors in a drop-down menu for your selection. To unassign a Processor, use the same three-dot menu and select 'Unassign Processor'.

{% hint style="info" %}
When creating a stream from the **Routing › `Processor_Name`** view, the created stream is automatically assigned to that Processor.
{% endhint %}

<figure><img src="https://1870956965-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FEWZvA6Ecdn48SRkbJ1C8%2Fuploads%2F4ohDFQCHmwwlIy2LyQ0L%2FControl_Configure_Streams_Tx_Assign.gif?alt=media&#x26;token=d44d7686-ee31-4901-8236-a5d93ea63071" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Once you create Sender streams and these are correctly set up, map the Processor outputs to them in the Routing section. To learn more, go to [#processor-outputs-to-sender-tx-streams-routing](https://docs.holoplot.com/operating-the-system/routing-streams#processor-outputs-to-sender-tx-streams-routing "mention")
{% endhint %}
