NeXroll 2.2.0-beta.6
Pre-release
Pre-release
The week and day calendar views never showed a monthly schedule at all, so both are rebuilt. Both generators gain a typeface picker, with nine fonts that ship with NeXroll and support for uploading your own, plus custom video backdrops. Three faults in how random sequence blocks chose prerolls are fixed, including one that dropped blocks from a blended playlist entirely.
New settings migrate on first start. No configuration change needed.
Calendar
- The week and day views never showed a monthly schedule. Both read the hour from
start_date, which monthly schedules deliberately store as the sentinel2000-01-01, so every schedule landed at midnight — and the grid started at 08:00 and drew nothing before it, sampling only five hours in between. Anything monthly was invisible. - Both views are rebuilt on a continuous 24-hour axis driven by the recurrence pattern rather than
start_date, with overlapping schedules in side-by-side lanes, all-day schedules in their own row, and a current-time line. - Filler is drawn as a stretch, not a badge in every cell — a band across the hours it covers in day and week, a bar spanning consecutive uncovered days in month, and its own lane on the dashboard tile.
- The month grid shifted every date by a column once those bars were added, because CSS grid places explicit items before automatic ones and the day cells flowed around them.
- The dashboard tile started its week on Sunday while the calendar page started on Monday. Both now share one helper, and the same arithmetic for what filler covers, so they cannot disagree.
Typefaces
- Choose a typeface for the dynamic and Coming Soon generators. Nine ship with NeXroll — Bebas Neue, Anton, Archivo Black, Oswald, Roboto Condensed, Cinzel, Playfair Display, Lora and JetBrains Mono — so the same set is available on every install. This matters most in Docker, where the image otherwise carries two usable faces.
- Upload your own TrueType or OpenType file. One file serves both renderers, so the preview and the finished video use the same bytes. Web font formats are refused, because FFmpeg cannot read them and the rendered video would not match what you previewed.
- Only fonts the server can actually render are listed. Coming Soon lists are rebuilt without a browser, so a font that exists only on your machine would silently fall back.
- The bundled fonts are licensed under the SIL Open Font License 1.1.
Generators
- Custom video backdrops for both generators, with a dimming control and a live preview, replacing the generated theme background with your own footage.
- Match a preroll's length to an uploaded video clip, alongside the existing soundtrack matching.
- A Coming Soon list lost its animated background after a sync. The moving themed backdrop exists only because your browser records it from the preview canvas and sends it with the render, and that recording was written to a temporary file and deleted. Auto-regeneration has no browser, so it fell back to a still. The recording is kept now, keyed by theme, and reused whenever you have not uploaded a clip.
- "Match length to the soundtrack" would not stay on, and the duration reverted with it. Saving clamped the duration to 30 seconds, and a music bed usually runs for minutes, so the value came back changed and the toggle read as off. The dynamic generator had the same fault at 20 seconds.
QR Code template
- The code can be styled. Square, rounded or dotted modules; colours for the code and its background; a transparent background so the preroll theme shows through; and your uploaded logo overlaid in the middle.
- The plate behind it takes a colour, an opacity and corner rounding, from a solid white card through to no plate at all.
- Scannability is protected in code rather than left to taste: the three position squares are always drawn solid, the quiet zone is always kept, and a logo is capped well inside what the error correction can rebuild. A warning appears if the two colours you pick are too close for a scanner to separate.
Sequences and filler
- A random block whose count covered the whole category played in the same order every time, falling through to the sequential path and returning prerolls in database id order.
- Blended schedules silently dropped sequential blocks. Blend used its own resolver that only handled random blocks, so those prerolls never reached Plex. It also had no missing-file filter, so a preroll whose file was gone was still published.
- The dashboard preview could list prerolls that never play — a third copy of the resolver ignored whether a preroll was enabled, ignored the block's count, and dropped sequential blocks.
- Jellyfin and Emby ignored a sequence block that inherited its schedule's category, which the Plex path had always honored.
- Jellyfin and Emby were served nothing when filler was set to a dynamic preroll. The plugin resolver is a separate path from the one that writes Plex's preroll string, and it only understood category, sequence and Coming Soon fillers.
- Separator blocks were skipped inside sequences on Jellyfin and Emby, so a sequence played without the pauses its author put in.
- A dynamic preroll can now be used as the fallback filler, and My Schedules links to the setting when filler is switched off.
Backup
- Uploaded fonts were missing from system backups. A font choice records a filename, so a restore left the generators pointing at a typeface that was not there and quietly fell back to the template default.
Also
- The simple schedule form's Playback selector never worked. Choosing Sequential wrote a field nothing read and left the real one untouched, so playback stayed on random. A schedule could also be labelled Sequential while actually playing at random.
- Genre-based preroll mapping is removed from the app and the documentation. Nothing had applied it for some time, while the wiki still described a toggle and settings that were no longer there.
- A schedule's redundant shuffle flag is gone; playback mode has always been decided by the playlist setting.
- Seasonal loading-screen quotes that rotate through the year.