Commit graph

28447 commits

Author SHA1 Message Date
Paul Davis
eda27cc3de move all responsibility for autostart into StartupFSM and out of engine dialog 2019-11-06 17:35:30 -07:00
Paul Davis
88c4158c03 remove unused API 2019-11-06 17:05:07 -07:00
Paul Davis
f13c8f3d07 implement intended auto-start logic for startupFSM 2019-11-06 16:51:03 -07:00
Paul Davis
d7b6d6e2c4 if user uses Ctrl/Cmd-w to close a dialog during startup, treat that as a request to exit 2019-11-06 16:32:46 -07:00
Paul Davis
6f4e838a58 add a signal to Gtkmm2ext::Keyboard to allow (possible) handling of close-current-dialog 2019-11-06 16:25:30 -07:00
Paul Davis
febaa1ff2d fix unconditional note resolution during DiskReader::realtime_locate()
When looping, we do not want to resolve notes at the end of the loop via ::realtime_locate() -
::get_midi_playback() has already taken care of this. But when not looping, we need this. So,
add an argument to tell all interested parties whether the locate is for a loop end or not
2019-11-06 16:00:31 -07:00
Robin Gareus
9694f89966
Use strict-i/o on master-bus by default
This precludes issues with multi-out-plugins adding an excessive
number of ports and changing master-panning.
2019-11-06 20:05:50 +01:00
Len Ovens
7dd7488872 Session should not be accessed when not there. 2019-11-06 08:30:11 -08:00
Paul Davis
f61f938503 remove debug message 2019-11-06 09:28:23 -07:00
Paul Davis
24252b92c6 move at-exit messages about pool utilization to DEBUG_TRACE 2019-11-06 09:27:49 -07:00
Paul Davis
d5cfc898e4 resolved notes need to use cycle-relative time 2019-11-06 09:07:12 -07:00
Paul Davis
cd7fc3711a be sure to move effective_start while loop-reading MIDI 2019-11-06 09:03:55 -07:00
Paul Davis
cc741bdea5 fix DiskReader::get_midi_playback() when looping
Although at the Session level we never run "through" the loop end,
latency compensation means that that start/end sample values passed to
Processor::run() may cross the loop end. Fix how we handle this so
that we do not read data from after the end of the loop
2019-11-06 08:58:09 -07:00
Paul Davis
0bb34edec0 improve comment about warning message 2019-11-06 08:56:50 -07:00
Paul Davis
7d67789a3f fix a bad transition in the transportFSM. 2019-11-04 14:35:18 -07:00
Paul Davis
62c4e88a9d avoid use of Port::port_offset() everywhere except Port::flush_buffers() and Port::get_buffer()
Split cycles are run as if they are an entire self-contained cycle, starting at zero and running for "nframes".

