Carla Backend
Modules | Classes | Typedefs | Enumerations | Variables
Carla Backend API

The Carla Backend API. More...

Modules

 Engine Driver Device Hints
 Various engine driver device hints.
 
 Plugin Hints
 Various plugin hints.
 
 Plugin Options
 Various plugin options.
 
 Parameter Hints
 Various parameter hints.
 
 Mapped Parameter Flags
 Various flags for parameter mappings.
 
 Patchbay Port Hints
 Various patchbay port hints.
 
 Patchbay Port Group Hints
 Various patchbay port group hints.
 
 Custom Data Types
 These types define how the value in the CustomData struct is stored.
 
 Custom Data Keys
 Pre-defined keys used internally in Carla.
 

Classes

struct  ParameterData
 
struct  _ParameterRanges
 
struct  MidiProgramData
 
struct  CustomData
 
struct  EngineDriverDeviceInfo
 

Typedefs

typedef void(* EngineCallbackFunc) (void *ptr, EngineCallbackOpcode action, uint pluginId, int value1, int value2, int value3, float valuef, const char *valueStr)
 

Enumerations

enum  BinaryType {
  BINARY_NONE = 0, BINARY_POSIX32 = 1, BINARY_POSIX64 = 2, BINARY_WIN32 = 3,
  BINARY_WIN64 = 4, BINARY_OTHER = 5
}
 
enum  FileType { FILE_NONE = 0, FILE_AUDIO = 1, FILE_MIDI = 2 }
 
enum  PluginType {
  PLUGIN_NONE = 0, PLUGIN_INTERNAL = 1, PLUGIN_LADSPA = 2, PLUGIN_DSSI = 3,
  PLUGIN_LV2 = 4, PLUGIN_VST2 = 5, PLUGIN_VST3 = 6, PLUGIN_AU = 7,
  PLUGIN_DLS = 8, PLUGIN_GIG = 9, PLUGIN_SF2 = 10, PLUGIN_SFZ = 11,
  PLUGIN_JACK = 12
}
 
enum  PluginCategory {
  PLUGIN_CATEGORY_NONE = 0, PLUGIN_CATEGORY_SYNTH = 1, PLUGIN_CATEGORY_DELAY = 2, PLUGIN_CATEGORY_EQ = 3,
  PLUGIN_CATEGORY_FILTER = 4, PLUGIN_CATEGORY_DISTORTION = 5, PLUGIN_CATEGORY_DYNAMICS = 6, PLUGIN_CATEGORY_MODULATOR = 7,
  PLUGIN_CATEGORY_UTILITY = 8, PLUGIN_CATEGORY_OTHER = 9
}
 
enum  ParameterType { PARAMETER_UNKNOWN = 0, PARAMETER_INPUT = 1, PARAMETER_OUTPUT = 2 }
 
enum  InternalParameterIndex {
  PARAMETER_NULL = -1, PARAMETER_ACTIVE = -2, PARAMETER_DRYWET = -3, PARAMETER_VOLUME = -4,
  PARAMETER_BALANCE_LEFT = -5, PARAMETER_BALANCE_RIGHT = -6, PARAMETER_PANNING = -7, PARAMETER_CTRL_CHANNEL = -8,
  PARAMETER_MAX = -9
}
 
enum  SpecialMappedControlIndex {
  CONTROL_INDEX_NONE = -1, CONTROL_INDEX_CV = 130, CONTROL_INDEX_MIDI_PITCHBEND = 131, CONTROL_INDEX_MIDI_LEARN = 132,
  CONTROL_INDEX_MAX_ALLOWED = CONTROL_INDEX_MIDI_LEARN
}
 
