Commit graph

126 commits

Author SHA1 Message Date
Paul Davis
3cd8138a41 convert from Glib:: to Glib::Threads for all thread-related API
git-svn-id: svn://localhost/ardour2/branches/3.0@13084 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-25 17:48:55 +00:00
Paul Davis
0532e2063b dramatic overhaul of automation. too long to explain here. this work is not 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-13 21:05:45 +00:00
Paul Davis
8d6d3c309d add StartTouch and EndTouch signals to Plugin class; make PluginInsert 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-11 15:31:02 +00:00
Paul Davis
0fb8c89eeb fix propagation of parameter changes from Plugin to PluginInsert so that 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-11 03:48:14 +00:00
Paul Davis
bfd2ee48ce improved version of last commit, for tracking plugin control changes and mapping them to PluginInsert automation controls
git-svn-id: svn://localhost/ardour2/branches/3.0@13025 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-11 00:23:55 +00:00
Paul Davis
80d9eaf96c set fader and plugin parameter automation curve default values - what else needs this?
git-svn-id: svn://localhost/ardour2/branches/3.0@12996 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-07-09 18:31:09 +00:00
David Robillard
6fa6514cfd Remove over 500 unnecessary includes (including 54 of session.h).
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-24 06:09:29 +00:00
Paul Davis
ad39f598ae move ::reconfigurable_io() from Plugin to PluginInfo so that the GUI can 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-05-07 22:00:42 +00:00
David Robillard
99ba7de591 Fix failed assertion with plugins with only an audio output are inserted on 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-04-10 20:45:39 +00:00
Carl Hetherington
4381b590bb Reinstate user Controllable values, as they are needed
for gain (which I forgot about).


