Commit Graph

14898 Commits

Author SHA1 Message Date
Robin Gareus
9f668ceed2 AU: fix optional buffers
The spec [1] says:
 "If the mData pointers are null, the audio unit can
  provide pointers to its own buffers. In this case,
  the audio unit must keep those buffers valid for
  the duration of the calling thread’s I/O cycle."

A plugin *can* do this, but it does not need to. An extra
NULL test is required.

furthermore [2] specifies

 "mDataByteSize -  The number of bytes in the buffer pointed
  at by the mData field."

In case the host does not provide any buffers, this is obviously zero.


[1] https://developer.apple.com/documentation/audiotoolbox/1438430-audiounitrender?language=objc
[2] https://developer.apple.com/documentation/coreaudiotypes/audiobuffer?language=objc
2019-09-11 02:56:08 +02:00
Robin Gareus
8dc0c84ba4 AU: don't consider in-place if there are no inputs 2019-09-11 02:56:04 +02:00
Robin Gareus
d18f6dcbab MXCSR is a 32bit unsigned int register
https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_setcsr
2019-09-10 16:59:04 +02:00
Robin Gareus
ed937c383f Fix ARM compilation 2019-09-10 04:09:22 +02:00
Robin Gareus
38b36d2ea5 Engage thread-safe fftw planner in libardour
This way initialization happens constently, and independent from the GUI,
for session-utils, lua, headless..
2019-09-10 03:06:21 +02:00
Robin Gareus
68c13940e3 Implement denormal protection for ARM 2019-09-09 18:54:58 +02:00
Robin Gareus
4abb907a82 Use ProcessThread::init () to set up denormal protection
Modifying the MXCSR register only affects the current thread.
2019-09-09 18:48:16 +02:00
Robin Gareus
07b685c371 Remove NO-OP; ProcessThread::init() does nothing 2019-09-09 18:44:24 +02:00
Robin Gareus
7afb068fa6 When muting MIDI, silence all playing notes
All-note-off event (CC 123) needs to be accompanied
with raising the sustain-pedal (CC 64).
2019-09-09 17:10:04 +02:00
Robin Gareus
cd6e074e92 Fix MIDI velocity scale for muted sends and manual faders
Do not send continuous stream of note-evens with zero velocity
after muting a MIDI track or after a fade to silence completed
(and all-notes-off has been sent).

NB. Automated Faders are left untouched (no panic is sent for -infdB gain),
Note-on events with zero velocity are sent.
2019-09-09 05:01:26 +02:00
Robin Gareus
bbe605c0fa Send NoteOff on when muting MIDI, drop note events when silent 2019-09-09 04:15:20 +02:00
Robin Gareus
66ceb2b3c7 NO-OP: whitespace 2019-09-06 20:43:20 +02:00
Robin Gareus
33c251a623 Fix MSVC compilation
This resolves a circular dependency:
libardour calls methods from libardour_cp and vice versa.
Since 9bb2f2bb libardour is also calling active() and that method
needs to be forced to use late binding. -- compare to b9bbea7174
2019-09-06 20:35:49 +02:00
Robin Gareus
72d9a93baa Improve Lua unit-test report 2019-09-06 18:36:32 +02:00
Robin Gareus
6328f92665 Fix LuaProc script-parse return status 2019-09-06 15:39:54 +02:00
Robin Gareus
9052b29add Remove ancient unit-test data
Evoral MIDI automation interpolation is tested separately,
there is no need to evaluate a complete old session
2019-09-06 03:09:39 +02:00
Robin Gareus
9630b148bc Update template test session 2019-09-06 02:58:34 +02:00
Robin Gareus
212b445628 Shuttle Surface: handle libusb_init() failure
USB stack may not be available on some systems, e.g. unit-test VM.
When libusb_init(0) fails to create default context, further calls
into the libusb API will cause segfaults.
2019-09-06 01:37:00 +02:00
Robin Gareus
beccc53bb6 Unit-test: parameter ranges outside [0..1]
More updates after 3d15499cda

* set parameter-range for MIDI sequences
* set parameter-range for cubic spline
2019-09-05 22:42:08 +02:00
Robin Gareus
db063a6eb8 Unit test all RegionEquivalence options 2019-09-05 22:07:41 +02:00
Robin Gareus
772444d769 Unit-test update: honor FadeInAutomation parameter-range
Since 3d15499cda, libevoral enforces Parameter min/max
range. Ardour::ParameterDescriptor sets FadeInAutomation range to 0..2.
Hence all unit-test data needs to be in this range.
2019-09-05 21:03:50 +02:00
Robin Gareus
531ab8015c Exclude Lua Convovler from unit-test (fails because of missing IR) 2019-09-05 20:17:57 +02:00
Robin Gareus
7731f768a6 Strict Ctrl surface unit-test: check re-activate. 2019-09-05 19:32:51 +02:00
Robin Gareus
1d49696379 Reduce stdout/stderr clutter, prefer DEBUG_TRACE 2019-09-05 19:29:19 +02:00
Robin Gareus
9bb2f2bb69 Prevent duplicate Ctrl-protocol instances
ControlProtocols are single instance.

