Control Types
Volta supports several control types. Each has different value semantics when sending actions via POST /action.
Button
Section titled “Button”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.
Slider
Section titled “Slider”A continuous value between 0 and 1.
{ "layoutId": "abc123", "lid": 2, "type": "Slider", "value": 0.75}Toggle
Section titled “Toggle”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://..." } ]}String
Section titled “String”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]}