summaryrefslogtreecommitdiff
path: root/libs/ardour/vst_plugin.cc
AgeCommit message (Collapse)Author
2018-06-04remove aeffectx.h; use vestige.hPaul Davis
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-07-08Don't use VST ->user points, prefer host-reserved ptrRobin Gareus
Apparently "user" is for plugins (not hosts) to use.
2017-07-06Consistently set parameter steps.Robin Gareus
And it's actually mostly moot. interface_to_internal maps any range to 0..1. The GUI could just hardcode min/max 0, 1 and steps 1/30, 1/300. Except for controls that have explicit range-steps & ctrl surfaces.
2017-06-21Fix VST default value. query once at instantiation time.Robin Gareus
2017-06-21Consolidate ParameterDescriptor settings+rangesRobin Gareus
2017-06-21remove min/max unbound -- LADSPA special case.Robin Gareus
This explicit case should never have existed in the first place. Plugins can always implicitly exceed the range and are expected to cope with out-of-range values (e.g. meters when fed with a peaking signal may return an out-of-bounds value)
2017-05-10Bump VST param-name length limit to 128 bytes and centralize definitionRobin Gareus
The official VST spec says 8 bytes, JUCE uses 24 + 1, and there's anecdotal evidence that some VSTs use up to 100 (which apparently works in many hosts).
2017-04-25Assume VST chunks are portable (Mac, Linux, Windows VST)Robin Gareus
2017-04-19Use std::string::operator+ instead of string_compose in VSTPluginTim Mayberry
2017-04-19Use XMLNode::get/set_property API in ARDOUR::VSTPluginTim Mayberry
2017-03-12Prepare for graceful case-by-case fallback of VST BypassRobin Gareus
VST's effSetBypass may fail even though a plugin CanDo "bypass", and it can be case-by-case (depending on plugin-settings). This codepath is not yet active, pending testing.
2017-03-07Rework VST initialization:Robin Gareus
Set the AEffect* plugin pointer before calling effOpen. effOpen may call back into the host (masterCallback) and invoke actions which depend on _plugin (eg. to call back into the plugin again)
2017-03-06Add support for VST effSetBypass #7266Robin Gareus
This mechanism re-uses internal abstraction (plugin-enable). Other plugin-specs designate a control-port, for VST we 'emulate' a control-port. There is still debug-output to stderr, here while testing.
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-21Implementations for Plugin-Preset-Load to set automationRobin Gareus
2017-01-20fix a -WformatRobin 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-15add signal for VST state loadRobin Gareus
MacVST has no dedicated VST event-loop to directly handle this.
2016-11-14Fix VST state-lock SNAFU (effSetChunk and process are exclusive)Robin Gareus
2016-11-13VST set defaults only once (initially)Robin Gareus
Opening the generic plugin UI or re-opening the GUI will call get_parameter_descriptor() again, and replace the defaults with current values.
2016-10-10add missing #includeRobin Gareus
2016-10-10convert VST parameter names to UTF8Robin Gareus
Another fix for "µ-iness" (ec8cf4e4f58a, d121e6bf15cbf6f, 57b9dab27cb05d) this time for Windows.
2016-09-17VST threading: prevent concurrent effSetChunk and process()Robin Gareus
This is a potential fix for unreliable preset load/restore. (http://mixbus.harrisonconsoles.com/forum/thread-1970-post-21486.html#pid21486) Since a Glib Mutex can't be copy-constructed an explicit copy c'tor is needed.
2016-08-03add support for VST default values (instantiation time value)Robin Gareus
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
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-05-26update VST audioMasterGetTimeRobin Gareus
* don't use a static struct. this fixes a concurrency issue with flags and valid values * send kVstTransportChanged IFF there is an actual change * set system time * send loop location
2016-05-07fix LocaleGuard contstructor (3dc77280)Robin Gareus
2016-05-05we always only use the "C" locale when saving.Robin Gareus
2016-05-04OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)Paul Davis
2016-04-27amend c1c81a239c after testingRobin Gareus
2016-04-27probable fix for 64bit VST signal latencyRobin Gareus
2016-04-13prepare VST plugins for reporting connected pinsRobin Gareus
The VST needs a way to get the parent PluginInserts's channel-map :(
2016-03-27VSTs don't process in-placeRobin Gareus
2016-03-15avoid memcpy if it's not needed.Robin Gareus
besides, memcpy areas may not overlap
2015-12-25don't assume plugin presets start their numbering at zero.Robin Gareus
2015-10-20rename Plugin::ParameterChanged to ParameterChangedExternally to reflect its ↵Paul Davis
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.
2015-10-20Revert "rename ParameterChanged signal in Plugin to ↵Paul Davis
ParameterChangedExternally to reflect its intent, and clean up the result." This reverts commit 336b2eb9a4a8634bae84a15e952d20335aa28c12.
2015-10-20rename ParameterChanged signal in Plugin to ParameterChangedExternally to ↵Paul Davis
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
2015-10-14Fix a problem where VST automation data wasn't getting written (if the ↵4.3John Emmas
adjustments were made from the plugin's own controls)
2015-10-05use quotes for in-tree pbd/glib wrapper includeRobin Gareus
2015-09-17use pbd's gstdio compatibility wrapperRobin Gareus
2015-08-07give copy_vector() another chance.Robin Gareus
last arguments in nsamples, not bytes
2015-08-07VST use scratch buffers for processing.Robin Gareus
2015-08-07fix VST plugin crash (from 35a9c63)Robin Gareus
depending on offset, the audio-buffer may not be memory aligned, use memcpy() not SSE copy_vector.
2015-08-05rework VST processing/buffering (no more alloca).Robin Gareus
TODO: check Bufferset/VSTBuffer, eventually remove the VST_IN_PLACE ifdef’s
2015-08-05VST replaceProcessing () != in-place processing.Robin Gareus
2015-07-21VST plugin title fix #6467Robin Gareus
2015-04-16VST: fix a copy/paste typo and possible segfaultRobin Gareus
fix by Drumfix.