enum  EngineCallbackOpcode {
  ENGINE_CALLBACK_DEBUG = 0, ENGINE_CALLBACK_PLUGIN_ADDED = 1, ENGINE_CALLBACK_PLUGIN_REMOVED = 2, ENGINE_CALLBACK_PLUGIN_RENAMED = 3,
  ENGINE_CALLBACK_PLUGIN_UNAVAILABLE = 4, ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED = 5, ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED = 6, ENGINE_CALLBACK_PARAMETER_MAPPED_CONTROL_INDEX_CHANGED = 7,
  ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED = 8, ENGINE_CALLBACK_OPTION_CHANGED = 9, ENGINE_CALLBACK_PROGRAM_CHANGED = 10, ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED = 11,
  ENGINE_CALLBACK_UI_STATE_CHANGED = 12, ENGINE_CALLBACK_NOTE_ON = 13, ENGINE_CALLBACK_NOTE_OFF = 14, ENGINE_CALLBACK_UPDATE = 15,
  ENGINE_CALLBACK_RELOAD_INFO = 16, ENGINE_CALLBACK_RELOAD_PARAMETERS = 17, ENGINE_CALLBACK_RELOAD_PROGRAMS = 18, ENGINE_CALLBACK_RELOAD_ALL = 19,
  ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED = 20, ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED = 21, ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED = 22, ENGINE_CALLBACK_PATCHBAY_CLIENT_DATA_CHANGED = 23,
  ENGINE_CALLBACK_PATCHBAY_PORT_ADDED = 24, ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED = 25, ENGINE_CALLBACK_PATCHBAY_PORT_CHANGED = 26, ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED = 27,
  ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED = 28, ENGINE_CALLBACK_ENGINE_STARTED = 29, ENGINE_CALLBACK_ENGINE_STOPPED = 30, ENGINE_CALLBACK_PROCESS_MODE_CHANGED = 31,
  ENGINE_CALLBACK_TRANSPORT_MODE_CHANGED = 32, ENGINE_CALLBACK_BUFFER_SIZE_CHANGED = 33, ENGINE_CALLBACK_SAMPLE_RATE_CHANGED = 34, ENGINE_CALLBACK_CANCELABLE_ACTION = 35,
  ENGINE_CALLBACK_PROJECT_LOAD_FINISHED = 36, ENGINE_CALLBACK_NSM = 37, ENGINE_CALLBACK_IDLE = 38, ENGINE_CALLBACK_INFO = 39,
  ENGINE_CALLBACK_ERROR = 40, ENGINE_CALLBACK_QUIT = 41, ENGINE_CALLBACK_INLINE_DISPLAY_REDRAW = 42, ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_ADDED = 43,
  ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_REMOVED = 44, ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_CHANGED = 45, ENGINE_CALLBACK_PARAMETER_MAPPED_RANGE_CHANGED = 46, ENGINE_CALLBACK_PATCHBAY_CLIENT_POSITION_CHANGED = 47,
  ENGINE_CALLBACK_EMBED_UI_RESIZED = 48
}
 
enum  NsmCallbackOpcode {
  NSM_CALLBACK_INIT = 0, NSM_CALLBACK_ERROR = 1, NSM_CALLBACK_ANNOUNCE = 2, NSM_CALLBACK_OPEN = 3,
  NSM_CALLBACK_SAVE = 4, NSM_CALLBACK_SESSION_IS_LOADED = 5, NSM_CALLBACK_SHOW_OPTIONAL_GUI = 6, NSM_CALLBACK_HIDE_OPTIONAL_GUI = 7,
  NSM_CALLBACK_SET_CLIENT_NAME_ID = 8
}
 
enum  EngineOption {
  ENGINE_OPTION_DEBUG = 0, ENGINE_OPTION_PROCESS_MODE = 1, ENGINE_OPTION_TRANSPORT_MODE = 2, ENGINE_OPTION_FORCE_STEREO = 3,
  ENGINE_OPTION_PREFER_PLUGIN_BRIDGES = 4, ENGINE_OPTION_PREFER_UI_BRIDGES = 5, ENGINE_OPTION_UIS_ALWAYS_ON_TOP = 6, ENGINE_OPTION_MAX_PARAMETERS = 7,
  ENGINE_OPTION_RESET_XRUNS = 8, ENGINE_OPTION_UI_BRIDGES_TIMEOUT = 9, ENGINE_OPTION_AUDIO_BUFFER_SIZE = 10, ENGINE_OPTION_AUDIO_SAMPLE_RATE = 11,
  ENGINE_OPTION_AUDIO_TRIPLE_BUFFER = 12, ENGINE_OPTION_AUDIO_DRIVER = 13, ENGINE_OPTION_AUDIO_DEVICE = 14, ENGINE_OPTION_OSC_ENABLED = 15,
  ENGINE_OPTION_OSC_PORT_TCP = 16, ENGINE_OPTION_OSC_PORT_UDP = 17, ENGINE_OPTION_FILE_PATH = 18, ENGINE_OPTION_PLUGIN_PATH = 19,
  ENGINE_OPTION_PATH_BINARIES = 20, ENGINE_OPTION_PATH_RESOURCES = 21, ENGINE_OPTION_PREVENT_BAD_BEHAVIOUR = 22, ENGINE_OPTION_FRONTEND_BACKGROUND_COLOR = 23,
  ENGINE_OPTION_FRONTEND_FOREGROUND_COLOR = 24, ENGINE_OPTION_FRONTEND_UI_SCALE = 25, ENGINE_OPTION_FRONTEND_WIN_ID = 26, ENGINE_OPTION_WINE_EXECUTABLE = 27,
  ENGINE_OPTION_WINE_AUTO_PREFIX = 28, ENGINE_OPTION_WINE_FALLBACK_PREFIX = 29, ENGINE_OPTION_WINE_RT_PRIO_ENABLED = 30, ENGINE_OPTION_WINE_BASE_RT_PRIO = 31,
  ENGINE_OPTION_WINE_SERVER_RT_PRIO = 32, ENGINE_OPTION_DEBUG_CONSOLE_OUTPUT = 33, ENGINE_OPTION_CLIENT_NAME_PREFIX = 34
}
 
