13
0
Commit Graph

28678 Commits

Author SHA1 Message Date
ff301419b3
Fix automation-write when locating
When locating while writing automation, begin a new write-pass,
and add a guard point at the locate target position.

NB set_in_write_pass takes 3 arguments: (write_enable, add_point, when)
the last two default to false, 0.
2019-11-13 16:57:28 +01:00
7d90ad4023
Fix bool-automation anchor
Typo sneaked in from ff2f93497...cc7de475f2
2019-11-13 16:53:46 +01:00
9b3ebd82ab
Tweak layout of Plugin-Preset dialog 2019-11-12 19:34:12 +01:00
39fa4103f7
Allow to override plugin-provided MIDNAM 2019-11-12 17:00:50 +01:00
a83c6badfe
Skip custom MIDNAM files in generic MTAV list 2019-11-12 06:29:05 +01:00
de02201056
Add API to query if a given MIDNAM is plugin-provided 2019-11-12 06:28:02 +01:00
5b86ece17a
Indicate the numeric peak-hold is always digital-peak 2019-11-12 00:07:51 +01:00
4a5c9c759b
Only retain control-port connections
When MIDI input follows selection, ports that provide music-data
should be disconnected, even if they *also* provide control-data
2019-11-11 23:37:11 +01:00
383850d329
Prefs > Plugins > Scan should discover new plugins
First argument is `cache_only`. `false` means to discover news ones.
2019-11-10 22:33:46 +01:00
Christopher Arndt
8fe978a8e5 Log warning if host does not support midnam/bankpatch extensions
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2019-11-10 00:49:18 +01:00
Christopher Arndt
d6ed5c2080 Fix segfault: don't try to use midnam:update extension if host doesn't support it
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
2019-11-10 00:47:57 +01:00
70442ae7e3
Ask xjadeo to use ArdourMono font for OSD 2019-11-09 06:34:31 +01:00
b157e1a09a
Remove invalid error message
This clause is in NO_VFORK, vfork_exec_wrapper is irrelevant there
2019-11-09 06:30:46 +01:00
a8a699133e
Fix child-process communication (video monitor in particular)
103ef2ba08 introduced an API to write raw data (const void*)
to a child process, along with the previous API to
write (std::string const&)

VideoMonitor uses write_to_stdin("fixed text"), and g++
interprets this to use the (const void*) API instead
of the std::string, which breaks communication.
2019-11-09 06:28:55 +01:00
edf9478fda
Fix endless loop when drag/copy locked region 2019-11-09 06:00:02 +01:00
a8f9ba4a5e
Preview video frame when dragging 2019-11-09 06:00:01 +01:00
a701882e66
Add convenience methods to test for active drags 2019-11-09 05:59:55 +01:00
3cecc3d26b fix crash if Splash::pop_back_for() is called without splash on-screen 2019-11-08 16:57:11 -07:00
9b0ffbfb94
Fix Metronome: use loop-range only when looping 2019-11-08 22:49:46 +01:00
5daa0fca7c
Fix tempo-grid calculation: prevent duplicate events, enforce range 2019-11-08 22:49:23 +01:00
240e3e8dc0
Fix uninitialized value
ARDOUR::LV2Plugin::init -> lilv_state_restore () -> set_port_value ()
compares new against current value
2019-11-08 21:01:28 +01:00
b79d47b1b5 fix crash caused by storing clock modes while loading a session
The store would delete any existing node of the same name,
which was the node being used to set the mode in the first
place.
2019-11-08 12:40:26 -07:00
bd90499532
Ignore latency of inactive routes 2019-11-08 17:50:26 +01:00
41ad43fa5f
Remove unused signal 2019-11-08 17:50:23 +01:00
181bc74ae2
Click: pre-allocate memory for grid-point lookup 2019-11-08 17:50:19 +01:00
804f9c9bde
Fix metronome when looping 2019-11-08 17:50:16 +01:00
08fdb98262
Fix loop/pre-roll
Pre-roll to fill buffers only needs to be done once when starting
to play or when locating.

Seamless looping just continues. Every processor takes the loop
position into account locally.
2019-11-08 17:50:13 +01:00
f37758ffb7 remove stacktrace 2019-11-06 23:55:46 -07:00
dad47e445c remove debug output 2019-11-06 23:54:47 -07:00
f04ee50375 do not transition "back" to Rolling by calling start_transport() if a locate was for loop-end
We never stopped the transport, so there's no reason to start it again. Doing so causes alignment problems
because all tracks have their ::run() ranges reinitialized
2019-11-06 23:54:34 -07:00
625b8297ea 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 22:12:40 -07:00
eda27cc3de move all responsibility for autostart into StartupFSM and out of engine dialog 2019-11-06 17:35:30 -07:00
88c4158c03 remove unused API 2019-11-06 17:05:07 -07:00
f13c8f3d07 implement intended auto-start logic for startupFSM 2019-11-06 16:51:03 -07:00
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
6f4e838a58 add a signal to Gtkmm2ext::Keyboard to allow (possible) handling of close-current-dialog 2019-11-06 16:25:30 -07:00
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
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
7dd7488872 Session should not be accessed when not there. 2019-11-06 08:30:11 -08:00
f61f938503 remove debug message 2019-11-06 09:28:23 -07:00
24252b92c6 move at-exit messages about pool utilization to DEBUG_TRACE 2019-11-06 09:27:49 -07:00
d5cfc898e4 resolved notes need to use cycle-relative time 2019-11-06 09:07:12 -07:00
cd7fc3711a be sure to move effective_start while loop-reading MIDI 2019-11-06 09:03:55 -07:00
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
0bb34edec0 improve comment about warning message 2019-11-06 08:56:50 -07:00
7d67789a3f fix a bad transition in the transportFSM. 2019-11-04 14:35:18 -07:00
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
47672fceec rename method argument to better reflect its intended role 2019-11-04 12:52:34 -07:00
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
5ec9e0fa5e
Virtual-keyboard: momentary pedal (no toggle) 2019-11-03 17:50:25 +01:00