git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21 16:38:56 +00:00
Carl Hetherington
d03d0363a4 Remove unused concept of user' values. Make user_to_ui
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-20 18:02:36 +00:00
Paul Davis
d0d6a2015f reduce Processor debug tag verbosity
git-svn-id: svn://localhost/ardour2/branches/3.0@11206 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-09 16:43:09 +00:00
Paul Davis
5558b3cf06 a grab bag of changes correcting and improving the way MIDI note on/off 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-26 17:01:31 +00:00
Carl Hetherington
067b81d0bf Remove unnecessary silencing of unused plugin inputs; unnecessary as (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-09 17:57:50 +00:00
Paul Davis
5aa4d95f59 rename a Buffer/BufferSet method to be a little clearer as to its intent (is_silent(bool) => set_is_silent(bool))
git-svn-id: svn://localhost/ardour2/branches/3.0@10867 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-12-02 19:53:33 +00:00
Carl Hetherington
e8ee8593c7 Trim function that is only used once.
git-svn-id: svn://localhost/ardour2/branches/3.0@10804 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-23 19:29:48 +00:00
Carl Hetherington
d9a3c6b89f Rename windows VST stuff with a Windows prefix.
git-svn-id: svn://localhost/ardour2/branches/3.0@10738 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-11-21 17:42:29 +00:00
Paul Davis
7c9c86af27 start trying to remove the use of Plugin::info()->n_{inputs,outputs}, which 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-01 21:48:45 +00:00
Paul Davis
8771e00fab a better fix for the silent buffer issue: whenever we run a plugin, mark all 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-11-01 21:28:16 +00:00
David Robillard
96dcffcb22 More robust plugin I/O mapping.
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-21 04:51:04 +00:00
Carl Hetherington
52caae3971 Improve plugin hide logic to prevent crashes when trying to insert fully audio plugins into MIDI tracks.
git-svn-id: svn://localhost/ardour2/branches/3.0@10232 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-19 14:26:16 +00:00
Paul Davis
4aeebb914e changes for OS X support: change waf config define to COREAUDIO_SUPPORT, 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-18 15:08:42 +00:00
Paul Davis
4085309cdb make Stateful::_id private and provide appropriate methods to set it, and use them throughout ardour
git-svn-id: svn://localhost/ardour2/branches/3.0@10222 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-10-18 13:18:47 +00:00
Carl Hetherington
f40c7c45be Somewhat experimental patch to hide plugin inputs if the preceding processor 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-26 18:07:02 +00:00
Carl Hetherington
8f46b0dc4b Tidy up PluginInsert's handling of how it chooses to map plugin IO to that of the insert.
git-svn-id: svn://localhost/ardour2/branches/3.0@10125 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-26 18:04:02 +00:00
Paul Davis
d4433b9ab3 (native) Linux VST support from LinuxDSP
git-svn-id: svn://localhost/ardour2/branches/3.0@10101 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-09-20 20:29:47 +00:00
Carl Hetherington
14e083001d Fix a couple of thinkos causing crashes during split cycles
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-09-12 13:17:42 +00:00
Paul Davis
9a2fe5aad3 refine definition of "generator" plugins, and only send silence through the 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-08 21:58:34 +00:00
Carl Hetherington
d5bb729755 Uncomment fix for #4110.
git-svn-id: svn://localhost/ardour2/branches/3.0@9793 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-04 17:35:28 +00:00
Paul Davis
67e21fd82e add MIDI input control column to editor route list; tweak SVG for MIDI not DIN
git-svn-id: svn://localhost/ardour2/branches/3.0@9779 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-07-01 15:48:24 +00:00
Paul Davis
071cc3ef01 fix serious breakage with setup of plugin automatable controls/parameters, 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-09 20:21:46 +00:00
Paul Davis
1a2a58fdd6 don't call Processor::set_state() from PluginInsert::set_state() till the 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-09 13:55:52 +00:00
David Robillard
a473d630eb Fix broken whitespace. I'd apologize for the compile times if it was my fault :D
git-svn-id: svn://localhost/ardour2/branches/3.0@9654 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-06-01 16:50:12 +00:00
David Robillard
c78528dcea Use LV2_SUPPORT define instead of HAVE_SLV2.
git-svn-id: svn://localhost/ardour2/branches/3.0@9510 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-14 17:59:16 +00:00
Paul Davis
e22f93407b make instruments/generators do the right thing when bypassed
git-svn-id: svn://localhost/ardour2/branches/3.0@9498 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-05-12 00:16:16 +00:00
David Robillard
0906b39918 Fix my name :)
git-svn-id: svn://localhost/ardour2/branches/3.0@9302 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-06 15:00:16 +00:00
Carl Hetherington
806b94bec1 Add plugins (activating them) after doing any latency_compute_run, as 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-04 17:57:18 +00:00
David Robillard
4ae4704112 Implement LV2 files extension.
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-03 01:57:12 +00:00
David Robillard
9ca4623451 Fix broken whitespace.
git-svn-id: svn://localhost/ardour2/branches/3.0@9270 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-04-02 19:52:21 +00:00
Paul Davis
0d95a4bfe4 remove sample-rate adjustment of plugin parameters - represents a misunderstanding of the LADSPA spec
git-svn-id: svn://localhost/ardour2/branches/3.0@9217 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-03-26 21:28:40 +00:00
Carl Hetherington
ee92df2a25 Copy plugin when extending the count, rather than using the same one. Should fix #3672.
git-svn-id: svn://localhost/ardour2/branches/3.0@8982 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-28 02:33:07 +00:00
Paul Davis
e1905c1c29 allow zero-input (i.e. tone generator) processors to be added
git-svn-id: svn://localhost/ardour2/branches/3.0@8950 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-24 16:22:42 +00:00
Carl Hetherington
279c9d8b4c Fix plugin parameter controllers again (#3767).
git-svn-id: svn://localhost/ardour2/branches/3.0@8912 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-20 17:57:45 +00:00
Carl Hetherington
ea11968f95 Clean up and hopefully fix handling of logarithmic plugin parameters (fixes #3769).
git-svn-id: svn://localhost/ardour2/branches/3.0@8850 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-15 01:42:48 +00:00
Carl Hetherington
825cb4ce18 Label logarithmic plugin controls correctly. Should fix #3767.
git-svn-id: svn://localhost/ardour2/branches/3.0@8832 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-12 14:10:15 +00:00
Paul Davis
a9d331aa98 add back some missing logic to can-replicate
git-svn-id: svn://localhost/ardour2/branches/3.0@8743 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-07 17:14:40 +00:00
Paul Davis
eb012ac243 simplify "can-replicate" to allow replication only if a plugin has zero or one input AND output for each data type
git-svn-id: svn://localhost/ardour2/branches/3.0@8742 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-07 17:04:22 +00:00
Carl Hetherington
4233a54ac3 Somewhat unconvincing visual indication that plugin inserts are splitting mono inputs to stereo.
git-svn-id: svn://localhost/ardour2/branches/3.0@8636 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-01 01:50:49 +00:00
Carl Hetherington
636ffd7d8d Fix up display of plugin automation when loading 2.X sessions.
git-svn-id: svn://localhost/ardour2/branches/3.0@8635 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-02-01 01:07:38 +00:00
Carl Hetherington
6c3bad48f9 Allow plugins with >1 input to be inserted into mono tracks; the input is passed to each plugin input equally (#3746).
git-svn-id: svn://localhost/ardour2/branches/3.0@8628 d708f5d6-7413-0410-9779-e7cbd77b26cf
2011-01-31 15:28:15 +00:00