enum  EngineProcessMode {
  ENGINE_PROCESS_MODE_SINGLE_CLIENT = 0, ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS = 1, ENGINE_PROCESS_MODE_CONTINUOUS_RACK = 2, ENGINE_PROCESS_MODE_PATCHBAY = 3,
  ENGINE_PROCESS_MODE_BRIDGE = 4
}
 
enum  EngineTransportMode {
  ENGINE_TRANSPORT_MODE_DISABLED = 0, ENGINE_TRANSPORT_MODE_INTERNAL = 1, ENGINE_TRANSPORT_MODE_JACK = 2, ENGINE_TRANSPORT_MODE_PLUGIN = 3,
  ENGINE_TRANSPORT_MODE_BRIDGE = 4
}
 
enum  FileCallbackOpcode { FILE_CALLBACK_DEBUG = 0, FILE_CALLBACK_OPEN = 1, FILE_CALLBACK_SAVE = 2 }
 
enum  PatchbayIcon {
  PATCHBAY_ICON_APPLICATION = 0, PATCHBAY_ICON_PLUGIN = 1, PATCHBAY_ICON_HARDWARE = 2, PATCHBAY_ICON_CARLA = 3,
  PATCHBAY_ICON_DISTRHO = 4, PATCHBAY_ICON_FILE = 5
}
 

Variables

const typedef char *(* FileCallbackFunc )(void *ptr, FileCallbackOpcode action, bool isDir, const char *title, const char *filter)
 
static const uint MAX_DEFAULT_PLUGINS = 512
 
static const uint MAX_RACK_PLUGINS = 64
 
static const uint MAX_PATCHBAY_PLUGINS = 255
 
static const uint MAX_DEFAULT_PARAMETERS = 200
 
static const uint MAIN_CARLA_PLUGIN_ID = 0xFFFF
 

Detailed Description

The Carla Backend API.

These are the base definitions for everything in the Carla backend code.

Typedef Documentation

◆ EngineCallbackFunc

typedef void(* EngineCallbackFunc) (void *ptr, EngineCallbackOpcode action, uint pluginId, int value1, int value2, int value3, float valuef, const char *valueStr)

Engine callback function. Front-ends must never block indefinitely during a callback.

See also
EngineCallbackOpcode, CarlaEngine::setCallback() and carla_set_engine_callback()

Enumeration Type Documentation

◆ BinaryType

enum BinaryType

The binary type of a plugin.

Enumerator
BINARY_NONE 

Null binary type.

BINARY_POSIX32 

POSIX 32bit binary.

BINARY_POSIX64 

POSIX 64bit binary.

BINARY_WIN32 

Windows 32bit binary.

BINARY_WIN64 

Windows 64bit binary.

BINARY_OTHER 

Other binary type.

◆ FileType

enum FileType

File type.

Enumerator
FILE_NONE 

Null file type.

FILE_AUDIO 

Audio file.

FILE_MIDI 

MIDI file.

◆ PluginType

enum PluginType

Plugin type. Some files are handled as if they were plugins.

Enumerator
PLUGIN_NONE 

Null plugin type.

PLUGIN_INTERNAL 

Internal plugin.

PLUGIN_LADSPA 

LADSPA plugin.

PLUGIN_DSSI 

DSSI plugin.

