Robin Gareus [Thu, 5 Sep 2019 23:37:00 +0000 (01:37 +0200)]
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.
Robin Gareus [Thu, 5 Sep 2019 23:31:43 +0000 (01:31 +0200)]
Lua Fluid Synth example needs FluidR3_GM.sf2, skip unit-test
Robin Gareus [Thu, 5 Sep 2019 20:37:06 +0000 (22:37 +0200)]
Unit-test: parameter ranges outside [0..1]
More updates after
3d15499cdacacbafa32c8f
* set parameter-range for MIDI sequences
* set parameter-range for cubic spline
Robin Gareus [Thu, 5 Sep 2019 20:07:41 +0000 (22:07 +0200)]
Unit test all RegionEquivalence options
Robin Gareus [Thu, 5 Sep 2019 19:03:50 +0000 (21:03 +0200)]
Unit-test update: honor FadeInAutomation parameter-range
Since
3d15499cdacacbafa32c8f, 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.
Robin Gareus [Thu, 5 Sep 2019 18:17:57 +0000 (20:17 +0200)]
Exclude Lua Convovler from unit-test (fails because of missing IR)
Robin Gareus [Thu, 5 Sep 2019 17:32:51 +0000 (19:32 +0200)]
Strict Ctrl surface unit-test: check re-activate.
Robin Gareus [Thu, 5 Sep 2019 17:04:32 +0000 (19:04 +0200)]
Reduce stdout/stderr clutter, prefer DEBUG_TRACE
Robin Gareus [Thu, 5 Sep 2019 16:59:26 +0000 (18:59 +0200)]
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,..
Robin Gareus [Thu, 5 Sep 2019 15:45:58 +0000 (17:45 +0200)]
Ignore <ExtendingDeviceNames> midnam during unit-test
So far Ardour only supports midnam descriptions that specify a
<MasterDeviceNames> directly.
Robin Gareus [Thu, 5 Sep 2019 15:42:19 +0000 (17:42 +0200)]
Fix paths to .midnam file
Robin Gareus [Thu, 5 Sep 2019 15:01:19 +0000 (17:01 +0200)]
New sessions are saved implicitly, remove explicit call
Robin Gareus [Thu, 5 Sep 2019 15:00:14 +0000 (17:00 +0200)]
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()
Robin Gareus [Thu, 5 Sep 2019 14:57:19 +0000 (16:57 +0200)]
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!
Robin Gareus [Thu, 5 Sep 2019 13:29:15 +0000 (15:29 +0200)]
Report Lua script that failed a unit-test
Robin Gareus [Thu, 5 Sep 2019 12:56:39 +0000 (14:56 +0200)]
Fix thinko/typo bug introduced in
e6c9bcfd07
Robin Gareus [Thu, 5 Sep 2019 12:52:08 +0000 (14:52 +0200)]
Update MClk unit-test - new transportmaster API
Robin Gareus [Thu, 5 Sep 2019 12:09:22 +0000 (14:09 +0200)]
Remove unused header (superseded by libtemporal)
Robin Gareus [Thu, 5 Sep 2019 12:08:31 +0000 (14:08 +0200)]
Fix libevoal unit-test compilation
Robin Gareus [Wed, 4 Sep 2019 22:40:48 +0000 (00:40 +0200)]
Use Fixed-length when drawing percussive events
Previously adding percussive-hits created sustained notes
using the current grid as duration. This allowed to create
overlapping notes with the overlap not being visible.
Most hardware MIDI drumkits do send an immediate note-off event
after each hit (if they send note-offs at all).
Ardour now follows suit and does the same when using the draw/edit tool.
Robin Gareus [Wed, 4 Sep 2019 20:56:31 +0000 (22:56 +0200)]
Amend
69a3b0b46e, remove CCs not used by fluidsynth
Robin Gareus [Wed, 4 Sep 2019 14:34:45 +0000 (16:34 +0200)]
Add script to set automation states of multiple controls
Len Ovens [Wed, 4 Sep 2019 04:44:14 +0000 (21:44 -0700)]
Move foldback strip to left of Master
Len Ovens [Wed, 4 Sep 2019 04:16:42 +0000 (21:16 -0700)]
Change back ground color for foldback strip
Robin Gareus [Wed, 4 Sep 2019 02:22:24 +0000 (04:22 +0200)]
Update Fluidsynth to v2.0.6-git
Robin Gareus [Wed, 4 Sep 2019 02:11:45 +0000 (04:11 +0200)]
Expose CCs that fluidsynth uses by default in midnam
Len Ovens [Wed, 4 Sep 2019 00:12:51 +0000 (17:12 -0700)]
Resize and color the foldback level knob
Robin Gareus [Tue, 3 Sep 2019 20:01:35 +0000 (22:01 +0200)]
Fix mute toggle actions when mute is automated
Track menu, as well as mixer-shortcut to set/unset mute
of selected tracks needs to send a start_touch() event, otherwise
the change is not effective.
Robin Gareus [Tue, 3 Sep 2019 12:26:01 +0000 (14:26 +0200)]
Scroll Lua scripts, now that there can be many
Robin Gareus [Tue, 3 Sep 2019 03:01:59 +0000 (05:01 +0200)]
Fix -Wsign-compare
Robin Gareus [Tue, 3 Sep 2019 02:55:08 +0000 (04:55 +0200)]
Fix -Wnon-virtual-dtor
Robin Gareus [Tue, 3 Sep 2019 02:52:01 +0000 (04:52 +0200)]
NO-OP: remove trailing whitespace
Robin Gareus [Tue, 3 Sep 2019 02:31:35 +0000 (04:31 +0200)]
Increase available Lua action script slots
* Reserve 32 dedicated editor actions for scripts
* Limit number of toolbar buttons
* Use dedicated binding-group for keyboard-shortcuts
* Tweak Preferences layout of toolbar pane
Robin Gareus [Mon, 2 Sep 2019 19:20:26 +0000 (21:20 +0200)]
Proper error messages for Audio2MIDI script
Robin Gareus [Mon, 2 Sep 2019 19:20:06 +0000 (21:20 +0200)]
Another windows build fix, declare LuaDialog::ProgressWindow
Robin Gareus [Mon, 2 Sep 2019 13:45:48 +0000 (15:45 +0200)]
Fix windows build linking, declare bindings
Robin Gareus [Mon, 2 Sep 2019 13:45:14 +0000 (15:45 +0200)]
Update Lua scripts, class-name change
Robin Gareus [Mon, 2 Sep 2019 13:42:34 +0000 (15:42 +0200)]
Move LuaProgressDialog into "LuaDialog" namespace
Define class in header file
Match C++ and Lua binding namespaces (for documentation)
Robin Gareus [Mon, 2 Sep 2019 12:35:23 +0000 (14:35 +0200)]
Package VAMP pYIN plugin
Robin Gareus [Mon, 2 Sep 2019 03:44:00 +0000 (05:44 +0200)]
Fix pyin build, needs VAMPSDK
Robin Gareus [Mon, 2 Sep 2019 03:19:27 +0000 (05:19 +0200)]
Update Lua VAMP scripts to show a progress dialog
Robin Gareus [Mon, 2 Sep 2019 03:18:17 +0000 (05:18 +0200)]
Allow to cancel LuaAPI::Vamp::analyze
Robin Gareus [Mon, 2 Sep 2019 03:17:55 +0000 (05:17 +0200)]
Add Lua progress dialog
Robin Gareus [Mon, 2 Sep 2019 01:13:31 +0000 (03:13 +0200)]
Add pyin to VAMP_PATH
Robin Gareus [Mon, 2 Sep 2019 01:13:13 +0000 (03:13 +0200)]
Add vamp-pyin authors to user-visible doc
Robin Gareus [Mon, 2 Sep 2019 01:12:22 +0000 (03:12 +0200)]
Include vamp-pyin
In preparation for captainMorgan's pitch analysis script.
Robin Gareus [Sun, 1 Sep 2019 18:13:59 +0000 (20:13 +0200)]
Initialize uninitialized variables
If a session with a feedback loop is loaded, Graph::rechain()
is never called, and _n_terminal_nodes[] remains unset.
Robin Gareus [Sun, 1 Sep 2019 17:01:18 +0000 (19:01 +0200)]
Use preferred pa_context_new_with_proplist API
Robin Gareus [Sun, 1 Sep 2019 16:38:56 +0000 (18:38 +0200)]
Color schema for feedback-btn alternative active color
Robin Gareus [Sun, 1 Sep 2019 16:37:49 +0000 (18:37 +0200)]
Prominent "Feedback" indicator blinking
Always use a color when blinking. This allows to see
"feedback" even in screenshots. Previously there was a 50%
to capture it in a still image.
Robin Gareus [Sun, 1 Sep 2019 14:57:48 +0000 (16:57 +0200)]
Allow to un-set custom Ardour-button colors
Robin Gareus [Sun, 1 Sep 2019 14:52:24 +0000 (16:52 +0200)]
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.
Robin Gareus [Fri, 30 Aug 2019 20:56:07 +0000 (22:56 +0200)]
Fix mixer-side-bar show/hide actions
Changes need to be propagated to the Stripable's PresentationInfo.
So far this was not done for batch-changes using the mixer's left
side-bar "Show all", "Hide all" actions. They remained local
to the mixer and were not persistent.
Nikolaus Gullotta [Fri, 30 Aug 2019 19:44:50 +0000 (14:44 -0500)]
Move StripSilenceDialog XML to dedicated function
This moves the Session::add_extra_xml() call out of editor_ops.cc and
moves it to its own class method StripSilenceDialog::finished()
Nikolaus Gullotta [Fri, 30 Aug 2019 17:40:28 +0000 (12:40 -0500)]
Add settings retention to StripSilenceDialog
StripSilenceDialog will now retain its threshold, minimum length, and
fade length values from run to run.
This is done via Session::add_extra_xml() and recalled during the
construction of StripSilenceDialog via Session::extra_xml()
Robin Gareus [Thu, 29 Aug 2019 16:00:04 +0000 (18:00 +0200)]
Fix Lua-doc doxygen declaration extraction
Robin Gareus [Thu, 29 Aug 2019 15:57:22 +0000 (17:57 +0200)]
No-OP: move doxygen doc into header files
Robin Gareus [Thu, 29 Aug 2019 03:42:46 +0000 (05:42 +0200)]
Tweak Lua-doc processing:
Separate PHP based post-processing, used for manual creation.
php-cli may not be available on build host.
Len Ovens [Wed, 28 Aug 2019 23:23:46 +0000 (16:23 -0700)]
Replaced foldback select button with previous and next buttons
Len Ovens [Wed, 28 Aug 2019 20:22:24 +0000 (13:22 -0700)]
properly remove foldback strip so it can be created again
Nikolaus Gullotta [Wed, 28 Aug 2019 19:19:43 +0000 (14:19 -0500)]
Merge branch 'master' of git.ardour.org:ardour/ardour
Nikolaus Gullotta [Wed, 28 Aug 2019 19:19:26 +0000 (14:19 -0500)]
time span column should actually sort by location start time
Len Ovens [Wed, 28 Aug 2019 18:20:10 +0000 (11:20 -0700)]
Removed unused includes
Len Ovens [Wed, 28 Aug 2019 18:12:44 +0000 (11:12 -0700)]
Ensure monitor section is always leftmost in mixer window
Robin Gareus [Wed, 28 Aug 2019 16:38:06 +0000 (18:38 +0200)]
Lua: allow to build SelectionLists
This partially reverts
4538bcc7 to allow Editor:set_selection()
Nikolaus Gullotta [Wed, 28 Aug 2019 16:27:40 +0000 (11:27 -0500)]
add sortable length, span, and name columns to ExportTimespanSelectorMultiple and ExportTimespanSelectorSingle
Nikolaus Gullotta [Wed, 28 Aug 2019 15:07:41 +0000 (10:07 -0500)]
add .vscode editor data to gitignore
Len Ovens [Tue, 27 Aug 2019 17:15:39 +0000 (10:15 -0700)]
removed axis view from foldback strip
Robin Gareus [Tue, 27 Aug 2019 16:00:56 +0000 (18:00 +0200)]
Update icon render tool
* add "grid" mode
* re-build libwidgets as needed
* add a convenient `make show` target
Robin Gareus [Tue, 27 Aug 2019 15:58:58 +0000 (17:58 +0200)]
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
John Emmas [Tue, 27 Aug 2019 14:08:12 +0000 (15:08 +0100)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
Robin Gareus [Tue, 27 Aug 2019 11:43:09 +0000 (13:43 +0200)]
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().
Robin Gareus [Tue, 27 Aug 2019 11:22:53 +0000 (13:22 +0200)]
NO-OP: whitespace
Robin Gareus [Tue, 27 Aug 2019 10:18:14 +0000 (12:18 +0200)]
Resetting a tag implies changing it
Robin Gareus [Tue, 27 Aug 2019 10:17:46 +0000 (12:17 +0200)]
Update "By Tags" menu when Plugin-tags change -- #7800
Robin Gareus [Mon, 26 Aug 2019 23:41:38 +0000 (01:41 +0200)]
Use latency-icon instead of text
Len Ovens [Tue, 27 Aug 2019 02:01:19 +0000 (19:01 -0700)]
Foldback bus should not appear in editor
Len Ovens [Tue, 27 Aug 2019 00:47:21 +0000 (17:47 -0700)]
Monitor new signal to rebuild sendlist
remove debug lines, remove last FB bus works
Len Ovens [Mon, 26 Aug 2019 19:52:21 +0000 (12:52 -0700)]
Add signal for foldback send add or remove
Len Ovens [Thu, 22 Aug 2019 03:55:51 +0000 (20:55 -0700)]
Add send controls to foldback GUI
Len Ovens [Fri, 22 Feb 2019 21:39:17 +0000 (13:39 -0800)]
Fix processor box for no crash on click
Len Ovens [Fri, 25 Jan 2019 20:22:49 +0000 (12:22 -0800)]
Start adding processor box
Len Ovens [Sat, 19 Jan 2019 00:02:32 +0000 (16:02 -0800)]
fix last foldback commit.
Len Ovens [Fri, 18 Jan 2019 18:22:54 +0000 (10:22 -0800)]
Add strip GUI first try for foldback bus
Robin Gareus [Mon, 26 Aug 2019 22:00:29 +0000 (00:00 +0200)]
Reduce girth of "plus" icon
Robin Gareus [Mon, 26 Aug 2019 21:34:20 +0000 (23:34 +0200)]
Tweak icon_strip_width icon lines to align to pixels
Robin Gareus [Mon, 26 Aug 2019 21:30:21 +0000 (23:30 +0200)]
Add sample-rate as float option parameter for LV2 plugins and UIs
Robin Gareus [Mon, 26 Aug 2019 21:12:46 +0000 (23:12 +0200)]
Fix LV2 option size
Robin Gareus [Mon, 26 Aug 2019 20:44:11 +0000 (22:44 +0200)]
Add some scaleable "Latency" icon
Robin Gareus [Mon, 26 Aug 2019 16:58:34 +0000 (18:58 +0200)]
Push UI theme to backend, LV2 plugin options
Robin Gareus [Mon, 26 Aug 2019 16:57:47 +0000 (18:57 +0200)]
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.
Robin Gareus [Mon, 26 Aug 2019 14:28:03 +0000 (16:28 +0200)]
Borderless plugin UIs
This removes a border painted in the host's UI theme color around
any plugin UI.
This results in a much nicer look/feel for plugin-UIs that have their
own theme
Robin Gareus [Mon, 26 Aug 2019 14:04:22 +0000 (16:04 +0200)]
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.
Robin Gareus [Mon, 26 Aug 2019 14:01:19 +0000 (16:01 +0200)]
Tweak icon line widths
Scale line-width of all icons, some were left at 1px regardless
of scaling factor.
Robin Gareus [Sat, 24 Aug 2019 19:44:27 +0000 (21:44 +0200)]
Add/fix some TimeAxisView Lua bindings
Robin Gareus [Sat, 24 Aug 2019 16:42:51 +0000 (18:42 +0200)]
Tweak deletion, emit CatchDeletion() only once
Parent class d'tor runs after derived class d'tor. By the time
~TimeAxisView() is called, the actual object has already been
deleted and dyanamic_cast<RouteTimeAxisView*> or
dynamic_cast<AutomationTimeAxisView*> will fail.
CatchDeletion() needs to be emitted from the actual d'tor of the object.
There are currently three non-virtual TAVs:
* RouteTimeAxisView
* AutomationTimeAxisView
* VCATimeAxisView
The first two already directly emit CatchDeletion(), there's no need to
call it again from ~TimeAxisView().
Robin Gareus [Sat, 24 Aug 2019 16:37:28 +0000 (18:37 +0200)]
Consolidate code, skip editor/mixer update check
Robin Gareus [Sat, 24 Aug 2019 16:21:08 +0000 (18:21 +0200)]
Fix crash when selected automation-lane is removed
When a plugin is deleted, automation-lanes of the given plugin
are removed, but previously a pointed to the deleted lane remained
in the selection.
This caused crashes later when the track selection is used. e.g.
during sensitize_the_right_region_actions()
Note that ~TimeAxisView() also emits CatchDeletion (this);
however "this" fails to be dynamic_cast<AutomationTimeAxisView*>
because that d'tor has already been completed.
Robin Gareus [Sat, 24 Aug 2019 15:11:22 +0000 (17:11 +0200)]
NO-OP: comment
Robin Gareus [Sat, 24 Aug 2019 15:11:10 +0000 (17:11 +0200)]
Mitigate issues of expensive plugin analysis -- #7795
Plugin analysis uses a GUI thread instance of a given plugin to
perform a IR analysis.
Some plugins can be rather CPU expensive to analyze.
e.g. a-hi/lo-filter when interpolating is recalculating biquad
coefficients every 64samples during the 8k IR analysis. This can take
a significant amount of time on older CPUs.
Furthermore live-signal collection happens in the rt-thread,
using cross-thread signals. Signal collection is periodically initiated
from the same timeout signal as analysis.
Analysis is was done using default thread priority, which is higher
than the GUI redraw priority (PRIORITY_HIGH_IDLE).
So it was possible to contiguously initiate analysis, loading the CPU
and preventing redraws.