Sign up for the tool project: Lua viewer tool to show VSTi plugins similar to FLStudio

VSTi Plugin Thumbnail viewer project

For those who don’t know me in the community, in addition to music composing, I particularly enjoy programming Lua tools for Renoise.

I have been thinking for several years about creating a Lua tool for Renoise similar to the VSTi plugin thumbnail viewer that FL Studio has. I have also seen in several forums that there are some users interested in this type of tool.

The tool would be a paginated floating window, simple, showing a thumbnail of all existing plugins (if the image exists), fixed size window with the ability to paginate. Hovering the mouse pointer over each image would display the name of the plugin. Clicking on the image would load the plugin on the selected instrument.

The tool itself would be quite simple. The workload is in the GUI and in the classification of instruments.

I am willing to build this kind of tool completely free, accessible and licensed for the part of the Renoise community to help me in the project, if there are enough users interested in the tool and in helping the project, otherwise I will not be able to create it.

How to help and join the project?

Interested users must:

  1. PNG Image of the instrument plugin. Send me a screenshot of each of your plugins saved in 32-bit PNG format, with 100% scaling (sharp image). Minimum 20 screenshots per user. Maximum unlimited (the more images you send the better).
  2. Exact name of the plugin. Each image sent must have the exact name of the plugin (“name_of_plugin.png”). This is important to be able to link it to the function that the plugin executes. Without the name, the tool simply won’t work. The images should work for any user. For the “exact name” maybe I’ll create a Lua tool and post it here so you can use it. The exact name is very important.
  3. More data. Version of the plugin, whether it is paid or free and what type of plugin (synth, percussion, ambience, things like that…). If I have this data I will be able to classify the plugins by categories. You can accompany the images with a text file with all this data.
  4. Shipping location (my email). You have to send all the information to my email published in my profile, all within a ZIP file with your name/nick in the Renoise forums, so I can have a record of participation.
  5. Free tool. Users who do not participate in the project will not be able to get the tool for free, It will be a licensed tool (not free).
  6. How to sign up for this project. To sign up, simply comment on this thread whatever you want. Ideas are accepted. The project will gather the requests that you want. In your first comment you should start by writing “I’m signing up for the project!”. Each participant will be assigned a number and will appear on a list posted here later, if the number of minimum participants is completed.

I’m signing up for the project!

I’m signing up for the project!

I’m signing up for the project!

I’m signing up for the project!

As I receive your information, I will publish here only the name of the plugins so that other users do not bother sending the same thing. The basic idea is to collect images and names so that we all have them.

Please, when a targeted user sends me content to my email, comment something in this thread to let me know.

Is anyone up for this crazy project?

Minimum of participants & period to sign up.

The minimum number of participants is 20. When this figure is reached I will start programming the tool and that is when you can start sending the images. Each participant must bother to send 20 instrument VST plugin images.

If the minimum number of participants is not reached, the project will be cancelled. Thank you very much for your participation!

Deadline to sign up: November 30, 2023 (this one included). The idea is to end the year by obtaining this tool for everyone…

Related API documentation

Are you a programmer and curious about this programming project? Here is some of the related documentation that I will use in the tool.

-- Plugin properties.
renoise.song().instruments[].plugin_properties
  -> [read-only, renoise.InstrumentPluginProperties object]

--------------------------------------------------------------------------------
-- renoise.InstrumentPluginProperties
--------------------------------------------------------------------------------

-------- Functions

-- Load an existing, new, non aliased plugin. Pass an empty string to unload
-- an already assigned plugin. plugin_path must be one of:
-- plugin_properties.available_plugins.
renoise.song().instruments[].plugin_properties:load_plugin(plugin_path)
  -> [boolean, success]


-------- Properties

-- List of all currently available plugins. This is a list of unique plugin
-- names which also contains the plugin's type (VST/AU/DSSI/...), not including
-- the vendor names as visible in Renoise's GUI. Aka, its an identifier, and not
-- the name as visible in the GUI. When no plugin is loaded, the identifier is
-- an empty string.
renoise.song().instruments[].plugin_properties.available_plugins[]
  -> [read_only, array of strings]

-- Returns a list of tables containing more information about the plugins. 
-- Each table has the following fields:
--  {
--    path,           -- The plugin's path used by load_plugin()
--    name,           -- The plugin's name
--    short_name,     -- The plugin's name as displayed in shortened lists
--    favorite_name,  -- The plugin's name as displayed in favorites
--    is_favorite,    -- true if the plugin is a favorite
--    is_bridged      -- true if the plugin is a bridged plugin
--  }
renoise.song().instruments[].plugin_properties.available_plugin_infos[]
  -> [read-only, array of plugin info tables]
  
-- Returns true when a plugin is present; loaded successfully.
-- see 'plugin_properties.plugin_device_observable' for related notifications.
renoise.song().instruments[].plugin_properties.plugin_loaded
  -> [read-only, boolean]

-- Valid object for successfully loaded plugins, otherwise nil. Alias plugin
-- instruments of FX will return the resolved device, will link to the device
-- the alias points to.
-- The observable is fired when the device changes: when a plugin gets loaded or
-- unloaded or a plugin alias is assigned or unassigned.
renoise.song().instruments[].plugin_properties.plugin_device, _observable
 -> [renoise.InstrumentPluginDevice object or renoise.AudioDevice object or nil]

-- Valid for loaded and unloaded plugins.
renoise.song().instruments[].plugin_properties.alias_instrument_index, _observable
  -> [read-only, number or 0 (when no alias instrument is set)]
renoise.song().instruments[].plugin_properties.alias_fx_track_index, _observable
  -> [read-only, number or 0 (when no alias FX is set)]
renoise.song().instruments[].plugin_properties.alias_fx_device_index, _observable
  -> [read-only, number or 0 (when no alias FX is set)]

-- Valid for loaded and unloaded plugins. target instrument index or 0 of the 
-- plugin's MIDI output (when present)
renoise.song().instruments[].plugin_properties.midi_output_routing_index, _observable
  -> [read-only, number. 0 when no routing is set]
  
-- Valid for loaded and unloaded plugins.
renoise.song().instruments[].plugin_properties.channel, _observable
  -> [number, 1-16]
renoise.song().instruments[].plugin_properties.transpose, _observable
  -> [number, -120-120]

-- Valid for loaded and unloaded plugins.
renoise.song().instruments[].plugin_properties.volume, _observable
  -> [number, linear gain, 0-4]

-- Valid for loaded and unloaded plugins.
renoise.song().instruments[].plugin_properties.auto_suspend, _observable
  -> [boolean]
2 Likes

Related thread:

It seems that this possible project will not be developed, due to the lack of interest from the community…