Commit Graph

28496 Commits

Author SHA1 Message Date
Paul Davis
0b52ea7a9c add a bit of debugging to JACK transport code 2019-11-15 16:06:04 -07:00
Paul Davis
302fe227b8 fix resampling ratio when stopped (corner case - not typically called) 2019-11-15 16:06:04 -07:00
Paul Davis
ec2ba35997 move DiskReader::inc_no_disk_output() into .cc to allow for easier debugging 2019-11-15 16:04:58 -07:00
Paul Davis
16c571c9b6 fix crash with -D slave caused by too-early use of a transport master's _port member 2019-11-15 16:04:58 -07:00
Paul Davis
8a847dbf34 fix oddly damaged code (vs. 5.x) for EngineSlave core methods (JACK transport) 2019-11-15 16:04:58 -07:00
Paul Davis
c69227fd8d eliminate hacky design for being able to deliver the correct time as JACK timebase master 2019-11-15 16:04:58 -07:00
Paul Davis
2f87b111e5 fix up the creation & state restore of the TransportMasterManager 2019-11-15 16:04:58 -07:00
Paul Davis
457ab6d35f put JACK time master option back in the menus 2019-11-15 16:04:58 -07:00
Daniel Appelt
5fb949267d Add script to create LFO-like plugin automation 2019-11-14 22:43:21 +01:00
Robin Gareus
3c446a5275 Fix cycle-end position when not rolling
When stopped start_sample == end_sample.
This fixes accidental automation lookup,
as well as plugin time/position information.
2019-11-14 21:50:00 +01:00
Robin Gareus
32cfed6253 Relax LV2 time-info re-transmission condition
Allow beat (quarter-note count) to drift by 1/100 beat before re-sync.
This prevents excessive re-transmissions
2019-11-14 21:37:14 +01:00
Robin Gareus
6481437f0a LV2 extension for host's time-scale vari-speed
Ardour 6 internally always runs at speed 1.0 (or -1.0, or stopped 0.0).
There is no vari-speed that scale "BPM" or "n_sample" time progression
per cycle.

Instead Ardour 6 vari-speed mechanism transparently re-samples I/O.
So process-time is scaled only relative to wall-clock time.

From a plugin's POV this is similar to "freewheeling": The plugin
processes data as if the host plays at speed 1.0. While the host
plays this data at a different rate.

Some plugins may like to be informed about the host's actual
playback rate.

Currently this is mainly for the benefit of github.com/x42/repitch.lv2.git
2019-11-14 21:15:30 +01:00
Robin Gareus
3e99856f76 Initialize uninitialized variables
This also ensures that musical-time information is initially
transmitted to a plugin.
2019-11-14 20:03:22 +01:00
Robin Gareus
d171bbf337 Allow vari-speed slowdown down to 2% 2019-11-14 19:39:48 +01:00
Robin Gareus
a666429d12 Fix MIDNAM device list for plugin-provided names 2019-11-13 23:00:55 +01:00
Robin Gareus
4c9da04584 Amend previous commit - latch toggles only while rolling 2019-11-13 22:15:46 +01:00
Robin Gareus
dbd327e692 Automation watch toggle buttons and enforce latch 2019-11-13 22:02:07 +01:00
Robin Gareus
74f8db2def Remove boolean automation special case
Previously setting a boolean-control to "write" and roll did not
create an automation-point.

The state was not correctly captured.
The boolean-control needed to be toggled explicitly to create
an automation point.
2019-11-13 17:21:51 +01:00
Robin Gareus
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
Robin Gareus
7d90ad4023 Fix bool-automation anchor
Typo sneaked in from ff2f93497...cc7de475f2
2019-11-13 16:53:46 +01:00
Robin Gareus
9b3ebd82ab Tweak layout of Plugin-Preset dialog 2019-11-12 19:34:12 +01:00
Robin Gareus
39fa4103f7 Allow to override plugin-provided MIDNAM 2019-11-12 17:00:50 +01:00
Robin Gareus
a83c6badfe Skip custom MIDNAM files in generic MTAV list 2019-11-12 06:29:05 +01:00
Robin Gareus
de02201056 Add API to query if a given MIDNAM is plugin-provided 2019-11-12 06:28:02 +01:00
Robin Gareus
5b86ece17a Indicate the numeric peak-hold is always digital-peak 2019-11-12 00:07:51 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
70442ae7e3 Ask xjadeo to use ArdourMono font for OSD 2019-11-09 06:34:31 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
edf9478fda Fix endless loop when drag/copy locked region 2019-11-09 06:00:02 +01:00
Robin Gareus
a8f9ba4a5e Preview video frame when dragging 2019-11-09 06:00:01 +01:00
Robin Gareus
a701882e66 Add convenience methods to test for active drags 2019-11-09 05:59:55 +01:00
Paul Davis
3cecc3d26b fix crash if Splash::pop_back_for() is called without splash on-screen 2019-11-08 16:57:11 -07:00
Robin Gareus
9b0ffbfb94 Fix Metronome: use loop-range only when looping 2019-11-08 22:49:46 +01:00
Robin Gareus
5daa0fca7c Fix tempo-grid calculation: prevent duplicate events, enforce range 2019-11-08 22:49:23 +01:00
Robin Gareus
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
Paul Davis
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
Robin Gareus
bd90499532 Ignore latency of inactive routes 2019-11-08 17:50:26 +01:00
Robin Gareus
41ad43fa5f Remove unused signal 2019-11-08 17:50:23 +01:00
Robin Gareus
181bc74ae2 Click: pre-allocate memory for grid-point lookup 2019-11-08 17:50:19 +01:00
Robin Gareus
804f9c9bde Fix metronome when looping 2019-11-08 17:50:16 +01:00
Robin Gareus
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
Paul Davis
f37758ffb7 remove stacktrace 2019-11-06 23:55:46 -07:00
Paul Davis
dad47e445c remove debug output 2019-11-06 23:54:47 -07:00
Paul Davis
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
Paul Davis
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
Paul Davis
eda27cc3de move all responsibility for autostart into StartupFSM and out of engine dialog 2019-11-06 17:35:30 -07:00