How do I get music visualisations?

How’s this working for you? All the bundled visualizations are broken in the v19 osmc release on Vero 4k+ for me still…

They mostly work for me (I think the PictureIt one is broken). What visualizations don’t work for you?

None of them work (just show a blank screen) with the exception of SharderToy, which only shows the first preset (the graphical EQ, doesn’t transition to any others). Initially I thought something got corrupted because the visualization modals had garbled graphics instead of text , so I switched skins to the OSMC default, and then back to Estuary, which fixed that issue, but the visualizations continue to not work. When I have time I’ll enable debugging and tail the log to see what’s happening.

All visualizations are working for me on the RPi2. PictureIt doesn’t seem to show any pictures from the selected folder but the spectrum is shown. I think ShaderToy doesn’t support transitions. You have to switch the presets, which for me is using the key to change subtitles. Using a custom shader also works.

RPi would have a different architecture, I would imagine (vero4k+ has special builds for these plugins).

I’ve checked out the debug logging when using shadertoy, and no errors appear. The problem lies with the compiled version no ‘switching’ to the other .glsl files in the resources directory of the plugin (~/.kodi/addons/visualization.shadertoy/resources). You can prove this by manually copying this directory to ~/resources, opening the shadertoy settigns and ‘manually’ selecting one of these glsl files, at which point the new visualization will load up. I haven’t dove too deep into how to enable ‘auto switching’ of these files (and indeed, transitions between them) but it seems to be a simple mis-configuration happening somewhere (unfortunately not in the addon.xml file, though). I’ll keep poking at this as I have time to try and figure it out (I miss the x64 days when everything worked fine :confused: )

As said before, you have to manually switch to another preset (shader) using ActivateWindow(“visualisationpresetlist”). I remember now that I have added this to ~/.kodi/userdata/keymaps/remote.xml at some point. With the Estuary skin you can access the preset list through the context menu (play/seek bar). This menu doesn’t seem to be available with the OSMC skin. Using the API works for both skins.

In general, the shadertoy addon doesn’t have any switching functionality built-in except providing hooks for next, previous as well as random preset commands issued from outside of the addon. Not sure if there are any other addons/skins that would provide preset changing functionality but using the REST API might be another possibility. Unfortunately, while you can invoke the preset list on OSMC skin, next/prev/random preset doesn’t seem to work on OSMC skin but works on Estuary, the default Kodi skin.

This is absolutely available with our OSMC Skin: skin.osmc/xml/MusicOSD.xml at 182fdb7d879f5980b0aec00f5c5720d4a6a6e07f · Ch1llb0/skin.osmc · GitHub
The very right button in the music OSD will open the window you’re looking for.

No, this brings up the visualization settings but not the preset selection. Preset selection is “visualisationpresetlist” (123).

According to the Kodi wiki, 123 is the OSD video settings… Will double check and change this, if needed, but the documentation seems to be clear

Just double checked… This is the button in the music OSD:

And this is what the button opens:

Looks like a preset list to me. If the button highlighted here is not present then the vizualisation addon doesn’t offer any presets.

It looks like the preset button is disabled when there is a custom shader selected in the shadertoy settings. Without the custom shader the button is visible in the OSD - somewhat confusing.

The JSON.RPC API also lists visualisationpresetlist at index 123 of GUI.Window but apperently that’s not the same as the Window ID. Maybe it is better to use the name instead of the numerical representation, i.e. ActivateWindow(visualisationpresetlist). That’s whats done in the Estuary skin which is less confusing than 122 or 123.

Whether the button is enabled or disabled depends on what Kodi returns as a boolean value regarding presets being present or not. Either it returns a wrong one for the scenario you mentioned because of a Kodi bug or an addon bug. Either way the skin can’t do much about this.

I’m not sure I follow… Why would I replace a window ID that’s working and correct following the reference in the Kodi wiki?

I looked at the shadertoy addon code and it does not return a list of presets when the custom shader is selected. I guess it’s by design that the custom shader is not appended to the list of presets but realized as a single instance w/o presets at all.

The comment about visualisationpresetlist was a general comment about using named types like enumerations or defines instead of raw values. It’s just more readable.

Ahh you’re right; I was thinking of the ProjectM visualization! Damn…