|
|
@@ -36,6 +36,63 @@ include_once("includes/header.php"); |
|
|
|
</li> |
|
|
|
</ul> |
|
|
|
|
|
|
|
<!-- Goals and Vision --> |
|
|
|
<h3><span class="mw-headline" id="Goals-and-Vision"> Goals and Vision </span></h3> |
|
|
|
<p> |
|
|
|
Carla has the goal of being a simple and quick-to-use libre and open-source modular plugin host.<br/> |
|
|
|
This means several things: |
|
|
|
</p> |
|
|
|
<ul> |
|
|
|
<li>Be 100% free (free in price while also being free to use, modify and redistribute)</li> |
|
|
|
<li>Have its main features be simple to use</li> |
|
|
|
<li>Be fast from starting up to running plugins and having sound (assuming the user knows what to do)</li> |
|
|
|
</ul> |
|
|
|
<p> |
|
|
|
While simple in nature, a dumb-down host is not the target.<br/> |
|
|
|
Rather, it aims to be a simple tool that has advanced features under the hood, toggled by the user as needed.<br/> |
|
|
|
The basic functionality should be easily accessible and intuitive, while not making it hard for advanced users to do what they want. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Carla's main functionality should be all about plugins and modularity, with Rack-mode (stereo top-down processing) as a bonus.<br/> |
|
|
|
In order to achieve this, it should load as many plugin formats as possible and allow inter-connectivity between them.<br/> |
|
|
|
Plugin bridges are used to load even more plugin formats and types, sometimes even those that are not native to the current platform. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Carla should make it possible for others to use it within their projects.<br/> |
|
|
|
This is achieved by means of a simple API, plus Carla itself as a plugin. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Remote control (over the network), while not its focus, should be possible.<br/> |
|
|
|
The backend can be running in one machine, while the frontend is in another.<br/> |
|
|
|
This is related to the previous point, where Carla should be usable by other projects.<br/> |
|
|
|
Being able to be remotely controlled allows Carla to run in embedded systems. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Backwards-compatibility is a must.<br/> |
|
|
|
Carla should never implement a new feature that breaks old projects, nor making new projects unloadable in old versions.<br/> |
|
|
|
While a project with new features obviously won't load those in old Carla versions, the "old" supported features have to remain backwards-compatible. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Carla should attempt to correct plugin mistakes whenever possible, so it runs as many of them as possible. A warning is logged in such cases.<br/> |
|
|
|
The target is to not annoy users that are unable to fix things by themselves (they cannot write code usually).<br/> |
|
|
|
The logged warnings should be clear enough that 3rd party developers understand what they have to fix after reading them. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Carla should also be a great tool for debugging and developing new plugins.<br/> |
|
|
|
This is made possible by providing ways to run without audio, aka dummy driver, in order to detect leaks and memory issues.<br/> |
|
|
|
It also provides a way to test a single plugin and/or its custom UI. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
Finally, Carla should be able to be compiled and run in as many formats and platforms as possible.<br/> |
|
|
|
This means Linux, macOS and Windows as first-class platforms, but also be able to run in BSDs, HaikuOS and any other POSIX-compliant system.<br/> |
|
|
|
In terms of formats, this means running as Standalone and plugin (LV2 and VST2 minimum), while also providing its own API to easily extend it to more places. |
|
|
|
</p> |
|
|
|
<p> |
|
|
|
As a final note, it is worth saying that the personal goal of its author is to be able to make full songs within this single tool.<br/> |
|
|
|
This often involves running other tools inside Carla, but everything is still contained within it and managed by it.<br/> |
|
|
|
New features and requirements might be added to Carla as a way to achieve this goal. |
|
|
|
</p> |
|
|
|
|
|
|
|
<!-- Interface --> |
|
|
|
<h3><span class="mw-headline" id="Interface"> The Interface </span></h3> |
|
|
|
<p> |
|
|
|