13
0
Commit Graph

21167 Commits

Author SHA1 Message Date
83b3070fe1
Do not allow to rename rec-arm'ed tracks
Previously only the UI prevented this, which can cause issues
when renaming is initiated by ctrl surfaces
2024-05-24 22:37:29 +02:00
ac004eee70 avoid all potential charset conversion when displaying an error relating to filename errors 2024-05-22 15:59:49 -06:00
f227839247
Vapor: thread-safe export abort
Prevent concurrent processing while running finalize_export.
2024-05-22 19:44:17 +02:00
63b5c9ea2b
Trying to track down mysterious cxxabiv1::failed_throw
It seems that a `Glib::ConvertError` is thrown, and then the
function that catches the error causes another ConvertError in
`err.what()` (which presumably include the filename that
causes the error).

relevant part of the backtrace (macOS Crashdump):

```
Glib::ConvertError::throw_func(_GError*) + 56
Glib::Error::throw_exception(_GError*) + 292
Glib::operator<<(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, Glib::ustring const&) + 131
StringPrivate::Composition& StringPrivate::Composition::arg<Glib::ustring>(Glib::ustring const&) + 25
std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > string_compose<Glib::ustring> (...) + 81
PBD::run_functor_for_paths(...) + 1313
```
2024-05-22 18:36:15 +02:00
710a22521f
Add method to create an alphanumerical sequence
This is intended for new group-names. This avoids ambiguity
with track numbers when using defaults.
2024-05-21 18:21:47 +02:00
8ad53bc96c
Load LiveTrax sessions w/DirectOuts sends
We simply ignore the direct out sends from trax.

Note `DEFINE_ENUM_CONVERT` for Role is defined in delivery.cc
so we need a static method to directly read the send's role.
2024-05-20 23:16:19 +02:00
7bfd128a75
Downgrade warning (about I/O priority) 2024-05-20 21:56:24 +02:00
e34359b921
VST3: skip context info callbacks during session load
This fixes a crash when SSL's channelstrip calls set-selection
early on during session load, during Session::load_routes.

Session::add_routes_inner calls calls ARDOUR::GUIIdle() which
can trigger a SSL Native Channel Strip 2" VST3 to call
VST3PI::setContextInfoValue, which in turn emits a
CoreSelection::send_selection_change before the session is
fully loaded.

This also handles various edge cases where a given AC may
not [yet] exist.
2024-05-20 19:31:31 +02:00
4ec86a2657
Add API to query Fader orientation 2024-05-18 01:42:44 +02:00
cd2db2c3aa
NO-OP: whitespace 2024-05-17 17:25:45 +02:00
5f52329bed
Update mixer and lock icon 2024-05-17 17:25:41 +02:00
fc194237eb Locations::clear_ranges() now removes punch & loop ranges 2024-05-17 09:05:27 -06:00
9d046af47a Update Lua allocator for sessions scripts
* increase memory pool (bindings alone require 1.5 MB), and all session
  scripts have a shared memory pool.
* use TLSF (like Lua DSP processors) - this fixes an issue with atomics
  (notably int62_t, temporal) on macOS and ARM, which need to be
  aligned.
2024-05-15 20:18:21 +02:00
1f0ee56726
Fix Lua Session scripts (amend df12126909) 2024-05-15 17:33:59 +02:00
b3df8ea6ef
Expose UI config fonts to libwidgets
Currently this is only for the benefit of derivative projects.
2024-05-15 17:02:35 +02:00
0bac1e07f5
There is no TraxLive here (amend a0e2749) 2024-05-15 03:35:23 +02:00
a0e27495c6
Abstract base class for ArdourFader
This allows derivative projects to use other fader
render implementations.
2024-05-15 02:41:37 +02:00
86c3b70c54 add some utility functions to Buffers and BufferSets to allow some kinds of debugging easily 2024-05-14 12:25:58 -06:00
e75ad3399e
Fix BBT marker calculation when removing time 2024-05-14 03:20:04 +02:00
aa55bf35eb
Catch issues with invalid region vs. source length
e.g. the session from
https://tracker.ardour.org/view.php?id=9704#c28732
2024-05-14 02:12:45 +02:00
68d3be8918
Support querying disk space for disks > 16TB
under the hood `fsblkcnt_t` is used.
2024-05-13 21:32:10 +02:00
2f32a22a4d Revert "ensure that the master send is directly before the main outs."
MasterSends are not (currently) part of Ardour.

