Commit graph

14605 commits

Author SHA1 Message Date
Robin Gareus
e48fe0fd42
Remove more cruft (unused rf-scale) 2019-02-21 00:24:56 +01:00
Robin Gareus
c3a7c7c452
Remove cruft (unused PostTransportInputChange) 2019-02-20 19:23:37 +01:00
Robin Gareus
69322ccd1b
Add unified API to select plugins to show on control-surfaces
e.g. Mixbus channelstrip should be hidden, also mixbus' built-in
effects are exposed as well-known controls
2019-02-20 16:26:51 +01:00
John Emmas
125a38bdbf Add/remove source(s) in our MSVC project (libardour) 2019-02-18 10:12:57 +00:00
Robin Gareus
bb4d769310
Remain silent while a disk-buffer is overwritten
This catches a case where a user-operation results in a complete
buffer re-fill during playback (e.g. split or move regions while playing)
2019-02-18 02:18:13 +01:00
Robin Gareus
6d7bc4ea30
Emit signal when plugin latency changes 2019-02-17 02:22:03 +01:00
Robin Gareus
2ec28f3ce7
Clean up Latency API (Processor vs Plugin)
Plugins are only a source of Latency (Plugin delay).
The API to query, signal and override Latency is managed
by PluginInsert.
2019-02-17 01:51:49 +01:00
Paul Davis
23a98e5f4d remove references to "Editor_menus" which is an action that no longer exists 2019-02-16 13:12:45 -07:00
Paul Davis
56e950b189 rename Main_menu action to Main menu
So that if it ever does show up in a list, it looks nice
2019-02-16 13:05:41 -07:00
Robin Gareus
35609bcfed
Fix some signed/unsigned warnings 2019-02-16 01:10:50 +01:00
Robin Gareus
fb8505a4ad
NO-OP: whitespace 2019-02-16 01:10:50 +01:00
Robin Gareus
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
Robin Gareus
a858f199a1
Simply debugging port-registration failures 2019-02-15 18:27:22 +01:00
Robin Gareus
edc34b8d05
Optimize DSP-load calculation, pre-calculate fall-off once 2019-02-14 00:04:29 +01:00
Ben Loftis
08f51e72d5 midi-audition-synth-uri is deprecated (libardour part). 2019-02-12 13:04:59 -06:00
Ben Loftis
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
Ben Loftis
688bd28458 Session-range behavior (libardour part) 2019-02-12 11:35:48 -06:00
Ben Loftis
37d28c63db Selection-after-split behavior ( libardour part ) 2019-02-12 11:34:50 -06:00
Robin Gareus
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
Robin Gareus
3f66bac4d0
Fix MIDI-bypass for inplace plugins -- #7722 2019-02-09 00:38:36 +01:00
Robin Gareus
865a33f7b9
Properly initialize atomic variable 2019-02-08 19:33:23 +01:00
Robin Gareus
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
Robin Gareus
b5587e5e43
NO-OP: clarify internal API, prepare for overwrite queue 2019-02-08 19:33:19 +01:00
John Emmas
a6e7abb7fa Accommodate newly introduced source(s) in our MSVC project (libpbd) 2019-02-08 10:17:57 +00:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
243412d930 do not use green for "OK" deltas in transport master dialog and drop delta character 2019-02-06 15:04:33 -07:00
Paul Davis
68897a742f use correct value for silent sample count delivered to LTC decoder 2019-02-06 13:54:05 -07:00
Robin Gareus
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
Robin Gareus
1845dff4c8
Implement backwards micro-locates 2019-02-06 20:22:22 +01:00
Robin Gareus
dcd612f8a7
Prepare Disk-reader for bi-directional micro-locates 2019-02-06 19:22:46 +01:00
Robin Gareus
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
Robin Gareus
b3fda6236a
Optimize buffer zero-filling 2019-02-06 17:02:20 +01:00
Robin Gareus
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
Paul Davis
3cc3074dc7 use ::reset() not ::update() 2019-02-04 11:24:23 -07:00
Paul Davis
90e5220fa6 reset "current" in LTC transport master when necessary 2019-02-04 11:23:56 -07:00
Paul Davis
5b12cc9bad correctly initialize LTC transport master port latency (reversed boolean error) 2019-02-04 11:23:35 -07:00
Paul Davis
6f81552011 NOOP: whitespace in function call 2019-02-04 11:22:25 -07:00
Paul Davis
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
Paul Davis
3a43c6375d remove debug output 2019-02-04 11:21:07 -07:00
Paul Davis
dae7ea5382 add DEBUG::Destruction output for Port 2019-02-04 11:20:49 -07:00
Paul Davis
8edd03e68b extend debug output statement 2019-02-04 11:20:32 -07:00
Paul Davis
55e2542193 add new DEBUG_TRACE output for transport masters 2019-02-04 11:20:19 -07:00
Paul Davis
ae1bd6bbd0 remove commented code 2019-02-04 11:19:56 -07:00
Paul Davis
64ed049567 force execution of ARDOUR::init_post_engine() before any handlers of AudioEngine::Running() 2019-01-27 14:02:03 -07:00
Paul Davis
e7b34d7f18 do not reset ControlProtocol state for every engine restart, it is not necessary 2019-01-27 14:01:05 -07:00
Paul Davis
1be3301342 new approach to handling Transport Masters when engine is restarted
Trust that ::reset() works for all transport masters, and call it when engine is stopped. This way
the transport masters are ready to be called again as soon as the engine restarts.
2019-01-25 09:23:08 -07:00
Robin Gareus
28f211c5d2
NO-OP: whitespace 2019-01-23 12:59:17 +01:00