13
0
Commit Graph

27191 Commits

Author SHA1 Message Date
e746ca3645 get ordering correct of global binding set creation and action registration (part2) 2019-02-16 01:15:12 -07:00
308036b195 MonitorSection should only define global actions for mono/dim/cut (all channels)
If it defines local versions, we can end up with two (different) bindings for the same action, one
in global scope, one when MonitorSection has key focus. Bad.
2019-02-16 01:15:12 -07:00
b0f99312d8 get ordering correct of global binding set creation and action registration 2019-02-16 01:15:12 -07:00
8b64f556d7
Tentative Latency GUI update 2019-02-16 01:10:50 +01:00
35609bcfed
Fix some signed/unsigned warnings 2019-02-16 01:10:50 +01:00
fb8505a4ad
NO-OP: whitespace 2019-02-16 01:10:50 +01:00
3cffaeac74
Prepare to allow to disable latency-compensation
Previously "zero custom/user latency" meant "default plugin latency".
This is now saved in a separate boolean allowing a user to reduce a
processor's latency to zero.

This also prepares for a global switch to use zero latency throughout
the whole session.
2019-02-16 01:10:50 +01:00
26f37a4753 better and more correct bindings for monitor section 2019-02-15 16:38:18 -07:00
1d6ee0b7e2
Fix crash when touching stale Automation Points
Undo/Redo allows to change a region's envelope without the envelope-list
changing (AutomationList::StateChanged is not emitted).

This also catches other operations where region-length can change while
the Envelope is visible. -- Normally when using the range or object tool
to modify a Region, the Envelope is not visible.

Without this change it was possible that the GUI shows automation
points that don't have a corresponding libardour representation:

e.g. select range, change tool to "draw", press "s" (split), undo,
click on any region-gain point.
2019-02-15 21:37:19 +01:00
a858f199a1
Simply debugging port-registration failures 2019-02-15 18:27:22 +01:00
edc34b8d05
Optimize DSP-load calculation, pre-calculate fall-off once 2019-02-14 00:04:29 +01:00
d03574987c
Fix meterbridge to follow track/bus re-ordering 2019-02-13 20:24:23 +01:00
b24fef38b2 Fix for automation-line edits using the Range+Draw tool, when no line is already present. 2019-02-12 21:23:01 -06:00
08f51e72d5 midi-audition-synth-uri is deprecated (libardour part). 2019-02-12 13:04:59 -06:00
0971e785a3 midi-audition-synth-uri is deprecated (gtk2 part). 2019-02-12 13:04:59 -06:00
14c69e869f Hard-code GMsynth as the fallback, and allow UI to select the audition synth on-the-fly. 2019-02-12 13:04:59 -06:00
5eca084d00 Allow the selected Instrument to be used as the auditioner synth. 2019-02-12 13:04:59 -06:00
c881b4a85f Summary View should use the playhead color from config. 2019-02-12 11:36:04 -06:00
3e442ae52b Session-range behavior (gtk2 part)
* Both the session-start and session-end point should follow the is-free option
  * Rename the end-is-free option to session-range-is-free, to reflect that change
  * This fixes the problem: recording before the start marker would move the Start,
    even if the user had already fixed the End marker.
2019-02-12 11:35:57 -06:00
688bd28458 Session-range behavior (libardour part) 2019-02-12 11:35:48 -06:00
22deebb42f Selection-after-split behavior (gtk2 part)
*  When splitting in MouseObject, entered_region should get priority over selected regions.
    This fixes the unexpected case where you try to split an unselected a region, but
       a)  nothing happens  OR
       b)  some other region (maybe off-screen) is split

*  Range mode now has its own option for splits, which can be:
     Clear:  the selection is cleared.
     Preserve:  the selection is left as-is. (default)
     Force:  all the regions that resulted from the split are selected (forcing a tool change).

*  Un-hid the additional config options to select only the regions BEFORE or AFTER a split.

*  Note:  splits made with Cut Tool should be unaffected by these changes.
2019-02-12 11:35:39 -06:00
37d28c63db Selection-after-split behavior ( libardour part ) 2019-02-12 11:34:50 -06:00
983875ffc8
Fix llabs() ambiguity
some older systems (e.g. OSX/PPC) fail to compile with
  error: call of overloaded 'llabs(long long int)' is ambiguous
  candidates are:
      long long int llabs(long long int)
      long long int __gnu_cxx::llabs(long long int)
