> 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/controller/overview/virtual-controller/stream-deck.md).

# Stream Deck

A StreamDeck is basically a Virtual Controller but predefined with the size and the number of control interface depending on the model of the StreamDeck. It works in the same way, and adds the ability to connect a real StreamDeck to Grid Studio.

Everything on the [**Virtual Controller**](/grid/controller/overview/virtual-controller.md) page and in the [**Controller Buttons**](/grid/controller/controller-buttons/controller-buttons.md) section applies to a StreamDeck as well. This page only covers what is specific to the StreamDeck.

## What Is Different From a Virtual Controller

|                                       | Virtual Controller                              | StreamDeck                                            |
| ------------------------------------- | ----------------------------------------------- | ----------------------------------------------------- |
| Hardware                              | Not required                                    | A physical StreamDeck                                 |
| Layout                                | Number of columns and rows set in the Inspector | Fixed by the device                                   |
| Encoders                              | Optional row below the buttons                  | On models that have them, such as the StreamDeck Plus |
| Touch strip                           | Not available                                   | StreamDeck Plus and StreamDeck Plus XL only           |
| **Dialog (edit on press)** value mode | Available                                       | Not available                                         |

A control concept can therefore move between the two. A button that increases a parameter behaves the same way whether it is clicked on screen or pressed on a StreamDeck key.

## Supported StreamDecks

The following StreamDeck models can be created from the **Controller** category of the create menu:

* StreamDeck Original (2017)
* StreamDeck MK 1
* StreamDeck MK 2
* StreamDeck Plus
* StreamDeck XL
* StreamDeck Studio
* StreamDeck Neo
* StreamDeck Plus XL
* StreamDeck Mini
* StreamDeck Pedal

Create the object that matches the exact model of your device. The layout of the object matches the hardware: for example, a StreamDeck Plus provides eight buttons, four encoders, and four touch strip sections.

{% hint style="info" %}
If you are not sure which model you have, check the name on the device or in the standard StreamDeck application before connecting it to Grid Studio.
{% endhint %}

## Connecting a StreamDeck

{% hint style="warning" %}
Before making a connection with Grid Studio, make sure the standard StreamDeck application is **not** running on the machine.
{% endhint %}

1. In the Project Tree, create the StreamDeck object that matches your model.
2. In the Inspector, under **Device**, select the connected StreamDeck.
3. If the connection is successful, **Connected** turns on and the object shows a green dot in the Project Tree.
4. Click **Open Editor** to open the Controller Editor and see a representation of your device.

<figure><img src="https://1089527861-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F1lzYXYTbE4lxMSWTSQTM%2Fuploads%2FwJvlcncitYHUBBr9jDMf%2FStreamDeck%20Inspector.png?alt=media&amp;token=bf4af19c-e42d-484b-860a-d4be4ad2549b" alt=""><figcaption></figcaption></figure>

The Inspector also provides a **Brightness** setting for the device.

## Working Without the Hardware

The StreamDeck object and its pages can be configured while the device is not connected. In that state the object reports a device status in the Project Tree, and it becomes active once the device is connected.

In the Controller Editor, play mode can be used to test the layout without the device.

## Using a StreamDeck and a Virtual Controller Together

Both can be used in the same project. Because buttons that target a parameter always read and write that parameter (see **Targeting Parameters**), a Virtual Controller and a StreamDeck can operate the same parameters and stay in sync with each other.
