13
0
Commit Graph

30330 Commits

Author SHA1 Message Date
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
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
f6496524a4 fix thinko in MidiRegionView::add_to_selection()
The existing code isn't wrong, but inefficient. If the selection is empty,
then this is necessarily the first note, and cannot be present in the
selection. So, don't search the std::set<> and then insert, just insert.
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
744b85679b
Tweak plugin-manager default window width #8079 2020-05-04 18:20:57 +02:00
acb8f9eb28
Scale plugin-manager default window size #8079 2020-05-03 20:50:52 +02:00
d387a6d664
Fix a compiler warning std::abs vs fabsf 2020-05-03 20:48:40 +02:00
a47fac7638
Fix MIDNAM model (MMA > Generic) fallback 2020-05-03 20:48:06 +02:00
27f26f5cfd
Cont'd work on ALSA nperiods (amend 2326fb163) 2020-05-03 00:19:56 +02:00
11ec81f4c2 more improvements in visual representation of selected MIDI notes during (and not during) internal editing 2020-05-01 22:28:21 -06:00
8556560eca change design of MidiRegionView::add_to_selection() so that the rubber-band select works again
Adding the first note trigged Editor::set_selected_midi_region_view() which cleared
the (newly added to) selection
2020-05-01 22:27:50 -06:00
044be53616 attempt to properly manage MIDI note display of selected status
Whether to display the selected outline depends on BOTH whether the note is
selected, and whether we are in an internal editing mode.
2020-05-01 17:39:13 -06:00
13c0145890 move virtual method from region_view.h to region_view.cc
It cannot be inlined anyway, so nothing gained by the header file presence
2020-05-01 17:39:13 -06:00
575c818482 when a MIDI region has a note selected with none previously, cancel existing MIDI region/note selection 2020-05-01 17:39:13 -06: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