13
0
Commit Graph

16050 Commits

Author SHA1 Message Date
3f6764f276
Fix 6afcb350c5, internal backends don't report externally_connected() 2020-05-08 04:01:24 +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
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
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
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
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
9b070eefb1 fix note-tracking in Editor::write_one_track()
We need a MidiStateTracker to determine notes whose end is not reached
during the call to ::write_one_track(), so that we can resolve them
in the output (SMF) source. This required some changes to the ::export_stuff()
API for tracks.

In addition, we now take the source "lock" just once during ::write_one_track()
rather than every time we write. This isn't an integral part of the
note tracking, but fell out along the way.

Finally, note that although we use a vector to handle MIDI "sources" here,
it is expected that there is only 1 MIDI source at present. Leave vectors in
place since it is possible that ::write_one_track() could be modified
in the future to change that.
2020-05-04 18:48:17 -06:00
7644168536 add some (commented/ifdef'ed) debugging for RTMidiBuffer::read() 2020-05-04 18:48:17 -06:00
47e83d2799 no need for return value 2020-05-04 18:48:17 -06:00
3ac96d3b24 add explanatory comment 2020-05-04 18:48:17 -06:00
447b473a1d slight better warning/debug message for a stuck note to-be-deleted 2020-05-04 18:48:17 -06:00
520ccd8ff2 use RTMidiBuffer API correctly when reading for MidiTrack::export_stuff() 2020-05-04 18:48:17 -06:00
4508d5bab1
Set de-click reason monitor vs. start/stop.
Previously use-monitor-fades was unused in A6, and transition
between monitoring states used the use-transport-fades preference.
2020-05-04 21:51:53 +02:00
a6f95b21fc
Fix alignment and de-click when monitoring changes while playing
Previously it was possible that
 * declick_out = true,
 * target_gain == 0, cur_gain != 0 (fade out active)
 * speed != 0, disk_samples_to_consume > 0.

So the disk-reader advanced the playback_sample, but since
declick_out is active, the read from the ringbuffer was not committed.
2020-05-04 21:48:47 +02:00
27f26f5cfd
Cont'd work on ALSA nperiods (amend 2326fb163) 2020-05-03 00:19:56 +02:00
2326fb1638
ALSA: only read/clear user-requested nperiods before snd_pcm_start
This should fix excessive latency with the RayDay that
has a fixed buffersize of 16384 samples.
2020-05-01 23:17:31 +02:00
b258ad792e force provision of "menu-name" for all WindowProxy objects, and thus Tabbables
Actions for hide/show/attach/detach tabbables use hard-coded names which are not
translated. Using Tabbable/WindowProxy::name() to lookup the action will fail,
since the name can be translated. This changes just removes the option to not
provide a menu-name when creating these objects, and uses the name menu-name
when looking up an action by name
2020-05-01 14:33:47 -06:00
1e814d2573 remove debug output 2020-04-30 13:13:48 -06:00
106315071a update other .po files 2020-04-30 13:03:46 -06:00
b95cd280f1 use PROGRAM_NAME to name GUI thread 2020-04-30 11:03:49 -06:00
70da4ad893 fix 52b9066511 (incorrect logic). Restores audio playback from disk 2020-04-30 10:36:01 -06:00
68cb914959
Set Arodur's main thread name to include "Ardour"
This is helpful when debugging by PID (adevices.sh most notably),
just "gui" is not usually helpful.
2020-04-30 18:24:22 +02:00
8fa0049d28
ALSA: set start threshold to zero 2020-04-30 04:16:17 +02:00
11f68a02cd
Another step towards nperiod fixes for the RayDay 2020-04-30 02:05:14 +02:00
3a6a9cfa6c
Tweak ALSA nperiod setting, fallback to nearest
This is mainly for RME RayDAT that has a fixed buffersize of 16k:

  dev_name : hw:HDSPMxc2f6c5,0
  channels : 36
  min_rate : 32000
  max_rate : 192000
  min_bufz : 16384
  max_bufz : 16384
  min_nper : 4
  max_nper : 512

However nperiod configuration determines the effective latency
regardless.

This is similar to https://github.com/jackaudio/jack1/blob/master/drivers/alsa/alsa_driver.c#L476-L486
2020-04-29 23:56:24 +02:00
6eb48e40a0 do not set declick_amp's gain for declick out during export of MIDI-only tracks
When export is done, nothing a MIDI-only track will reduce the gain ("goto midi" inside
DiskReader::run() and the "declick-in-progress" state will be permanent
2020-04-29 15:36:07 -06:00
551be058f2
NO-OP: whitespace 2020-04-29 15:12:23 +02:00
John Emmas
6144de5bf0 Add/remove source(s) in our MSVC project (midi++2) 2020-04-29 10:20:34 +01:00
47bb331bfa
Allow to refresh ALSA device list - #8051 2020-04-29 02:19:38 +02:00
3d5ea7dfab
ALSA: set min/max sizes before the debug message 2020-04-29 01:16:23 +02:00
Hiroki Inagaki
cce6ac3e73
Update Japanese translation for 6.0 2020-04-28 21:29:04 +02:00
6224bf1e27
Revise French translation, part 7 -- #8035 2020-04-28 21:07:56 +02:00
7a1447b75e remove pointless libs/midi++2/midi++/event.h file
This was just a proxy for libs/evoral/evoral/Event.h. Note that the #define
that controlled allocation that was at the top of the removed header is
replicated in the Evoral header, so there are no semantic changes
2020-04-28 12:01:55 -06:00
d94a747180
Revise French translation, part 6 -- #8035 2020-04-28 18:05:11 +02:00
8e482ef0fb
Con't work on ALSA nperiod selection (see also d3d120fa) 2020-04-28 17:56:17 +02:00
d3d120fa28
Prepare to allow using ALSA backend with nperiods > 3
This will still need an update for Alsa_pcmi::set_hwpar() capture
channel (which is fixed at 2, unless FRAG_NEAR is used).
2020-04-28 03:28:34 +02:00