Robin Gareus
725c00236c
Disambiguate export formats with same loudness but different true-peal
...
Amend 75829d20f2
2021-04-16 04:29:16 +02:00
Robin Gareus
861417c07c
Disable rec-arm on export
...
Previously this wasn't the case when latched-record-enable
preference was enabled.
2021-04-16 04:29:12 +02:00
Robin Gareus
63ef60ea93
Fix formatting of `-inf' on some Windows systems
...
Among others, this fixes tooltip display on aux-send faders
2021-04-14 17:58:30 +02:00
Robin Gareus
f410dc433c
Fix Lua get_processor_param API
2021-04-14 17:53:56 +02:00
Robin Gareus
a1d53c1d2e
Fix linking unit-tests with lld
...
ld.lld: error: libs/pbd/libpbd.so: undefined reference to dlopen [--no-allow-shlib-undefined]
2021-04-13 23:29:02 +02:00
David Robillard
69e5fd1c99
Fix audiographer normalizer test
...
Build broken in 75829d20f2 .
2021-04-13 14:59:05 -04:00
Robin Gareus
883f818626
Fix C++11ism
2021-04-13 05:35:29 +02:00
Robin Gareus
baf8fe7bc5
Propter may accept current value
2021-04-12 23:16:20 +02:00
Robin Gareus
f0cb8e54c3
Fix taglib error message
2021-04-12 23:15:30 +02:00
Robin Gareus
c4f0393cf9
Keep track of export-limiter redux
2021-04-12 23:15:30 +02:00
Robin Gareus
89a65f76b0
Update analysis duration when post-processing
...
This prevents the need to re-bin data in case silence is
trimmed at start or end of the export.
2021-04-12 23:15:30 +02:00
Robin Gareus
df47da4e55
Disambiguate export filename early on
...
When exporting multiple formats with identical filename
extension for the same time-span, the format-name needs
to be added.
Previously that was done internally when starting to export.
The Export-Dialog did not show correct filenames nor
warn of existing files that will be overwritten.
2021-04-12 23:15:30 +02:00
Robin Gareus
75829d20f2
Overhaul export loudness normalization
...
* Fix exporting multiple formats with different
normalization settings or demo-noise settings
* Add true-peak limiter (based on x42-limiter dpl.lv2)
* Optionally use a limiter for loudness normalization
* Fall back to short-term loudness when normalizing
material too short for integrating loudness.
2021-04-12 23:15:30 +02:00
Robin Gareus
8f5c3fcddb
Fix non-layered record-undo
...
Previously an empty RegionList was used (auto-partition
changes were never collected at rec-stop), furthermore
auto-partitioned regions do not have an old ARDOUR::AutomationList
(fade in/out) property (_have_old is false).
2021-04-12 23:14:13 +02:00
Edgar Aichinger
5d12aa15f5
update german translation
2021-04-11 17:44:17 +02:00
Robin Gareus
5cd6c261b7
Revert "Fix MIDI capture alignment"
...
This reverts commit 3fe87b9fa1 .
This commit incorrectly overcompensated MIDI. The DW already
aligns to _first_recordable_sample.
2021-04-11 15:15:33 +02:00
Robin Gareus
635d83709b
Fix MIDI source write-names
...
This follows bb50925998 ,
Prevent leaking "recorder:" into the file-name, and fixes
a related bug setting the "captured for" ID for MIDI
2021-04-11 15:15:29 +02:00
Robin Gareus
8661aa1809
ALSA: Fix swapped systemic latencies
...
This went unnoticed since measured systemic latency
is equally distributes between input and output.
2021-04-11 15:15:17 +02:00
Robin Gareus
bc1d19ab39
Increase process-thread stack size (same value as jack2)
2021-04-09 22:00:11 +02:00
Robin Gareus
5e01275d0e
Set default master-bus meter-point to output
...
For master-bus measuring the signal directly at the
output is preferable. This includes the panner, mute,
and loudness gain.
2021-04-08 01:18:09 +02:00
Robin Gareus
72db091619
Fix crash at exit with classic Faderport
...
FaderPort::~FaderPort () can be called while
FaderPort::map_gain() is called from FaderPort::periodic()
```
Thread 71 Crashed:
0 libardour_faderport.dylib 0x0000000110539c3a ArdourSurface::FaderPort::map_gain() + 138
1 libardour_faderport.dylib 0x000000011053996d ArdourSurface::FaderPort::periodic() + 109
2 libglibmm-2.4.1.dylib 0x000000010bf21da8 Glib::TimeoutSource::dispatch(sigc::slot_base*) + 56
3 libglibmm-2.4.1.dylib 0x000000010bf20c97 Glib::Source::dispatch_vfunc(_GSource*, int (*)(void*), void*) + 39
4 libglib-2.0.0.dylib 0x000000010c012496 g_main_context_dispatch + 326
5 libglib-2.0.0.dylib 0x000000010c01281a g_main_context_iterate + 474
6 libglib-2.0.0.dylib 0x000000010c012b3f g_main_loop_run + 191
7 libpbd.dylib 0x000000010bcee42e BaseUI::main_thread() + 254
8 libglibmm-2.4.1.dylib 0x000000010bf16373 (anonymous namespace)::call_thread_entry_slot(void*) + 35
9 libglib-2.0.0.dylib 0x000000010c03dd0a g_thread_proxy + 90
10 libsystem_pthread.dylib 0x00007fff759e42eb _pthread_body + 126
11 libsystem_pthread.dylib 0x00007fff759e7249 _pthread_start + 66
12 libsystem_pthread.dylib 0x00007fff759e340d thread_start + 13
```
While the GUI thread has already closed the MIDI ports in ~FaderPort
and proceeded to take down the FP GUI.
```
Thread 0:: Dispatch queue: com.apple.main-thread
47 libgtkmm-2.4.1.dylib 0x000000010ca69a56 Gtk::ComboBox::~ComboBox() + 22
48 libardour_faderport.dylib 0x000000011055a6e5 ArdourSurface::FPGUI::~FPGUI() + 149
49 libardour_faderport.dylib 0x000000011055a8b5 ArdourSurface::FPGUI::~FPGUI() + 21
50 libardour_faderport.dylib 0x0000000110551396 ArdourSurface::FaderPort::tear_down_gui() + 70
51 libardour_faderport.dylib 0x0000000110536507 ArdourSurface::FaderPort::~FaderPort() + 535
52 libardour_faderport.dylib 0x0000000110536b9e ArdourSurface::FaderPort::~FaderPort() + 14
53 libardour.dylib 0x000000010ac13f08 ARDOUR::ControlProtocolManager::drop_protocols() + 168
54 libardour.dylib 0x000000010b0ba7e4 ARDOUR::Session::destroy() + 212
55 libardour.dylib 0x000000010b0bbe01 ARDOUR::Session::~Session() + 113
56 libardour.dylib 0x000000010b0bdb5e ARDOUR::Session::~Session() + 14
2021-04-07 02:25:52 +02:00
Robin Gareus
c1d98ca3c8
Export analysis: log loudness / time
2021-04-07 01:46:02 +02:00
Robin Gareus
e3a6fab05e
EBU/VAMP: clang-format and reduce scope
2021-04-07 01:45:29 +02:00
Robin Gareus
7390cad25d
Port registration should not mark the session as modified
...
This fixes dirty session after freewheeling export
or analysis.
2021-04-05 03:29:42 +02:00
Daniel Ceregatti
362b9cb4fa
Maschine Mikro MK2 support
2021-04-01 20:07:55 +02:00
Robin Gareus
723534f430
Further limit size of shaded "+" icon
2021-03-31 01:43:35 +02:00
Robin Gareus
edfcc71bcf
Revert "Fix auto capture alignment when bouncing metronome"
...
When the metronome is routed through a track, it
will correctly get the downstream playback latency.
Capture Alignment is Capture-Time.
This fixes a case where the metronome is connected to
physical I/O and a track. This can result in ambiguous
latency if the track's output is not connected or
connected via latent master bus.
This reverts commit f08b90f368 .
2021-03-30 21:08:31 +02:00
Robin Gareus
ea01ec5988
Correctly detect glib volatile atomic
...
see also https://gitlab.gnome.org/GNOME/glib/-/merge_requests/1919
2021-03-30 15:29:53 +02:00
Robin Gareus
d87002617e
Implement zero-latency convolver
2021-03-30 01:29:32 +02:00
Robin Gareus
cce1a67e75
zita-convolver: fix hang at when re-loading state
...
The convolver may be re-activated shortly after initialization
(e.g. session load, switching snapshots, or buffer-size.
In this case not all process threads may have started.
Convproc::stop_process() skips them (their state is still ST_IDLE).
Yet some short time later the thread's main function runs
and changes the state to ST_PROC, and check_stop () waits forever.
This is solved by waiting for all threads to start.
2021-03-30 01:29:28 +02:00
Robin Gareus
f7ab563da0
zita-convolver: prepare for non-power-of-two processing
2021-03-29 15:52:02 +02:00
Robin Gareus
915ce04a44
zita-convolver: remove unused API
2021-03-29 15:49:57 +02:00
Robin Gareus
1b1ef165d3
zita-convolver: add some const'ness
2021-03-29 15:36:09 +02:00
Robin Gareus
a270dc76d6
zita-convolver: always scope branches and loops
2021-03-29 15:34:44 +02:00
Robin Gareus
eebe4e467b
VST3: pass a read-only state stream to the plugin #8642
...
see also 9e7cfdd880 - this is a workaround for some plugins
that do not use the SDK and seek the stream using absolute
offsets.
2021-03-29 14:48:01 +02:00
Robin Gareus
7ea1b7c3c2
a-delay: BPM is independent of the meter (quarter notes / min)
2021-03-28 18:23:07 +02:00
Robin Gareus
fdc3efda7e
Add Lua binding to rename session
2021-03-27 19:44:00 +01:00
Robin Gareus
c96462f7bb
maschine2: gtk is an indirect dependency of libgtkmm2ext
2021-03-26 18:44:20 +01:00
Robin Gareus
60ff3ef764
Work around ffado port-name idiosyncrasies
2021-03-26 17:18:23 +01:00
Robin Gareus
e6496ab032
Ignore ARDOUR_DATA_PATH env variable on windows
...
The variable is unset (and unused), windows_search_path()
is used on that platform.
This prevents the "ARDOUR_DATA_PATH not set in environment"
message from being printed.
2021-03-26 17:15:12 +01:00
Robin Gareus
c51c254fae
Do not input-monitor ALSA/JACK MIDI-Through ports
2021-03-26 16:46:15 +01:00
Robin Gareus
ad4e92380a
Add a shaded plus (+) icon
2021-03-26 14:35:51 +01:00
Robin Gareus
fb33b4c2f3
Add convenience API to render icons on signal_expose_event
2021-03-26 14:35:45 +01:00
Robin Gareus
345726e223
Get NI maschine surface to compile again
2021-03-26 01:16:30 +01:00
Robin Gareus
32c7b18f6d
Relax export preparation timeout
...
This increases timeout granularity and ensure that
rt (TSFM) and butler thread can run to prepare exports.
This may fix an issue some windows users reported
"Cannot prepare transport for export", and increasing
the buffersize to 1024 or 2048 works around the isssue.
This also fixes an edge-case usecs_per_cycle() may return -1
(sleep forever) when the engine dies.
2021-03-25 21:15:13 +01:00
Robin Gareus
b174326228
Fix crash when using exclusive Mixbus listen
2021-03-24 19:16:31 +01:00
Robin Gareus
c1f1cd5b3e
Prepare for foldback bus A/PF Listen
2021-03-24 17:47:53 +01:00
Robin Gareus
bbb244c1c9
Implement replacing events in the immediate queue
...
This corrects issues introduced in a75c239c0c ,
and fixes MIDI playback.
2021-03-24 04:05:35 +01:00
Robin Gareus
cc7b8b1bc5
gcc-11 compat, volatile atomic variables (1/2)
...
"While 'atomic' has a volatile qualifier, this is a historical
artifact and the pointer passed to it should not be volatile."
Furthermore "It is very important that all accesses to a
particular integer or pointer be performed using only this API"
(from https://developer.gnome.org/glib/2.68/glib-Atomic-Operations.html )
Hence initialization of atomic variables is changed to also use
this API, instead of directly initializing the value.
This also fixes a few cases where atomic variables were
accessed directly.
see also libs/pbd/pbd/g_atomic_compat.h
2021-03-22 15:30:07 +01:00
Robin Gareus
a75c239c0c
Do not accumulate SessionEvent::Overwrite events #8576
2021-03-22 02:54:42 +01:00