Skip to content

Control Types

Volta supports several control types. Each has different value semantics when sending actions via POST /action.

A simple trigger. No value needed.

{
"layoutId": "abc123",
"lid": 1,
"type": "Button"
}

Buttons are cumulative — each press increments an internal counter. The output receives both the count and a normalised 0–1 value.

A continuous value between 0 and 1.

{
"layoutId": "abc123",
"lid": 2,
"type": "Slider",
"value": 0.75
}

A boolean on/off switch.

{
"layoutId": "abc123",
"lid": 3,
"type": "Toggle",
"value": true
}

A selector with multiple options. The value is a zero-based integer.

{
"layoutId": "abc123",
"lid": 4,
"type": "Index",
"value": 2
}

Index controls power several templates:

  • Stickers — each index selects a different sticker image
  • Multiple Choice — each index is a vote for a different option

The GET /layout/{layoutId} endpoint returns an options array for Index controls, containing labels and (for stickers) image URLs:

{
"lid": 4,
"type": "Index",
"options": [
{ "index": 0, "label": "Sticker 1", "image": "https://..." },
{ "index": 1, "label": "Sticker 2", "image": "https://..." }
]
}

A free-text input.

{
"layoutId": "abc123",
"lid": 5,
"type": "String",
"value": "Hello from the crowd!"
}

A 2D position input. Value is an array of two floats, each between 0 and 1.

{
"layoutId": "abc123",
"lid": 6,
"type": "XYPad",
"value": [0.5, 0.3]
}