13
0
Commit Graph

30291 Commits

Author SHA1 Message Date
13ed8da2bc
Add flag to allow ALSA backend to fall back to nearest avail. nperiods 2020-04-28 02:51:20 +02:00
30a60f45df show MTC transport master latency when computed 2020-04-27 15:44:28 -06:00
2587ad6dc3
Ignore unconnected ports for latency-compensation
This fixed a false-positive "ambiguous latency" warning for
MIDI busses:

 MIDI track -midi-> MIDI Bus w/instrument -audio|midi-> master

The master-bus only has audio inputs, so the MIDI Bus'
MIDI out is left unconnected. Its latency does not matter,
it can float freely.

Previously it was assumed to be zero. So the MIDI Bus' input
playback latency range was [0, master-bus playback-latency].
2020-04-27 23:10:21 +02:00
c56e99cd09 nominal improvement for MTC master: use port latency to adjust sampletimes that MTC events "occured at" 2020-04-27 15:02:29 -06:00
Johannes Mueller
1280360a65 Revert "Fix 8061 (partly): Don't scroll down if no further tracks to scroll to"
This reverts commit 81cbf36c56.

Limiting scrolling has other drawbacks. A proper fix for the redraw issue
has to be found.
2020-04-27 22:58:32 +02:00
Johannes Mueller
81cbf36c56 Fix 8061 (partly): Don't scroll down if no further tracks to scroll to
The issue remains if a track is selected by a "fit-selection" action second
last track covers the whole trackview. Then when scrolling one track up, the
huge track disappears and a smaller track follows, that covers a lot less
space.

-> Proper redraw of the track view is still needed.
2020-04-27 21:51:57 +02:00
24d3bf25a9
Don't call into engine for queued latency updates 2020-04-27 17:28:26 +02:00
09f9cd377d
Prevent excessive latency recomputations
Session::update_latency() may be called multiple times with
the process-lock being held.
2020-04-27 16:31:40 +02:00
d6242f35f5
Remove debug message 2020-04-27 16:26:36 +02:00
e6de7957ee
Move US2400 device profile to shared data
This file is not referenced by any bundle script nor wscript
install directives. Perhaps it's not needed?
2020-04-27 16:20:07 +02:00
74de320bd9
Update source-tree layout description 2020-04-27 16:15:52 +02:00
8aa4ae825d
Skip delayline updates if no change is required 2020-04-27 14:08:37 +02:00
38c61b6dab fix design and implementation of (GUI) transport controllables to make them usable with MIDI CC control
The old code meant that their current value was always zero, and that they would do nothing unless
the new value exceeded 0.5
2020-04-26 23:00:12 -06:00
1983f56592
Work around jack2's insane thread semantics
jack2 can process in parallel with calling a graph-order or
latency-callback, so Ardour takes a lock to update those in sync.

Yet jack2 can also block while port-registrations happen,
and concurrently emit latency-callback from another thread..
2020-04-27 04:10:18 +02:00
b0daa85bfb
Prevent race between adding ports and IO port-lookup 2020-04-26 22:17:18 +02:00
31c39ed869
Remove duplicate i/o latency calculation
Port and connection changes always imply a latency_callback from
the engine. Worst I/O latency is updated directly in
Session::update_latency() which is called from
AudioEngine::latency_callback.

Explicit subscriptions to route->output()->changed() is not needed
to update the worst I/O latency.

Only set_block_size() needs to to update the I/O latency when
the buffer-size changes.
2020-04-26 21:34:26 +02:00
842e841e0d
Remove common prefix for latency debugging
-DLatency now triggers all four:
  * LatencyCompensation (entry-points, overall flow)
  * LatencyIO (Port/IO query, set/get private/public)
  * LatencyDelayLine (Delaylines for internal sends and alignment)
  * LatencyRoute (route processor latency)
2020-04-26 21:25:07 +02:00
de819e579a
Fix a deadlock (process_lock vs _update_latency_lock)
The backend may call update_latency() while at the same time
the auto-connect-port calls set_worst_io_latencies().

The latter already holds the process-lock, so update_latency()
first needs to acquire it, as well. If one already holds the
_update_latency_lock, one must not ask for the process-lock.

---

Previously Ardour's connection manager first took the process_lock
and then waited to the _update_latency_lock.
Meanwhile jack calls latency_callback(), takes the
_update_latency_lock and waits for the process_lock.
Classic deadlock.
2020-04-26 20:25:31 +02:00
Edgar Aichinger
68799805aa
Update German translation 2020-04-26 14:09:55 +02:00
3785cbbf03
Cont'd work on delayline-config (amend b196cef2) 2020-04-26 05:55:43 +02:00
0067a4596d
Speed up loading sessions with synths
LV2 plugins may add a MIDNAM file when they're loaded.
This can be happen concurrently with the MidiPatchManager,
loading the system-wide patch files.

