Age | Commit message (Collapse) | Author |
|
|
|
* dedicated API for classes (effect, instrument, util)
* prepare for tags (rather than categories)
* prepare removal of per-plugin in_category() API
|
|
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
|
|
* Emit signal once midnam was actually updated
* only re-read midnam if was it changed. This allows idempotent calls to
read_midnam() - from the same thread.
At session-load a synth-plugin may load a soundfont in the background
and emit midnam_update() after the synth was initialized but before the
GUI thread connects to the signal. By making the call idempotent the
GUI can call read_midnam() after connecting to the signal to catch up.
|
|
|
|
|
|
This is currently done by an extension data similarly to
LV2_INLINEDISPLAY__interface.
|
|
|
|
The audioMasterAutomate callback from plugin to host does include
the parameter-value.
Previously there was a redundant call
Plugin::parameter_changed_externally() -> get_parameter
-> VSTPlugin::get_parameter() back into the plugin to query the value.
calling back into the plugin from the callback, may explain
oddities and/or crashes with some VSTs.
|
|
|
|
VST used the count of available of presets as URI:
- add 2 presets (1,2)
- remove first, add another one -> two presets with same URI (2,2)
PluginInfo::get_presets() simply lists all (name only) in a vector.
Plugin::find_presets() uses the URI in a map (unique by URI).
..various ensuing bugs: eg. Plugin::remove_preset() looked up by name,
but didn't check for NULL.
|
|
|
|
|
|
|
|
The latter is only really relevant for Audio Units.
This fixes an issue with vocoders or audio-plugins that simply have
a MIDI input for other purposes to be wrongly categorized as Instruments..
.. and thereby override strict-i/o rules (prefer stereo)
|
|
* support all Plugin APIs (not implementation specific)
* also check for latency changes when plugins are hard en/disabled
|
|
|
|
* new separate API: en/disable
* old API remains in place for hard bypass
* PluginInsert::enable() falls back to activate/deativate if a plugin
does not provided designated bypass control port
|
|
Pass current (latency compensated) cycle times to plugin.
This fixes time-reporting to plugins and also fixes automation
and when bouncing (the session->transport* is not valid) etc.
|
|
* extend plugin API (query IO ports)
* collect possible variable plugin configurations (AU, Lua)
* prepare semi-automatic configuration (presets: mono, stereo, N)
|
|
|
|
Prevent class descriptions inheriting the doc from PBD:Stateful by
adding some specific doc.
|
|
|
|
|
|
..in case of outright errors (e.g. data format mismatch)
or non-implemented edge-cases e.g. midi generators
(no audio in, no midi in, no audio-out) or control-data filters (only
control ports).
|
|
PluginInsert supports that due to Pin Management
|
|
|
|
|
|
goes along with https://github.com/x42/automate.lv2
|
|
ARDOUR::Plugin() does not inherit from ARDOUR::Processor(),
the virtual function was never called.
|
|
The Session-reference is only needed to instantiate/load the plugin.
Indexing presets is not supposed to call load() and be const WRT to
PluginInfo
|
|
|
|
|
|
|
|
|
|
|
|
...in preparation to allow adding presets directly.
|
|
|
|
|
|
intent, and clean up the libardour side of result.
The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST)
has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.
|
|
ParameterChangedExternally to reflect its intent, and clean up the result."
This reverts commit 336b2eb9a4a8634bae84a15e952d20335aa28c12.
|
|
reflect its intent, and clean up the result.
The signal exists to notify listeners that something outside of the host's control (e.g. a plugin's own GUI for AU or VST)
has modified a plugin parameter. Previous code had strange feedback loops and ambiguous semantics.
Significant modification of LV2 GUI updating was required.
Still to be tested for feedback loop issues: AudioUnits
|
|
adjustments were made from the plugin's own controls)
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
|
|
|
|
Work towards ParameterDescriptor being used more universally to describe control characteristics.
|
|
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
|
|
|