Paul Davis
8c9749e42f
merge with master and fix 4 conflicts by hand
2014-06-02 11:32:13 -04:00
Robin Gareus
491f3f6e44
process effect-automation when bouncing w/processing
2014-05-26 06:55:56 +02:00
Robin Gareus
6142c814bf
provide plugins with all available buffers.
...
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-05-06 23:34:34 +02:00
Robin Gareus
af0c42ec4f
midi-controller, support log parameters - fixes #5890
2014-03-23 18:59:24 +01:00
Robin Gareus
147145f3a8
fix typo in doc
2014-02-28 17:48:21 +01:00
Robin Gareus
918f34b009
treat linux and windows VST plugins equivalent on session load
2014-02-27 00:44:48 +01:00
Robin Gareus
9a190b8d2b
fix crash when removing synth from midi-track
...
(and there are bypassed audio-plugins after said synth)
2014-01-26 00:46:39 +01:00
David Robillard
96cbcf0ee4
Fix crash when instrument plugins fail to instantiate.
2014-01-17 19:34:51 -05:00
Robin Gareus
00fbc9c342
fix plugin log-sliders for ranges [0..]
2014-01-06 00:01:24 +01:00
Robin Gareus
2644aaddb1
visualize port connections in mixer/processor when in < out
2014-01-01 15:34:06 +01:00
Robin Gareus
9875d43414
use buffer APIs instead of raw memcpy, fix plugin bypass
2013-12-29 21:48:14 +01:00
Robin Gareus
37264c85a5
centralize buffer silent-flag
...
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-12-28 13:43:44 +01:00
Robin Gareus
bfd50cdeb0
rework MIDI [processor|plugin] chain
...
* 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-02 03:39:00 +02:00
Robin Gareus
4dc74ae2ea
use zeroed scratch buffers for "silent" plugin runs
...
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-08-01 00:35:24 +02:00
Paul Davis
9cb678ebcc
finally get to the bottom of where NO_PLUGIN_STATE needs to be in order to be useful
2013-07-15 22:23:16 -04:00
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