Terminology
To be able to understand how the core functionalities work a few terminologies need to be cleared.
LED Strip
An LED strip is a collection of LEDs. It does not necessarily have to be a single strip(which is usually has a length of max 5 metres) but their data channel has to be physically connected by a wire.
Also an LED controlling device is able to control multiple LED strips on different channels. When an LED strip is mentioned it applies to a strip that is independently controlled by a channel. It is important because the LED strips can be logically connected to each other but if they are controlled by a different device or a different channel it means a different LED strip.
Segment
A segment is a logically connected collection of LEDs on an LED strip.
Theoretically a strip can have zero to infinite segments. The most important
segment attributes are the head position, length, head color and head
intensity.
For example this is a how a segment could look like:
![]()
And this is how two segments with the same color and length but different position look like:
![]()
And this is how multiple segments look like with the length attribute set to 1:
![]()
In the above picture there are 9 segments all with the length of 1. But it shows that two segments could be next to each other and look as if it's a single one.
A segment might also have attributes that make it more interesting:
- MoveProperty - Describes how fast a segment moves and accelerates.
- DimProperty - Describes how the segment changes its intensity which is the brightness of the individual LEDs.
- FadeProperty - Describes a transformation from one color to another
- GrowProperty - Describes how the segment changes its size
All these attributes describe a gradually changing process that happens over time with the main attributes of the segment.
Transformation
A transformation is a process that instantly changes some attributes of a segment or multiple segments. This could be a simple change like instantly changing the position or could be a change that modifies one of the attributes which affects the segment over time like the MoveProperty attribute.
The possible transformations are:
- HeadPosition
- HeadColor
- Intensity
- Priority
- Length
- MoveProperty
- DimProperty
- FadeProperty
- GrowProperty
Action
An action can occur in several scenarios. These scenarios are:
- Initial Actions - Happens once when an effect is activated.
- Timer Actions - Happens on timer events. These timers can be parameterized.
- Beat Actions - Happens when a beat occurs in a track
- Track Segment Actions - Happens when a segment occurs in a track
- Section Actions - Happens when a section occurs in a track
To understand the Spotify track analysis result and when these different rhythms happen in a track head to this speech given by one of the API developers: https://www.youtube.com/watch?v=goUzHd7cTuA
There are 2 types of actions:
- Create Segment - Creates a new segment. It's also possible to add some initial transformations for the newly created segment
- Transform Segment - Transforms an already existing segment. Any of the above mentioned transformations can be applied