> For the complete documentation index, see [llms.txt](https://stage-precision.gitbook.io/grid/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://stage-precision.gitbook.io/grid/timeline/layer-types/recording-io-layer.md).

# Recording IO Layer

Record and replay complete UDP or sACN data streams directly from a Timeline using linked I/O objects from the Project Tree.

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FxwxinulyIkmCnRYOE129%2Fimage.png?alt=media&amp;token=4514ec1b-e11b-445a-94a2-5a52f8791628" alt=""><figcaption></figcaption></figure>

The **Recording IO Layer** is used to record complete I/O data streams and play them back later from the Timeline.

Instead of recording individual parameters, the Layer captures the raw data packets of a supported connection and stores them in the Timeline.

During playback, the recorded data is sent again using the connection settings of the linked I/O object.

Currently supported connection types are:

* **sACN**
* **UDP**

Each Recording IO Layer can record and play back **one** UDP or sACN connection.

***

## Requirements

Before using a Recording IO Layer, the corresponding I/O object must already exist in the **Project Tree**.

Depending on what should be recorded, create at least one:

* **UDP object**
* **sACN object**

The Recording IO Layer is then linked to this existing object.

The linked object also provides the connection settings that are used when the recorded data is played back.

***

## Configuring a Recordable Connection

Select the Recording IO Layer and open the **Recordable** tab in the Inspector.

### Add a Recordable

Click the **+** button to add a new Recordable configuration.

Select the required connection type:

* **UDP**
* **sACN**

<figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2FK2Fm0mkpXWcKpQn7Mw7v%2FiD7k8MupgZ.gif?alt=media&amp;token=a036a0f5-488a-483f-a2bf-086861575101" alt=""><figcaption></figcaption></figure>

After selecting the type, link the Recordable to the corresponding UDP or sACN object from the **Project Tree**.

The Layer is now ready to record data from that connection.

***

## sACN Recording

When using an **sACN** Recordable, the Universes that should be captured can be limited using Universe ranges.

One or multiple ranges can be defined, allowing only the required sACN Universes to be recorded.

<div align="left"><figure><img src="https://1761958297-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDcGqBEYUYkl2mQzGbOue%2Fuploads%2Ft6S6r5NuD85Qtr2nTT1u%2FPowerToys_94417SY2o4.gif?alt=media&amp;token=9eee5560-d26d-4439-88ad-a74f84658526" alt="" width="434"><figcaption></figcaption></figure></div>

This makes it possible to avoid recording unnecessary Universe data when only part of the sACN stream is required.

***

## Recording and Playback

During recording, the Recording IO Layer captures the raw packets received through the linked connection and stores them as Timeline data.

When the Timeline is played back, the recorded packets are reproduced in their original timing.

The connection configuration itself is not stored as part of the recording. Playback uses the current connection settings of the linked UDP or sACN object.

This allows recorded I/O data to be replayed through the connection defined in the Project Tree.
