13
0
Commit Graph

28620 Commits

Author SHA1 Message Date
c07db6d655 unset _reversed whenever RTMidiBuffer gets ::clear()'ed 2019-11-18 15:38:18 -07:00
75cb57194e add missing NULL check 2019-11-18 13:07:40 -07:00
e52fd47049
Latency compensation is independent of transport-logic
This also fixes a concurrency issue when when non-realtime-stop
and graph-reorder or other rt-latency changes coincide.
2019-11-18 20:22:08 +01:00
a8d62ce056 use reverse-reading of MIDI data in DiskReader 2019-11-18 12:01:43 -07:00
725a6fc67f support backwards reading of MIDI from RTMidiBuffer 2019-11-18 12:01:43 -07:00
80cab52a06 fix typo/thinko in logic to decide if MIDI buffers in DiskWriter require the butler (to write to disk) 2019-11-18 12:01:43 -07:00
3cf888498a
Fix automation lookup when rolling backwards 2019-11-18 15:55:32 +01:00
3b2b946d4e
NO-OP: simplify code
find_next_ac_event, needs to find the next event *after* (but not
at) start.

std::upper_bound returns an iterator pointing to the first element
in the range [first, last) that is greater than value.
This is equivalent to using std::lower_bound an iterating until
finding the first element greater than.
2019-11-18 15:55:17 +01:00
f49d11d5e3
Automation event lookup when rolling backwards
When rolling backwards we need to be able to find
the *next* event before "start".
2019-11-18 15:55:13 +01:00
81d8f0faa7
Tweak LFO script
* thin automation to prevent too dense events
* add icon (cosine wave)
2019-11-17 14:52:22 +01:00
8e8249b595 remove debug output 2019-11-15 20:42:15 -07:00
bd509bba49 fix questionable and not entirely intended change that was a part of dad47e445c 2019-11-15 20:40:23 -07:00
1c7e446cb4 better transport master behavior when working with sample-clock-synced transport masters 2019-11-15 16:06:04 -07:00
d64cf7a762 improve behavior when synced to JACK transport
Heuristic and actions when a locate is needed are different for
JACK transport than TC
2019-11-15 16:06:04 -07:00
098bce1ece improve initial coordinate with JACK transport state 2019-11-15 16:06:04 -07:00
3d74af6c1f better debugging message 2019-11-15 16:06:04 -07:00
a7613eb191 consolidate setting of "get roll after locate" in TFSM 2019-11-15 16:06:04 -07:00
4c688fe7f9 NO-OP: move brace 2019-11-15 16:06:04 -07:00
8f71b6430b when synced to JACK transport, transport requests go there first. 2019-11-15 16:06:04 -07:00
df4a30b1a0 fix behavior of Session::maybe_stop() when synced to JACK Transport 2019-11-15 16:06:04 -07:00
ba4e7015de make comment more accurate 2019-11-15 16:06:04 -07:00
5c9e7b8234 consolidate Session::locate() and Session::do_locate()
The first no longer needs to handle requests by passing them to
JACK transport
2019-11-15 16:06:04 -07:00
7199b657ba no need for MidiClockTransportMaster::starting() method 2019-11-15 16:06:04 -07:00
4637c49838 improve behavior of JACK transport sync callback.
Do not call transport actions directly, just report back to JACK
on transport status.
2019-11-15 16:06:04 -07:00
0b52ea7a9c add a bit of debugging to JACK transport code 2019-11-15 16:06:04 -07:00
302fe227b8 fix resampling ratio when stopped (corner case - not typically called) 2019-11-15 16:06:04 -07:00
ec2ba35997 move DiskReader::inc_no_disk_output() into .cc to allow for easier debugging 2019-11-15 16:04:58 -07:00
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
8a847dbf34 fix oddly damaged code (vs. 5.x) for EngineSlave core methods (JACK transport) 2019-11-15 16:04:58 -07:00
c69227fd8d eliminate hacky design for being able to deliver the correct time as JACK timebase master 2019-11-15 16:04:58 -07:00
2f87b111e5 fix up the creation & state restore of the TransportMasterManager 2019-11-15 16:04:58 -07:00
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
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
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
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
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
d171bbf337
Allow vari-speed slowdown down to 2% 2019-11-14 19:39:48 +01:00
a666429d12
Fix MIDNAM device list for plugin-provided names 2019-11-13 23:00:55 +01:00
4c9da04584
Amend previous commit - latch toggles only while rolling 2019-11-13 22:15:46 +01:00
dbd327e692
Automation watch toggle buttons and enforce latch 2019-11-13 22:02:07 +01:00
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
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