13
0
Commit Graph

37159 Commits

Author SHA1 Message Date
83d6b87249
VST3: load custom state after setting parameters (#9206)
This broke in b27467157b. Control port changes were
postponed (written to ringbuffer) and only evaluated
at first run.
2023-02-11 13:31:27 +01:00
f1d784afbb deep fix to the way automation control point drags are handled/computed
The old code could not snap to the grid, because it had a lot of confusion about pixels vs. time,
and between line-origin-relative time and absolute time
2023-02-10 11:11:51 -07:00
03b32cb4a0 remove unused "beats" variable and computation from Editor::metric_get_bbt() 2023-02-10 11:11:51 -07:00
441a6ec069
Revert "Prefer symbols from plugins"
This reverts commit 102c48d7a1.
This breaks various plugins, notably all JUCE based ones,
during instantiation.
2023-02-09 23:39:34 +01:00
102c48d7a1
Prefer symbols from plugins
Now that we can require glibc 2.3.4, we can use RTLD_DEEPBIND.
This can help with plugins that do no hide symbols for their
contained statically linked libraries, and instead would use
use symbols.

Note: This only works on Linux.
2023-02-09 21:08:36 +01:00
eeaf0bdadc
Fix non-intel arch builds (cpuid.h header) 2023-02-09 20:54:46 +01:00
907b0bbfa0
Fix time-stretch dialog clock
This broke in 45e21de209, the clock is not yet visible,
so the value has to be forced.
2023-02-09 00:35:27 +01:00
Ayan Shafqat
bb31125c94
Fix CPUID to detect AVX512F
CPUID is part of x86_64 ISA to query CPU features. In order to determine
AVX512F ISA extension, EAX and ECX needs to be set to 7 and 0
respectively before invoking `cpuid` instruction. This commit also
removes inline assembly for __cpuid in favor of using compiler provided
intrinsic functions. Both GCC and clang provides __cpuid like function
via __cpuid_count intrinsic.

This commit also creates a portable wrapper over compiler intrinsic
functions, __cpuid and __cpuidex. `cpuid' provides base level ISA query
and `cpuidex` provides extra extension information like AVX512F. These
wrappers lean towards MSVC like API.

References:
CPUID Docs: https://en.wikipedia.org/wiki/CPUID

GCC's ``docs" on __cpuid_count:
https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config/i386/cpuid.h

Clang's docs on __cpuid_count:
https://clang.llvm.org/doxygen/cpuid_8h.html

MSVC's docs on __cpuid and __cpuidex:
https://learn.microsoft.com/en-us/cpp/intrinsics/cpuid-cpuidex
2023-02-08 23:20:20 +01:00
445e5162fd
VST3: assume left-only is Mono (#9229)
VST3 speaker arrangements (ie port is connected) can distinguish
between left only pin (of stereo pair) and Mono.
2023-02-08 22:53:26 +01:00
4429697799
VST3: deactivate plugin before calling setBusArrangements
This may currently happen from rt-context, further work
may be needed.
2023-02-08 04:42:57 +01:00
515881653d
VST3: debug setBusArrangements 2023-02-08 04:41:42 +01:00
b069b504f6
VST3: add SpeakerArr debug messages 2023-02-08 03:51:42 +01:00
cd6d7a8074
Fix another -Wabsolute-value 2023-02-08 03:50:21 +01:00
cc7219636f
Ignore Steinberg's non-virtual-d'tor 2023-02-08 02:03:54 +01:00
53ab6cde1b
Add missing diagostics pop 2023-02-08 01:53:42 +01:00
7b3701d1ef
NO-OP: whitespace 2023-02-08 01:35:45 +01:00
58a846325b
Fix another const warning 2023-02-08 01:35:35 +01:00
bf9ed3f470
Fix loading Ardour 2 sessions with external redirects 2023-02-07 18:28:56 +01:00
ae66304194 missing API change from e883c39e7 2023-02-06 21:51:28 -07:00
fe64ab9d31 control point drag: set time domain to match the list being modified
Previously this used the editor's default time domain
2023-02-06 21:04:17 -07:00
c41de90abd drags: add API to set time domain of a drag
This can slightly improve efficiency of temporal computation
during the drag.
2023-02-06 21:04:17 -07:00
e883c39e7a control point drag: fix the way bounding-to-region is computed 2023-02-06 21:04:17 -07:00
2de76147d2 automation line: fix pos/distance confusion that misplaces dragged control points 2023-02-06 21:04:17 -07:00
3d96a318ac automation line: add dump() method to inspect GUI control points 2023-02-06 21:04:17 -07:00
8c6fa19bcf use C++11 auto iterator 2023-02-06 21:04:17 -07:00
4796a3643d use C++11 auto iterator 2023-02-06 21:04:17 -07:00
5979647c22
Fix const warning 2023-02-07 03:43:00 +01:00
12ad052d98
Fix another class/struct mismatch 2023-02-07 03:07:22 +01:00
65d5d8162f
Add missing includes to satisfy linter 2023-02-07 03:06:51 +01:00
48efbb4cc5
One drag at a time (#9217)
When a drag is already active, do not allow to start
another one. e.g. start a middle-click (fixed time drag),
then left-click.
2023-02-07 02:57:58 +01:00
2b64c4afe4
Allow to move edit-cursor and PH in dropzone (#9222) 2023-02-07 02:14:38 +01:00
8c561b19a6
DisplaySuspender is a struct (not a class) 2023-02-07 01:50:04 +01:00
fbb175df4e
Enable avx512f support for windows builds 2023-02-06 21:36:09 +01:00
e74cb666ed
Allow to set transparency to 100%
Despite what the docs say Gtk::HScale(0,1,s) with a step-size
s > 0 has a range [0, 1 - s]. GTKMM does allow for a step-size
of zero, which also works around this issue.
This works because gtkmm sidesteps gtk_hscale_new_with_range() which
would fail with g_return_val_if_fail (step != 0.0, NULL);

The reason for this is that gtkmm creates an Adjustment with a
page-size = step-size:

```
Adjustment* adjustment = manage(new Adjustment(min, min, max, step, 10 * step, step));
```
and `gtk_adjustment_configure` limits the range:
```
value = MIN (value, upper - page_size);
```
2023-02-06 01:27:24 +01:00
5ee7941895 Only use render-group when container is not opaque 2023-02-05 22:34:38 +01:00
3cb1410318 update preferences metadata object 2023-02-05 12:25:04 -07:00
7c07c87088 add MIDI max note height to preferences GUI 2023-02-05 12:25:01 -07:00
a365a7ebf3 respond to MIDI max note height changes 2023-02-05 12:24:12 -07:00
2756be4b62 add an option to control the maximum MIDI note height (not yet GUI exposed) 2023-02-05 11:36:24 -07:00
0bce5d24de update preferences metadata object 2023-02-05 10:58:11 -07:00
38b3e88582 more preferences metadata 2023-02-05 10:57:47 -07:00
e446e4c501 more preferences metadata 2023-02-05 10:41:03 -07:00
Ayan Shafqat
13562d94f4
Add AVX512F test to CPPUNIT 2023-02-05 16:16:59 +01:00
7d2dc35fca
Fix AVX512 detection
Older compilers (gcc-6) feature _mm512_fmadd_ps but lack
macro pseudo functions _mm.*_reduce_(min|max)_ps and _mm.*_abs_ps
2023-02-05 16:14:49 +01:00
3105dcfbbc
Tweak new-plugins-active tooltip 2023-02-05 16:07:52 +01:00
be1462357b
Expose preference to create sidechain ports by default 2023-02-05 16:07:13 +01:00
3d62ab1c53
Do not create sidechain ports by default
In many cases optional sidechain inputs are not used.
Previously sidechain ports were created, but remained
unconnected and silence was passed to the plugin's key input.

Plugins can detected if a pin is connected. Some plugins
(e.g. VST3  Waves SSL Comp) activate the sidechain processing
automatically when depending in connection.

It is more common that a user does not want to use an external
sidechain, and if they want they should use the pin-dialog
to connect it. So leaving it off by default is sensible.

see also #9223
2023-02-05 16:06:19 +01:00
55d1b66b72
Connect sidechain pins when adding sidechain [ports]
This is in preparation to allow to skip adding sidechain ports
by default. When a user later adds the SC input ports, it is
convenient to connect the pins just like they are when they
are connected when instantiating the plugin (via reset_map).
2023-02-05 15:55:29 +01:00
64ec70ec20
Fix plugin replication wrt. sidechains
Ignore sidechain pins, when no sidechain ports are present.
Otherwise a plugin with 1 audio input and 1 sidechain input
would match a stereo track when the sidechain port is not present.
2023-02-05 15:46:33 +01:00
f035a0baed
Remove prefs-search test-code 2023-02-05 15:36:43 +01:00