Commit Graph

36926 Commits

Author SHA1 Message Date
Robin Gareus 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
Robin Gareus 5ee7941895 Only use render-group when container is not opaque 2023-02-05 22:34:38 +01:00
Paul Davis 3cb1410318 update preferences metadata object 2023-02-05 12:25:04 -07:00
Paul Davis 7c07c87088 add MIDI max note height to preferences GUI 2023-02-05 12:25:01 -07:00
Paul Davis a365a7ebf3 respond to MIDI max note height changes 2023-02-05 12:24:12 -07:00
Paul Davis 2756be4b62 add an option to control the maximum MIDI note height (not yet GUI exposed) 2023-02-05 11:36:24 -07:00
Paul Davis 0bce5d24de update preferences metadata object 2023-02-05 10:58:11 -07:00
Paul Davis 38b3e88582 more preferences metadata 2023-02-05 10:57:47 -07:00
Paul Davis 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
Robin Gareus 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
Robin Gareus 3105dcfbbc
Tweak new-plugins-active tooltip 2023-02-05 16:07:52 +01:00
Robin Gareus be1462357b
Expose preference to create sidechain ports by default 2023-02-05 16:07:13 +01:00
Robin Gareus 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
Robin Gareus 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
Robin Gareus 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
Robin Gareus f035a0baed
Remove prefs-search test-code 2023-02-05 15:36:43 +01:00
Robin Gareus 3cb89b7c6e
List custom resampler quality settings in prefernces 2023-02-05 03:38:35 +01:00
Robin Gareus bb029560d1
Clarify "ptformat" 2023-02-04 23:52:25 +01:00
Marijn Kruisselbrink 185fe497c6
Fix AutomationListPropertyTest
These tests use reference files that were generated with a particular
value for superclock_ticks_per_second. The default for that has changed
since the last time the reference files were updated though, causing
tests to fail. Rather than updating the reference files for the new
default value, this makes the test not depend on the default value by
hardcoding the value that was used to generate the reference files.
2023-02-04 23:48:13 +01:00
cooltehno b4169a0391
Update blueberry_milk-ardour.colors 2023-02-04 23:43:53 +01:00
Ayan Shafqat 17b263dfda
Fix comment mistake 2023-02-04 23:07:17 +01:00
Ayan Shafqat 99d6a4c709
Update wscript for AVX512F support
Accurately determine if AVX512F has been supported by the compiler
2023-02-04 23:07:17 +01:00
Ayan Shafqat b3a10378cf
Add AVX512 optimized routines
The routines have been profiled using a test fixture.
https://gist.github.com/ashafq/50880bbbf7769f4f307e9ea9c7e71cf9
2023-02-04 23:07:17 +01:00
Ayan Shafqat 6b766e41f4
Integrate AVX512F support into Ardour
The current implementation is just a stub of AVX and is not
utilizing AVX512F.
2023-02-04 23:07:17 +01:00
Ayan Shafqat bf8fced073
Add CPU detection 2023-02-04 23:07:17 +01:00
Ayan Shafqat a050d9bf1f
Add newly created functions to libardour API 2023-02-04 23:07:17 +01:00
Ayan Shafqat 6a3ae8ad72
Add placeholder AVX512F functions
This file is just copied over from AVX and changed prefix
of function calls from `x86_sse_avx' to `x86_avx512f`.
2023-02-04 23:07:17 +01:00
pkubaj 387cac0ec5
Fix build on FreeBSD/powerpc64*
Only glibc has __ppc_get_timebase() function. On FreeBSD use the same assembly call that __ppc_get_timebase() actually executes.

This probably should be extended to musl and OpenBSD, but I have no way of checking that.
2023-02-04 22:40:52 +01:00
Robin Gareus 380005f50f Update preference to set macOS render performance 2023-02-04 22:34:12 +01:00
Robin Gareus 509504acf2 Add API to set openGL backing scale 2023-02-04 22:25:52 +01:00
Robin Gareus cb3f8170ad Always use image surface on macOS
Thissignificantly improves drawing performance.
2023-02-04 22:24:16 +01:00
Robin Gareus ffafa5cfc7 NSGLView: clean up, allow optional scaling 2023-02-04 21:36:01 +01:00
Robin Gareus d12dd4015d
Revert canvas debugging
This reverts commit 8359311849.
This reverts commit f377822891.
This reverts commit 859d6ebe4a.
This reverts commit 4cd7de7a6f.
2023-02-04 18:23:18 +01:00
Robin Gareus c707b056af
Add some preference search tags 2023-02-04 06:58:02 +01:00
Robin Gareus 51e93399ba
Update vari-speed availability, depending on port-resampler 2023-02-04 03:21:27 +01:00
Robin Gareus 19b8069720
Add preference to set port-resampler-quality 2023-02-04 03:20:47 +01:00
Robin Gareus 17f2862f96
Emit signal when resampler-quality changes 2023-02-04 03:20:20 +01:00
Robin Gareus 5316ac38e7
Export Dialog: remove redundant calls 2023-02-04 00:24:19 +01:00
Robin Gareus b421cd26bb
Export Dialog: correctly init export channels
The state has to be pushed to the manager during initialization,
otherwise channel_config remains unset.

This fixes an issue with files using the same filename
(missing channel name) during stem export.
2023-02-04 00:24:07 +01:00
Robin Gareus caec9acf8d
Export: check all channel-configurations before export
This correctly sets up the filename, and lists all existing
files that will be replaced on export.
2023-02-04 00:21:09 +01:00
Robin Gareus 14606ac655
Rec-stop only writes a pending (recovery) file (#9215)
This is consistent, since after handling the
`SaveSessionRequested` signal the session remains dirty
(which may be a bug). However since the signal is handled
by the GUI, rec-stop only saves the session if there is a GUI.

It is however somewhat dangerous. Record, quit + no-save (or
changing snapshots w/o saving first) will loose any references
to the recorded data (even though it is still on disk).

Note that "remove last capture" still saves the session
(to prevent references to non-existent sources).
2023-02-03 07:56:49 +01:00
Robin Gareus 054e1c3c12
Retain pending state after recovery (#9215)
After recovering from a crash, the user still needs to
retain the option to ignore the changes that were done
just before the crash after investigating them (or save them
into a snapshot).

Previously crash recovery unconditionally overwrote the
session file (see discussion on bug tracker).
2023-02-03 07:50:32 +01:00
Robin Gareus 1434789103
Allow to profile session-state save (again)
This was removed in
 bf0a525647
 2316df357b

"SaveState" was chosen because "State" prefix overlaps with
"Stateful", and "SessionState" overlaps with "SessionEvent"
debug names. `-DState` or `-DSession` overlap respectively
with unrelated debug output.
2023-02-03 07:32:50 +01:00
Robin Gareus dac8feb98b
VST3: fix plugin GUI value notification (#9212)
OnParameterChange uses the plain (not normalized value)
2023-02-03 05:18:34 +01:00
Robin Gareus d0a51f017a
VST3: fix manually setting integer ctrls from UI (#9212)
set_parameter_internal() normalizes the value (C++ reference),
when setting a parameter manually (inline control, generic UI)
only the shadow_data is updated (which is supposed to be
normalized).
2023-02-03 04:44:17 +01:00
Robin Gareus 830dfdda24
Fix assert() when resolving impossible pin match (#9218)
Adding a MIDI only plugin at a point where there is no
MIDI data, and/or additional audio signals results in an
'Impossible' match.

Those are usually resolved by trying to replicate the plugin,
and the fallback is to "Replicate 1 time".

While this is effectively equivalent with ExactMatch (use
1 instance), it is semantically different: Audio sources
will be ignored and if there is no MIDI signal, the MIDI
input remains unconnected.

It is the opposite to "Hide" (plugin has more inputs
of a given type, which can be fed by silence), since it has
fewer inputs of a given type signals are "dropped".

Strictly speaking we should special case this "Replicate 1 time"
case to "Drop" [sic]. which only assert(!reconfigurable_io()).
2023-02-03 04:37:27 +01:00
Robin Gareus 26270db8ae
Fix EBU-R128 loudness analysis for mono signals
This removes the special case which assumed unity gain
when reproducing mono files on a stereo system.

ITU-R BS.1770 however specifies a channel weight of 0dB for
left, right and centre, regardless of the total channel count.

Tech 3344 6.16 mentions a 3dB attenuation to maintain the
loudness level of a mono audio signal in multi-channel signals,
and Tech 3343-2016 further specifies that "Ideally, a downmix
operation should be loudness-agnostic".
2023-02-02 17:58:46 +01:00
Paul Davis 160ed4d056 tweak generation process for preferences metadata and start adding some 2023-02-01 18:14:33 -07:00
Paul Davis 1333f39621 searchable prefs: fix behavior after find failure 2023-02-01 18:10:56 -07:00