Module plugins

Provide utilities for scanning and searching installed FX plugins.

Info:

  • License: MIT
  • Author: Nomad Monad

Constants

Plugins.Format Plugin format constants.
Plugins.FormatOrder Default format preference order (higher priority first).

Class PluginInfo

PluginInfo:new (data) Create a new PluginInfo instance.
PluginInfo:__tostring () String representation.

Class PluginScanner

PluginScanner:new () Create a new PluginScanner instance.
PluginScanner:log (...) Log messages.
PluginScanner:scan () Scan all installed plugins.
PluginScanner:is_scanned () Check if plugins have been scanned.
PluginScanner:get_plugins () Get all scanned plugins.
PluginScanner:iter_plugins () Iterate over all plugins.
PluginScanner:get_by_format (format) Get plugins by format.
PluginScanner:iter_by_format (format) Iterate over plugins by format.
PluginScanner:get_instruments () Get all instruments.
PluginScanner:iter_instruments () Iterate over instruments.
PluginScanner:get_effects () Get all effects.
PluginScanner:iter_effects () Iterate over effects.
PluginScanner:get_formats () Get available formats.
PluginScanner:iter_formats () Iterate over available formats.
PluginScanner:find (name) Find plugin by exact name (case-insensitive).
PluginScanner:search (query) Search plugins by query (case-insensitive, partial match).
PluginScanner:iter_search (query) Iterate over search results.
PluginScanner:deduplicate (format_order) Deduplicate plugins by name, keeping preferred format.
PluginScanner:iter_deduplicated (format_order) Iterate over deduplicated plugins.
PluginScanner:get_manufacturers () Get unique manufacturers.
PluginScanner:iter_manufacturers () Iterate over manufacturers.
PluginScanner:get_by_manufacturer (manufacturer) Get plugins by manufacturer.
PluginScanner:iter_by_manufacturer (manufacturer) Iterate over plugins by manufacturer.
PluginScanner:count () Get plugin count.
PluginScanner:count_instruments () Get instrument count.
PluginScanner:count_effects () Get effect count.
Plugins.get_scanner () Get or create the shared scanner instance.
Plugins.scan () Scan plugins using the shared scanner.
Plugins.get_all () Get all plugins using the shared scanner.
Plugins.iter_all () Iterate over all plugins using the shared scanner.
Plugins.search (query) Search plugins using the shared scanner.
Plugins.iter_search (query) Iterate over search results.
Plugins.find (name) Find plugin by name using the shared scanner.
Plugins.get_instruments () Get instruments using the shared scanner.
Plugins.iter_instruments () Iterate over instruments.
Plugins.get_effects () Get effects using the shared scanner.
Plugins.iter_effects () Iterate over effects.


Constants

Plugins.Format
Plugin format constants.

Fields:

  • VST3
  • VST3i
  • VST
  • VSTi
  • AU
  • AUi
  • CLAP
  • CLAPi
  • JS
  • DX
  • DXi
Plugins.FormatOrder
Default format preference order (higher priority first).

Fields:

  • VST3
  • VST3i
  • CLAP
  • CLAPi
  • VST
  • VSTi
  • AU
  • AUi
  • JS
  • DX
  • DXi

Class PluginInfo

PluginInfo class for representing a single plugin.
PluginInfo:new (data)
Create a new PluginInfo instance.

Parameters:

  • data table Table with plugin data

Returns:

    PluginInfo
PluginInfo:__tostring ()
String representation.

Returns:

    string

Class PluginScanner

PluginScanner class for scanning and caching installed plugins.
PluginScanner:new ()
Create a new PluginScanner instance.

Returns:

    PluginScanner
PluginScanner:log (...)
Log messages.

Parameters:

  • ... varargs Messages to log
PluginScanner:scan ()
Scan all installed plugins.

Returns:

    number Number of plugins found
PluginScanner:is_scanned ()
Check if plugins have been scanned.

Returns:

    boolean
PluginScanner:get_plugins ()
Get all scanned plugins.

