summaryrefslogtreecommitdiff
path: root/libs/ardour/plugin_insert.cc
AgeCommit message (Collapse)Author
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
2011-07-08refine definition of "generator" plugins, and only send silence through the ↵Paul Davis
route is there is a REAL generator plugin (i.e. no inputs at all). Fixes #4144 (hopefully without breaking anything else) git-svn-id: svn://localhost/ardour2/branches/3.0@9814 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-04Uncomment fix for #4110.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@9793 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-01add MIDI input control column to editor route list; tweak SVG for MIDI not DINPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-09fix serious breakage with setup of plugin automatable controls/parameters, ↵Paul Davis
in which the relative ordering of things during ::set_state() was totally wrong. still see multiple instances of automation tracks for processors in GUI git-svn-id: svn://localhost/ardour2/branches/3.0@9698 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-09don't call Processor::set_state() from PluginInsert::set_state() till the ↵Paul Davis
plugins are present in the container, so that describe_parameter() can work git-svn-id: svn://localhost/ardour2/branches/3.0@9696 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01Fix broken whitespace. I'd apologize for the compile times if it was my ↵David Robillard
fault :D git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14Use LV2_SUPPORT define instead of HAVE_SLV2.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-12make instruments/generators do the right thing when bypassedPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@9498 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06Fix my name :)David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-04Add plugins (activating them) after doing any latency_compute_run, as ↵Carl Hetherington
otherwise the latency_compute_run deactivates the plugins and an assert trips in LadspaPlugin::run_in_place. git-svn-id: svn://localhost/ardour2/branches/3.0@9282 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-03Implement LV2 files extension.David Robillard
This extension works with the persist extension to allow plugins to save references to files in their state, but still allow the host (e.g. Ardour) to control where files are located, making it possible to do a deep export of a session with all files (e.g. loaded sampler banks) included. Tested working with a patched version of LinuxSampler... TODO: Make symlinks in the plugin state directory rather than refer to absolute file paths in state files (i.e. support session export, either by ardour or any other tool, in particular the Jack session manager...) git-svn-id: svn://localhost/ardour2/branches/3.0@9272 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-02Fix broken whitespace.David Robillard
git-svn-id: svn://localhost/ardour2/branches/3.0@9270 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26remove sample-rate adjustment of plugin parameters - represents a ↵Paul Davis
misunderstanding of the LADSPA spec git-svn-id: svn://localhost/ardour2/branches/3.0@9217 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-28Copy plugin when extending the count, rather than using the same one. ↵Carl Hetherington
Should fix #3672. git-svn-id: svn://localhost/ardour2/branches/3.0@8982 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-24allow zero-input (i.e. tone generator) processors to be addedPaul Davis
git-svn-id: svn://localhost/ardour2/branches/3.0@8950 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-20Fix plugin parameter controllers again (#3767).Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-15Clean up and hopefully fix handling of logarithmic plugin parameters (fixes ↵Carl Hetherington
#3769). git-svn-id: svn://localhost/ardour2/branches/3.0@8850 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-12Label logarithmic plugin controls correctly. Should fix #3767.Carl Hetherington
git-svn-id: svn://localhost/ardour2/branches/3.0@8832 d708f5d6-7413-0410-9779-e7cbd77b26cf