13
0
Commit Graph

14957 Commits

Author SHA1 Message Date
cbb7f6d863 use const int rather than macro 2019-09-17 17:57:43 -06:00
b84c99639f parametize the maximum transport speed.
No GUI to adjust this at this, nor is any planned. This just makes it easier if
we ever feel we can change this.
2019-09-17 17:19:15 -06:00
ea30642ae3 resize audio port _data buffer based on current buffer size 2019-09-17 17:14:39 -06:00
455039255b manually correct cherry-pick of cdbabe40ed4e 2019-09-17 17:06:08 -06:00
5e9f4f2572 add new port flag to identify those owned by a transport master
These ports are handled without SRC
2019-09-17 17:00:32 -06:00
37d9ec34c8 add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes 2019-09-17 16:54:10 -06:00
65ec8fe65a
Clarify splash-screen boot messages
Parsing MIDNAM is what takes the most time.

"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.
2019-09-16 23:08:01 +02:00
9c752c249d
Add new icons: hide, prev/next 2019-09-12 23:36:25 +02:00
8a313daa13
Who needs semicolons? 2019-09-11 03:00:26 +02:00
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
8dc0c84ba4
AU: don't consider in-place if there are no inputs 2019-09-11 02:56:04 +02:00
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
ed937c383f
Fix ARM compilation 2019-09-10 04:09:22 +02:00
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
68c13940e3
Implement denormal protection for ARM 2019-09-09 18:54:58 +02:00
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
07b685c371
Remove NO-OP; ProcessThread::init() does nothing 2019-09-09 18:44:24 +02:00
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
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
bbe605c0fa
Send NoteOff on when muting MIDI, drop note events when silent 2019-09-09 04:15:20 +02:00
66ceb2b3c7
NO-OP: whitespace 2019-09-06 20:43:20 +02:00
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
72d9a93baa
Improve Lua unit-test report 2019-09-06 18:36:32 +02:00
6328f92665
Fix LuaProc script-parse return status 2019-09-06 15:39:54 +02:00
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
9630b148bc
Update template test session 2019-09-06 02:58:34 +02:00
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
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
db063a6eb8
Unit test all RegionEquivalence options 2019-09-05 22:07:41 +02:00
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
531ab8015c
Exclude Lua Convovler from unit-test (fails because of missing IR) 2019-09-05 20:17:57 +02:00
7731f768a6
Strict Ctrl surface unit-test: check re-activate. 2019-09-05 19:32:51 +02:00
1d49696379
Reduce stdout/stderr clutter, prefer DEBUG_TRACE 2019-09-05 19:29:19 +02:00
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
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
973ff10273
Fix paths to .midnam file 2019-09-05 17:42:19 +02:00
dfdce83452
New sessions are saved implicitly, remove explicit call 2019-09-05 17:01:19 +02:00
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
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
cff4332bcb
Report Lua script that failed a unit-test 2019-09-05 15:29:15 +02:00
97306e089b
Fix thinko/typo bug introduced in e6c9bcfd07 2019-09-05 14:56:39 +02:00
01c5aa34c6
Update MClk unit-test - new transportmaster API 2019-09-05 14:52:08 +02:00
5dfb729155
Remove unused header (superseded by libtemporal) 2019-09-05 14:09:22 +02:00
efec546035
Fix libevoal unit-test compilation 2019-09-05 14:08:31 +02:00
813ad4959d
Amend 69a3b0b46e, remove CCs not used by fluidsynth 2019-09-04 22:56:31 +02:00
fdcddc736b
Update Fluidsynth to v2.0.6-git 2019-09-04 04:35:59 +02:00
69a3b0b46e
Expose CCs that fluidsynth uses by default in midnam 2019-09-04 04:35:59 +02:00
a3673809cf
Fix -Wsign-compare 2019-09-03 05:01:59 +02:00
9970a243ec
Fix -Wnon-virtual-dtor 2019-09-03 04:55:08 +02:00
58ee66e924
NO-OP: remove trailing whitespace 2019-09-03 04:52:01 +02:00
215bc64455
Another windows build fix, declare LuaDialog::ProgressWindow 2019-09-02 21:20:06 +02:00
8ce9ac82ae
Fix windows build linking, declare bindings 2019-09-02 15:45:48 +02:00
c548333728
Fix pyin build, needs VAMPSDK 2019-09-02 05:44:00 +02:00
6edb649b53
Allow to cancel LuaAPI::Vamp::analyze 2019-09-02 05:18:17 +02:00
63994f3b82
Include vamp-pyin
In preparation for captainMorgan's pitch analysis script.
2019-09-02 03:12:22 +02:00
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
45cf29b7c5
Use preferred pa_context_new_with_proplist API 2019-09-01 19:01:18 +02:00
7b3ca486a4
Allow to un-set custom Ardour-button colors 2019-09-01 16:57:48 +02:00
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
08644d8f2a
No-OP: move doxygen doc into header files 2019-08-29 17:57:22 +02:00
7f2bfa362f
Cont'd icon tweaks
* unify line-width calculation
* thin line-width, approximate thickness of
  glyph stroke width at same UI scale
* don't use outlines (except main tool buttons)
  This fixes issues of generic buttons with bright-theme
* pixel align some lines
2019-08-27 18:03:57 +02:00
79ac8215e9
Update Plugin-Tag policy
* Don't store tags from plugin's own metadata
  Those are set during plugin-scan every time
