Plugin Structure

All plugins must contain a manifest file named plugin.ini at their root that describes the plugin:

[plugin]
name = My Plugin
publisher = My Company
version = 0.0.1

[build]
input = ./src
output = ./my_plugin_v{version}.otp

[install]
class = MyPlugin
  • The plugin section provides the information displayed the OnTakt interface when managing the plugin.

  • The build section controls how the compiler will package the plugin:
    • input: all .py files in this directory will be compiled and bundled

    • output: the filename of the output bundle. {version} will be automatically replaced by the version specified in the plugin section. This should be unique, as it will become the internal ID of the plugin during installation.

  • The install section controls how OnTakt will load the plugin. It will look in the __init__.py file at the root of the package for a class named with the value of class. This class must extend OTPlugin as described below.

All plugins must contain a main class that extends the OTPlugin class. This inherits the following members:

These are hooks than can be used to handle events in the plugin lifecycle:

Plugin lifecycle diagram