13
0
Commit Graph

30051 Commits

Author SHA1 Message Date
Johannes Mueller
bff9c9a5a1 Work around a race condition
This covers a race condition in session transport that when synced to an
external engine it sometimes occurs that at the end of ::realtime_stop()
::transport_stopped_or_stopping() returns false when ::setup_rec_box() is
called. In this case the rec boxes are not erased when the recoding transport
is stopped.

This fixes this behavior about the remaining rec boxes, however the race
condition remains.

The race condition is reported in #8104. It should be considered reverting this
commit once the race condition is fixed.
2020-05-10 14:53:38 +02:00
52ae134efb
Fix initial sync to external time source
TransportMasterStart needs to be set when this cycle's delta
can reach _remaining_latency_preroll.

This allows to directly catch the master-position and start
rolling without initial vari-speed.
2020-05-09 23:43:04 +02:00
34fd8b5356
Bundle script to send raw MIDI to a given port 2020-05-09 23:43:04 +02:00
e3ea4a4a81 MIDI binding map for Nektar Panorama
This apparently needs several sysex files delivered to the device,
so may not be particularly useful
2020-05-09 11:43:39 -06:00
3ca33c07dc
Update LTC reader port latency on connection change
This mechanism adds infrastructure that can later also be used
for MTC and MIDIClock.

PS. The LTC Generator port's latency is queried after the port
is created, and later kept in sync via LatencyUpdated signal.
2020-05-09 05:10:04 +02:00
a46091b86a
Fix subtle bug breaking vari-speed (from d9caa7fd9a) 2020-05-09 02:20:15 +02:00
abe23b5885
ALSA backend: ignore idempotent latency settings 2020-05-09 01:22:18 +02:00
dffe780d95
Engine-dialog: latency spinbox sensitivity
This allows to change latency while running using numeric entry
or otherwise makes the spinboxes insensitive.
2020-05-09 01:19:03 +02:00
fe8df2eeae
Remember I/O ports used for latency measurement 2020-05-09 00:55:40 +02:00
ace8a0d7b9
LTC Generator: prefer LatencyUpdated signal 2020-05-09 00:34:15 +02:00
ecd55f9fec
LTC Slave: subscribe to LatencyUpdated signal
This uses a recently introduce Signal instead of the generic
GraphReordered, which was used in the past since it usually
happened after the latency was changed.
2020-05-08 23:51:40 +02:00
a2094d97ad
NO-OP: clang-format/whitespace 2020-05-08 23:30:04 +02:00
21f2c01fcd
Fix aux-send solo propagation
* Do not allow new send to change implicit solo (no propagation)
* Propagate changes to due aux-send removal upstream
  to tracks or busses connected to the source route.
* Forward solo-isolate
2020-05-08 14:59:44 +02:00
caf057f06d
Experiment: propagate solo-state with internal-sends
So far internal-sends were explicitly special-cased, and implicit
solo-state only was only forwarded for direct up/down-stream
connections.  ...and nobody can remember why :)

This restriction is removed, so far mainly with commenting-out
code, as experiment.

Internal sends are not only more convenient, but also required
in cases where direct connections result in ambiguous latency.
2020-05-08 06:35:08 +02:00
3f6764f276
Fix 6afcb350c5, internal backends don't report externally_connected() 2020-05-08 04:01:24 +02:00
cc5e9631eb Spelling mistake 2020-05-07 18:38:42 -07:00
d91189ffe5
Consistent GPL boilerplate 2020-05-08 03:19:17 +02:00
10df041421
Fix LTC generator alignment
When rolling forward the LTC generator needs to send future
a timestamp, so that when it matches the current time when
the signal arrives at the output port.

(A6 aligns transport playhead to output)
2020-05-08 03:17:28 +02:00
7a5dc98296 Fix gpl address 2020-05-07 17:34:49 -07:00
8e1e271eba Add a meter to Foldback bus
Spaces got replaced by tabs as well.
2020-05-07 17:13:40 -07:00
21bb10238e required header inclusiong 2020-05-07 17:40:20 -06:00
0da5dcd49f make LTC transport master safe against the absence of a session
For example, when opening a new one, there will momentarily be no session
2020-05-07 17:40:20 -06:00
df89fc9bba fix definition of templateed foreach_track() methods 2020-05-07 17:40:20 -06:00
490fac1632 add new template methods for "foreach {route,track}" and use them
Also remove redundant double call to Track::set_block_size(). This dates back to 2010
when there used be an additional traversal of the Diskstream RCU-managed list, before
they became owned by Tracks
2020-05-07 17:40:20 -06:00
95d9f60035 fix comment typo 2020-05-07 17:40:20 -06:00
07aa203a92
Fix comment in previous commit 2020-05-08 01:37:24 +02:00
6afcb350c5
Fix capture alignment when using JACK
In case of JACK all ports not owned by Ardour may be re-sampled,
and latency is added. External JACK ports need to be treated
like physical ports: I/O latency needs to be taken into account.

