Commit graph

15409 commits

Author SHA1 Message Date
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
Robin Gareus
64b43a6b95
Fix windows fallback for LV2 state:freePath feature 2020-01-06 16:59:14 +01:00
Robin Gareus
2afef6e4bd
Fix Windows builds (Lua binding undefined reference) 2020-01-06 16:53:00 +01:00
Paul Davis
f8243e62e7 remove the (unused) concept of a MIDI patchfile folder per session 2020-01-05 18:47:59 -07:00
Paul Davis
d17a89c9a7 move MidiPatchManager initialization into ARDOUR "global" scope, rather than per session 2020-01-05 18:34:40 -07:00
Paul Davis
ece18d3083 use glibmm threads for the midnam load thread, instead of raw pthreads (for portability) 2020-01-05 17:58:54 -07:00