Commit Graph

36166 Commits

Author SHA1 Message Date
Robin Gareus 38a40d7c06
Session drop graph-nodes before ~Session
Previously active Routes were retained until the end of
Session d'tor and not dropped during Session::destroy.

While most resources were explicitly cleaned up via DropReferences,
Processor UIs are kept around until the actual destructor runs.
Likewise some controllable are kept around while the GraphNode (Route)
owning it is not released.
2022-10-13 17:49:34 +02:00
Robin Gareus 4d4da13d55 Fix Clip listing (include all shortcuts, update colors)
* GTK fills in the snapshots in the background (using background threads
  to test files).
* Actual colors may only available after the widget is realized (not
  directly after ensure_style)
2022-10-13 04:10:11 +02:00
Paul Davis 8d866f58a2 fix mis-use of locally-scopped variable name in auto for loop 2022-10-12 16:51:04 -06:00
Robin Gareus 392210270c
Fix pitch-shift producing partially silent regions
It can happen that with a scaling factor of 1.0, rubberband
produces slightly fewer samples than the original.

Region::set_length (region->length * 1.0) is idempotent and
does not shorten it as appropriate to the longest source
via Region::verify_length(), which leads to various issues.
2022-10-12 22:25:10 +02:00
Robin Gareus 396013bf5a
Set and create clip-library folder if needed
Direct calls to `Config->get_clip_library_dir` may return
"@default@". The path is OS specific and may also not
yet exist, so indirection is required.
2022-10-12 16:11:50 +02:00
Paul Davis ab7254e357 new Xcolors theme from LAM 2022-10-11 14:20:35 -06:00
Robin Gareus 92f8d1e577
Further reduce differences in themes (sort and indent modifiers) 2022-10-11 21:59:10 +02:00
Paul Davis fb4115d6b0 add new diehard3 theme from avlinux/gmaq 2022-10-11 13:48:55 -06:00
Robin Gareus cae565f3be
Copy missing color definitions to alternative themes 2022-10-11 21:29:50 +02:00
Robin Gareus 56e5c5fc3b
Sort colors in default theme, remove space 2022-10-11 21:29:50 +02:00
Paul Davis d69dfc26a6 no whole file regions in triggerbox slots 2022-10-11 12:56:41 -06:00
Robin Gareus f9a2da3426
LXVST: dispatch close when GUI is destroyed
see also e635571f2f
2022-10-11 20:55:01 +02:00
Robin Gareus 45398fb65c
Fix switch custom -> generic plugin UI
See also e635571f2f and bd898a68
2022-10-11 20:44:04 +02:00
Robin Gareus 3b2eb7507b Fix macOS compatibiliy
readlink -f option requires recent macOS 12.6
2022-10-11 20:06:17 +02:00
Robin Gareus ae6bf4bc7d
Deploy LRDF presets (if any) 2022-10-11 17:07:33 +02:00
Robin Gareus 5324c9092e
Clean up LADSPA preset path
* Allow to bundle presets
* Do not use /usr/[local] on Windows
(This may need further work, for Windows, since default user
presets are in `file://$HOME/.ladspa/rdf/`)
2022-10-11 16:39:17 +02:00
Robin Gareus 340a260b30
Remove old LRDF VST presets
Ardour has not been using RDF for VST2 presets since at least
10 years.
2022-10-11 16:23:20 +02:00
Robin Gareus 4d76d72af4
Update bundled media URL 2022-10-11 15:24:17 +02:00
Robin Gareus 664f6768f2
Fix windows builds, use portable setenv 2022-10-11 15:13:41 +02:00
John Emmas 43a9ae7458 Use glib to provide setenv()
(for some strange reason, setenv() is called putenv() on Windows!!)
2022-10-11 10:46:57 +01:00
Robin Gareus 7216a767df
The return of the send level meter 2022-10-11 03:58:35 +02:00
Robin Gareus 0aa5a8674c
Remove accidentally commited file 2022-10-11 03:28:18 +02:00
Robin Gareus bd898a68df
Fix switch custom -> generic plugin UI (amend e635571f2f) 2022-10-11 02:40:55 +02:00
Robin Gareus 0bf8e7d8cf
Make clock mode settings session independent
Much like the edit-tool and grid-types, clock-modes are UI state.

Saving the UI state separately allows them to be used
consistently for new sessions. Previously clock-modes were set
initially (at application start) and when loading sessions.

