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