summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
AgeCommit message (Collapse)Author
2014-11-29Set discrete by default for boolean parameters.David Robillard
2014-11-14add abort() to non-reached codeRobin Gareus
This cleans up a lot of false-positives in static analysis and also helps compilers to optimize code paths in general. (tagging the fatal stingstream operator as ‘noreturn’ is far less trivial)
2014-11-07Just rename problematic Variant::VOID type.David Robillard
2014-11-03Fix parameter descriptors for one control leaking into another.David Robillard
2014-11-03Reduce coupling between Plugin and PluginInsert.David Robillard
2014-11-02Automation of LV2 plugin properties.David Robillard
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02Move ParameterDescriptor from Plugin to its own header.David Robillard
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
2014-09-18Fix some inconsistent usage of a Controllables Interface value.Ben Loftis
This breaks a lot of controls, because they are misusing it as well.
2014-06-02merge with master and fix 4 conflicts by handPaul Davis
2014-05-26process effect-automation when bouncing w/processingRobin Gareus
2014-05-06provide plugins with all available buffers.Robin Gareus
e.g. Audio in -> Midi out plugins (on an audio-track). Midi-buffers do exist in the route but no corresponding (physical) Input port-buffer exists and ardour crashed. Now, the plugin itself still only accesses the mapped ports (ChanMapping), but the mapped buffers are at most "processor_max_streams" and at least the required in+out buffers for the plugin.
2014-03-23midi-controller, support log parameters - fixes #5890Robin Gareus
2014-02-28fix typo in docRobin Gareus
2014-02-27treat linux and windows VST plugins equivalent on session loadRobin Gareus
2014-01-26fix crash when removing synth from midi-trackRobin Gareus
(and there are bypassed audio-plugins after said synth)
2014-01-17Fix crash when instrument plugins fail to instantiate.David Robillard
2014-01-06fix plugin log-sliders for ranges [0..]Robin Gareus
2014-01-01visualize port connections in mixer/processor when in < outRobin Gareus
2013-12-29use buffer APIs instead of raw memcpy, fix plugin bypassRobin Gareus
2013-12-28centralize buffer silent-flagRobin Gareus
fixes possible x-talk 1 in, >= 2 out tracks: Previously, only the first route-buffer of the input buffers were marked as non-silent in Route::process_output_buffers(). Other buffers in the set (e.g. post-panner) would contain audio but not marked as non-silent.
2013-08-02rework MIDI [processor|plugin] chainRobin Gareus
* forward midi-data around plugins that have no MIDI-out * allow to insert plugins with no MIDI-input at a point with one MIDI-channel This works because excess ports (both plugin and route) remain unconnected and use scratch-buffers. Tested with LV2, LXVST and LADSPA. (AU plugins with variable in/out retain the old behavior, no bypass) fixes http://tracker.ardour.org/view.php?id=5630
2013-08-01use zeroed scratch buffers for "silent" plugin runsRobin Gareus
Plugins rewrite the buffer data in-place and some plugins can produce output even when fed with silence. Hence, during a PluginInsert::silence() run a plugin can inject data into the "silent" buffers which causes side-effects. Kudos to Chris 'oofus' Goddard for finding this issue.
2013-07-15finally get to the bottom of where NO_PLUGIN_STATE needs to be in order to ↵Paul Davis
be useful
2012-07-25convert from Glib:: to Glib::Threads for all thread-related APIPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-13dramatic overhaul of automation. too long to explain here. this work is not ↵Paul Davis
finished - write/touch passes do not correctly overwrite existing data because the semantics of ControlList::insert_iterator need clarification. more to follow git-svn-id: svn://localhost/ardour2/branches/3.0@13038 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-11add StartTouch and EndTouch signals to Plugin class; make PluginInsert ↵Paul Davis
handle these signals and mark the start end of touch/gestures for a given AutomationControl; net result is that touch automation now works for AudioUnit plugins, at least those whose GUIs send kAudioUnitEvent_{Begin,End}ParameterGesture events git-svn-id: svn://localhost/ardour2/branches/3.0@13028 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-11fix propagation of parameter changes from Plugin to PluginInsert so that ↵Paul Davis
automation will record parameter changes performed in a plugin GUI (#4976) git-svn-id: svn://localhost/ardour2/branches/3.0@13026 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-11improved version of last commit, for tracking plugin control changes and ↵Paul Davis
mapping them to PluginInsert automation controls git-svn-id: svn://localhost/ardour2/branches/3.0@13025 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-09set fader and plugin parameter automation curve default values - what else ↵Paul Davis
needs this? git-svn-id: svn://localhost/ardour2/branches/3.0@12996 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-24Remove over 500 unnecessary includes (including 54 of session.h).David Robillard
It's slightly possible that this causes trivial build failures on different configurations, but otherwise shouldn't cause any problems (i.e. no actual changes other than include/naming/namespace stuff). I deliberately avoided removing libardour-config.h since this can mysteriously break things, though a few of those do seem to be unnecessary. This commit only targets includes of ardour/*.h. There is also a very large number of unnecessary includes of stuff in gtk2_ardour; tackling that should also give a big improvement in build time when things are modified. git-svn-id: svn://localhost/ardour2/branches/3.0@12420 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-05-07move ::reconfigurable_io() from Plugin to PluginInfo so that the GUI can ↵Paul Davis
offer correct information without having ccess to a Plugin instance git-svn-id: svn://localhost/ardour2/branches/3.0@12200 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-10Fix failed assertion with plugins with only an audio output are inserted on ↵David Robillard
a MIDI track. This logic is probably completely wrong (i.e. it shouldn't be Split in the first place), but it fixes the crash, anyway. git-svn-id: svn://localhost/ardour2/branches/3.0@11876 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21Reinstate user Controllable values, as they are neededCarl Hetherington
for gain (which I forgot about). git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20Remove unused concept of user' values. Make user_to_uiCarl Hetherington
and ui_to_user virtual members of PBD::Controllable. git-svn-id: svn://localhost/ardour2/branches/3.0@11286 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09reduce Processor debug tag verbosityPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@11206 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-26a grab bag of changes correcting and improving the way MIDI note on/off ↵Paul Davis
tracking is done. may/should fix a number of problem with spurious note-offs under a variety of circumstances git-svn-id: svn://localhost/ardour2/branches/3.0@11074 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-09Remove unnecessary silencing of unused plugin inputs; unnecessary as ↵Carl Hetherington
(LADSPA/LV2 at least) connect_and_run routines pass in silent buffers for inputs that are not in the ChanMapping. The explicit silencing also failed if the plugin had more inputs than any processor on the route (fixes #4535). git-svn-id: svn://localhost/ardour2/branches/3.0@10949 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-02rename a Buffer/BufferSet method to be a little clearer as to its intent ↵Paul Davis
(is_silent(bool) => set_is_silent(bool)) git-svn-id: svn://localhost/ardour2/branches/3.0@10867 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23Trim function that is only used once.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10804 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21Rename windows VST stuff with a Windows prefix.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@10738 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-01start trying to remove the use of Plugin::info()->n_{inputs,outputs}, which ↵Paul Davis
alway refer to static (unchanging) information from the plugin metadata, which is not useful in the face of AU-like plugin APIs that can change I/O valency as requested, at least some of the time git-svn-id: svn://localhost/ardour2/branches/3.0@10386 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-01a better fix for the silent buffer issue: whenever we run a plugin, mark all ↵Paul Davis
the buffers passed to it as non-silent. a few plugin APIs allow the plugin to indicate whether or not it generated silence or not, but we ignore this for now (and possibly forever) git-svn-id: svn://localhost/ardour2/branches/3.0@10385 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-21More robust plugin I/O mapping.David Robillard
This does not change the actual mapping logic, but makes the application of the mapping much more robust. If there is no valid mapping for a given port, that port is connected to silence (instead of crashing messily and/or via a failed assertion). Also tolerate mappings that nonsensically map to a buffer that is not present (this particularly happens for MIDI ports in some cases) as a temporary fix. The mapping logic needs work and/or our concept of just how much MIDI we support in a route needs simplification... git-svn-id: svn://localhost/ardour2/branches/3.0@10262 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-19Improve plugin hide logic to prevent crashes when trying to insert fully ↵Carl Hetherington
audio plugins into MIDI tracks. git-svn-id: svn://localhost/ardour2/branches/3.0@10232 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18changes for OS X support: change waf config define to COREAUDIO_SUPPORT, ↵Paul Davis
remove PluginInsert call to IO::PortCountChanged, remove use of explicit Carbon linkage, fix up AudioUnit internals to actually work (Cocoa GUIs still currently broken) git-svn-id: svn://localhost/ardour2/branches/3.0@10224 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18make Stateful::_id private and provide appropriate methods to set it, and ↵Paul Davis
use them throughout ardour git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-26Somewhat experimental patch to hide plugin inputs if the preceding processor ↵Carl Hetherington
doesn't offer outputs for them. Fixes #4330. git-svn-id: svn://localhost/ardour2/branches/3.0@10126 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-26Tidy up PluginInsert's handling of how it chooses to map plugin IO to that ↵Carl Hetherington
of the insert. git-svn-id: svn://localhost/ardour2/branches/3.0@10125 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-20(native) Linux VST support from LinuxDSPPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@10101 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-12Fix a couple of thinkos causing crashes during split cyclesCarl Hetherington
with plugins that are splitting e.g. mono inputs to stereo plugins (#4169). git-svn-id: svn://localhost/ardour2/branches/3.0@10068 d708f5d6-7413-0410-9779-e7cbd77b26cf