The clock modes of newly created sessions was different
depending on loading another session prior to creating the
session. This is now no longer the case.
2022-10-10 21:03:45 +02:00
Václav Šmilauer 6ad3dc1e43 Fix disabling l10n under Linux 2022-10-10 08:11:52 -06:00
Robin Gareus c04b05f497
Remove misleading export quality comments 2022-10-10 02:23:55 +02:00
Robin Gareus 00fe7e8778
Remove Lambda w/return value for compiler compat. 2022-10-09 16:45:31 +02:00
Robin Gareus b42591fde1
Specify return type of lambda (amend e635571f2f) 2022-10-09 15:40:29 +02:00
Alexandre Prokoudine 7b4487699c Update Russian translation, part 4 of N 2022-10-09 14:46:13 +03:00
Robin Gareus e635571f2f
Implement preference to destroy plugin UIs
see also https://discourse.ardour.org/t/very-high-gpu-usage-on-windows/107672
2022-10-08 18:45:20 +02:00
Robin Gareus 830fe4da2f
Add preference enum for plugin GUI unmap behavior 2022-10-08 18:44:16 +02:00
Robin Gareus f89845e64a
Prevent duplicate signal emission
Re-assigning a sigc::connection does not disconnect
any previously connected signals.

WindowProxy::setup may be called multiple times. Notably plugin
windows can change the managed _window (generic/custom), which
requires a call to setup.
2022-10-08 17:12:10 +02:00
Paul Davis 0dc4f4bf45 spelling fix, PR#725 2022-10-07 19:14:01 -06:00
Paul Davis 254297355e increment/decrement name changes ... out with old in with the new (gui) 2022-10-07 17:30:45 -06:00
Paul Davis 88396347e6 increment/decrement name changes ... out with old in with the new (libs 2022-10-07 17:30:35 -06:00
Paul Davis 45e21de209 implement and adopt new conventions for AudioClock use
The class now has two separate methods for setting a duration or a point
value. They MUST be used appropriately, because their behavior is different.

When ::set_duration() is used in timecode mode, an extent (inclusive-end
length) is shown rather than a length.

Some objects, such as the TimeInfoBox, now deliberately shown an inclusive end
for their "end" clock, but this not universally followed, pending more feedback
from users and investigating of conventions in other DAWs.
2022-10-07 16:24:56 -06:00
Paul Davis 1ce17c1903 fix time domain for new BBT markers created from context menu/dialog 2022-10-07 16:24:56 -06:00
Paul Davis be9fdd9873 libs: use {de,in}crement_by_domain() instead of {de,in} (libs) 2022-10-07 16:24:46 -06:00
Paul Davis 27d5843f7a temporal: replace Range::extent() with Range::length()
We want to encourage/enforce the use of exclusive-end conventions
everywhere in the libraries that make up ardour
2022-10-07 16:16:14 -06:00
Paul Davis c4d737dd87 temporal: provide ::decrement_by_domain() methods for time{pos,cnt}_t
audio time nominally uses superclocks as its canonical unit. However
many things at a higher level only understand samples. If we
increment or decrement a superclock value by 1, the vast majority of
the time we will still get the same sample value after
conversion. Thus to correctly alter an audio time by an amount
that will manifest as 1 sample's difference, we have to use
samples_to_superclock(1)
2022-10-07 16:16:14 -06:00
Paul Davis 617a517a60 temporal: add timecnt_t::increment() and Range::extent() (length+1) 2022-10-07 16:16:14 -06:00
Robin Gareus b4d7ca06b8
Add Luabindings for MPControl (required for VBM) 2022-10-07 18:52:00 +02:00
Robin Gareus 8d045e15dc Do not add whole-file regions to playlists
Various operations, notably time-stretch and other filters, directly
added the generated whole-file region to the playlist.
The editor has not listed the generated Region in the RegionList.
2022-10-07 00:36:57 +02:00
Robin Gareus f6e471f48d Remove explicit overrides
see 27dcb7560c1cab and 8c83149c4c
2022-10-07 00:36:43 +02:00
Robin Gareus d9c6842ea3 Fix region property inheritance (GUI) 2022-10-07 00:36:20 +02:00
Robin Gareus e40f58c106 Inherit Region Properties
This also adds special cases when splitting or splicing locked regions.
2022-10-07 00:36:10 +02:00
Robin Gareus 2f810ad34e Allow to override region lock, and derive properties
This is required when adding locked regions to a playlist.
e.g. after a split or partition operation. It is only supposed
to be used from Playlist::add_region_internal() and
Playlist::partition_internal().
2022-10-07 00:35:51 +02:00
Robin Gareus ebf59d4426 Insert_or_assign properties, allow to override properties
This allows to copy a property list and then selectively
replace various properties. e.g.

```
PropertyList plist (region->properties ());
plist.add (Properties::length, len);
plist.remove (Properties::start);
```

See also 8b0ab38675
and 97f0fac7d5
This also fixes the issue referenced in
8c83149c4c
2022-10-07 00:32:14 +02:00
Robin Gareus ddec1a9a98 Silence some clang warnings 2022-10-07 00:31:48 +02:00
Robin Gareus ba41f22f88
Resize plugin-scan dialog as needed for UI scaling 2022-10-06 15:41:56 +02:00