Paul Davis
48e5607f7c
use Session::request_roll() instead of request_transport_speed (1.0, ...)
2021-04-19 16:14:08 -06:00
Paul Davis
52b7e68102
use new Session transport API calls in GUI
2021-04-19 16:14:08 -06:00
Paul Davis
cc8dcb9859
use StartRoll and EndRoll events in request_start() and request_roll()
...
Rather than ::request_transport_speed
2021-04-19 16:14:08 -06:00
Paul Davis
6d5cafb3b6
move various transport logic chunks into Session::realtime_stop(), Session::stop_transport() and Session::start_transport
2021-04-19 16:14:08 -06:00
Paul Davis
79f1ff3df3
fix thinko in TransportFSM's handling of deferred events
...
If a deferred event was used in process_event() but was deferred again, we deleted it. That was wrong,
it should remain in the deferred_events queue.
2021-04-19 16:14:08 -06:00
Paul Davis
11416bf9d1
improve/fix/simplify logic for TransportFSM speed handling
2021-04-19 16:14:08 -06:00
Paul Davis
c65daaa3d6
libardour: change API for Session::set_transport_speed()
...
We no longer need the abort/clear_state arguments because this method only controls speed,
not transport state
2021-04-19 16:14:08 -06:00
Paul Davis
229ea31f34
transport masters: use Session::request_stop() rather than Session::request_transport_speed()
2021-04-19 16:14:08 -06:00
Paul Davis
e5790c6b70
incoming MIDI: use Session::request_stop() rather than Session::request_transport_speed()
2021-04-19 16:14:08 -06:00
Paul Davis
6b7be1083b
no need to request stop if locating with MustStop
2021-04-19 16:14:08 -06:00
Paul Davis
5a159abe1f
new SessionEvents for start/stop transport
2021-04-19 16:14:08 -06:00
Paul Davis
aeed50b1cc
add Session::reset_transport_speed()
2021-04-19 16:14:08 -06:00
Paul Davis
ec367f49e1
add Session::request_transport_roll()
...
Start separation of API for controlling rolling state from that used for speed
2021-04-19 16:13:38 -06:00
Robin Gareus
71788ecfe4
Update to fluidsynth-2.2
2021-04-18 22:02:57 +02:00
John Emmas
8437d0a54a
Add/remove source(s) in our MSVC project (audiographer)
2021-04-17 11:21:33 +01:00
Robin Gareus
e0a6aba28d
Ignore saved port-name when loading ctrl-surface state
...
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
Robin Gareus
c212909282
Ctrl-surface: do not name single-channel bundle ports
...
Follow Session::setup_bundles() lead for single channel
MIDI bundles. This cleans-up the port-matrix display and
removes redundant names. The underlying engine port-name
is not of interest to the user.
2021-04-17 00:43:20 +02:00
Robin Gareus
c0fe67427d
Fix crash if no audition synth is unset
...
This was possible if a user explicitly selects "-none-" from
the instrument dropdown.
2021-04-16 22:14:25 +02:00
Robin Gareus
b928c62e49
Remove unused auditioner MIDI port
...
Since 2014 Ardour always has and uses a synth for MIDI
auditioning. External synth for audition was never really
supported.
2021-04-16 22:13:12 +02:00
Robin Gareus
b23f260d21
Move glib include out of PBD namespace
...
strictly speaking the include is not needed here since
g_atomic_compat.h includes glib.h. However it is idempotent,
the file does use glib methods, and g_atomic_compat.h may
one day be removed again.
2021-04-16 17:43:31 +02:00
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