Commit graph

16961 commits

Author SHA1 Message Date
Paul Davis
12d361f43d clear clicks when starting transport 2021-04-19 16:14:08 -06:00
Paul Davis
fc6cf7ddac simplify, improve and correct logic in Session::set_transport_speed() 2021-04-19 16:14:08 -06:00
Paul Davis
14c2fdccf4 use correct API in a do-nothing-but-forced locate to start rolling 2021-04-19 16:14:08 -06:00
Paul Davis
b8c7ad6a9b better/correct logic (and macro) to reset default speed at stop (when relevant)
This also resets things after rewind/ffwd
2021-04-19 16:14:08 -06:00
Paul Davis
3fa027f19d correctly use a valid out-of-bounds value for Session::_requested_transport_speed 2021-04-19 16:14:08 -06:00
Paul Davis
eb1468718a fix ambiguity in TransportFSM Event constructors 2021-04-19 16:14:08 -06:00
Paul Davis
dc19aa866b change API for Session::set_transport_speed() to include "at-next-start" option 2021-04-19 16:14:08 -06:00
Paul Davis
0bc5f88a65 fix logic error in transport FSM (compare with adjacent conditionals) 2021-04-19 16:14:08 -06:00
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