Session load should not be interrupted by the initial
background scan of patch files, which can take a very long time.
We need to allow update_custom_midnam() to grab the _lock.
2020-04-26 04:55:59 +02:00
8399abd277
Fix translatable strings and translations (so far)
The typos in the original English were reported by Edgar
Aichinger while working on the German translation.
2020-04-26 03:19:22 +02:00
e97ea38108 update gtk2_ardour czech translations (Pavel Frich) 2020-04-25 10:39:29 -06:00
Nils Philippsen
845d7d3a3b Recognize dist, distcheck better to set app name
Previously, `dist` had to be the first argument to waf. If it came in a
different position (e.g. `APPNAME=Ardour ./waf tarball dist`) or
`distcheck` was used instead of `dist`, the resulting archive was named
`noname-....tar.bz2`.

Signed-off-by: Nils Philippsen <nils@tiptoe.de>
2020-04-25 10:39:29 -06:00
02e5605cdd
NO-OP: reduce scope, return early 2020-04-25 18:24:42 +02:00
b9c29c478c
Remove unused signal 2020-04-25 17:53:49 +02:00
b196cef2c4
Prevent delay-line reconfiguration while processing
Various backends have different strategies for updating latencies,
and different thread semantics for latency update callbacks.

With jack2 it is possible that processing happens concurrently
while port latencies are being changed.

Ardour internal backends emit the latency callback from the
main process thread, serializing latency changes with processing.

Various user actions can also trigger latency changes. e.g.
with a stopped engine it is possible to re-order plugins.
2020-04-25 17:52:54 +02:00
7751841b78
Allow to un/link panner directly from the panner #8024
When editing a sends, this allows to unlink send panner via
the panner's context menu.

NB. After 6.0-rc string freeze the context menu needs an update.
So far the text from the Processor Box context menu is reused.
2020-04-25 16:26:37 +02:00
e16ac09e54
Clean up 135814cf0, prefer PannableChanged signal
This allows to also catch cases when a panner-ui directly changes
set_linked_to_route() of the panner shell.
2020-04-25 16:26:37 +02:00
Nil Geisweiller
ba31151c42 Redisplay list editor when the region is moved or resize
Using connection list to not overwrite the previous connection
2020-04-25 09:40:56 +03:00
Nil Geisweiller
95b00315c0 Fix midi editor to only display notes within temporal visible region 2020-04-25 09:40:56 +03:00
6c9b03e2a3
Lua Dialog, fill window with single widget
This is particularly helpful with a file-selector (e.g. mixer
ccreenshot Script)
2020-04-25 05:33:16 +02:00
18228edd54 use ardour button rather than gtk::button in transport master widget 2020-04-24 15:54:29 -06:00
b1d5e8611f carefully position floating text entry when editing transport master names 2020-04-24 15:54:15 -06:00
afc8dd9022 fix thinko in Session::should_ignore_transport_request() and drop out of external sync if command is allowed
The semantics are that if the user configures things to allow transport commands while
using a transport master, issuing such commands first stops using the master
2020-04-24 14:22:06 -06:00
58304b3a7e make Session::should_ignore_transport_request() non-const 2020-04-24 14:20:59 -06:00
75b9689f0c only update port lists when a TransportMastersWidget is actually mapped
The overhead of rebuilding for every port registration and unregistration was absurd
2020-04-24 12:00:02 -06:00
12b48fff76 fix parentheses around expression that prevented port flags from being set for ltc slave 2020-04-24 11:51:45 -06:00
e6b12bd0aa ensure that when a Session emits Port::PortDrop, transport master ports are left in place 2020-04-24 11:50:43 -06:00
afcc95167e fix copy-paste error that prevent transport master request mask from being set correctly 2020-04-24 07:44:41 -06:00
961562b594 remove tools superceded by list_scripts.lua 2020-04-24 07:23:44 -06:00
9ce0fa3daf fix search for include scripts in grep expression 2020-04-24 07:23:44 -06:00
Luciano Iam
847eb93784 WebSockets: correct comment in mixer-demo/main.js 2020-04-24 13:23:32 +02:00
Luciano Iam
f983dfe6a7 WebSockets: workaround for index page on Windows
Avoid 404s when following surface links while the issue in https://github.com/Ardour/ardour/pull/491 is better investigated
2020-04-24 12:39:06 +02:00
ea8d1d09d4
Fix MacOS builds (API change in 705ac7bfc5) 2020-04-24 07:06:40 +02:00
5c127f35b1
Add a Lua script to map MIDI events for the AVL Drumkits 2020-04-24 06:52:01 +02:00
7d33c1688b
Lua script-list: consolidate whitespace in description 2020-04-24 06:05:22 +02:00
f72b05d3a5
Update Lua script descriptions, rename some scripts 2020-04-24 05:47:02 +02:00
fcf4e3e9eb
Add script to list Lua scripts for a html news page. 2020-04-24 05:16:44 +02:00
Fred Rech
f1ec998653
Revise French translation, part 5 -- #8035 2020-04-24 03:52:26 +02:00