Returns:

    table Array of PluginInfo
PluginScanner:iter_plugins ()
Iterate over all plugins.

Returns:

    function Iterator
PluginScanner:get_by_format (format)
Get plugins by format.

Parameters:

  • format string Plugin format (e.g., "VST3", "AU")

Returns:

    table Array of PluginInfo
PluginScanner:iter_by_format (format)
Iterate over plugins by format.

Parameters:

  • format string Plugin format

Returns:

    function Iterator
PluginScanner:get_instruments ()
Get all instruments.

Returns:

    table Array of PluginInfo
PluginScanner:iter_instruments ()
Iterate over instruments.

Returns:

    function Iterator
PluginScanner:get_effects ()
Get all effects.

Returns:

    table Array of PluginInfo
PluginScanner:iter_effects ()
Iterate over effects.

Returns:

    function Iterator
PluginScanner:get_formats ()
Get available formats.

Returns:

    table Array of format strings
PluginScanner:iter_formats ()
Iterate over available formats.

Returns:

    function Iterator
PluginScanner:find (name)
Find plugin by exact name (case-insensitive).

Parameters:

  • name string Plugin name to find

Returns:

    PluginInfo|nil
PluginScanner:search (query)
Search plugins by query (case-insensitive, partial match).

Parameters:

  • query string Search query

Returns:

    table Array of matching PluginInfo
PluginScanner:iter_search (query)
Iterate over search results.

Parameters:

  • query string Search query

Returns:

    function Iterator
PluginScanner:deduplicate (format_order)
Deduplicate plugins by name, keeping preferred format.

Parameters:

  • format_order table|nil Array of formats in preference order

Returns:

    table Array of deduplicated PluginInfo
PluginScanner:iter_deduplicated (format_order)
Iterate over deduplicated plugins.

Parameters:

  • format_order table|nil Array of formats in preference order

Returns:

    function Iterator
PluginScanner:get_manufacturers ()
Get unique manufacturers.

Returns:

    table Array of manufacturer strings
PluginScanner:iter_manufacturers ()
Iterate over manufacturers.

Returns:

    function Iterator
PluginScanner:get_by_manufacturer (manufacturer)
Get plugins by manufacturer.

Parameters:

  • manufacturer string Manufacturer name

Returns:

    table Array of PluginInfo
PluginScanner:iter_by_manufacturer (manufacturer)
Iterate over plugins by manufacturer.

Parameters:

  • manufacturer string Manufacturer name

Returns:

    function Iterator
PluginScanner:count ()
Get plugin count.

Returns:

    number
PluginScanner:count_instruments ()
Get instrument count.

Returns:

    number
PluginScanner:count_effects ()
Get effect count.

Returns:

    number
Plugins.get_scanner ()
Get or create the shared scanner instance.

Returns:

    PluginScanner
Plugins.scan ()
Scan plugins using the shared scanner.

Returns:

    number Number of plugins found
Plugins.get_all ()
Get all plugins using the shared scanner. Automatically scans if not already scanned.

Returns:

    table Array of PluginInfo
Plugins.iter_all ()
Iterate over all plugins using the shared scanner.

Returns:

    function Iterator
Plugins.search (query)
Search plugins using the shared scanner.

Parameters:

  • query string Search query

Returns:

    table Array of matching PluginInfo
Plugins.iter_search (query)
Iterate over search results.

Parameters:

  • query string Search query

Returns:

    function Iterator
Plugins.find (name)
Find plugin by name using the shared scanner.

Parameters:

  • name string Plugin name

Returns:

    PluginInfo|nil
Plugins.get_instruments ()
Get instruments using the shared scanner.

Returns:

    table Array of PluginInfo
Plugins.iter_instruments ()
Iterate over instruments.

Returns:

    function Iterator
Plugins.get_effects ()
Get effects using the shared scanner.

Returns:

    table Array of PluginInfo
Plugins.iter_effects ()
Iterate over effects.

Returns:

    function Iterator
generated by LDoc 1.5.0 Last updated 2026-01-17 13:27:25