Plugins
Plugins offer a deeper level of integration into the LX rendering engine, with more or less complete API access to the application lifecycle. Plugins implement the LXPlugin or LXStudio.Plugin interfaces.
Plugins require a Pro License →
Achtung — Attention — Cuidado!
With great power comes great responsibility! In the spirit of open source, Chromatik does not sandbox or limit your plugins - you are free to extend the application with open-ended functionality. This means there are no guardrails in place to prevent you from introducing bugs, degrading system performance, etc. You should only run plugins that you have written or verified yourself.
Plugin Management
Plugins are distributed in Content Packages. Available plugins are detected and instantiated when Chromatik starts up. They can be enabled or disabled via the left-pane PLUGINS section on the CONTENT tab.
When you toggle the enabled status of a plugin, Chromatik must be restarted for the changes to take effect.
Scaffolding
@LXPlugin.Name("My Plugin")
public class MyPlugin implements LXStudio.Plugin {
@Override
public void initialize(LX lx) {
// Initialize the plugin during engine bootstrapping
}
@Override
public void initializeUI(LXStudio lx, UI ui) {
// Initialize UI components before UI is built
}
@Override
public void onUIReady(LXStudio lx, UI ui) {
// Add UI components once UI scaffolding is in place
}
@Override
public void dispose() {
// Clean up resources at program shutdown
}
}
Annotations
- @LXPlugin.Name friendly user-facing name for the plugin
Lifecycle Callbacks
initialize
The initialize
method is called when the LX engine is constructed. At this point the core LX engine components will all be available, but the engine will not have yet started. No UI components will have been created, and it's entirely possible that the application is running in a headless environment with no UI at all.
dispose
The dispose
method is called at program shutdown. Plugins should gracefully release resources, properly close ports, etc.
UI Callbacks
The following callbacks are only invoked when running in a full Chromatik UI environment. If the application is run in headless mode, these will not be invoked.
initializeUI
The initializeUI
method is called once the UI has been created, but before any of the Chromatik UI scaffolding has been created. This phase is typically not needed, but is made available to initialize UI-relevant resources that may need to be constructed before the main Chromatik UI.
onUIReady
The onUIReady
method is called after Chromatik has built the core UI scaffolding, e.g. the preview window, mixer, device bins, panes, etc. Plugins can at this point add new components to the UI.