Commit Graph

16764 Commits

Author SHA1 Message Date
Paul Davis
61e7f3176b do not clear any PostTransportWork flags in butler thread
doing this was causing the TFSM to get stuck in "WaitingForButler"
2020-01-21 21:50:35 -07:00
Paul Davis
a765e52b47 add a heuristic to avoid refilling playback buffers at transport stop
If we're within 1/6th of the size of the reserved buffer of the target sample, no need to refill
2020-01-21 21:50:35 -07:00
Paul Davis
981ee0060a remove debug output 2020-01-21 21:50:35 -07:00
Robin Gareus
95f3977f07 Do not install static libs
There is no need to deploy .a with ardour installations.
2020-01-22 02:00:25 +01:00
Robin Gareus
6ce1c326a9 Display LV2 plugin-name with errors/warnings 2020-01-21 22:32:59 +01:00
Ben Loftis
9d2a209f60 Change tape-machine-mode to auto-input-does-talkback (libardour part)
In prior versions: if Auto Input was enabled, the default behavior was
to monitor the Input of all tracks when stopped; even if they aren't armed.

Tape Machine Mode changed the behavior of Auto Input so that it doesn't
always monitor the track inputs when transport is stopped.

After some discussion on IRC, we determined that Tape mode is likely
more practical for a DAW user, and therefore a better default.

Rather than default an ambiguously-named preference "on", we decided
to invert the behavior, rename it sensibly(?), and default it OFF.
2020-01-20 12:19:15 -06:00
Paul Davis
ad82b443f4 fix API and use of Session::force_locate()
Because of the addition of LocateTransportDisposition, this call was unconditionally forcing a roll during startup
2020-01-20 11:07:27 -07:00
Paul Davis
a439d8bbe4 fix mistaken "do not roll" conclusion in TransportFSM::compute_should_roll() 2020-01-18 21:14:17 -07:00
Paul Davis
620ab66e75 remove fragile union design
Absurd to be memory-conscious about a couple of member variables in an object that represents user input
2020-01-18 19:59:24 -07:00
Paul Davis
d83cd05882 fix broken-ness caused by bad initialization of a StopTransport event in TransportFSM 2020-01-18 19:59:24 -07:00
Robin Gareus
61e53e303b Fix ISO compliance 2020-01-18 19:09:36 +01:00
Robin Gareus
d7801ab7ee Add timestamp to log -- #7877
This adds the time when a log message is displayed.
ARDOUR_UI::display_message() parses the prefix,
so the timestamp cannot be prefixed in the beforehand.

Still, UI::process_error_message() is called directly in
the same thread, so this makes no significant difference.
2020-01-18 18:18:05 +01:00
Paul Davis
47767738b9 rename DoTheRightThing to RollIfAppropriate 2020-01-18 08:49:18 -07:00
Paul Davis
3c00048b0c Session::request_locate() takes a tri-valued second argument for "roll-after-locate"
This allows callers to defer logic about auto-play/current rolling state and more to TransportFSM where it
can be cnentralized and is less ambiguous
2020-01-18 08:49:18 -07:00
Robin Gareus
3fe87b9fa1 Fix MIDI capture alignment
This fixes Audio/MIDI alignment when recording normally.
Loop and/or Punch-in recording is still not aligned properly
(both audio and MIDI).

_accumulated_capture_offset is initialized once, accumulated
offsets (rec_nframes) are kept, even when ::check_record_status()
is called multiple times.
2020-01-18 15:52:28 +01:00
Robin Gareus
7c8072b0b7 Zero capture-offset regardless of data-type
_accumulated_capture_offset is only used for MIDI,
however this is helpful when debugging.
Previously audio kept accumulating the offset indefinitely.
2020-01-18 15:49:22 +01:00
Robin Gareus
33f71677eb Make it possible to use reasonable-synth in production
This allows to disable the xmass easter-egg for those who
don't celebrate x-mas.
2020-01-17 22:41:01 +01:00
Nikolaus Gullotta
4b355868cc Fix test breakage from a855119bdd 2020-01-16 14:01:18 -06:00
Ben Loftis
01c709ef0e Change default preferences as discussed on IRC today 2020-01-15 17:23:00 -06:00
Robin Gareus
4b9d6ff498 Add Lua bindings to inspect the Tempo Map 2020-01-14 03:05:22 +01:00
Robin Gareus
bca825e515 NO-OP: whitespace 2020-01-14 00:52:24 +01:00
Robin Gareus
34c4f7b8ee Fix Ardour VAMP plugins (FFT)
Bug was introduced in 8ed33f1bc7 symbol visibility setting
in CFLAGS, CXXFLAGS was overridden. This resulted in publicly exposed
and bound kiss_fft symbols in libqm-dsp.

At runtime those symbols were resolved using previously bound
symbols in libcodec  (see below) that uses a mismatching implementation
(ardour/qm-dsp uses -Dkiss_fft_scalar=double)

#0  0x00007fffea793d40 in kiss_fftr () at /usr/lib/x86_64-linux-gnu/libcodec2.so.0.8.1
#1  0x00007fffcf4516ab in FFTReal::D::forward(double const*, double*, double*) (this=0x5555571d73a0, ri=0x55555a734810, ro=0x55555a7262b0, io=0x55555a728590)
    at ../libs/qm-dsp/dsp/transforms/FFT.cpp:121
