Commit graph

14646 commits

Author SHA1 Message Date
Robin Gareus
6cfb164d7c
Backport backup folder creation
Other parts for auto-backup is already in ardour-git.
2019-04-12 18:32:34 +02:00
Robin Gareus
6631d97ac0
Mixbus likes hyperthreading on Mac 2019-04-12 18:30:52 +02:00
Robin Gareus
3da07e6736
Special case Lua copy-construction of trackable instances
This fixes an crashing issue with ArdourUI.SelectionList a bug
introduced in 6dc3bdf252 and 35dcd46d7d.

Since removal of the special cases in 35dcd46d7d, when using
a C-pointer in a std::list<>,
  std::list<class*>::push_back(TypeListValue)
TypeListValues<>'s Head was expanded to  "class*& const"
implied by void ::push_back(const T& value);

This resulted in lifetime issues with a classes that derive
from sigc::trackable (e.g. Ardour's Selection).
The reference leaves scope and isn't duplicated when it is pushed back
to the std::list<>.

The script scripts/select_every_2nd_region.lua crashed because entries
in the SelectionList were no longer valid.

Previously (before 6dc3bdf252) TypeListValues explicitly
copy-constructed the value to work around the lifetime issue.
This new solution bypasses the issue by directly using the c-pointer
without dereferencing it.
2019-04-12 05:45:27 +02:00
Robin Gareus
2a8bda01b1
NO-OP: whitespace 2019-04-11 02:32:45 +02:00
Robin Gareus
01024e2b4c
Add API to render a reflection
This is to be used sparingly because the pattern is dynamically
created every time. Mainly for the benefit of some Mixbus
widgets -- compared to ArdourButton::convex_pattern
2019-04-11 02:06:32 +02:00
David Robillard
d465a2b012 Cleanup: Simplify conditionals 2019-04-10 10:24:33 +02:00
David Robillard
30d59c8f6e Remove support for building against LV2 older than 1.2.0
LV2 1.2.0 was released in 2012, over 6 years ago now.
2019-04-10 10:24:33 +02:00
Robin Gareus
7fc7c18a07
LV2: check required feature and options
When discovering LV2 plugins, verify if a plugin's required features
and required options can be be satisfied.

This replaces a previous blacklist with a whitelist of supported
features/options.
2019-04-10 00:22:20 +02:00
Robin Gareus
59b1193b56
Disable auto-input by default for new installs
This prevents audible feedback on laptops when adding new tracks
with default settings.
2019-04-09 14:36:56 +02:00
Robin Gareus
1780cbe179
Backport Mixbus delivery patch 2019-04-09 14:33:27 +02:00
Robin Gareus
57ebb5c1ba
Remove cruft: unused typedef 2019-04-09 02:23:17 +02:00
Robin Gareus
b840feb721
NO-OP: whitespace 2019-04-09 02:20:06 +02:00
Robin Gareus
9f77a6f7fe
NO-OP: more libardour whitespace tweaks 2019-04-08 19:36:22 +02:00
Robin Gareus
2f727a6a32
Undo yet more frame/sample replacements 2019-04-08 18:32:09 +02:00
Robin Gareus
aef75f87b7
NO-OP: whitespace, comments 2019-04-08 18:32:03 +02:00
Robin Gareus
0a329ffe73
NO-OP name change: CD-frames (not samples) 2019-04-08 14:44:22 +02:00
Robin Gareus
84272b4e27
NO-OP: whitespace
Fix space-alignment, mostly due to "frame" -> "sample" changes.
2019-04-08 05:16:33 +02:00
Robin Gareus
f4c5e21a7a
Undo incorrect sample/frame replacements in clearlooks 2019-04-08 04:10:12 +02:00
Robin Gareus
46f0b75e12
Undo more incorrect sample/frame replacements 2019-04-08 04:10:04 +02:00
Robin Gareus
889bd35f4f
NO-OP: whitespace 2019-04-08 03:45:12 +02:00
Robin Gareus
a5009bfed3
Indicate automation-latch as "touch" on the CC121
Without a dedicated "Latch" control, this does at least consistently
indicate "Touch", rather than show some arbitrary LED state.
2019-04-08 02:05:36 +02:00
Robin Gareus
94409c80f3
NO-OP: whitespace 2019-04-08 01:56:52 +02:00
Robin Gareus
e4f18c1771
NO-OP: whitespace & revert samples -> [stack]frames 2019-04-08 00:35:00 +02:00
Robin Gareus
eeb2cddd26
NO-OP: indent 2019-04-08 00:29:13 +02:00
Robin Gareus
4b86d19b27
Add missing semicolon (Mixbus) 2019-04-08 00:22:13 +02:00
Robin Gareus
3cc30c73af
Revert some incorrect frames -> samples replacements 2019-04-08 00:18:08 +02:00
Robin Gareus
7e0f6be1ed
Enable midi-to-audio bounce when processing w/synth 2019-04-07 19:54:29 +02:00
Robin Gareus
8f9c1df183
Prepare midi-export for midi-to-audio bouncing.
* shift event time into process cycle before calling processors
* reset note-trackers when exporting, don't allow any pending
  events into the queue
2019-04-07 19:54:24 +02:00
Robin Gareus
1ba391ab11
Fix bounce-process: skip all processors before disk-reader 2019-04-07 19:52:12 +02:00
Robin Gareus
73816d3e38
Bounce process always uses speed 1.0 2019-04-07 19:52:02 +02:00
Robin Gareus
a1c19911db
NO-OP/Optimize Bounce: Lookup data-type only once
This is to prepare for midi-to-audio bounce: allow to change the
data-type to be used as output.
2019-04-07 19:51:56 +02:00
Robin Gareus
7450d69189
Verify Freeze/Export/Bounce polarity invert buffers
When using bounce w/process, the initial bufferset can [wrongly] be
  buffers.set_count (track.max_processor_streams())
Since the polarity-processor is first in the chain, iterations
over all buffer that don't have a matching _current_gain[]
or _control[] leads to memory-corruption or segfault.
2019-04-07 19:51:49 +02:00
Robin Gareus
58babb1e9b
Backport a Mixbus special-case for plugin-tags 2019-04-03 03:35:40 +02:00
Robin Gareus
925d25851d
Fix OSC crash when there's no master bus 2019-04-03 03:35:13 +02:00
Robin Gareus
6f95dfdc31
Fix MIDI Aftertouch (import, record and play) in the backend 2019-04-02 15:35:57 +02:00
Robin Gareus
8f5e5c4c60
Downgrade LADSPA scan errors to warnings
There's nothing that a casual user can about failure to scan
LADSPA plugins. So just inform the user.
It's not an error to worry about.
2019-04-02 01:51:36 +02:00
Robin Gareus
6d335be418
Indicate automation-latch as "touch" on the FP1
The FP1 does not have a dedicated "Latch" control, but this does
at least consistently indicate that Touch, rather than show some
arbitrary LED state.
2019-04-01 22:30:16 +02:00
Robin Gareus
50e8c4d529
Expose Latch automation mode to MCUs 2019-04-01 22:28:07 +02:00
Robin Gareus
20201ef056
Clarify documentation 2019-03-31 22:25:40 +02:00
Robin Gareus
827b4ef8a1
NO-OP: Whitespace 2019-03-31 16:08:35 +02:00
Robin Gareus
0c368499f8
Fix route-templates with external sends 2019-03-28 03:01:53 +01:00
Robin Gareus
572df2c3bd
NO-OP: add comment for cross-reference 2019-03-26 22:25:20 +01:00
Robin Gareus
86138d18f9
Remove extra quotes from meta-data
Arguments are passed as argp[] array to execve() and don't need to be
enclosed by quotes.
2019-03-26 22:12:48 +01:00
Robin Gareus
854de91fb0
Fix mingw compile (declare int64_t and int32_t) 2019-03-26 15:35:36 +01:00
Robin Gareus
60262275af
Do not create automation when shifting (insert/remove time)
This fixes a bug when shift() creates automation for parameters that
can not have any automation (hidden parameters, Mixbus PRE).

The GUI (RTAV) aborts() when it finds an automation lane for
a hidden parameter.

This also cleans up shift() operations in general. Empty automation
lanes should be left alone, no guard-point at zero should be added.
2019-03-25 17:05:19 +01:00
Robin Gareus
3448f3151e
NO-OP: whitespac 2019-03-23 17:35:26 +01:00
Robin Gareus
60686a7b37
NO-OP: whitespace 2019-03-23 17:20:28 +01:00
Robin Gareus
c97116083f
Fix generic-midi controllable race-condition
Continued work after e9b36f2bea. Prefer a shared_ptr<>.

MIDIControllable::write_feedback() runs in realtime context, directly
from the main process-thread. Synchronizing weak-pointers and deletion
across threads does not work reliably. Retaining a shared_ptr<> for
controllables that are in use can solve this.
2019-03-23 16:32:48 +01:00
Robin Gareus
1d5e5b3523
Clean up MonitorProcessorControls
As opposed to regular AutomationControls these PBD:::Controllables
are not SessionObjects and don't emit a signal when the session
goes away.
2019-03-23 16:15:31 +01:00
Robin Gareus
96e991d08f
Clean out session-global controllables
This isn't strictly speaking needed, there are only a handful of
users (most notably generic-midi ctrl surface, and Selection)
2019-03-23 16:15:28 +01:00