PLUGIN_LV2 

LV2 plugin.

PLUGIN_VST2 

VST2 plugin.

PLUGIN_VST3 

VST3 plugin.

Note
Windows and MacOS only
PLUGIN_AU 

AU plugin.

Note
MacOS only
PLUGIN_DLS 

DLS file.

PLUGIN_GIG 

GIG file.

PLUGIN_SF2 

SF2/3 file (SoundFont).

PLUGIN_SFZ 

SFZ file.

PLUGIN_JACK 

JACK application.

◆ PluginCategory

Plugin category, which describes the functionality of a plugin.

Enumerator
PLUGIN_CATEGORY_NONE 

Null plugin category.

PLUGIN_CATEGORY_SYNTH 

A synthesizer or generator.

PLUGIN_CATEGORY_DELAY 

A delay or reverb.

PLUGIN_CATEGORY_EQ 

An equalizer.

PLUGIN_CATEGORY_FILTER 

A filter.

PLUGIN_CATEGORY_DISTORTION 

A distortion plugin.

PLUGIN_CATEGORY_DYNAMICS 

A 'dynamic' plugin (amplifier, compressor, gate, etc).

PLUGIN_CATEGORY_MODULATOR 

A 'modulator' plugin (chorus, flanger, phaser, etc).

PLUGIN_CATEGORY_UTILITY 

An 'utility' plugin (analyzer, converter, mixer, etc).

PLUGIN_CATEGORY_OTHER 

Miscellaneous plugin (used to check if the plugin has a category).

◆ ParameterType

Plugin parameter type.

Enumerator
PARAMETER_UNKNOWN 

Null parameter type.

PARAMETER_INPUT 

Input parameter.

PARAMETER_OUTPUT 

Output parameter.

◆ InternalParameterIndex

Special parameters used internally in Carla. Plugins do not know about their existence.

Enumerator
PARAMETER_NULL 

Null parameter.

PARAMETER_ACTIVE 

Active parameter, boolean type. Default is 'false'.

PARAMETER_DRYWET 

Dry/Wet parameter. Range 0.0...1.0; default is 1.0.

PARAMETER_VOLUME 

Volume parameter. Range 0.0...1.27; default is 1.0.

PARAMETER_BALANCE_LEFT 

Stereo Balance-Left parameter. Range -1.0...1.0; default is -1.0.

PARAMETER_BALANCE_RIGHT 

Stereo Balance-Right parameter. Range -1.0...1.0; default is 1.0.

PARAMETER_PANNING 

Mono Panning parameter. Range -1.0...1.0; default is 0.0.

PARAMETER_CTRL_CHANNEL 

MIDI Control channel, integer type. Range -1...15 (-1 = off).

PARAMETER_MAX 

Max value, defined only for convenience.

◆ SpecialMappedControlIndex

Specially designated mapped control indexes. Values between 0 and 119 (0x77) are reserved for MIDI CC, which uses direct values.

See also
ParameterData::mappedControlIndex
Enumerator
CONTROL_INDEX_NONE 

Unused control index, meaning no mapping is enabled.

CONTROL_INDEX_CV 

CV control index, meaning the parameter is exposed as CV port.

CONTROL_INDEX_MIDI_PITCHBEND 

Special value to indicate MIDI pitchbend.

CONTROL_INDEX_MIDI_LEARN 

Special value to indicate MIDI learn.

CONTROL_INDEX_MAX_ALLOWED 

Highest index allowed for mappings.

◆ EngineCallbackOpcode

Engine callback opcodes. Front-ends must never block indefinitely during a callback.

See also
EngineCallbackFunc, CarlaEngine::setCallback() and carla_set_engine_callback()
Enumerator
ENGINE_CALLBACK_DEBUG 

Debug. This opcode is undefined and used only for testing purposes.

ENGINE_CALLBACK_PLUGIN_ADDED 

A plugin has been added. pluginId Plugin Id valueStr Plugin name

ENGINE_CALLBACK_PLUGIN_REMOVED 

A plugin has been removed. pluginId Plugin Id

ENGINE_CALLBACK_PLUGIN_RENAMED 

A plugin has been renamed. pluginId Plugin Id valueStr New plugin name

ENGINE_CALLBACK_PLUGIN_UNAVAILABLE 

A plugin has become unavailable. pluginId Plugin Id valueStr Related error string

ENGINE_CALLBACK_PARAMETER_VALUE_CHANGED 