* Save user-tags even if they're not new
* Reset tags to factory-file tag (if any)

Old user tag files (prior to this commit) are interpreted
as "factory-file". This will auto-correct after the
first save_tags().
2019-08-27 13:43:09 +02:00
37caa11b52
NO-OP: whitespace 2019-08-27 13:22:53 +02:00
5a7659fbdb
Resetting a tag implies changing it 2019-08-27 12:18:44 +02:00
220fa45d35 Add signal for foldback send add or remove 2019-08-26 17:48:22 -07:00
b01f6ead8b
Reduce girth of "plus" icon 2019-08-27 00:00:29 +02:00
b4addaaa0a
Tweak icon_strip_width icon lines to align to pixels 2019-08-26 23:34:20 +02:00
2dbeaaffa6
Add sample-rate as float option parameter for LV2 plugins and UIs 2019-08-26 23:30:21 +02:00
5e46108e95
Fix LV2 option size 2019-08-26 23:12:46 +02:00
646aded4f2
Add some scaleable "Latency" icon 2019-08-26 22:44:11 +02:00
80e30ea0d1
LV2 options for UI theme
Inform plugins about host theme (fg, bg colors) and UI scale-factor.
The latter follows an implementation already present in Carla and DPF.
These extension use proposed official URLs.
2019-08-26 18:57:47 +02:00
09a71b4392
Allow Icon + Text on ArdourButton
Allow placing an icon left of some text in Ardour-button.
This also tweaks some spacing and alignment of Icons when
a LED toggle indicator is used.
2019-08-26 16:04:22 +02:00
e6e407f573
Tweak icon line widths
Scale line-width of all icons, some were left at 1px regardless
of scaling factor.
2019-08-26 16:01:19 +02:00
9ce5184993
NO-OP: comment 2019-08-24 17:11:22 +02:00
89f0e70b82
Fix memory-leak in case of Vamp plugin setup error 2019-08-24 03:31:49 +02:00
1ea3435de6
Add missing Lua bindings for function arguments
PortEngine was accidentally removed in 1339d42c78
2019-08-24 03:31:45 +02:00
02cc959d93
Add missing headers for lua-doc 2019-08-24 01:35:38 +02:00
9c785749ba
Lua binding to change region name 2019-08-24 01:35:14 +02:00
69688d24c4
Another fix for input only ALSA-slave devices 2019-08-24 00:15:10 +02:00
f7968f15dd
LCXL: Fix uninitialized pointer function
See also 026b74e25d. FilterFunction must point to a valid function.
2019-08-24 00:01:28 +02:00
000d331ea1
NO-OP: cleanup
* remove unused code
* replace "default" to check for switch() enum completeness
2019-08-23 15:50:26 +02:00
f1c29a9324
Re-order enum, use "NoIcon" as sentinel 2019-08-23 15:49:25 +02:00
9836bd786f
Some hints for clang static analysis 2019-08-23 05:15:17 +02:00
e5927d689c
Fix for half-duplex ALSA-slave devices 2019-08-23 04:39:51 +02:00
8fadf44978
Fix possible segfault when ALSA MIDI port registration fails 2019-08-23 04:39:12 +02:00
d52cf0f739
Tweak graph display, check direct sends
->feeds() follows connections "track -> master -> monitor"
(to detect feedback). Use direct_feeds_according_to_reality()
to correctly show sends-only.
2019-08-23 02:12:47 +02:00
b858b3b692
Detect monitor-send by instance, not name 2019-08-23 01:05:57 +02:00
a0d53b81b9
Update plugin-ui related icons 2019-08-22 21:03:07 +02:00
026b74e25d
Fix potential call of uninitialized pointer function
_template_number can be set via sysex to an arbitrary number, this
can lead to calling a filter-function at an undefined address, usually
a segfault.
2019-08-21 03:53:46 +02:00
c38c91ddbd
Initialize variable, fix branch condition 2019-08-21 03:09:32 +02:00
e6c9bcfd07
Prefer to use API defined return status 2019-08-21 03:06:28 +02:00
df60eca33c
Initialize uninitialized variable
This fixes a potentially undefined branch if the USB device list is empty.
dev is NULL, the loop is never entered, 'r' isn't set.
if (!dev && !r) is undefined.
2019-08-21 03:05:17 +02:00
dfa93e0b17
Tweak Ardourbutton: support (VectorIcon | Indicator) 2019-08-21 01:25:34 +02:00
1d8a6076ab
Add more vector-icons, plugin toolbar related
This allows to replace "Add", "Save", "Delete", "Reset", "Bypass"
text with icons.
2019-08-21 01:24:49 +02:00
2d4eb7d505
Replace OOM segfault with abort :) 2019-08-20 05:07:16 +02:00
3ccaaf1ea5
There's always a previous tempo/meter section 2019-08-20 04:53:00 +02:00
114b5088c7
There is always at least a tempo and meter section 2019-08-20 04:29:06 +02:00
6227dd5b04
Shuttle Surface: Fix uninitialized argument in case of incomplete state 2019-08-20 04:18:43 +02:00
f5330d763a
NO-OP: whitespace 2019-08-20 04:15:11 +02:00
73d0b6894a
Skip invalid plugin-tag spec 2019-08-20 04:15:01 +02:00