13
0
Commit Graph

28533 Commits

Author SHA1 Message Date
d4ecfc7d85
Use new boost::optional API
get_value_or() has been deprecated since boost 1.56
2019-11-21 17:48:56 +01:00
216492c60c
Bump boost version requirement
1.56 is needed for boost::optional::value_or
2019-11-21 17:43:32 +01:00
53b1d17c60
Fix multi-channel de-click
_declick_amp gain needs to be reset for each channel before
the test (_declick_amp.gain() != target_gain) if de-clicking
is needed.
2019-11-21 02:54:19 +01:00
78d5e6af28 add mixer actions for toggle disk & input monitoring; bind to d and i in mixer bindings 2019-11-20 09:37:33 -07:00
7fec401b8d
Fix declick offset position for multi-channel tracks 2019-11-19 16:20:28 +01:00
4534af0a4c DiskReader::_declick_offs should only advance once per ::run() call 2019-11-18 21:45:39 -07:00
9b92084ed6 DiskReader::_declick_amp needs to repeat the same work for each audio channel handled 2019-11-18 21:45:39 -07:00
530a4393dc fix transport FSM to stop first and declick later 2019-11-18 21:45:39 -07:00
5048b86d5d small changes to make declick out triggered by just stopping 2019-11-18 21:45:39 -07:00
cf8a808bd7
Fix some script icons for non-square buttons 2019-11-19 04:41:12 +01:00
7aaf212a9b
Fix Lua Pangolayout ellipsis width 2019-11-19 04:41:12 +01:00
7b733eb3f0
Consistent toolbar button height 2019-11-19 04:41:11 +01:00
605a87f402
Improve toolbar layout consistency
Directly pack Lua Script buttons into top-level table,
use same size-constraints.

Use consistent Lua Action button width, in particular for buttons 10..12.
prefer "a" instead of "10" for default numeric label
2019-11-19 04:41:06 +01:00
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