Visibility Conditions in Canvas

I can’t seem to get visibility conditions to work in the canvas editor, and can’t find any documentation with examples to help.

For example, I’d love to show a text box containing the current section’s lyrics, but only when the current section has lyrics. Or I’d love to show the next song title, but not if there isn’t a next song. That kind of thing.

Can anyone help?

Hey @rhodesyman, welcome to the forum!

Every element in the Canvas editor has a Visibility Condition section in its right-hand sidebar. It uses the same expression syntax as label templating, so you just write the expression directly. Right now, AbleSet expects the condition to resolve to a boolean — the element is only hidden when it resolves to false, so it’s important to convert your value to a boolean rather than relying on truthy/falsy values like an empty string.

A couple of things worth knowing while you set these up:

  • In edit mode, hidden elements don’t disappear completely — they just fade slightly so you can still select and edit them.
  • There’s a button in the top toolbar to fully hide “hidden” elements once you’re happy with the final layout.

Next song title only when there’s a next song

Drop this into the label’s Visibility Condition:

Boolean(osc("/setlist/nextSongName"))

/setlist/nextSongName returns the next song’s name, or an empty string when there’s no next song. Wrapping it in Boolean() turns that into true/false, so the element hides automatically on the last song of your set. (You can also double-negate it — !!osc("/setlist/nextSongName") — which does the same thing, just a bit less readable.)

Lyrics box only when there are lyrics

There isn’t a dedicated “does this section have lyrics” value, but you can check whether there’s a current lyrics line for the track, which covers your case nicely:

Boolean(osc("/lyrics/your-track-slug/current"))

This returns the current line’s text for that lyrics track and is empty when there’s no line at the playhead, so the box hides when there’s nothing to show. Replace your-track-slug with the slug of your lyrics track (the part after the track name, e.g. a track called Leo +LYRICS has the slug leo).

You can also see this in action in the official tutorial: Visibility conditions

Hope that helps!