Robin Gareus [Tue, 3 May 2016 18:12:58 +0000 (20:12 +0200)]
tweak cases where pin-mapping is reset & always sanitize map
Robin Gareus [Tue, 3 May 2016 17:24:33 +0000 (19:24 +0200)]
John Emmas [Tue, 3 May 2016 16:30:58 +0000 (17:30 +0100)]
MSVC won't compile 'const float _demolition[]' because it uses 'divide by zero' while initializing
Hopefully we can use INFINITY and NAN for the relevant initializers ?
John Emmas [Tue, 3 May 2016 16:26:41 +0000 (17:26 +0100)]
Accommodate newly introduced source(s) in our MSVC project (audiographer)
Robin Gareus [Tue, 3 May 2016 16:17:29 +0000 (18:17 +0200)]
handle single-bus, non-variable i/o Audio Units w/multiple configurations.
Alexandre Prokoudine [Tue, 3 May 2016 13:18:18 +0000 (16:18 +0300)]
Update Russian translation
Robin Gareus [Tue, 3 May 2016 12:42:39 +0000 (14:42 +0200)]
Sidechain is one word
Robin Gareus [Tue, 3 May 2016 12:33:37 +0000 (14:33 +0200)]
consistent menu labels
Robin Gareus [Tue, 3 May 2016 12:06:23 +0000 (14:06 +0200)]
batch remove tracks
Robin Gareus [Tue, 3 May 2016 11:56:08 +0000 (13:56 +0200)]
another (non critical) concurrency issue:
Ignore latency-updates while removing tracks.
remove_tracks() calls disconnect_all() which can trigger the backend
to perform a latency-recompute in a different thread (process thread).
That calls Session::update_latency() which iterates over all routes
including the one(s) to be deleted.
At the same time disconnect_all() may propagate Port::PostDisconnect()
leading to a lock contention.
(no crash just a lot of unnecessary work. remove_routes() calls
update_latency_compensation() which triggers a recompute if needed)
Robin Gareus [Tue, 3 May 2016 01:04:46 +0000 (03:04 +0200)]
skip updating editor-route display when closing the session
Robin Gareus [Tue, 3 May 2016 00:19:26 +0000 (02:19 +0200)]
mark initial TAV as hidden to speed up initial display.
This prevents an extra call to "redisplay" from TAV::hide() which
triggers handle_gui_changes.
Visible TAVs are positioned using show_at() which unsets _hidden.
Robin Gareus [Tue, 3 May 2016 12:26:25 +0000 (14:26 +0200)]
speed up track creation
For every added Trackview/Mixerstrip, Ardour looks up GUI properties which
results in a total of 13 calls for the initial default items per track:
("height", "visible", "layer-display", "strip-width")
Since the tracks don't yet exist, the properties don't either.
Every lookup result in iterating over all all XMLNotes and for every
"Object". ->property ("id") and ->value () allocates memory.
Adding 64 tracks to an empty session results in 528293 string
allocations and deallocations in XMLNode::property() taking ~30%
of the track creation time.
This commit XMLnode's const method to prevent memory allocation
and caches a pointer to the XMLNode* to skip iterating over object
state.
Robin Gareus [Tue, 3 May 2016 00:07:40 +0000 (02:07 +0200)]
add a const method to check for existing key/value properties
handy to lookup up XMLNodes with "id" == ID w/o allocating memory.
Robin Gareus [Mon, 2 May 2016 18:24:54 +0000 (20:24 +0200)]
use same tooltip timeout throughout Ardour -- part two
Robin Gareus [Mon, 2 May 2016 18:24:46 +0000 (20:24 +0200)]
use same tooltip timeout throughout Ardour -- part one
Robin Gareus [Mon, 2 May 2016 15:12:42 +0000 (17:12 +0200)]
_plugin_display can be a LuaPluginDisplay
Robin Gareus [Mon, 2 May 2016 13:43:43 +0000 (15:43 +0200)]
remove a stray semicolon
Robin Gareus [Mon, 2 May 2016 13:43:22 +0000 (15:43 +0200)]
Export format GUI updates for loudness normalization
Robin Gareus [Mon, 2 May 2016 13:28:16 +0000 (15:28 +0200)]
Add loudness normalization to Export Format & Graph
Robin Gareus [Mon, 2 May 2016 11:58:51 +0000 (13:58 +0200)]
prepare loudness normalization
Robin Gareus [Sun, 1 May 2016 18:02:09 +0000 (20:02 +0200)]
tweak AU redrawing blocking heuristics
Robin Gareus [Sun, 1 May 2016 17:57:49 +0000 (19:57 +0200)]
increase visibility of actual compiler warnings
Robin Gareus [Sun, 1 May 2016 16:48:27 +0000 (18:48 +0200)]
Rhythm Rodent updates:
* fix aubio parameters (aubio-vamp picks them up on reset)
* group settings by Mode
* add new aubio4 functions and param
Robin Gareus [Sun, 1 May 2016 16:47:14 +0000 (18:47 +0200)]
fix aubio-onset detection parameters
Robin Gareus [Sun, 1 May 2016 16:09:37 +0000 (18:09 +0200)]
add option to auto-save post-export-analysis image
first revision, needs some label position fine-tuning and maybe
an option to include log-scale/rect waveform etc.
Robin Gareus [Sun, 1 May 2016 14:27:11 +0000 (16:27 +0200)]
fix plugin-creator display for non LADSPA plugins
e.g. "u-he"
Robin Gareus [Sun, 1 May 2016 11:35:30 +0000 (13:35 +0200)]
fix a Wsigncompare and 2 -Wuninitialized
Robin Gareus [Sun, 1 May 2016 11:20:53 +0000 (13:20 +0200)]
fix: gcc4.2 / PPC compilation
no match for 'operator!=' in 'x != std::list<_Tp, _Alloc>::rend()
[with _Tp = long long int, _Alloc = std::allocator<long long int>]()'
Robin Gareus [Sun, 1 May 2016 11:11:43 +0000 (13:11 +0200)]
fix adding favorite plugins post-fader
Robin Gareus [Sat, 30 Apr 2016 23:29:07 +0000 (01:29 +0200)]
make region > Edit context menus identical
Robin Gareus [Sat, 30 Apr 2016 23:28:44 +0000 (01:28 +0200)]
NO-OP use spaces throughout the menu file, remove trailing whitespace.
Robin Gareus [Sun, 1 May 2016 00:02:25 +0000 (02:02 +0200)]
GUI updates for transient rework
Robin Gareus [Sun, 1 May 2016 00:02:04 +0000 (02:02 +0200)]
various transient-detection fixes (split region, trim, move, undo,..)
* all API calls use session-time (allow region-lists)
* per-region transients are separated in
- Onset (Rhythm Rodent, Aubio)
- User-added
- internal/source (QM), used as fallback for next/prev (read-only)
Robin Gareus [Sat, 30 Apr 2016 22:28:54 +0000 (00:28 +0200)]
API call to be removed
Paul Davis [Sat, 30 Apr 2016 17:19:56 +0000 (13:19 -0400)]
use CFRunLoopTimer to check the effect of plugin redrawing, not a glib idle
Paul Davis [Sat, 30 Apr 2016 14:54:32 +0000 (10:54 -0400)]
make BasicUI (for control surfaces) loop toggle work like the GUI
Robin Gareus [Fri, 29 Apr 2016 16:34:41 +0000 (18:34 +0200)]
enable luaproc presets
Robin Gareus [Fri, 29 Apr 2016 16:34:27 +0000 (18:34 +0200)]
implement lua plugin presets
Robin Gareus [Fri, 29 Apr 2016 14:43:09 +0000 (16:43 +0200)]
remove skeleton backend (superseded by portaudio)
Robin Gareus [Fri, 29 Apr 2016 14:08:00 +0000 (16:08 +0200)]
I wanna be nasty, I wanna be cruel,..
Somme disastrous signal generators for QA.
Paul Davis [Fri, 29 Apr 2016 12:09:27 +0000 (08:09 -0400)]
clean up of displayIfNeeded hack code
Remove most debug output (not all). Rename variables and functions. Add comments
Robin Gareus [Thu, 28 Apr 2016 23:39:39 +0000 (01:39 +0200)]
save custom favorite plugin order (revert when merging VCA2)
Robin Gareus [Thu, 28 Apr 2016 23:40:06 +0000 (01:40 +0200)]
add Lua DSP plugin category
Robin Gareus [Thu, 28 Apr 2016 23:36:31 +0000 (01:36 +0200)]
remove "Lua DSP Proc" context meuu
Robin Gareus [Thu, 28 Apr 2016 23:26:46 +0000 (01:26 +0200)]
include lua processors in plugin-selector
Robin Gareus [Fri, 29 Apr 2016 00:57:42 +0000 (02:57 +0200)]
don't special case lua processors, use plugin-manager
Paul Davis [Thu, 28 Apr 2016 22:41:50 +0000 (18:41 -0400)]
clever tricks with code swizzling to slow down errant plugin GUIs for AU
This commit swizzles (replaces) NSView::displayIfNeeded to allow us to stop redraws of plugin
windows if the Glib idle timer fires less often then every 40msec. The next 10 plugin redraws
(for all plugin windows combined) will be skipped. Heuristics will likely need some adjustments
Robin Gareus [Thu, 28 Apr 2016 19:38:09 +0000 (21:38 +0200)]
consolidate and re-order luasession code
Robin Gareus [Thu, 28 Apr 2016 19:37:18 +0000 (21:37 +0200)]
flush pending Session Events at session close
This prevents a memory leak: The session is closed.
The session-butler drops memory pool trash. The Engine keeps running.
Once the AudioEngine is taken down (sample-rate switch, or at exit),
the backend process-thread is terminated but there is no trash-can anymore.
If there are unprocessed SessionEvents, this calls
free_per_thread_pool() -> cp->parent()->add_to_trash (cp).
"parent()" in this case the trash-can the butler emptied.
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)