Robin Gareus [Thu, 28 Apr 2016 19:15:26 +0000 (21:15 +0200)]
fix a deadlock with jack2 when inserting a plugin adds ports.
When adding a processor, the processor may add ports leading to
a call to jack_port_register(). while Ardour holds a WritertLock on the
processor-list (this commit removes this WriterLock).
with jack2 that results in a graph-reorder callback (WHY?)
jack2 issues that graph-reorder in a separate thread BUT
port-registration does not return until the graph-reorder is complete.
On Ardour's side, graph_reordered() calls Session::resort_routes ()
which eventually checks Route::direct_feeds_according_to_reality()
which needs a ReadLock on the processor-list to check I/O.
Since jack_port_register() does not return, this constitutes a deadlock.
THE ACTUAL PROBLEM IS JACK2's THREAD DESIGN!
Why does jack_port_register() trigger a graph-order in jack2?
No connections are made.
..and why does it block jack_port_register() from returning if
that graph-order callback is in a different thread?
http://pastebin.com/DZANXJLz
Robin Gareus [Thu, 28 Apr 2016 10:27:53 +0000 (12:27 +0200)]
add a debug message for LV2 per port buffer allocation
Robin Gareus [Thu, 28 Apr 2016 00:52:05 +0000 (02:52 +0200)]
for mixed-i/o show HW ports of both types in the matrix
e.g. sidechain inputs with audio and midi.
Paul Davis [Thu, 28 Apr 2016 00:14:10 +0000 (20:14 -0400)]
remove unnecessary lines+changes
Paul Davis [Thu, 28 Apr 2016 00:12:15 +0000 (20:12 -0400)]
fix logic bomb
Paul Davis [Wed, 27 Apr 2016 23:59:28 +0000 (19:59 -0400)]
if built on OS X without live resizing features, make AU plugin windows non-user-resiable
Paul Davis [Wed, 27 Apr 2016 23:58:54 +0000 (19:58 -0400)]
add a new configure-time for Cocoa live resizing macros
These were added in 10.6 but we're trying to be nice and look for the feature,
not some version
Ben Loftis [Wed, 27 Apr 2016 22:39:38 +0000 (17:39 -0500)]
another attempt to use platform-specific path for the default VST path
Robin Gareus [Wed, 27 Apr 2016 21:52:34 +0000 (23:52 +0200)]
amend
c1c81a239c after testing
Robin Gareus [Wed, 27 Apr 2016 21:33:28 +0000 (23:33 +0200)]
some linuxVST GUI details: initialize lock, add a note.
Robin Gareus [Wed, 27 Apr 2016 21:32:40 +0000 (23:32 +0200)]
pin connection GUI for variable I/O plugins
Robin Gareus [Wed, 27 Apr 2016 21:32:00 +0000 (23:32 +0200)]
allow to customize variable i/o plugin inputs
Ben Loftis [Wed, 27 Apr 2016 19:56:19 +0000 (14:56 -0500)]
fix default 64bit Windows VST path ( untested )
Paul Davis [Wed, 27 Apr 2016 19:47:43 +0000 (15:47 -0400)]
change ordering of origin-move and window-resize for AU plugins
Robin Gareus [Wed, 27 Apr 2016 19:44:40 +0000 (21:44 +0200)]
probable fix for 64bit VST signal latency
Paul Davis [Wed, 27 Apr 2016 19:23:09 +0000 (15:23 -0400)]
show debug out when AU NSView doesnt get moved
Len Ovens [Wed, 27 Apr 2016 16:06:46 +0000 (09:06 -0700)]
OSC: Fix Solo to work with both SIP and Listen.
Robin Gareus [Wed, 27 Apr 2016 12:45:40 +0000 (14:45 +0200)]
tweak LV2 atom buffer allocation strategy
Allow to re-use Midi buffers for GUI communication. Honor
resize-port extension for all Atom Sequence buffers.
(following example of http://lv2plug.in/book/#_sampler)
Paul Davis [Wed, 27 Apr 2016 04:02:59 +0000 (00:02 -0400)]
significant reworking of AudioUnit window resizing.
Tested on Apple Multiban Comp, Apple Dynamics Proc, AU Sampler, Zebra2 and Zebralette.
Still have a 1-2 pixel white border at lower and right edge after window is dragged larger.
Also, debug output.
Paul Davis [Wed, 27 Apr 2016 04:01:13 +0000 (00:01 -0400)]
add the concept of a "state mask" that determines what info a WindowProxy will save
Robin Gareus [Tue, 26 Apr 2016 23:44:55 +0000 (01:44 +0200)]
make -D VSTCallbacks readable
Robin Gareus [Tue, 26 Apr 2016 23:24:37 +0000 (01:24 +0200)]
canvas tooltips, too
Robin Gareus [Tue, 26 Apr 2016 23:08:31 +0000 (01:08 +0200)]
re-enable "Show Tooltip" preference (needs testing on all platforms)
Robin Gareus [Tue, 26 Apr 2016 23:07:53 +0000 (01:07 +0200)]
also hide persistent tooltips
debatable, since most of them are not "help/tool info" but rather
"current value display".
Then again tooltip is tooltip and can be annoying or not wanted.
Robin Gareus [Tue, 26 Apr 2016 23:06:01 +0000 (01:06 +0200)]
towards fixing optional tooltips
Editor::parameter_changed() is not called for UIConfig changes.
"use-tooltips" was never triggered.
Robin Gareus [Tue, 26 Apr 2016 20:45:06 +0000 (22:45 +0200)]
remove duplicate "bld.install_files" call
Robin Gareus [Tue, 26 Apr 2016 20:42:28 +0000 (22:42 +0200)]
deploy all *.colors files in binary bundles
Robin Gareus [Tue, 26 Apr 2016 20:21:00 +0000 (22:21 +0200)]
initialize output data ports for cases where the plugin is not run
(e.g. load session with inactive track, or instantiate an audio plugin
on a midi track before the synth)
Robin Gareus [Tue, 26 Apr 2016 17:45:06 +0000 (19:45 +0200)]
let GMainContext clean up after us.
this fixes a potential crash in
AsyncMIDIPort::~AsyncMIDIPort() -> CrossThreadChannel::~CrossThreadChannel()
Robin Gareus [Tue, 26 Apr 2016 16:19:48 +0000 (18:19 +0200)]
port
93eac8b0 to ALSA and CoreAudio
Robin Gareus [Tue, 26 Apr 2016 16:15:53 +0000 (18:15 +0200)]
allow to duplicate tracks with sends or load templates with sends/inserts
Robin Gareus [Tue, 26 Apr 2016 15:51:48 +0000 (17:51 +0200)]
lua snippet to interact with portengine
Robin Gareus [Tue, 26 Apr 2016 12:35:47 +0000 (14:35 +0200)]
implement missing PortManager methods and lua-bind them
John Emmas [Tue, 26 Apr 2016 14:02:20 +0000 (15:02 +0100)]
#define HAVE_JACK_PORT_RENAME when building with MSVC
This means needing to build against libjack v1.9.11 (or later) although that's probably not a bad thing.
John Emmas [Tue, 26 Apr 2016 13:58:16 +0000 (14:58 +0100)]
Use 'const_iterator' to prevent MSVC from complaining
Robin Gareus [Tue, 26 Apr 2016 11:03:47 +0000 (13:03 +0200)]
remove the splash-screen when changing sessions
ARDOUR_UI::load_session()'s loading_message() shows the splash in
all cases. But only the initial ARDOUR_UI::starting() does destroy it.
In some cases we got away because the Engine Dialog pops back the
splash and the dialog is never destroyed (only hidden).
It's not until ~Dialog that the splash is displayed again (if it exists).
Robin Gareus [Tue, 26 Apr 2016 10:56:52 +0000 (12:56 +0200)]
don't show engine dialog when loading a session..
..and the engine is running at the desired samplerate
Robin Gareus [Tue, 26 Apr 2016 02:02:58 +0000 (04:02 +0200)]
styleguide #10
sigc keeps a reference to the shared_ptr, AsyncMidiPorts were never
unregistered, causing issues when loading a new session w/o Engine
restart.
Robin Gareus [Tue, 26 Apr 2016 00:26:20 +0000 (02:26 +0200)]
keep portmap & portindex in sync when renaming ports
Fixes crash on session re-load (introduced in
800c8182 and
fde99e68)
Robin Gareus [Tue, 26 Apr 2016 00:21:09 +0000 (02:21 +0200)]
PortManager lua bindings (to debug lingering ports)
Robin Gareus [Mon, 25 Apr 2016 17:55:00 +0000 (19:55 +0200)]
tweak location-UI layout (right-align checkboxes & buttons)
Robin Gareus [Mon, 25 Apr 2016 17:39:59 +0000 (19:39 +0200)]
slightly improved location-UI layout
Robin Gareus [Mon, 25 Apr 2016 16:49:42 +0000 (18:49 +0200)]
NO-OP whitespace
Robin Gareus [Mon, 25 Apr 2016 16:17:35 +0000 (18:17 +0200)]
return of the location GoTo Button
Despite the tooltip, middle-click to locate is not very discoverable,
and tricky to not-available on MacBooks.
Paul Davis [Mon, 25 Apr 2016 13:37:12 +0000 (09:37 -0400)]
compile-time test for useful ASL API
Paul Davis [Sun, 24 Apr 2016 16:41:25 +0000 (12:41 -0400)]
remove unused code
Robin Gareus [Mon, 25 Apr 2016 12:29:12 +0000 (14:29 +0200)]
fix copy/paste typo in in
5e0f0fc
Robin Gareus [Mon, 25 Apr 2016 11:49:43 +0000 (13:49 +0200)]
update luadoc tools
Robin Gareus [Mon, 25 Apr 2016 11:06:40 +0000 (13:06 +0200)]
update [lua bindings] documentation
Robin Gareus [Mon, 25 Apr 2016 10:56:21 +0000 (12:56 +0200)]
lua action details (button sensitivity, text ellipsis)
Robin Gareus [Mon, 25 Apr 2016 00:35:45 +0000 (02:35 +0200)]
add missing header for luadoc
Robin Gareus [Sun, 24 Apr 2016 22:16:08 +0000 (00:16 +0200)]
add optional buttons to trigger lua scripted actions.
Robin Gareus [Sun, 24 Apr 2016 20:20:44 +0000 (22:20 +0200)]
update keyeditor when action label changes
Robin Gareus [Sun, 24 Apr 2016 18:45:50 +0000 (20:45 +0200)]
..and CoreAudio.
Robin Gareus [Sun, 24 Apr 2016 18:45:37 +0000 (20:45 +0200)]
O(log(n)) port and connection lookup for ALSA
Robin Gareus [Sun, 24 Apr 2016 16:34:31 +0000 (18:34 +0200)]
now with C++98 compat
Robin Gareus [Sun, 24 Apr 2016 16:23:14 +0000 (18:23 +0200)]
delayline: use boost::shared_array
Robin Gareus [Sun, 24 Apr 2016 16:24:06 +0000 (18:24 +0200)]
optimize port lookup, adding/removing/reconnecting routes
xxxAudioBackend::connected_to() is called O(N^2) when building the graph.
Mitigate this by using an O(log(N)) lookup.
This duplicates the storage (both set and map and both are kept in sync.
Changing this to a boost:bidirectional might be nice, before updating
other backends.
Robin Gareus [Sun, 24 Apr 2016 15:35:21 +0000 (17:35 +0200)]
reduce debug-build overhead.
Robin Gareus [Sun, 24 Apr 2016 14:06:38 +0000 (16:06 +0200)]
we need the process lock after all..
Paul Davis [Sun, 24 Apr 2016 15:24:34 +0000 (11:24 -0400)]
restore sending stderr/stdout to the console
This is done unconditionally right now for any ARDOUR_BUNDLED case. Need to
find a conditional, so that we can run from the command line/inside a debugger.
The -psn_XXXX argument will likely work
Robin Gareus [Sun, 24 Apr 2016 12:40:31 +0000 (14:40 +0200)]
add debug facilities to arlua (valgrind, callgrind) to test libardour
Robin Gareus [Sun, 24 Apr 2016 12:39:58 +0000 (14:39 +0200)]
some new lua-bindings and session-lua (creating sessions)
Robin Gareus [Sun, 24 Apr 2016 12:39:22 +0000 (14:39 +0200)]
NO-OP whitespace
Robin Gareus [Sun, 24 Apr 2016 12:39:12 +0000 (14:39 +0200)]
fix crash when loading a session with non-default clock modes.
set_mode() emits ModeChanged which results in save_extra_xml().
If this happens during session-load, the XML iterator is invalidated.
Robin Gareus [Sun, 24 Apr 2016 12:16:15 +0000 (14:16 +0200)]
fix mismatched delete/delete[]
Robin Gareus [Sun, 24 Apr 2016 11:22:15 +0000 (13:22 +0200)]
some notes on mem-leaks...
Robin Gareus [Sun, 24 Apr 2016 11:07:07 +0000 (13:07 +0200)]
hand over automationlist undo state ownership (mem-leak)
Robin Gareus [Sun, 24 Apr 2016 12:41:07 +0000 (14:41 +0200)]
plug some memory leaks in libardour
Paul Davis [Sun, 24 Apr 2016 04:37:53 +0000 (00:37 -0400)]
do NOT use Glib::ustring unless you know that the contents are UTF-8 AND that you need to iterate glyph by glyph
This fixes a Glib::ConvertError that occured when using Glib::ustring::operator<<
inside a compose operation. This implicitly uses Glib::locale_from_utf8(), and if the string
is not legal UTF-8, an exception will be thrown.
std::string should be used EVERYWHERE unless glyph-by-glyph iteration is required. This is
very rare in the Ardour codebase, so you really shouldn't see Glib::ustring anywhere. The
main exception is handling user-input for a few specific cases.
Robin Gareus [Sun, 24 Apr 2016 00:51:23 +0000 (02:51 +0200)]
further tweaks to session close
Robin Gareus [Sat, 23 Apr 2016 22:25:34 +0000 (00:25 +0200)]
lua bindings for track/bus and session creation
Robin Gareus [Sat, 23 Apr 2016 22:24:43 +0000 (00:24 +0200)]
Disconnect Signals before dropping ports
significantly speeds up session close
Robin Gareus [Sat, 23 Apr 2016 20:11:48 +0000 (22:11 +0200)]
delegate port-connections to low priority thread.
This prevents a deadlock with (some versions) jack:
* add new instrument track with instrument
* configure processors (takes processor lock)
* add I/Os (delivery) -> create ports
* auto-connect ports
* jack port-connect -> jack graph re-order
* Ardour graph-re-order
* needs processor lock (to check sends)
Robin Gareus [Sat, 23 Apr 2016 12:45:19 +0000 (14:45 +0200)]
save-as/snapshot tweaks:
* allow to take snapshots and save-as read-only session.
* change ambiguous "Save as" window title for "Snapshot & Switch"
* start save-as in configured session-dir
Robin Gareus [Fri, 22 Apr 2016 22:01:28 +0000 (00:01 +0200)]
fix typo in config variable
Robin Gareus [Fri, 22 Apr 2016 21:36:41 +0000 (23:36 +0200)]
fix send-id "0" when loading session
Send::set_state() unsets the current send-id before setting
the new one, but by default _bitset defaults to zero.
This may lead to unset an existing send "0"
Robin Gareus [Fri, 22 Apr 2016 20:04:48 +0000 (22:04 +0200)]
fix single-bus AU rendering & related updates
Robin Gareus [Fri, 22 Apr 2016 19:10:04 +0000 (21:10 +0200)]
invalidate AU cache on re-scan
Robin Gareus [Fri, 22 Apr 2016 18:50:06 +0000 (20:50 +0200)]
use coreaudio wrapper
Robin Gareus [Fri, 22 Apr 2016 17:35:58 +0000 (19:35 +0200)]
Pin Management UI tweaks for AU.
Robin Gareus [Fri, 22 Apr 2016 17:35:38 +0000 (19:35 +0200)]
Single instance AUs only, use variable i/o
Robin Gareus [Fri, 22 Apr 2016 16:47:45 +0000 (18:47 +0200)]
AU multibus support
Robin Gareus [Fri, 22 Apr 2016 15:31:08 +0000 (17:31 +0200)]
fix AU cache clear
Robin Gareus [Fri, 22 Apr 2016 12:26:33 +0000 (14:26 +0200)]
load presets for all instances
Robin Gareus [Fri, 22 Apr 2016 12:24:45 +0000 (14:24 +0200)]
add API to load plugin presets for all instances
John Emmas [Fri, 22 Apr 2016 06:18:15 +0000 (07:18 +0100)]
Clarify my XML error printout from yesterday (see previous commit)
John Emmas [Thu, 21 Apr 2016 15:45:15 +0000 (16:45 +0100)]
When logging XML error messages, make sure we don't accidentally log an empty message
Amends my previous commit #
a7508a9c from 23rd July 2015. If the filename and/or line number were NULL, we could end up logging a message with no text!
Robin Gareus [Wed, 20 Apr 2016 23:04:55 +0000 (01:04 +0200)]
and now with proper closing bracket.
Robin Gareus [Wed, 20 Apr 2016 23:02:18 +0000 (01:02 +0200)]
take MB dithering into account when stripping silence on export
Robin Gareus [Wed, 20 Apr 2016 20:36:03 +0000 (22:36 +0200)]
disable sidechain & manual cfg for MB & AU for now
Robin Gareus [Wed, 20 Apr 2016 19:44:28 +0000 (21:44 +0200)]
backend part for MB send-panners (ignore existing state, force disable)
Robin Gareus [Wed, 20 Apr 2016 19:27:44 +0000 (21:27 +0200)]
special case send panning for MB
since the route does not use Ardour pannersi"link panners" here only
affects send <> send linking.
Robin Gareus [Wed, 20 Apr 2016 16:06:51 +0000 (18:06 +0200)]
fix AU sidechain connection
Robin Gareus [Wed, 20 Apr 2016 15:24:50 +0000 (17:24 +0200)]
include sidechain when delegating I/O configuration
Robin Gareus [Wed, 20 Apr 2016 14:17:22 +0000 (16:17 +0200)]
Mixbus: auto-connect monitor-section
Mixbus does not expose the "auto_connect_standard_busses" preference
and forces it to false.
Robin Gareus [Wed, 20 Apr 2016 13:14:15 +0000 (15:14 +0200)]
amend
386f244f - don't reinitialize I/O map
load ChanCount to compare if I/O maps have changed.
Robin Gareus [Wed, 20 Apr 2016 09:55:02 +0000 (11:55 +0200)]
Reset I/O map when copying plugin and ChanCount changes
Len Ovens [Tue, 19 Apr 2016 23:13:18 +0000 (16:13 -0700)]
OSC: removed unused _namespace_root variable.
Robin Gareus [Tue, 19 Apr 2016 20:15:57 +0000 (22:15 +0200)]
fix stuck solo w/sidechain (when using port, not send, connections)