Activating an already active protocol leads to crashes due to
various rasons (e.g. port already registered), re-used singleton
event_loop_name and request-buffers, duplicate free of
AbstractUI request buffers during deactivate,..
2019-09-05 18:59:26 +02:00
Robin Gareus
22e5c1de0d Ignore <ExtendingDeviceNames> midnam during unit-test
So far Ardour only supports midnam descriptions that specify a
<MasterDeviceNames> directly.
2019-09-05 17:45:58 +02:00
Robin Gareus
973ff10273 Fix paths to .midnam file 2019-09-05 17:42:19 +02:00
Robin Gareus
dfdce83452 New sessions are saved implicitly, remove explicit call 2019-09-05 17:01:19 +02:00
Robin Gareus
51b2e305c4 Skip duplicate early session-save for new sessions
Identical code is called unconditionally at the end of
the Session c'tor via Session::session_loaded()
2019-09-05 17:00:14 +02:00
Robin Gareus
4949f9a0b3 Reset write-source only when necessary
When I/O port-counts do not change, plugin re-order happens
in sync in the process-thread. ::configure_io() is only called
to ensure that the current configuration is valid.

In case that the ChanCount does not change, the method must
be realtime-safe and not block.

DiskWriter::reset_write_sources() is not realtime-safe and
implicitly causes a session-save:

Write-sources are destroyed and re-created. This includes
a call to write_source->drop_references(), which triggers
ARDOUR::Session::remove_source(), which saves the session.

Furthermore adding/removing plugins will likewise call
::configure_io().

Previously any processor change on a track lead to
saving the session!
2019-09-05 16:57:19 +02:00
Robin Gareus
cff4332bcb Report Lua script that failed a unit-test 2019-09-05 15:29:15 +02:00
Robin Gareus
97306e089b Fix thinko/typo bug introduced in e6c9bcfd07 2019-09-05 14:56:39 +02:00
Robin Gareus
01c5aa34c6 Update MClk unit-test - new transportmaster API 2019-09-05 14:52:08 +02:00
Robin Gareus
5dfb729155 Remove unused header (superseded by libtemporal) 2019-09-05 14:09:22 +02:00
Robin Gareus
efec546035 Fix libevoal unit-test compilation 2019-09-05 14:08:31 +02:00
Robin Gareus
813ad4959d Amend 69a3b0b46e, remove CCs not used by fluidsynth 2019-09-04 22:56:31 +02:00
Robin Gareus
fdcddc736b Update Fluidsynth to v2.0.6-git 2019-09-04 04:35:59 +02:00
Robin Gareus
69a3b0b46e Expose CCs that fluidsynth uses by default in midnam 2019-09-04 04:35:59 +02:00
Robin Gareus
a3673809cf Fix -Wsign-compare 2019-09-03 05:01:59 +02:00
Robin Gareus
9970a243ec Fix -Wnon-virtual-dtor 2019-09-03 04:55:08 +02:00
Robin Gareus
58ee66e924 NO-OP: remove trailing whitespace 2019-09-03 04:52:01 +02:00
Robin Gareus
215bc64455 Another windows build fix, declare LuaDialog::ProgressWindow 2019-09-02 21:20:06 +02:00
Robin Gareus
8ce9ac82ae Fix windows build linking, declare bindings 2019-09-02 15:45:48 +02:00
Robin Gareus
c548333728 Fix pyin build, needs VAMPSDK 2019-09-02 05:44:00 +02:00
Robin Gareus
6edb649b53 Allow to cancel LuaAPI::Vamp::analyze 2019-09-02 05:18:17 +02:00
Robin Gareus
63994f3b82 Include vamp-pyin
In preparation for captainMorgan's pitch analysis script.
2019-09-02 03:12:22 +02:00
Robin Gareus
1c8b6e1b42 Initialize uninitialized variables
If a session with a feedback loop is loaded, Graph::rechain()
is never called, and _n_terminal_nodes[] remains unset.
2019-09-01 20:13:59 +02:00
Robin Gareus
45cf29b7c5 Use preferred pa_context_new_with_proplist API 2019-09-01 19:01:18 +02:00
Robin Gareus
7b3ca486a4 Allow to un-set custom Ardour-button colors 2019-09-01 16:57:48 +02:00
Robin Gareus
46bbe83400 Changing active-state needs no color lookup
Colors and patterns are cached, independent of active-state.
This didn't used to be the case in the distant ArdourButton past.
2019-09-01 16:52:24 +02:00