Commit Graph

14647 Commits

Author SHA1 Message Date
Robin Gareus
c218b65d24 Fix the URI handling (for sfdb) for Windows
This forward ports Mixbus' 4eca3dea47 without additional code to correct
for old (Ardour2) URIs.

A2, used path2uri() which accumulated and left duplicate slashes in place,
eg. "file:////". Mixbus3 auto-corrected this on load in
AudioLibrary::search_members_and().
However sfdb libraries are not shared between major versions, so this
code does no need to be forward ported.
2019-04-12 18:38:49 +02:00
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