dumping available_instruments to GUI or show_status?

Hi, I’ve been trying to dump available_instruments to show_status. I’ve somehow misplaced my GUI code and thus just trying to do a rprint and a dump. but for no apparent reason, I can’t seem to get show_status to show a list of stuff.

renoise.app():show_status(rprint(renoise.song().selected_instrument.plugin_properties.available_plugins))

doesn’t like to do more than this

*** No matching overload found, candidates:
*** void show_status(Application const&,custom [class String] const&)
*** stack traceback:
*** [C]: in function 'show_status'
***./loaders.lua:68: in function <./loaders.lua:66>

and without the rprint() it will still give an error. what might i be doing wrong?

rprint() “Recursively dumps a table and all its members to the std out (console)” (quoted from Lua.Standard.API.lua)

It’s only intended to dump stuff to the console for testing/debugging purposes, not to return some string that you can pass through to other parts of your code.

Furthermore, the status bar (and show_status() by extension) is only capable of handling a single line of text. What exactly did you expect to happen when dumping a huge list of plugins there? :slight_smile:

It’s probably better if you simply open the scripting console, and then directly call rprint(renoise.song().selected_instrument.plugin_properties.available_plugins) to examine the dumped results.

If you wish to actually utilise the list of plugins in your script/tool, then you’ll need to handle it accordingly:

local plugins = renoise.song().selected_instrument.plugin_properties.available_plugins

for key, value in ipairs(plugins) do
  print(key, value)
end

If you wish to actually utilise the list of plugins in your script/tool, then you’ll need to handle it accordingly:

local plugins = renoise.song().selected_instrument.plugin_properties.available_plugins

for key, value in ipairs(plugins) do
print(key, value)
end

Thanks dblue!

I added a modification to this to dump available_devices out too:

local devices = renoise.song().tracks[renoise.song().selected_track_index].available_devices
for key, value in ipairs (devices) do 
  print(key, value)
end

These will keep me occupied for quite some time (trying to figure out why specific plugins leave a greyed out window after I close their external editors - it is really doing my head in. Same issue with them stealing keyboard focus. Things used to be way simpler before, I seem to remember.