Commit graph

16357 commits

Author SHA1 Message Date
Len Ovens
ab0217f3a2 Added touch to more stripable controls
pan azimuth and width
	mute and trim
2020-08-19 09:45:44 -07:00
Len Ovens
d5016f80d3 Added automation control to the rest stripable controls
Pan azimuth
	Pan Width
	trim
	mute
2020-08-19 09:45:44 -07:00
Robin Gareus
fcd347fe0c
Fix --no-nls, i18n include order in libs -- #8361
Ardour's "pbd/i18n.h" needs to be included last,
after any include that may indirectly pull in getext or libintl.

For that reason "pbd/i18n.h" must not be used in header files either.
2020-08-19 17:39:32 +02:00
Robin Gareus
af254b8ff9
Fix Lua AudioRom read (buffer overflow) 2020-08-19 00:17:45 +02:00
Robin Gareus
65ecc1b40e
Do not interpolate away explicit MIDI automation points #8362 2020-08-15 01:57:01 +02:00
Robin Gareus
e4c56a0371
Remove unused API
These are longer be used since Seuqnce has a "force_discrete"
boolen that needs to be taken into account in addition to
user-configurable ControlList _interpolation mode.
2020-08-15 01:56:42 +02:00
Len Ovens
7ab67c42dc Fixes OSC panner issues: 8338 and 8246
8338 - crash with midi and no audio strip
		detect no panner
	8246 - send feedback of panner type
2020-08-12 08:08:39 -07:00
Robin Gareus
68f1ec348d
AVX gcc compatibility
`_mm256_cvtss_f32` is only available in avxintrin.h of gcc-8 or
later. There it is defined as

```
extern __inline float
__attribute__ ((__gnu_inline__, __always_inline__, __artificial__))
_mm256_cvtss_f32 (__m256 __A)
{
  return __A[0];
}
```

While explicit `vcurrent[0]` works with gcc-5 and gcc-6,
older gcc-4 fails with the following
 error: invalid types 'float __vector__[int]' for array subscript
2020-08-11 16:14:19 +02:00
Robin Gareus
01dbbb86c3
AVX/SSE compatibility
This fixes symbol mangle for window builds, and offers backwards
compatibility with older systems where the inline _mm256_cvtss_f32
is not defined in avxintrin.h
2020-08-11 15:12:50 +02:00
Ayan Shafqat
03abc1076e
Adding AVX optimized routines for Linux
This commit adds AVX optimized routines for the following
procedures below:

*_compute_peak
*_find_peaks
*_apply_gain_to_buffer
*_mix_buffers_with_gain
*_mix_buffers_no_gain

AVX optimized routine has the prefix of: x86_sse_avx_

Note: mix_buffer_with_gain and mix_buffers_no_gain may prefer
SSE implementaion over AVX if source and destination pointers
are aligned to 16 byte boundaries. Therefore, it will be optimal if
_all_ audio buffers are allocated to 32 byte boundaries to take
full advantage of AVX ISA extension.
2020-08-11 02:28:28 +02:00
Robin Gareus
0ddaf3fe68
Get previous commit to actually compile :) 2020-08-10 19:18:01 +02:00
Robin Gareus
ac97e5710a
Fix edge-cases when loading old (v2, v3) sessions
Previously when loading old session Route::init() of the master-bus
was called without the "MasterOut" or "MonitorOut" flag being set.

Various conditions that relied on is_master() or is_monitor()
during initialization failed when loading those sessions, leading
to subtle breakage.
2020-08-10 19:12:32 +02:00
Len Ovens
90f8212af7 Merge branch 'fb-sys' 2020-08-09 09:10:58 -07:00
Robin Gareus
d3685784aa
Fix numeric sort: use decimal or hex (but not octal)
This fixes sort order of plugin-presets or parameter
scale-points with leading zeros.
2020-08-09 14:45:39 +02:00
Len Ovens
5c6e8954ed Add pre/post fader to foldback send creation
add position param to send creation
	default all to prefader as first step
2020-08-08 18:41:03 -07:00
Robin Gareus
5193052d8a Fix OSX builds (i18n)
i18n must be included last, after all template  specialization.
Otherwise the following happens:

In file included from ../libs/pbd/pbd/i18n.h:22:
../libs/pbd/pbd/compose.h:122:6: error: call to function 'operator<<' that is neither visible in the template definition nor found by argument-dependent lookup
2020-08-06 21:38:00 +02:00
Robin Gareus
c54b36c3ff AU: only set render callbacks for connected busses
This fixes an issue with Renoise Redux. The plugin reports the following:

Reported Channel Capabilities (explicit):
      [2, 2]  [1, 2]  [0, 2]

When it is added to an Arodur MIDI track, the 0 in, 2 output variant is
chosen, since Ardour MIDI tracks don't have audio by default.

However the render callback was set uncondionally for all busses. This
lead to issues with this specific plugin.
2020-08-06 20:30:44 +02:00
Robin Gareus
357095b920
AU scan: only update config when discovering new plugins
When reading cached info only, crash protection is not needed.
2020-08-06 17:59:16 +02:00
Robin Gareus
56934284e7
Start engine for plugin scan test
This is needed for various cases. The sample-rate needs to be known,
and reading/writing config includes TFSM state, which needs an engine.
2020-08-06 17:56:08 +02:00
Robin Gareus
c6a8b848c9
Do not run plugin discovery for unit-tests
This fixes issues on MacOS (and Windows) unit-tests. The
unit-test run readless without proper UI thread. Discovering new
AU or VST can stall the app indefinitely or cause crashes.