A parameter value has changed. pluginId Plugin Id value1 Parameter index valuef New parameter value

ENGINE_CALLBACK_PARAMETER_DEFAULT_CHANGED 

A parameter default has changed. pluginId Plugin Id value1 Parameter index valuef New default value

ENGINE_CALLBACK_PARAMETER_MAPPED_CONTROL_INDEX_CHANGED 

A parameter's mapped control index has changed. pluginId Plugin Id value1 Parameter index value2 New control index

ENGINE_CALLBACK_PARAMETER_MIDI_CHANNEL_CHANGED 

A parameter's MIDI channel has changed. pluginId Plugin Id value1 Parameter index value2 New MIDI channel

ENGINE_CALLBACK_OPTION_CHANGED 

A plugin option has changed. pluginId Plugin Id value1 Option value2 New on/off state (1 for on, 0 for off)

See also
Plugin Options
ENGINE_CALLBACK_PROGRAM_CHANGED 

The current program of a plugin has changed. pluginId Plugin Id value1 New program index

ENGINE_CALLBACK_MIDI_PROGRAM_CHANGED 

The current MIDI program of a plugin has changed. pluginId Plugin Id value1 New MIDI program index

ENGINE_CALLBACK_UI_STATE_CHANGED 

A plugin's custom UI state has changed. pluginId Plugin Id value1 New state, as follows: 0: UI is now hidden 1: UI is now visible -1: UI has crashed and should not be shown again

ENGINE_CALLBACK_NOTE_ON 

A note has been pressed. pluginId Plugin Id value1 Channel value2 Note value3 Velocity

ENGINE_CALLBACK_NOTE_OFF 

A note has been released. pluginId Plugin Id value1 Channel value2 Note

ENGINE_CALLBACK_UPDATE 

A plugin needs update. pluginId Plugin Id

ENGINE_CALLBACK_RELOAD_INFO 

A plugin's data/information has changed. pluginId Plugin Id

ENGINE_CALLBACK_RELOAD_PARAMETERS 

A plugin's parameters have changed. pluginId Plugin Id

ENGINE_CALLBACK_RELOAD_PROGRAMS 

A plugin's programs have changed. pluginId Plugin Id

ENGINE_CALLBACK_RELOAD_ALL 

A plugin state has changed. pluginId Plugin Id

ENGINE_CALLBACK_PATCHBAY_CLIENT_ADDED 

A patchbay client has been added. pluginId Client Id value1 Client icon value2 Plugin Id (-1 if not a plugin) valueStr Client name

See also
PatchbayIcon
ENGINE_CALLBACK_PATCHBAY_CLIENT_REMOVED 

A patchbay client has been removed. pluginId Client Id

ENGINE_CALLBACK_PATCHBAY_CLIENT_RENAMED 

A patchbay client has been renamed. pluginId Client Id valueStr New client name

ENGINE_CALLBACK_PATCHBAY_CLIENT_DATA_CHANGED 

A patchbay client data has changed. pluginId Client Id value1 New icon value2 New plugin Id (-1 if not a plugin)

See also
PatchbayIcon
ENGINE_CALLBACK_PATCHBAY_PORT_ADDED 

A patchbay port has been added. pluginId Client Id value1 Port Id value2 Port hints value3 Port group Id (0 for none) valueStr Port name

See also
Patchbay Port Hints
ENGINE_CALLBACK_PATCHBAY_PORT_REMOVED 

A patchbay port has been removed. pluginId Client Id value1 Port Id

ENGINE_CALLBACK_PATCHBAY_PORT_CHANGED 

A patchbay port has changed (like the name or group Id). pluginId Client Id value1 Port Id value2 Port hints value3 Port group Id (0 for none) valueStr Port name

ENGINE_CALLBACK_PATCHBAY_CONNECTION_ADDED 

A patchbay connection has been added. pluginId Connection Id valueStr Out group and port plus in group and port, in "og:op:ig:ip" syntax.

ENGINE_CALLBACK_PATCHBAY_CONNECTION_REMOVED 

A patchbay connection has been removed. pluginId Connection Id

ENGINE_CALLBACK_ENGINE_STARTED 

Engine started. pluginId How many plugins are known to be running value1 Process mode value2 Transport mode value3 Buffer size valuef Sample rate valuestr Engine driver

See also
EngineProcessMode
EngineTransportMode
ENGINE_CALLBACK_ENGINE_STOPPED 