2019-02-09 03:33:32 +01:00
3f66bac4d0
Fix MIDI-bypass for inplace plugins -- #7722 2019-02-09 00:38:36 +01:00
865a33f7b9
Properly initialize atomic variable 2019-02-08 19:33:23 +01:00
796ac29cf2
Fix some disk-buffer threading issues
Make _pending_overwrite atomic (butler + process thread).
This also addresses a potential seek before override race.

Seeking will fill the buffers and by the time overwrite_existing_buffers()
is called from there is no space to overwrite anymore.
2019-02-08 19:33:23 +01:00
b5587e5e43
NO-OP: clarify internal API, prepare for overwrite queue 2019-02-08 19:33:19 +01:00
a6e7abb7fa Accommodate newly introduced source(s) in our MSVC project (libpbd) 2019-02-08 10:17:57 +00:00
bea9f5adc3
Remove disk-reader local MIDI vari-speed
Vari-speed is now handled by the engine, on port-level
2019-02-07 21:32:20 +01:00
8dda9f4ca8
Prefer AudioBuffer reference over raw buffer
This allows for consistent libardour API usage, in particular Amp.
2019-02-07 15:28:30 +01:00
18af4dd55a
Prepare dedicated Disk-reader de-click gain-stage
This allows to specify a shorter fade-duration than default
Amp::apply_gain(), also allows to unroll and vectorize the loop
2019-02-07 15:28:25 +01:00
3c96ba1de6
Allow reading future data without read-commit
This is in preparation for de-click, fade-out. A disk-reader
can keep going, reading buffered data (if any) without changing the
read-index.
2019-02-07 01:31:15 +01:00
243412d930 do not use green for "OK" deltas in transport master dialog and drop delta character 2019-02-06 15:04:33 -07:00
68897a742f use correct value for silent sample count delivered to LTC decoder 2019-02-06 13:54:05 -07:00
896091d256 do not attempt to update transport master rows if audioengine is not running 2019-02-06 13:54:05 -07:00
5e1484bf18
Fix rolling backwards
When speed is -1,  start_sample >= end_sample and _transport_sample
needs to be decremented.

Session::process_with_events() did this correctly, this change makes
Session::process_without_events() behave identically.
2019-02-06 20:26:44 +01:00
1845dff4c8
Implement backwards micro-locates 2019-02-06 20:22:22 +01:00
dcd612f8a7
Prepare Disk-reader for bi-directional micro-locates 2019-02-06 19:22:46 +01:00
6975b5ca54
Prepare buffer for seeking
Keep track of safe reservation:
Data has been read (or was skipped) previously can be read again
up to the allocated "reservation" (which is never overwritten).
2019-02-06 19:00:15 +01:00
b3fda6236a
Optimize buffer zero-filling 2019-02-06 17:02:20 +01:00
007c4ffdc0
Towards a new disk-reader ringbuffer
This is mainly a NO-OP, introducing a new PlaybackBuffer type
and preparing for its use.

At this point in time, the buffer is just a power-of-two sized
ringbuffer and the disk-reader's read-logic is still unchanged.

Eventually the read and write sample position that are currently
private to the disk-reader can be migrated to be owned by the buffer.
Also Diskreader::read() positions can be matched to read-position ..
+/- buffer reservation and de-click can read w/o committing the read.
2019-02-05 23:29:31 +01:00
3cc3074dc7 use ::reset() not ::update() 2019-02-04 11:24:23 -07:00
90e5220fa6 reset "current" in LTC transport master when necessary 2019-02-04 11:23:56 -07:00
5b12cc9bad correctly initialize LTC transport master port latency (reversed boolean error) 2019-02-04 11:23:35 -07:00
6f81552011 NOOP: whitespace in function call 2019-02-04 11:22:25 -07:00
a18250905c fully initialize all LTC transport master members
at least the ones that can be done via initialization statements
2019-02-04 11:22:04 -07:00
3a43c6375d remove debug output 2019-02-04 11:21:07 -07:00
dae7ea5382 add DEBUG::Destruction output for Port 2019-02-04 11:20:49 -07:00
8edd03e68b extend debug output statement 2019-02-04 11:20:32 -07:00
55e2542193 add new DEBUG_TRACE output for transport masters 2019-02-04 11:20:19 -07:00