NB. LADSPA, LV2 (and Lua) plugins are scanned regardless. Also
VST and AU cache files are read. The unit-test however only lists
LADSPA plugins.
2020-08-06 16:51:27 +02:00
Robin Gareus
6742a0961c
Ask LuaProc to drop references
This fixes a circular shared_ptr<> reference that prevents
plugin destruction.

LuaProc may hold references to Route that contains the plugin
or the PluginInsert of the LuaPlugin. These are only dropped
when the interpreter collects garbage.

Previously this happened in the d'tor or LuaProc, but while the
Plugin has a reference to the Insert, the Insert is not deleted
and the d'tor is never called.
2020-08-05 22:39:06 +02:00
Robin Gareus
c2618903ae
Allow to overload drop_references()
This is useful in cases where an object owns child objects
which in turn hold a reference to the parent.

In this case PluginInsert has-a Plugin, which may have a reference
to the insert or the Route.
2020-08-05 22:35:35 +02:00
Robin Gareus
bfccf7ba18
Don't clutter up recent list with test sessions 2020-08-05 21:55:36 +02:00
Robin Gareus
73165aae95
Fix XMLTree double-free
XMLTree's d'tor frees all child element of the document root
2020-08-05 20:27:53 +02:00
Robin Gareus
57ef7334ef
Fix invalid iterator reference when removing plugins
processors.erase (i); invalidates the iterator and references
to the object, so we first need to try-cast and disconnect.
2020-08-05 20:24:13 +02:00
Robin Gareus
189faf557f
Rename Loudness Volume Ctrl to LAN Amp 2020-08-04 21:32:57 +02:00
Robin Gareus
8b5737b8d2
Increase precision of numeric dB entry
This follows 5a41ca8fdf and df1e6fda2d.
Even though this kind of precision is rarely needed, rounding
to a single digit is inconsistent with various places that display
more than one digit, or allow more accurate control.
2020-08-01 09:57:18 +02:00
Robin Gareus
7e5e9e46a1
Consolidate calls to IO::latency 2020-08-01 00:17:54 +02:00
Robin Gareus
41c503768b
NO-OP: comment formatting
Use asterisks to separate indent (tabs) and alignment (spaces)
in comments. Also remove trailing whitespace.
2020-08-01 00:17:23 +02:00
Nikolaus Gullotta
13f041536d
Honor "Auto Play" setting when locating from Session::goto_start
Because TransportFSM's MotionState is `WaitingForLocate` when calling
Session::goto_start, transport_was_stopped was set incorrectly
2020-07-29 10:33:29 -05:00
Ben Loftis
76894b0ac3 When consolidating a Range of midi, the resulting region should fill the Range (not stop at the end of midi content) 2020-07-28 12:29:27 -05:00
Robin Gareus
e9ff843bb1
Implement master/loudness volume processor
This provides for a better user-experience than using a-amp.
Particularly since a-amp only has a 20dB range and can be automated.
2020-07-27 21:56:41 +02:00
Robin Gareus
b49656213d
Prefer const reference (amend f564c92493) 2020-07-26 17:15:15 +02:00
Ben Loftis
a8c29991d6 Assign a take_id to Bounced regions, so a multitrack bounce can be sorted/recognized in a list 2020-07-26 09:53:47 -05:00
Ben Loftis
4f6c71f275 Use the Track name in captured_for property (was processor:playlist which was obtuse) 2020-07-26 09:53:47 -05:00
Ben Loftis
f564c92493 Prompt user for name of Range and Region bounces (libardour part) 2020-07-26 09:53:47 -05:00
Ben Loftis
16c2df08ae When bouncing, use a TAG rather than changing the region name. 2020-07-26 09:53:47 -05:00
Robin Gareus
5a41ca8fdf
Amend df1e6fda2d, limit digits for numeric dB entry 2020-07-22 23:18:51 +02:00
Robin Gareus
df1e6fda2d
Fix SliderController numeric entry to use dB for gain 2020-07-22 21:43:14 +02:00
Robin Gareus
73089f6034
Add Lua bindings for the various TSFM states 2020-07-22 14:57:15 +02:00
Ben Loftis
a2f4521e77 Short-circuit gain interpolation if the change is negligibly small 2020-07-21 18:37:32 -05:00
Robin Gareus
fa495b7727
Account for additional TLS on macOS/X
On GLIBC systems pbd_stack_size() adds __pthread_get_minstack,
this is no available on mac systems, causing issues with some
libraries used by plugins.
2020-07-21 23:10:01 +02:00
Robin Gareus
5f3626d46f
Increase timeout for export-preparation
In some rare cases the butler may be busy for a long time
(e.g. seek in a large session may still be active when
export is started).

8 second timeout seems reasonable to prevent the app from hanging
without desktops showing a "unresponsive" popup in case the
timeout is reached for some reason (e.g the engine dies, and
no TFSM transition can happen).
2020-07-21 22:54:05 +02:00
Olivier Humbert
d2f74456c3
Update fr.po 2020-07-21 07:11:29 +02:00
Luciano Iam
e7e4fb3a81
WS: Use Ardour native scale for pan knobs 2020-07-21 06:49:28 +02:00
Robin Gareus
4dffe6e26e
Make master-output-volume optional 2020-07-21 05:50:30 +02:00
Robin Gareus
5ff3453b30
Update Ardour*Spacer to use theme color 2020-07-21 04:42:07 +02:00
Robin Gareus
e8e143bb32
Add a horizontal separator widget 2020-07-21 04:41:16 +02:00
Robin Gareus
001072e7d0
Implement ArdourKnob visual sensitivity 2020-07-21 02:18:39 +02:00
Robin Gareus
ba0dac92f2
Add a main-outs volume control and dedicated master-volume
This is intended for loudness normalization - #8318 to add
additional gain as last step.
2020-07-21 02:18:38 +02:00