This reverts commit dcdcaf4b47.
2024-05-10 15:16:13 -06:00
384739aa80 Revert "fix for metering of a MasterSend (internal send)"
MasterSends are not (currently) part of Ardour.

This reverts commit de1a425704.
2024-05-10 15:15:32 -06:00
fce1f15a87 avoid timecnt_t exception when loading a region with an excessively long length
This is not a fix for whatever underlying problem causes this, but it does allow sessions to load
when the faulty region(s) are not in use
2024-05-10 08:36:06 -06:00
dcdcaf4b47 ensure that the master send is directly before the main outs. 2024-05-10 08:35:03 -06:00
de1a425704 fix for metering of a MasterSend (internal send)
Metering for these sends should be effectively PostFader not Output,
and should not reflect the impact of solo & mute.
2024-05-10 08:35:03 -06:00
edc03002eb for DEBUG::Processors, use display_name() not name()
This allows us to differentiate between different instances of the same
type of processor (e.g. Trim vs Fader, which are both of type Amp)
2024-05-10 08:35:03 -06:00
88df55f86d
Remove debug messages, cleanup output (2/2) 2024-05-08 00:56:57 +02:00
Mattias Ohlsson
10109c3147
Fix typos 2024-05-07 18:52:02 +02:00
4b8b5acfc4
Fix builds with gcc-14 lstat (#9703 PR #893)
from stat(2)
```
lstat():
    /* glibc 2.19 and earlier */ _BSD_SOURCE
        || /* Since glibc 2.20 */ _DEFAULT_SOURCE
        || _XOPEN_SOURCE >= 500
        || /* Since glibc 2.10: */ _POSIX_C_SOURCE >= 200112L

```
2024-05-07 00:17:56 +02:00
70898a676b
Allow to run IOTasklist without rt permissions 2024-05-06 23:20:26 +02:00
fdd91cc325 remove debug output 2024-05-05 15:05:09 -06:00
81d1724931 NO-OP: add clarifying comment 2024-05-05 15:01:54 -06:00
100ee72cec
Fix copying RegionFx Automation 2024-05-03 14:44:49 +02:00
37d24eee7d
Flush Audioregion local [fx] cache when changing region gain 2024-05-02 23:04:50 +02:00
27e2348b47 when capturing a midi pgm change, display the pgm num (for LT) 2024-05-02 12:43:12 -05:00
John Emmas
631ee17e34 Modify class ARDOUR::DiskReader because it now includes members declared using 'thread_local'
On Windows, variables defined as having thread storage can have a different address in different threads and as such, they aren't allowed to be imported or exported from a DLL.
2024-05-02 10:22:44 +01:00
99e2ac28e1
Update debug message to include regionfx and offset 2024-05-01 22:30:04 +02:00
b9da1a5bd5
Expose HW concurrency to LV2 plugins 2024-05-01 03:51:42 +02:00
5b9e4fff63
Parallelize Disk I/O and RegionFx processing 2024-04-30 03:46:39 +02:00
4b0da72bc2
Delegate all DiskReader I/O to the IOTaskList (amend 170b9150) 2024-04-30 01:55:44 +02:00
ee87b068e8
Move RegionFx ThreadBuffers to Butler thread 2024-04-30 01:54:33 +02:00
170b915038
Prepare for parallel Disk I/O 2024-04-30 00:01:32 +02:00
2af2df3516
Raise the butler's I/O priority
This likely won't make much difference on modern systems,
since it requires a kernel based I/O scheduler. which is
disabled (set to "none" for NVMe and SSDs).
2024-04-29 21:46:06 +02:00
e90e31d682
Add a Tracks/Waveform icon 2024-04-29 21:00:27 +02:00
5f7ecf59a5
Allow to compile w/o LV2 support (trax) 2024-04-28 17:50:51 +02:00
21a39c5f1f profile initialization per-program needs to happen earlier, in ARDOUR::init() 2024-04-25 13:07:00 -06:00
87f40ddc7f some libardour support for MIDI scene support 2024-04-25 13:07:00 -06:00
a0756429cf auto-fication of a loop in InternalReturn 2024-04-25 13:07:00 -06:00
7bcdd5b2e4 NO-OP: add space before bracket 2024-04-25 13:07:00 -06:00
e3b21ed77a NO-OP: linebeeak removed 2024-04-25 13:07:00 -06:00
125b0f9432 add a new Profile flag for livetrax 2024-04-25 13:07:00 -06:00
16ed245977 allow true boxy buttons for ArdourButtons
Also add a default tweaks static member to force all buttons to a given tweak state
2024-04-25 13:03:52 -06:00
46fa056da6 add unrounded rectangle methods to Gtkmm2ext for use in truly boxy buttons 2024-04-25 13:03:52 -06:00
354e60d657
Drop session's monitor bus reference when removing the bus 2024-04-25 19:18:06 +02:00
848832f8b0
Flush GraphNode RCU when removing Routes
Since 44610c787 RCU keeps references until another write happens.
even before then, some shared_ptr references may have been kept.

When using a process graph, a route's activision-set can
hold references to other graph-nodes (routes). This lead
to Routes not being deleted until a second graph-reorder
flushed the RCU.
2024-04-25 19:18:06 +02:00
4665cdcb6b
Add icons for livetrax (lock, mixer, meter) 2024-04-25 02:21:10 +02:00
b00ddcfe1c
Fix -Waddress (and expand tabs)
The expansion of the macro resulted in:
"the comparison will always evaluate as 'true' for the address of .."
2024-04-24 18:06:27 +02:00
agfline
41587d3c06
Update libaaf to v1.0-11-gb04c547 2024-04-24 17:13:00 +02:00
895fe2f753
Fix Windows builds 2/2 (amend b2d4280e0) 2024-04-24 06:08:26 +02:00
df12126909
Fix Windows builds 1/2 (amend bcbb4393fc) 2024-04-24 06:02:13 +02:00
457238ec2e
Per [Audio] Region Fx
* apply effects during region-read in non-rt context
* Add multi-channel audioregion read cache
  to process stereo effects
2024-04-23 21:56:15 +02:00
1996945353
Add custom RegionFxPlugin
Less than a PluginInsert but more than an IOPlug.
2024-04-23 21:56:10 +02:00
b04fa05f20
NO-OP: sort debug bits 2024-04-23 21:55:59 +02:00
59b2369736
Remove unused gain-buffer for master-read (NOOP) 2024-04-23 21:52:02 +02:00
f3823e8d7c
Fix redeclaration of DnDVbox 2024-04-23 21:51:55 +02:00
2bb4a9ac4e
Add API to configure plugins for non-realtime offline processing 2024-04-23 21:51:50 +02:00
f858316503
Plugins: Ignore offset for scratch/silent buffers
This allows to process buffers at an offset, as long
as the number of processed samples is less or equal to the
current buffersize.
2024-04-23 21:51:19 +02:00
2ca5f28910
NO-OP: whitespace 2024-04-23 21:51:07 +02:00
2f6a428f05
Overhaul and optimize thread-buffer allocation
Every route calls Session::ensure_buffers when configuring
processors. Previously that unconditionally invoked the
BufferManager, even if no change was required.

This also fixes a potential issue when bouncing tracks.
::write_one_track() increases the buffersize to 8k, but only for
the ChanCount required to bounce. This was never properly reset.

Furthermore this is in preparation for RegionFX which may
need to increase the ChanCount of Threadbuffers.
2024-04-23 21:51:04 +02:00
6dfcb60763
Automatable find_next/prev_ac_event requires no context
This allows to use the functions from a class that
does not inherit from Automatable but has AutomationControls
with an AutomationList.
2024-04-23 21:50:58 +02:00
f111f200c1
Fix signal analysis when buffer-size changes
PI::signal-analysis buffers were not updated when a user
changes the buffersize.

This also remove a single use Session API.
2024-04-23 21:49:48 +02:00
df8106bd85
PluginInsert match I/O: skip div by zero 2024-04-23 21:49:41 +02:00
92183430b9
IOPlug: various small fixes (port-names, VST compat, etc) 2024-04-23 21:49:28 +02:00
5216a6d987
Refactor and consolidate setting and copying plugin state 2024-04-21 16:32:47 +02:00
f5b53a6d14
Consolidate PluginInsert Match, move to parent class 2024-04-21 16:32:47 +02:00
2da3141706
Consolidate plugin_factory, move to parent class 2024-04-21 16:32:47 +02:00
d2bdf440c8
Consolidate PluginControl Code
This code was (for the most part) duplicated, and with
preparation for Region FX, a third copy motivated this
consolidation.
2024-04-21 16:32:47 +02:00
6191f89d55
Properly update Solo state when setting multiple ctrls 2024-04-21 16:32:13 +02:00
bcbb4393fc
Allow Lua [session] script to directly set controllables 2024-04-21 16:32:10 +02:00
894e6d27a4 NOOP: whitespace cleanup 2024-04-19 10:43:10 -06:00
c96e12ba58 expand null/destroyed tests for gdk objects in NSView methods 2024-04-19 10:42:59 -06:00
e64a071e39
(YDK) amend previous commit, call parent method 2024-04-19 16:46:49 +02:00
08e394f681
(YDK) possible fix for Catalina event loop crashes
```
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libydk.dylib 0x0000000110d8942d -[GdkQuartzView setNeedsDisplay:] + 93
1 com.apple.AppKit 0x00007fff34af6848 -[NSView(NSViewContentStyle) _recursivelyInvalidateCachedContentStyle] + 120
2 com.apple.AppKit 0x00007fff34af60fb -[NSView _setSuperview:] + 521
3 com.apple.AppKit 0x00007fff34b200a6 -[NSView removeFromSuperview] + 140
4 com.apple.AppKit 0x00007fff34ba882f -[NSView removeFromSuperviewWithoutNeedingDisplay] + 36
5 com.apple.AppKit 0x00007fff34b27168 -[NSView _finalize] + 977
6 com.apple.AppKit 0x00007fff34b26c0c -[NSView dealloc] + 121
7 com.apple.AppKit 0x00007fff34e30db4 -[NSFrameView dealloc] + 119
8 com.apple.AppKit 0x00007fff34e30d36 -[NSTitledFrame dealloc] + 62
9 com.apple.AppKit 0x00007fff34e30ce9 -[NSThemeFrame dealloc] + 603
10 com.apple.Foundation 0x00007fff39ed5992 NSKVODeallocate + 172
11 com.apple.AppKit 0x00007fff34d85884 -[NSWindow dealloc] + 1083
12 com.apple.AppKit 0x00007fff34d85442 -[NSWindow _dealloc] + 76
13 libobjc.A.dylib 0x00007fff6f6f3054 AutoreleasePoolPage::releaseUntil(objc_object**) + 134
14 libobjc.A.dylib 0x00007fff6f6d7dba objc_autoreleasePoolPop + 175
15 com.apple.CoreFoundation 0x00007fff377c9cb5 _CFAutoreleasePoolPop + 22
16 com.apple.Foundation 0x00007fff39e7d04e -[NSAutoreleasePool drain] + 126
17 libydk.dylib 0x0000000110d8ef29 gdk_event_prepare + 73
18 libglib-2.0.0.dylib 0x00000001110ded45 g_main_context_prepare + 533
19 libglib-2.0.0.dylib 0x00000001110df800 g_main_context_iterate + 128
20 libglib-2.0.0.dylib 0x00000001110dfcc2 g_main_loop_run + 210
21 libytk.dylib 0x0000000110a4f11f gtk_main + 191
22 libgtkmm2ext.dylib 0x00000001104cef1e Gtkmm2ext::UI::run(Receiver&) + 318
23 com.harrisonconsoles.Mixbus10 0x000000010dc6fb9c main + 2652
```
2024-04-19 15:38:12 +02:00
136b7f42d5
Skip tags for plugins that are not installed
This prevents empty sub-menus in the "By Tag" Plugin menu.
2024-04-18 17:07:12 +02:00
Edgar Aichinger
c9c419213f
update german translation 2024-04-14 00:42:09 +02:00
e7b3b61dbc fix bad redraws caused by TrackingText on canvas
Probably Item::set_position() should call Item::set_bbox_dirty() but
this will do as a first pass at that
2024-04-12 18:50:03 -06:00
44610c7877
Fix RCU race condition (see source for details) 2024-04-12 00:26:51 +02:00
fe7fd146aa macOS: fix crash when trying to enter fullscreen while already in fullscreen
YDK2 uses SetSystemUIMode() for fullscreen. This also uses space
otherwise reserved for the menu bar at the top, and is apparently
preferable for Ardour's UI.

However when a user manually enters fullscreen using the window
title-bar's green button (NSWindow toggleFullScreen). YDK will crash
when the user then also tries to use YDK's fullscreen mode:

```
NSWindowStyleMaskFullScreen cleared on a window outside of a full screen transition.
called from
  [NSWindow setStyleMask:]
  gdk_window_set_decorations
  gdk_window_fullscreen
```

Ideally we'd set NSApp presentation flags so that the toplevel window
would allow one to zoom (maximize), but not to enter fullscreen. Like it
used to be on OSX. It is unclear how to achieve this on macOS for
resizable windows, short of marking the top-level window a dialog or
utility window.
2024-04-10 20:41:49 +02:00
6b3fbefd26
Revert "Debug AVX512f crashes"
This reverts commit 0eed49b48e.
2024-04-10 15:44:40 +02:00
0eed49b48e
Debug AVX512f crashes 2024-04-10 03:22:05 +02:00
3d375f12ed
NOOP: whitespace 2024-04-10 03:10:43 +02:00
d023ea0d77
Fix potential memory corruption in AVX512f DSP 2024-04-10 03:09:27 +02:00
8a7d92f196
Fix MonotorProc's channel_solo_control
Previously only ::set_solo() worked. Directly using the
controllable did not update `solo_cnt` and other channels
were not muted.
2024-04-09 22:02:31 +02:00
cde26c5205
Set default time domain to Audiotime to sidestep various MusicTime issues 2024-04-09 18:36:43 +02:00
ecd22e9aa8 Remove call to deprecated userSpaceScaleFactor
userSpaceScaleFactor is a missing symbol on some recent versions of macOS.
2024-04-09 06:06:58 +02:00
826103f08c
Pitch bend is not unreasonable 2024-04-09 02:10:19 +02:00
2e991b0067
Fix thinko in bda7041643 2024-04-04 17:32:50 +02:00
3b0e421de4
Use proper _POSIX_C_SOURCE constant 2024-04-04 17:06:31 +02:00
bda7041643
Fix #9642 - fdopen(3) requires _POSIX_C_SOURCE
Without this, fdopen() returns some garbage FILE* which
causes a crash when used.
2024-04-04 17:06:28 +02:00