summaryrefslogtreecommitdiff
path: root/libs/ardour/ardour/plugin.h
AgeCommit message (Collapse)Author
2020-04-16Prefer std::string for `print_parameter` APIRobin Gareus
2020-04-01Overhaul InstrumentInfoRobin Gareus
* Remove unused direct calls into plugin * Assume empty model to mean plugin-provided MIDNAM (!) The route owned Instrument-Info is the central access point used by the GUI for MIDI name lookups. At this point in time, custom settings are saved/restored by the GUI (MidiTimeAxisView). InstrumentInfo provides a volatile store for MIDNAM mode and model.
2019-11-06fix unconditional note resolution during DiskReader::realtime_locate()Paul Davis
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() - ::get_midi_playback() has already taken care of this. But when not looping, we need this. So, add an argument to tell all interested parties whether the locate is for a loop end or not
2019-10-15API to count max multi-channel plugin outputsRobin Gareus
2019-10-15Detect plugin-name ambiguitiesRobin Gareus
2019-10-15NO-OP: indent, comments and consistencyRobin Gareus
2019-09-30Fix remaining doxygen warnings (!)Robin Gareus
2019-08-29No-OP: move doxygen doc into header filesRobin Gareus
2019-08-19LV2 extension to override strict-i/o per pluginBen Loftis
This allows mono to stereo plugins to override the default routing and forces both outputs to be connected.
2019-08-03Update libardour GPL boilerplate and (C) from git logRobin Gareus
2019-03-11Remove generic parameter-printerRobin Gareus
This has been superseded by value_as_string() along with meta-data from parameter-descriptor, which is supported by all standards, except VST.
2019-02-28Allow to special case plugins used for IR analysisRobin Gareus
This is relevant for some VST specifics (e.g connected pins) or similar audioMasterCallbacks that use either global or plugin-insert specific data.
2019-02-17Clean up Latency API (Processor vs Plugin)Robin Gareus
Plugins are only a source of Latency (Plugin delay). The API to query, signal and override Latency is managed by PluginInsert.
2018-12-20Amend e4304f3bf, plugin-preset, preset-recordRobin Gareus
2018-12-18Wouldn't it be nice if plugin presets had a description/comment?Robin Gareus
2018-11-04Optimize Plugin connect & run API, use const mapsRobin Gareus
2018-01-30Remove unused APIRobin Gareus
2018-01-30Update plugin classificationRobin Gareus
* dedicated API for classes (effect, instrument, util) * prepare for tags (rather than categories) * prepare removal of per-plugin in_category() API
2017-09-18globally change all use of "frame" to refer to audio into "sample".Paul Davis
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
2017-09-09LV2/midnam tweaks - fix race conditionsRobin Gareus
* 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.
2017-09-09Allow to send MIDI data directly to a pluginRobin Gareus
2017-09-08Add LV2 extension to notify host about midi-bank/pgm state.Robin Gareus
2017-07-31Indicate whether to show plugin's inline display in GUIJohannes Mueller
This is currently done by an extension data similarly to LV2_INLINEDISPLAY__interface.
2017-04-25Add an API to conveniently query plugin-parameter labelsRobin Gareus
2017-02-28Tweak/optimize VST callback:Robin Gareus
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.
2017-02-21Add API allowing plugin preset load to affect automationRobin Gareus
2017-01-20Fix oddities when replacing VST-presets.Robin Gareus
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.
2016-11-10Parse PortGroups into Plugin::IOPortDescriptionRobin Gareus
2016-10-29Prototype LV2 extension for plugins to provide MidnamsRobin Gareus
2016-10-10Forward "owner" from Processor to PluginRobin Gareus
2016-10-07Clean up is_instrument vs needs-midi-in APIRobin Gareus
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)
2016-07-09move LatencyChanged detection from Plugin to Processor (plugin-insert)Robin Gareus
* support all Plugin APIs (not implementation specific) * also check for latency changes when plugins are hard en/disabled
2016-07-08add an plugin API to query generic-gui grid-layoutRobin Gareus
2016-07-05add API to use a plugin provided bypass control portRobin Gareus
* 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
2016-06-25major internal plugin & processor API change:Robin Gareus
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.
2016-04-15variable plugin port config.Robin Gareus
* extend plugin API (query IO ports) * collect possible variable plugin configurations (AU, Lua) * prepare semi-automatic configuration (presets: mono, stereo, N)
2016-04-13fix configurable IO MIDI FX w/strict-i/oRobin Gareus
2016-04-12some strategic documentationRobin Gareus
Prevent class descriptions inheriting the doc from PBD:Stateful by adding some specific doc.
2016-04-08add Plugin LatencyChanged() signal and max latency reportRobin Gareus
2016-04-03add Plugin API to query port-labels and side-chain property.Robin Gareus
2016-03-30Delegated plugin configuration is now always successful.. exceptRobin Gareus
..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).
2016-03-27allow no-inplace processingRobin Gareus
PluginInsert supports that due to Pin Management
2016-03-14update [LV2] Plugin Inline Display API: drop cairo dependencyRobin Gareus
2016-03-14Implement LV2 Inline Display ExtensionRobin Gareus
2016-03-14prototype online self-automating LV2 plugin interfaceRobin Gareus
goes along with https://github.com/x42/automate.lv2
2016-02-23fix LV2Plugin::requires_fixed_sized_buffers()Robin Gareus
ARDOUR::Plugin() does not inherit from ARDOUR::Processor(), the virtual function was never called.
2016-01-09API evolutionRobin Gareus
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
2016-01-08remove default implementation to query plugin-preset namesRobin Gareus
2016-01-07Add API to allow querying plugin-presets without instantiating the pluginRobin Gareus
2016-01-07NO-OP, re-order headerRobin Gareus