Engine stopped.

ENGINE_CALLBACK_PROCESS_MODE_CHANGED 

Engine process mode has changed. value1 New process mode

See also
EngineProcessMode
ENGINE_CALLBACK_TRANSPORT_MODE_CHANGED 

Engine transport mode has changed. value1 New transport mode valueStr New transport features enabled

See also
EngineTransportMode
ENGINE_CALLBACK_BUFFER_SIZE_CHANGED 

Engine buffer-size changed. value1 New buffer size

ENGINE_CALLBACK_SAMPLE_RATE_CHANGED 

Engine sample-rate changed. valuef New sample rate

ENGINE_CALLBACK_CANCELABLE_ACTION 

A cancelable action has been started or stopped. pluginId Plugin Id the action relates to, -1 for none value1 1 for action started, 0 for stopped valueStr Action name

ENGINE_CALLBACK_PROJECT_LOAD_FINISHED 

Project has finished loading.

ENGINE_CALLBACK_NSM 

NSM callback, to be handled by a frontend. Frontend must call carla_nsm_ready() with opcode as parameter as a response value1 NSM opcode value2 Integer value valueStr String value

See also
NsmCallbackOpcode
ENGINE_CALLBACK_IDLE 

Idle frontend. This is used by the engine during long operations that might block the frontend, giving it the possibility to idle while the operation is still in place.

ENGINE_CALLBACK_INFO 

Show a message as information. valueStr The message

ENGINE_CALLBACK_ERROR 

Show a message as an error. valueStr The message

ENGINE_CALLBACK_QUIT 

The engine has crashed or malfunctioned and will no longer work.

ENGINE_CALLBACK_INLINE_DISPLAY_REDRAW 

A plugin requested for its inline display to be redrawn. pluginId Plugin Id to redraw

ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_ADDED 

A patchbay port group has been added. pluginId Client Id value1 Group Id (unique value within this client) value2 Group hints valueStr Group name

See also
Patchbay Port Group Hints
ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_REMOVED 

A patchbay port group has been removed. pluginId Client Id value1 Group Id

ENGINE_CALLBACK_PATCHBAY_PORT_GROUP_CHANGED 

A patchbay port group has changed. pluginId Client Id value1 Group Id value2 Group hints valueStr Group name

See also
Patchbay Port Group Hints
ENGINE_CALLBACK_PARAMETER_MAPPED_RANGE_CHANGED 

A parameter's mapped range has changed. pluginId Plugin Id value1 Parameter index valueStr New mapped range as "%f:%f" syntax

ENGINE_CALLBACK_PATCHBAY_CLIENT_POSITION_CHANGED 

A patchbay client position has changed. pluginId Client Id value1 X position 1 value2 Y position 1 value3 X position 2 valuef Y position 2

ENGINE_CALLBACK_EMBED_UI_RESIZED 

A plugin embed UI has been resized. pluginId Plugin Id to resize value1 New width value2 New height

◆ NsmCallbackOpcode

NSM callback opcodes.

See also
ENGINE_CALLBACK_NSM
Enumerator
NSM_CALLBACK_INIT 

NSM is available and initialized.

NSM_CALLBACK_ERROR 

Error from NSM side. valueInt Error code valueStr Error string

NSM_CALLBACK_ANNOUNCE 

Announce message. valueInt SM Flags (WIP, to be defined) valueStr SM Name

NSM_CALLBACK_OPEN 

Open message. valueStr Project filename

NSM_CALLBACK_SAVE 

Save message.

NSM_CALLBACK_SESSION_IS_LOADED 

Session-is-loaded message.

NSM_CALLBACK_SHOW_OPTIONAL_GUI 

Show-optional-gui message.

NSM_CALLBACK_HIDE_OPTIONAL_GUI 

Hide-optional-gui message.

NSM_CALLBACK_SET_CLIENT_NAME_ID 

Set client name id message.

◆ EngineOption

Engine options.

See also
CarlaEngine::getOptions(), CarlaEngine::setOption() and carla_set_engine_option()
Enumerator
ENGINE_OPTION_DEBUG 

Debug. This option is undefined and used only for testing purposes.

ENGINE_OPTION_PROCESS_MODE 

Set the engine processing mode. Default is ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS on Linux and ENGINE_PROCESS_MODE_PATCHBAY for all other OSes.