#2  0x00007fffcf4510fd in FFTReal::forward(double const*, double*, double*) (this=0x555559868190, ri=0x55555a734810, ro=0x55555a7262b0, io=0x55555a728590)
    at ../libs/qm-dsp/dsp/transforms/FFT.cpp:186
2020-01-14 00:52:24 +01:00
Robin Gareus
b83c4f2fa4 Fix C++11ism 2020-01-13 22:47:50 +01:00
Robin Gareus
fd4c35d46a Add rubberband Lua bindings to process ardour regions 2020-01-13 17:57:35 +01:00
Robin Gareus
c87bec07cd Fix thinko in eee01188 (engine pulse spacing) 2020-01-12 00:16:19 +01:00
Paul Davis
d79e869da8 use "extends to numeric_limits<Beats>::max()" rather than "zero length" for nascent (incoming) notes 2020-01-11 10:57:21 -07:00
Paul Davis
8547a23e9c removal incorrect/unnecessary forward decl 2020-01-11 10:57:21 -07:00
Robin Gareus
00150e105c Fix AFL position
* update AFL position when preference changes
* "after post-fader processors (before pan)" is before
  the main-out (not at the end).
* Fix "immediately post-fader":
  The amp, when added was the last element. ++after_end then
  made the iterator point to .end()

This likely worked in the past when the monitor send was added
immediately after adding the fader/amp before any other processors.
2020-01-11 17:48:42 +01:00
Nikolaus Gullotta
0f85a33487 Fix typo in Lua binding for compressor enable control 2020-01-09 10:22:00 -06:00
Paul Davis
0e42708685 expand comment to include (more of?) the full story about uncombining and copies 2020-01-08 22:21:21 -07:00
Paul Davis
965bf74f2b expand the test used to decide if we need to make copies when uncombining a compound region 2020-01-08 22:21:21 -07:00
Paul Davis
1c86b0ce13 never remove entries from the CompoundAssociation map 2020-01-08 22:21:21 -07:00
Paul Davis
7373e3ac14 add concept of an owner region (by ID) to PlaylistSource 2020-01-08 22:21:21 -07:00
Paul Davis
d1c2098c11 fix bugs (thinkos?) that confused PlaylistSource's id() with its original() 2020-01-08 22:21:21 -07:00
Paul Davis
0098072904 NOOP: reindent 2020-01-08 22:21:21 -07:00
Paul Davis
4d6ad4a499 increase explicit refcnt for playlists when used by a PlaylistSource 2020-01-08 22:21:21 -07:00
Robin Gareus
d1433992fb Fix MIDI loop recording - Revert "Fix MIDI disk-writer flush"
This reverts commit 254f22e372.
2020-01-09 03:53:02 +01:00
Robin Gareus
16677e80cd Towards fixing MIDI capture alignment
When there is no overlap (Evoral::OverlapNone) of local transport
position and the record-range, MIDI data does not need to be
offset.

This matches audio recording: Only write to the capture ringbuffer
when there is an overlap.

(There is still some unknown, unresolved discrepancy remaining
to be tracked down)
2020-01-09 03:37:21 +01:00
Robin Gareus
5b8765d6dd Fix CaptureAlignment debug messsage 2020-01-09 00:20:43 +01:00
Robin Gareus
563a8b15e0 Revert to use an image surface for CairoWidgets
This partially reverts 2edbda2526 and is a follow up to 0b266a54f,
to fix performance issues with MS Windows graphics performance.
2020-01-08 04:24:51 +01:00
Paul Davis
5ff28f9ab7 fix required offset when reading MIDI data near loop end/start 2020-01-07 19:27:04 -07:00
Paul Davis
901f17dd67 improved/new DEBUG_TRACE output 2020-01-07 19:27:04 -07:00
Paul Davis
5948d14012 plugins should NOT resolve MIDI notes at loopend
Their data will come from (1) disk, in which case the DiskReader will do the resolve (2) live input
in which case the player/user will do the resolve
2020-01-07 19:27:04 -07:00
Paul Davis
11d7803e57 imrpove debug msg 2020-01-07 19:27:04 -07:00
Paul Davis
0ac09d1f67 fix serious but rare error in RTMidiBuffer's storage of MIDI events with size > 3
sizeof (T) is in units of bytes, not bits. Use C++ standard CHAR_BITS instead.
2020-01-07 19:27:04 -07:00
Robin Gareus
9091838b82 Fix MIDI Port-latencies
Only audio ports have additional latency due to I/O re-sampling
for vari-speed playback/capture.. MIDI ports are not affected.
2020-01-08 00:40:18 +01:00
Robin Gareus
7f33d95937 Remove debug output 2020-01-07 04:21:38 +01:00
Robin Gareus
254f22e372 Fix MIDI disk-writer flush
to_write must not exceed `total = _samples_pending_write`.
If the write succeeds (events spanning `to_write` samples are written)
to_write is atomically subtracted from `_samples_pending_write`.
2020-01-07 03:59:25 +01:00
Robin Gareus
eee01188b4 Dummy: Engine-Pulse audio/midi generators
This produces synchronous events on Audio and MIDI ports.
One rvent per second, exactly at every second since engine-start.

MIDI: C-4 Note-on/off (1 sample long)
Audio: +1/-1 transition:
       +1 in sync with Note-on,
       -1 in sync with Note-off
2020-01-06 22:43:30 +01:00
Robin Gareus
beb39092b9 Proper forward declaration for Lua bindings (amend 2afef6e4bd) 2020-01-06 17:14:10 +01:00