We adjust the timing and position of data only when retrieving and writing it to Port buffers.
2019-11-04 12:57:19 -07:00
Paul Davis
47672fceec rename method argument to better reflect its intended role 2019-11-04 12:52:34 -07:00
Paul Davis
fd198c373c when resolving notes for a locate, use zero as the timestamp, not the current Port::port_offset()
All _immediate_events data gets written to the output buffer at the end of the current (split) cycle anyway, so the
timestamp is irrelevant (as long as it is zero, and will therefore be read by ::snapshot_out_of_band_data()
2019-11-03 11:02:10 -07:00
Robin Gareus
5ec9e0fa5e
Virtual-keyboard: momentary pedal (no toggle) 2019-11-03 17:50:25 +01:00
Paul Davis
4a99efe588 another notable cleanup/simplification of DiskReader's MIDI handling
Note that we resolve notes from the tracker directly into the output buffer. This happens
after an edit causes a buffer overwrite
2019-11-03 09:20:50 -07:00
Paul Davis
a7487bd040 comment fix 2019-11-03 09:20:00 -07:00
Paul Davis
90983d21d3 immediate events time reference for zero is the start of the run() cycle, not absolute sample time 2019-11-03 07:58:35 -07:00
Robin Gareus
2fde6a5777
Correctly flush MIDI buffers on cycle-split 2019-11-03 15:19:37 +01:00
Robin Gareus
98224a264e
Clarify MIDI-port event-timestamp debug-message 2019-11-03 15:19:37 +01:00
Robin Gareus
e371e8a51a
Fix timecode generation after split-cycles 2019-11-03 15:19:37 +01:00
John Emmas
b412ca7215 Add/remove source(s) in our MSVC project (libardour) 2019-11-03 13:46:30 +00:00
John Emmas
c7bdc38c95 Accommodate some recently moved/renamed folders and source files (libevoral) 2019-11-03 13:46:29 +00:00
Robin Gareus
01f65f557f
Fix build -- 'printf' was not declared in this scope 2019-11-03 14:15:11 +01:00
Robin Gareus
ba8e5aea56
Fix compiler warning 2019-11-03 04:14:52 +01:00
Paul Davis
f9131d24d3 for now, show how long MIDI rendering takes 2019-11-02 19:38:01 -06:00
Paul Davis
9a6350b9c9 use playback filter when rendering MIDI; respond to changes in filter by re-rendering 2019-11-02 19:38:01 -06:00
Robin Gareus
ee67d2d749
Auto-connect input should not disconnect other ports
This fixes an issue with existing MIDI routing between MIDI tracks
and/or busses. Automatic MIDI connections should only dis/re-connect
ports that are explicitly configured in Preferences > MIDI Ports
and leave all other connections alone.
2019-11-03 00:28:53 +01:00
Robin Gareus
db08810164
Virtual-keyboard: "Tab" to sustain (still undocumented) 2019-11-02 23:56:40 +01:00
Paul Davis
7b25a89944 part 1 of replicating semantics of ARDOUR_UI::toggle_roll() in BasicUI::toggle_roll()
This can be done better, even without sharing code
2019-11-02 16:32:18 -06:00
Paul Davis
3e443bc237 improve operation of ARDOUR_UI::toggle_roll() for loop mode (particularly when loop-is-mode) 2019-11-02 16:32:18 -06:00
Paul Davis
5025b939c6 comment update 2019-11-02 16:32:18 -06:00
Paul Davis
003fed93bf use new API to make locate happen 2019-11-02 16:32:18 -06:00
Paul Davis
abf5f2bae0 don't locate when enabling loop if loop-is-mode 2019-11-02 16:32:18 -06:00
Paul Davis
eee8eb1005 allow explicit "with-roll" argument to a locate to override Session::should_roll_after_locate() 2019-11-02 16:32:18 -06:00
Paul Davis
5241cdcf03 remove unused parameter from Session::set_play_loop() API 2019-11-02 16:32:18 -06:00
Paul Davis
31fea25005 lovely simplification of DiskReader::get_midi_playback()
This is made possible by knowing that it is never called upon to read across
loop boundaries. The session splits the process cycle for the end of the loop
2019-11-02 16:32:18 -06:00
Paul Davis
cd2618246a make it more likely that debug messages are printed without x-thread interruption 2019-11-02 16:32:18 -06:00
Paul Davis
5e13770e1f NOOP: newline removed 2019-11-02 16:32:18 -06:00
Paul Davis
81b38c110a remove unused (empty) API 2019-11-02 16:32:18 -06:00
Paul Davis
3ec845b1ef remove unused API 2019-11-02 16:32:18 -06:00
Paul Davis
4d5fd1af4b add another conditional to decide if we should merge disk MIDI data into input MIDI data 2019-11-02 16:32:18 -06:00
Paul Davis
1a2820a886 remove commented line 2019-11-02 16:32:18 -06:00
Paul Davis
1bbbbd62fd helpful variable rename 2019-11-02 16:32:18 -06:00
Paul Davis
e8a12a1a29 clarify clarifying comment 2019-11-02 16:32:18 -06:00
Paul Davis
6e0c5483b2 remove MidiPlaylist::read() API 2019-11-02 16:32:18 -06:00