Commit Graph

31223 Commits

Author SHA1 Message Date
Robin Gareus
3f19db4180 Mitigate issues of expensive plugin analysis -- #7795
Plugin analysis uses a GUI thread instance of a given plugin to
perform a IR analysis.

Some plugins can be rather CPU expensive to analyze.
e.g. a-hi/lo-filter when interpolating is recalculating biquad
coefficients every 64samples during the 8k IR analysis. This can take
a significant amount of time on older CPUs.

Furthermore live-signal collection happens in the rt-thread,
using cross-thread signals. Signal collection is  periodically initiated
from the same timeout signal as analysis.

Analysis is was done using default thread priority, which is higher
than the GUI redraw priority (PRIORITY_HIGH_IDLE).

So it was possible to contiguously initiate analysis, loading the CPU
and preventing redraws.
2019-08-24 17:11:10 +02:00
Robin Gareus
ab62c8a926 Towards fixing luadoc, manual page creation 2019-08-24 03:32:47 +02:00
Robin Gareus
89f0e70b82 Fix memory-leak in case of Vamp plugin setup error 2019-08-24 03:31:49 +02:00
Robin Gareus
1ea3435de6 Add missing Lua bindings for function arguments
PortEngine was accidentally removed in 1339d42c78
2019-08-24 03:31:45 +02:00
Robin Gareus
02cc959d93 Add missing headers for lua-doc 2019-08-24 01:35:38 +02:00
Robin Gareus
9c785749ba Lua binding to change region name 2019-08-24 01:35:14 +02:00
Robin Gareus
69688d24c4 Another fix for input only ALSA-slave devices 2019-08-24 00:15:10 +02:00
Robin Gareus
f7968f15dd LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
Robin Gareus
2920bd0253 Region selection cannot change without a session
Without a session, there are no regions. Besides,
there is an unconditional call using _session directly
after the if (_session) clause, which would segfault...
2019-08-23 23:54:34 +02:00
Robin Gareus
37d51037b9 Add tool to render ArdourIcon set 2019-08-23 21:09:38 +02:00
Robin Gareus
000d331ea1 NO-OP: cleanup
* remove unused code
* replace "default" to check for switch() enum completeness
2019-08-23 15:50:26 +02:00
Robin Gareus
f1c29a9324 Re-order enum, use "NoIcon" as sentinel 2019-08-23 15:49:25 +02:00
Robin Gareus
88a0429188 ArdorIcon is for display only, remove registration
These enum values are not used serialized in any state, and can
be removed.
2019-08-23 15:46:39 +02:00
Robin Gareus
9836bd786f Some hints for clang static analysis 2019-08-23 05:15:17 +02:00
Robin Gareus
e5927d689c Fix for half-duplex ALSA-slave devices 2019-08-23 04:39:51 +02:00
Robin Gareus
8fadf44978 Fix possible segfault when ALSA MIDI port registration fails 2019-08-23 04:39:12 +02:00
Robin Gareus
d52cf0f739 Tweak graph display, check direct sends
->feeds() follows connections "track -> master -> monitor"
(to detect feedback). Use direct_feeds_according_to_reality()
to correctly show sends-only.
2019-08-23 02:12:47 +02:00
Robin Gareus
b858b3b692 Detect monitor-send by instance, not name 2019-08-23 01:05:57 +02:00
Robin Gareus
22aa61b674 Use icons for plugin bypass and pinout 2019-08-22 21:03:44 +02:00
Robin Gareus
a0d53b81b9 Update plugin-ui related icons 2019-08-22 21:03:07 +02:00
Robin Gareus
026b74e25d Fix potential call of uninitialized pointer function
_template_number can be set via sysex to an arbitrary number, this
can lead to calling a filter-function at an undefined address, usually
a segfault.
2019-08-21 03:53:46 +02:00
Robin Gareus
c38c91ddbd Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
Robin Gareus
e6c9bcfd07 Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
Robin Gareus
df60eca33c Initialize uninitialized variable
This fixes a potentially undefined branch if the USB device list is empty.
dev is NULL, the loop is never entered, 'r' isn't set.
if (!dev && !r) is undefined.
2019-08-21 03:05:17 +02:00
Robin Gareus
e9e761565b Use Icons for plugin preset buttons.
This reduces the preset task-bar's min-width, useful for plugins with
narrow UIs.
2019-08-21 01:27:36 +02:00
Robin Gareus
dfa93e0b17 Tweak Ardourbutton: support (VectorIcon | Indicator) 2019-08-21 01:25:34 +02:00
Robin Gareus
1d8a6076ab Add more vector-icons, plugin toolbar related
This allows to replace "Add", "Save", "Delete", "Reset", "Bypass"
text with icons.
2019-08-21 01:24:49 +02:00
Robin Gareus
a5e2012ead Consistent preset layout
Use the same order as AU, VST, LV2 GUIs. Show the "modified" asterisk
left of the preset-dropdown. This avoids a blank space between the
dropdown and the Add, Save, Delete buttons.
2019-08-20 23:45:49 +02:00
Robin Gareus
2d4eb7d505 Replace OOM segfault with abort :) 2019-08-20 05:07:16 +02:00
Robin Gareus
3ccaaf1ea5 There's always a previous tempo/meter section 2019-08-20 04:53:00 +02:00
Robin Gareus
0972e9a513 Skip potential garbage midi-step 2019-08-20 04:46:42 +02:00
Robin Gareus
114b5088c7 There is always at least a tempo and meter section 2019-08-20 04:29:06 +02:00
Robin Gareus
6227dd5b04 Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
Robin Gareus
f5330d763a NO-OP: whitespace 2019-08-20 04:15:11 +02:00
Robin Gareus
73d0b6894a Skip invalid plugin-tag spec 2019-08-20 04:15:01 +02:00
Robin Gareus
bb27d10fd4 Fix potential ambiguous state-restore
Don't allow uninitialized argument values in case of corrupt XML
state.
2019-08-20 04:11:32 +02:00
Robin Gareus
a1b0991d26 Fix uninitialized argument value
TrimDrag::aborted() -> TrimDrag::finished() -> TrimDrag::motion ()
uses event->button.state
2019-08-20 04:06:31 +02:00
Robin Gareus
2dae4fc5e1 Bundle x42-tuner, drop rule-based midifilter 2019-08-20 03:44:02 +02:00
Robin Gareus
05e0cc4035 Fix prev commit, state-restore of plugins 2019-08-20 02:06:55 +02:00
Ben Loftis
031847f88e LV2 extension to override strict-i/o per plugin
This allows mono to stereo plugins to override the default
routing and forces both outputs to be connected.
2019-08-19 23:28:04 +02:00
Robin Gareus
8775087ea6 Remove explicit pulse version check (debian/wheezy builds) 2019-08-17 00:18:39 +02:00
Robin Gareus
531fa74eb1 Suffix complete hw: ID to make ALSA card names unique 2019-08-16 20:00:29 +02:00
Robin Gareus
ae2b6e6b09 Further tweaks to .pending file removal
* only delete it after successful save
* show unlink notification in debug-builds
2019-08-16 05:31:50 +02:00
Robin Gareus
994b59c836 Prefer implicit deletion of .pending
Session destruction removes ".pending", no need to explicitly delete
the file.
2019-08-16 01:55:54 +02:00
Robin Gareus
6dc8f5ed1d Fix periodic backup saves
Retain ".pending" files until explicit save or session destruction.
Previously every transport-stop deleted them :(
2019-08-16 01:54:21 +02:00
Robin Gareus
c89e58046a Fix C++98 compat 2019-08-16 01:51:51 +02:00
Robin Gareus
76048c050d Prefer "one track per file" as default 2019-08-15 01:30:17 +02:00
Robin Gareus
316880b9cf Don't print usage to stdout for invalid parameters 2019-08-15 01:09:26 +02:00
Robin Gareus
4aedf9c3ea Tweak .clang-format 2019-08-13 01:06:12 +02:00
Robin Gareus
e08ab1e30a NO-OP: clang format, comments & whitespace 2019-08-13 01:05:51 +02:00