When not using JACK, all external ports are physical ports
so this is a NO-OP for other backends.
2020-05-08 01:26:47 +02:00
d363a1740d
Reset external connection count when ports are reestablished 2020-05-08 00:20:54 +02:00
a5faef9379
Remove unused variable 2020-05-07 20:43:26 +02:00
8ffcdc9d02
Send LTC timecode from engine context 2020-05-07 20:43:22 +02:00
7b28aabb43
Change LTC Generator from IO to Port
This is done in order to set the TransportGenerator flag
2020-05-07 20:43:04 +02:00
f1dafe7632
Prepare changing LTC Generator <IO> to <Port> 2020-05-07 20:42:58 +02:00
d9caa7fd9a
Prepare timecode-generator direct-out
Generator ports (like TransportMaster slaves), should not be
re-sampled when vari-speeding. Instead the Timecode/Clock should
directly use the engine-speed.

For this to happen, they need to be special-cased: no re-sampler
latency, direct access to engine-buffers.
2020-05-07 20:42:53 +02:00
9604e64c35
Fix initial disk-reader fade-in
Since 4508d5bab this only happened after a fade-out.

Currently there is no fade when transport is stopped and monitor
mode changes MonitoringDisk <-> MonitoringInput.
DiskReader::DeclickAmp is only used for data from disk.
Fading live-input data passing through will likely need another
Amp.
2020-05-07 16:12:52 +02:00
4fa955baf2
Fix Latency information of TransportMasterPort ports
PortManager::cycle_start() excludes these ports from being
resampled. They're directly handled by the TSM, outside of
the session.
2020-05-07 15:12:57 +02:00
8967df460a
Auditioner: ignore dis/connections during init/shutdown 2020-05-07 15:12:57 +02:00
2e2ca85131 remove debug output 2020-05-06 09:53:55 -06:00
deca562108 Use sorted list of foldback buses
previous and next would not always allow
	getting to all buses which were in an odd order
	depending on how they are added
2020-05-05 19:42:31 -07:00
7b5d2c2e7f update GUI translations for Italian from pterodattero 2020-05-05 18:29:03 -06:00
f546b38f42 when creating new notes via MidiRegionView::create_note_at(), add note to selection 2020-05-05 18:00:41 -06:00
668ff4b638 if setting the selected MIDI region view to the currently selected MRV, do nothing 2020-05-05 18:00:05 -06:00
1d33ed5aca MIDI bindings etc. should work while in draw mode, not just internal edit
The only real difference is in what the mouse does, so keys should work the same
2020-05-05 17:58:32 -06:00
8dfb49f446 do not clear a MIDI region's note selection when drag-creating a note 2020-05-05 17:57:53 -06:00
505bd41ad4 do not clear selection when clicking on canvas in internal mode 2020-05-05 14:10:54 -06:00
feb689d220 Fix issue 8087 menu build when only one bus
If there is only one Foldback bus:
	the selection button still respond to left click.
	Any other click on the same button will need two
	clicks
2020-05-05 11:42:45 -07:00
2df52979d4 The listen Button (Solo) has no function in Foldback remove 2020-05-05 09:21:50 -07:00
c75b2355c1
Fix potential malloc(0) issue 2020-05-05 17:13:18 +02:00
a0f05e6dda updated libardour czech translations from pavel frich 2020-05-05 08:48:39 -06:00
f31f9a09da
Fix inactive track header label display
Since 8fced29372 introduced no_show_all(), the packed widgets
need to be explicitly displayed.
2020-05-05 04:30:24 +02:00
350051569f remove empty API and usage
This went away when we added RTMidiBuffer. Getting data from MIDI playlists is now
completed in one pass, without note trackers
2020-05-04 18:54:40 -06:00