-
Notifications
You must be signed in to change notification settings - Fork 2
Review UI Guide
The whole workflow lives in seven tabs across the top of every screen:
xLightsAI 1 Library 2 Import 3 Analyze 4 Timeline 5 Theme 6 Extras 7 Export
The numbers indicate the natural order — drop a song in, walk through the
tabs left to right, finish with a .xsq ready for xLights. You can revisit
any tab at any time.
Where you start the very first time. Just a drop zone: drag an MP3/WAV file — or a video file (mp4/mov/avi/mkv/webm), whose audio track is extracted automatically — onto it, or click "or click to browse files" to open a native file picker. Both mono and stereo audio are accepted; ID3 metadata is read automatically.
After you drop a file, the app jumps straight to Analyze and starts the pipeline.
-
Title bar — "Analyzing...
<slug>·<duration>" on the left, elapsed/ETA and a skip to timeline → escape hatch on the right (it appears once enough has been detected to render something). - Artist / Title fields — read from the MP3's ID3 tags. Edit either to override what's used for the synced-lyrics lookup.
- Phase pills — seven logical phases (loading audio → separating stems → tracking beats → finding bars → segmenting structure → song story → assigning themes). The active phase is outlined; completed phases get a green checkmark.
- Detectors column (left) — every algorithm the pipeline runs, in execution order, with status, library tag (system / demucs / librosa / vamp / madmom), and progress.
- Stream column (middle) — live SSE log lines from the pipeline.
- Findings column (right) — overall progress %, ETA, high-level outputs (waveform, beats, bars, sections, themes), and a live-growing Sections list as the structure detector finds boundaries.
- Song rail (far left, collapsible) — songs you've imported, grouped by folder. Switch songs without leaving the screen.
Same screen, after the pipeline finishes (~60–90s on a typical song with cached stems).
- Title bar flips to "Analysis complete" with a ▶ review timeline → button.
- All seven phases show green checkmarks; detectors show a full count
(e.g.
librosa_beats · 288,aubio_onset (drums) · 700 marks). - Findings show 100%, per-category counts, and the section list with
role + duration (
01 Verse · 20s,02 Pre Chorus · 19s, ...). - Re-analyze (bottom left) re-runs the pipeline from scratch, ignoring any cache — useful after editing artist/title (for a fresh synced-lyrics lookup) or after a schema bump.
The most-used screen. Verifies the analysis matched what you hear.
- Transport — play/scrub controls, current position / total duration.
- Zoom controls — narrows the visible window so you can scrub onto a single beat.
- Waveform — full-mix audio as a stereo waveform with a time ruler; click anywhere to seek the playhead.
- Sections row — colored boxes per detected section, labeled by role (Verse, Pre Chorus, Chorus, Bridge, Outro, Interlude, etc.). Click "Edit sections" to adjust boundaries by dragging.
- Stem waveforms (collapsible) — drums / bass / vocals / guitar / piano / other, rendered on demand — useful for verifying stem separation looks right.
- Raw algorithm tracks — every individual detector's output as a flash-on-event tick row, toggleable per-row to declutter.
-
Playhead inspector (right column) — current position as
bar X · beat Y of Z, the current section's name/color, and its start / end / duration. -
Nudge buttons —
−10 ms/+10 msto micro-adjust the active section's start time (hold-and-drag for repeated nudges). - Go to Theme → finishes timeline review and moves on.
Pick a theme (composite lighting "look") for each section of the song. Themes encode color palette, effect choice, blend modes, and parameter mappings.
- Section navigator (top) — every detected section as a clickable pill; the active pill outlines orange.
- Accept All Defaults — auto-assigns theme defaults to every section using the song's energy/genre profile — a good starting point.
- Theme grid — each card shows a 5-color palette swatch, the theme name (e.g. Aurora, Inferno, Stellar Wind), mood tags (ETHEREAL, AGGRESSIVE, ROCK, DARK, ...), and a one-line description. Click a card to assign it to the active section.
- Section beat strip — visualizes the selected section's beat structure.
-
Section parameters — four sliders that fine-tune this section's
render of the chosen theme:
- Brightness — global intensity (0–1)
- Hit Strength — accent emphasis on beats (0–1)
- Dwell Time — how long held effects last (0–1)
- Color Shift — palette rotation (0–1)
Per-section overrides are remembered when you switch sections; Accept All Defaults resets them.
Optional per-song lyric-word triggers for two effects: image accents on Matrix/Mega Tree props (Pictures), and a two-layer drop-shadow word effect (Shadow Text). Nothing here is required — skip straight to Export if you don't want either.
-
Suggested topics — lyric words from this song that don't have a
matching image in your shared image library yet. Per word:
- Create image — opens a pre-filled AI image-generation prompt you can copy into Gemini (or any image generator), styled to match the catalog's flat-icon look.
- Choose image — upload an image file directly for this word.
- Shadow — tags the word for the Shadow Text effect (see below). Click again to untag (shows Shadow ✓ while active).
- A previously unmapped word shows an "unmapped from
<file>" note and a Restore match button instead.
-
Already matched — words already resolved to a library image, shown
as
"word" → filename.png. Same Create image / Choose image / Shadow buttons, plus Unmap — suppresses the Pictures effect for that word in this song only (the library image itself isn't deleted, and stays available for other songs). - Moving Head Triggers — a separate list of lyric words that fire a Moving Head accent when sung, independent of Pictures/Shadow. Three built-ins (shake, bounce, spin) are on by default; uncheck (Remove) to disable one for this song. Add your own word either from the "Add from this song's lyrics" picker or the custom-word box at the bottom, assigning it one of four motions: shake, bounce, spin, or flash (points every head straight up at full white).
- Pictures cycles catalog images in as an overlay on Matrix/Mega Tree props, timed to each lyric match, with a short pan and an occasional zoom/rotation flourish.
- Shadow Text renders the tagged word itself as two stacked layers on the same Matrix/Mega Tree props whenever it's sung — the word in the song's main palette color on top, a slightly offset copy in a second palette color directly behind it, producing a drop-shadow look — with the same pan/zoom/rotation movement Pictures bursts use.
Both are entirely optional accents layered on top of whatever the Theme tab already assigned; neither is required to generate a sequence.
The terminal step. Generates the xLights .xsq sequence from the
analyzed song + assigned themes + the repo's committed prop layout.
-
Generate — produces the
.xsq. -
Layout summary — number of models/groups/props detected from
layout/xlights_rgbeffects.xml, and which 8-tier Power Groups were auto-generated (heroes, compounds, props, beats, etc.). - Generation options — variation seed, repetition policy, palette restraint, duration scaling. Most users leave defaults.
-
Download Package — bundles the generated
.xsqwithlayout/xlights_rgbeffects.xmlandlayout/xlights_networks.xmlinto a single.xsqz(xLights' own zipped-sequence-package format) ready to import directly into xLights.
Where you go to switch between songs once you've imported a few.
- Filter pills — All / Draft / Analyzed / Themed. Draft = imported but not analyzed; Analyzed = pipeline complete; Themed = at least one section has a theme assignment.
-
Folder groups — songs are bucketed by
folder_id(defaultunfiled); click the chevron to collapse/expand. - Song row — title, artist (from ID3 or override), and a status badge. Click anywhere on the row to open it in whatever tab you visit next.
- Song rail — a permanent compact list across every screen, so you can switch songs without leaving the current step.