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