See also
EngineProcessMode
ENGINE_OPTION_TRANSPORT_MODE 

Set the engine transport mode. Default is ENGINE_TRANSPORT_MODE_JACK on Linux and ENGINE_TRANSPORT_MODE_INTERNAL for all other OSes.

See also
EngineTransportMode
ENGINE_OPTION_FORCE_STEREO 

Force mono plugins as stereo, by running 2 instances at the same time. Default is false, but always true when process mode is ENGINE_PROCESS_MODE_CONTINUOUS_RACK.

Note
Not supported by all plugins
See also
PLUGIN_OPTION_FORCE_STEREO
ENGINE_OPTION_PREFER_PLUGIN_BRIDGES 

Use plugin bridges whenever possible. Default is no, EXPERIMENTAL.

ENGINE_OPTION_PREFER_UI_BRIDGES 

Use UI bridges whenever possible, otherwise UIs will be directly handled in the main backend thread. Default is yes.

ENGINE_OPTION_UIS_ALWAYS_ON_TOP 

Make custom plugin UIs always-on-top. Default is yes.

ENGINE_OPTION_MAX_PARAMETERS 

Maximum number of parameters allowed. Default is MAX_DEFAULT_PARAMETERS.

ENGINE_OPTION_RESET_XRUNS 

Reset Xrun counter after project load.

ENGINE_OPTION_UI_BRIDGES_TIMEOUT 

Timeout value for how much to wait for UI bridges to respond, in milliseconds. Default is 4000 (4 seconds).

ENGINE_OPTION_AUDIO_BUFFER_SIZE 

Audio buffer size. Default is 512.

ENGINE_OPTION_AUDIO_SAMPLE_RATE 

Audio sample rate. Default is 44100.

ENGINE_OPTION_AUDIO_TRIPLE_BUFFER 

Wherever to use 3 audio periods instead of the default 2. Default is false.

ENGINE_OPTION_AUDIO_DRIVER 

Audio driver. Default depends on platform.

ENGINE_OPTION_AUDIO_DEVICE 

Audio device (within a driver). Default unset.

ENGINE_OPTION_OSC_ENABLED 

Wherever to enable OSC support in the engine.

ENGINE_OPTION_OSC_PORT_TCP 

The network TCP port to use for OSC. A value of 0 means use a random port. A value of < 0 means to not enable the TCP port for OSC.

Note
Valid ports begin at 1024 and end at 32767 (inclusive)
ENGINE_OPTION_OSC_PORT_UDP 

The network UDP port to use for OSC. A value of 0 means use a random port. A value of < 0 means to not enable the UDP port for OSC.

Note
Disabling this option prevents DSSI UIs from working!
Valid ports begin at 1024 and end at 32767 (inclusive)
ENGINE_OPTION_FILE_PATH 

Set path used for a specific file type. Uses value as the file format, valueStr as actual path.

ENGINE_OPTION_PLUGIN_PATH 

Set path used for a specific plugin type. Uses value as the plugin format, valueStr as actual path.

See also
PluginType
ENGINE_OPTION_PATH_BINARIES 

Set path to the binary files. Default unset.

Note
Must be set for plugin and UI bridges to work
ENGINE_OPTION_PATH_RESOURCES 

Set path to the resource files. Default unset.

Note
Must be set for some internal plugins to work
ENGINE_OPTION_PREVENT_BAD_BEHAVIOUR 

Prevent bad plugin and UI behaviour.

Note
: Linux only
ENGINE_OPTION_FRONTEND_BACKGROUND_COLOR 

Set background color used in the frontend, so backend can do the same for plugin UIs.

ENGINE_OPTION_FRONTEND_FOREGROUND_COLOR 

Set foreground color used in the frontend, so backend can do the same for plugin UIs.

ENGINE_OPTION_FRONTEND_UI_SCALE 

Set UI scaling used in the frontend, so backend can do the same for plugin UIs.

ENGINE_OPTION_FRONTEND_WIN_ID 

Set frontend winId, used to define as parent window for plugin UIs.

ENGINE_OPTION_WINE_EXECUTABLE 

Set path to wine executable.

ENGINE_OPTION_WINE_AUTO_PREFIX 

Enable automatic wineprefix detection.

ENGINE_OPTION_WINE_FALLBACK_PREFIX 

Fallback wineprefix to use if automatic detection fails or is disabled, and WINEPREFIX is not set.

