Hi @HansR !
Widgets are UI elements. The work is always done by the engines.
Ctrldev drivers and widgets are unrelated concepts. Don’t be confused!
CTRLDEV DRIVERS
A “normal” ctrldev driver is an adapter that allows to use a MIDI device for controlling zynthian. It effectively turns the MIDI device into a Physical Zynthian UI. This UI can be more or less complete depending of the MIDI device capabilities and the driver’s implementation.
The typical flow in a ctrldev driver is:
MIDI input from device => CUIA and other API calls => (optional) MIDI feedback to device
and optionally:
Zynthian API signals => MIDI feedback to device
Ctrldev drivers are bound to a specific MIDI device and normally doesn’t know about engines. Very rarely a driver is bound to specific engines (see MOTOR driver for an example of this).
UI WIDGETS
An UI widget is a graphic panel embedded in the UI’s control view that:
- Displays info from engine’s monitors (engine’s feedback) and parameters (engine’s controllers)
- Optionally, it can capture user actions in the panel and call core API functions and rarely, CUIA.
Widgets are designed to interact with a specific engine/plugin or a subset of engine parameters.
As you can see, there is little relation between them as they work at very different levels in the software stack ![]()
Regards,