ENGINE_OPTION_WINE_RT_PRIO_ENABLED 

Enable realtime priority for Wine application and server threads.

ENGINE_OPTION_WINE_BASE_RT_PRIO 

Base realtime priority for Wine threads.

ENGINE_OPTION_WINE_SERVER_RT_PRIO 

Wine server realtime priority.

ENGINE_OPTION_DEBUG_CONSOLE_OUTPUT 

Capture console output into debug callbacks.

ENGINE_OPTION_CLIENT_NAME_PREFIX 

A prefix to give to all plugin clients created by Carla. Mostly useful for JACK multi-client mode.

Note
MUST include at least one "." (dot).

◆ EngineProcessMode

Engine process mode.

See also
ENGINE_OPTION_PROCESS_MODE
Enumerator
ENGINE_PROCESS_MODE_SINGLE_CLIENT 

Single client mode. Inputs and outputs are added dynamically as needed by plugins.

ENGINE_PROCESS_MODE_MULTIPLE_CLIENTS 

Multiple client mode. It has 1 master client + 1 client per plugin.

ENGINE_PROCESS_MODE_CONTINUOUS_RACK 

Single client, 'rack' mode. Processes plugins in order of Id, with forced stereo always on.

ENGINE_PROCESS_MODE_PATCHBAY 

Single client, 'patchbay' mode.

ENGINE_PROCESS_MODE_BRIDGE 

Special mode, used in plugin-bridges only.

◆ EngineTransportMode

Engine transport mode.

See also
ENGINE_OPTION_TRANSPORT_MODE
Enumerator
ENGINE_TRANSPORT_MODE_DISABLED 

No transport.

ENGINE_TRANSPORT_MODE_INTERNAL 

Internal transport mode.

ENGINE_TRANSPORT_MODE_JACK 

Transport from JACK. Only available if driver name is "JACK".

ENGINE_TRANSPORT_MODE_PLUGIN 

Transport from host, used when Carla is a plugin.

ENGINE_TRANSPORT_MODE_BRIDGE 

Special mode, used in plugin-bridges only.

◆ FileCallbackOpcode

File callback opcodes. Front-ends must always block-wait for user input.

See also
FileCallbackFunc, CarlaEngine::setFileCallback() and carla_set_file_callback()
Enumerator
FILE_CALLBACK_DEBUG 

Debug. This opcode is undefined and used only for testing purposes.

FILE_CALLBACK_OPEN 

Open file or folder.

FILE_CALLBACK_SAVE 

Save file or folder.

◆ PatchbayIcon

The icon of a patchbay client/group.

Enumerator
PATCHBAY_ICON_APPLICATION 

Generic application icon. Used for all non-plugin clients that don't have a specific icon.

PATCHBAY_ICON_PLUGIN 

Plugin icon. Used for all plugin clients that don't have a specific icon.

PATCHBAY_ICON_HARDWARE 

Hardware icon. Used for hardware (audio or MIDI) clients.

PATCHBAY_ICON_CARLA 

Carla icon. Used for the main app.

PATCHBAY_ICON_DISTRHO 

DISTRHO icon. Used for DISTRHO based plugins.

PATCHBAY_ICON_FILE 

File icon. Used for file type plugins (like SF2 snd SFZ).

Variable Documentation

◆ FileCallbackFunc

const typedef char*(* FileCallbackFunc) (void *ptr, FileCallbackOpcode action, bool isDir, const char *title, const char *filter)

File callback function.

See also
FileCallbackOpcode

◆ MAX_DEFAULT_PLUGINS

const uint MAX_DEFAULT_PLUGINS = 512
static

Maximum default number of loadable plugins.

◆ MAX_RACK_PLUGINS

const uint MAX_RACK_PLUGINS = 64
static

Maximum number of loadable plugins in rack mode.

◆ MAX_PATCHBAY_PLUGINS

const uint MAX_PATCHBAY_PLUGINS = 255
static

Maximum number of loadable plugins in patchbay mode.

◆ MAX_DEFAULT_PARAMETERS

const uint MAX_DEFAULT_PARAMETERS = 200
static

Maximum default number of parameters allowed.

See also
ENGINE_OPTION_MAX_PARAMETERS

◆ MAIN_CARLA_PLUGIN_ID

const uint MAIN_CARLA_PLUGIN_ID = 0xFFFF
static

The "plugin Id" for the global Carla instance. Currently only used for audio peaks.