ardour.git
7 years agoprepare route pin display (shared mixer + editor-mixer window proxy)
Robin Gareus [Tue, 10 May 2016 18:06:15 +0000 (20:06 +0200)]
prepare route pin display (shared mixer + editor-mixer window proxy)

7 years agoturn Pin GUI into Widget.
Robin Gareus [Mon, 9 May 2016 10:45:36 +0000 (12:45 +0200)]
turn Pin GUI into Widget.

7 years agouse main window visibility when toggling between editor + mixer
Paul Davis [Tue, 10 May 2016 14:04:03 +0000 (10:04 -0400)]
use main window visibility when toggling between editor + mixer

7 years agoadd visibility tracking for main window
Paul Davis [Tue, 10 May 2016 14:03:45 +0000 (10:03 -0400)]
add visibility tracking for main window

7 years agotrack geometry via configure events for tabbable own-windows
Paul Davis [Tue, 10 May 2016 13:46:12 +0000 (09:46 -0400)]
track geometry via configure events for tabbable own-windows

7 years agocopy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others)
Paul Davis [Mon, 9 May 2016 12:14:33 +0000 (08:14 -0400)]
copy-n-paste the ARDOUR_UI toggle-roll code into BasicUI (for Faderport and others)

7 years agoFix bug 6833 in bugzilla
John Emmas [Sun, 8 May 2016 11:06:12 +0000 (12:06 +0100)]
Fix bug 6833 in bugzilla

http://tracker.ardour.org/view.php?id=6833

When searching for our keyboard bindings file, ArdourKeyboard::find_bindings_files() was trying to find files with the wrong extension:- "..keys" rather than ".keys" (note the extra period). Fortunately, some later code was masking the problem (so we were eventually finding the file correctly). However we might as well fix the problem here, just in case we ever need to call ArdourKeyboard::find_bindings_files() from somewhere else in the future.

7 years agoAccommodate newly introduced source(s) in our MSVC project (libardour)
John Emmas [Sun, 8 May 2016 10:56:51 +0000 (11:56 +0100)]
Accommodate newly introduced source(s) in our MSVC project (libardour)

7 years agofix shared_ptr<Route> management in Mackie support so that deleted routes are destroyed
Paul Davis [Sat, 7 May 2016 17:35:57 +0000 (13:35 -0400)]
fix shared_ptr<Route> management in Mackie support so that deleted routes are destroyed

7 years agomake boost shared_ptr debugging a little easier to turn on/off
Paul Davis [Sat, 7 May 2016 17:32:31 +0000 (13:32 -0400)]
make boost shared_ptr debugging a little easier to turn on/off

7 years agoGUI part of LocaleGuard optimization.
Robin Gareus [Sat, 7 May 2016 15:17:41 +0000 (17:17 +0200)]
GUI part of LocaleGuard optimization.

7 years agoa few strategic LocaleGuards..
Robin Gareus [Sat, 7 May 2016 15:16:59 +0000 (17:16 +0200)]
a few strategic LocaleGuards..

..to prevent switching forth and back during  individual
::state(), ::set_state() when loading/saving the session or locating.

7 years agofix LV2 locale guard (missed in 6d343ba search/replace)
Robin Gareus [Sat, 7 May 2016 13:38:17 +0000 (15:38 +0200)]
fix LV2 locale guard (missed in 6d343ba search/replace)

7 years agoRevert "Add a global state localeguard (and one for route templates)"
Robin Gareus [Sat, 7 May 2016 10:20:40 +0000 (12:20 +0200)]
Revert "Add a global state localeguard (and one for route templates)"

This reverts commit 2b7a047e92bc5ebe3287860ff9c9f2fb0acb193c.

7 years agofix LocaleGuard contstructor (3dc77280)
Robin Gareus [Sat, 7 May 2016 10:19:41 +0000 (12:19 +0200)]
fix LocaleGuard contstructor (3dc77280)

7 years agolocale debugging
Robin Gareus [Sat, 7 May 2016 10:15:12 +0000 (12:15 +0200)]
locale debugging

7 years agotrying to get to the bottom of the decimal comma.
Robin Gareus [Fri, 6 May 2016 23:22:32 +0000 (01:22 +0200)]
trying to get to the bottom of the decimal comma.

7 years agoAdd a global state localeguard (and one for route templates)
Robin Gareus [Fri, 6 May 2016 23:11:28 +0000 (01:11 +0200)]
Add a global state localeguard (and one for route templates)

7 years agoadd a locale-guard to panner state
Robin Gareus [Fri, 6 May 2016 23:06:20 +0000 (01:06 +0200)]
add a locale-guard to panner state

7 years agoadd missing include
Robin Gareus [Fri, 6 May 2016 19:25:21 +0000 (21:25 +0200)]
add missing include

7 years agoconvert WinMME Device names to UTF-8
Robin Gareus [Fri, 6 May 2016 18:59:24 +0000 (20:59 +0200)]
convert WinMME Device names to UTF-8

7 years agoamend baca1fd3 (actually use preset)
Robin Gareus [Fri, 6 May 2016 14:26:22 +0000 (16:26 +0200)]
amend baca1fd3 (actually use preset)

7 years agoCreate new track by dragging an instrument from the favorites sidebar
Robin Gareus [Fri, 6 May 2016 14:04:05 +0000 (16:04 +0200)]
Create new track by dragging an instrument from the favorites sidebar

7 years agoallow lua to construct PresetRecords
Robin Gareus [Fri, 6 May 2016 14:02:24 +0000 (16:02 +0200)]
allow lua to construct PresetRecords

7 years agoadd API to load Instrument Preset when creating a Midi track
Robin Gareus [Fri, 6 May 2016 14:02:04 +0000 (16:02 +0200)]
add API to load Instrument Preset when creating a Midi track

7 years agoseparate Preset + Favorite DnD Targets
Robin Gareus [Fri, 6 May 2016 12:55:36 +0000 (14:55 +0200)]
separate Preset + Favorite DnD Targets

Sidebar is a source of "Favorites" and a destination for Presets.

7 years agoDnDTreeview: allow to handle multiple drag-targets
Robin Gareus [Fri, 6 May 2016 12:51:29 +0000 (14:51 +0200)]
DnDTreeview: allow to handle multiple drag-targets

7 years agofix a -Wreorder
Robin Gareus [Fri, 6 May 2016 02:02:34 +0000 (04:02 +0200)]
fix a -Wreorder

7 years agouse WindowManager toggle API for script-manager
Robin Gareus [Fri, 6 May 2016 01:59:02 +0000 (03:59 +0200)]
use WindowManager toggle API for script-manager

7 years agoNO-OP whitespace
Robin Gareus [Fri, 6 May 2016 01:09:20 +0000 (03:09 +0200)]
NO-OP whitespace

7 years agore-introduce "add track/bus" from mixer window
Robin Gareus [Fri, 6 May 2016 01:08:46 +0000 (03:08 +0200)]
re-introduce "add track/bus" from mixer window

7 years agolua script to bounce regions w/processing and replace the region
Robin Gareus [Thu, 5 May 2016 21:49:44 +0000 (23:49 +0200)]
lua script to bounce regions w/processing and replace the region

7 years agowhat an oversight!
Robin Gareus [Thu, 5 May 2016 21:44:10 +0000 (23:44 +0200)]
what an oversight!

7 years agowe always only use the "C" locale when saving.
Robin Gareus [Thu, 5 May 2016 19:49:56 +0000 (21:49 +0200)]
we always only use the "C" locale when saving.

7 years agoremove assert()s from LocaleGuard
Robin Gareus [Thu, 5 May 2016 18:29:28 +0000 (20:29 +0200)]
remove assert()s from LocaleGuard

7 years agominor comment change
Paul Davis [Thu, 5 May 2016 18:21:55 +0000 (14:21 -0400)]
minor comment change

7 years agospelling fixes and an explanatory comment
Paul Davis [Thu, 5 May 2016 18:21:02 +0000 (14:21 -0400)]
spelling fixes and an explanatory comment

7 years agorework locale-guard for C and C++ locales
Robin Gareus [Thu, 5 May 2016 18:02:23 +0000 (20:02 +0200)]
rework locale-guard for C and C++ locales

let's hope querying the C-locale is more lightweight than setting it
on windows.

7 years agono need to force a change here.
Robin Gareus [Thu, 5 May 2016 16:33:15 +0000 (18:33 +0200)]
no need to force a change here.

Fixes an issue with Mixbus where set_active() is a NO-OP for mixbusses.

7 years agoOMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)
Paul Davis [Thu, 5 May 2016 03:09:37 +0000 (23:09 -0400)]
OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one)

7 years agofix another menu typo in fda03d1
Robin Gareus [Wed, 4 May 2016 23:59:11 +0000 (01:59 +0200)]
fix another menu typo in fda03d1

7 years agofix "warning: this decimal constant is unsigned only in ISO C90"
Robin Gareus [Wed, 4 May 2016 23:28:17 +0000 (01:28 +0200)]
fix "warning: this decimal constant is unsigned only in ISO C90"

7 years agofix ppc builds
Robin Gareus [Wed, 4 May 2016 23:21:53 +0000 (01:21 +0200)]
fix ppc builds

7 years agodon't bother compiling nsview code swizzling for PPC
Paul Davis [Wed, 4 May 2016 21:38:10 +0000 (17:38 -0400)]
don't bother compiling nsview code swizzling for PPC

The platform has no support for libdispatch which is handy when setting up an objective C block,
and also has no Retina, which means it doesn't suffer the problem this code is intended to fix

7 years agouse existing API to find the instrument
Robin Gareus [Wed, 4 May 2016 15:52:17 +0000 (17:52 +0200)]
use existing API to find the instrument

7 years agoadd option to limit track-header meters to stereo
Robin Gareus [Wed, 4 May 2016 15:36:40 +0000 (17:36 +0200)]
add option to limit track-header meters to stereo

7 years agoNO-OP, whitespace
Robin Gareus [Wed, 4 May 2016 10:57:30 +0000 (12:57 +0200)]
NO-OP, whitespace

7 years agotweak cases where pin-mapping is reset & always sanitize map
Robin Gareus [Tue, 3 May 2016 18:12:58 +0000 (20:12 +0200)]
tweak cases where pin-mapping is reset & always sanitize map

7 years agofix typo in fda03d1f1
Robin Gareus [Tue, 3 May 2016 17:24:33 +0000 (19:24 +0200)]
fix typo in fda03d1f1

7 years agoMSVC won't compile 'const float _demolition[]' because it uses 'divide by zero' while...
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 ?

7 years agoAccommodate newly introduced source(s) in our MSVC project (audiographer)
John Emmas [Tue, 3 May 2016 16:26:41 +0000 (17:26 +0100)]
Accommodate newly introduced source(s) in our MSVC project (audiographer)

7 years agohandle single-bus, non-variable i/o Audio Units w/multiple configurations.
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.

7 years agoUpdate Russian translation
Alexandre Prokoudine [Tue, 3 May 2016 13:18:18 +0000 (16:18 +0300)]
Update Russian translation

7 years agoSidechain is one word
Robin Gareus [Tue, 3 May 2016 12:42:39 +0000 (14:42 +0200)]
Sidechain is one word

7 years agoconsistent menu labels
Robin Gareus [Tue, 3 May 2016 12:33:37 +0000 (14:33 +0200)]
consistent menu labels

7 years agobatch remove tracks
Robin Gareus [Tue, 3 May 2016 12:06:23 +0000 (14:06 +0200)]
batch remove tracks

7 years agoanother (non critical) concurrency issue:
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)

7 years agoskip updating editor-route display when closing the session
Robin Gareus [Tue, 3 May 2016 01:04:46 +0000 (03:04 +0200)]
skip updating editor-route display when closing the session

7 years agomark initial TAV as hidden to speed up initial display.
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.

7 years agospeed up track creation
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.

7 years agoadd a const method to check for existing key/value properties
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.

7 years agouse same tooltip timeout throughout Ardour -- part two
Robin Gareus [Mon, 2 May 2016 18:24:54 +0000 (20:24 +0200)]
use same tooltip timeout throughout Ardour -- part two

7 years agouse same tooltip timeout throughout Ardour -- part one
Robin Gareus [Mon, 2 May 2016 18:24:46 +0000 (20:24 +0200)]
use same tooltip timeout throughout Ardour -- part one

7 years ago_plugin_display can be a LuaPluginDisplay
Robin Gareus [Mon, 2 May 2016 15:12:42 +0000 (17:12 +0200)]
_plugin_display can be a LuaPluginDisplay

7 years agoremove a stray semicolon
Robin Gareus [Mon, 2 May 2016 13:43:43 +0000 (15:43 +0200)]
remove a stray semicolon

7 years agoExport format GUI updates for loudness normalization
Robin Gareus [Mon, 2 May 2016 13:43:22 +0000 (15:43 +0200)]
Export format GUI updates for loudness normalization

7 years agoAdd loudness normalization to Export Format & Graph
Robin Gareus [Mon, 2 May 2016 13:28:16 +0000 (15:28 +0200)]
Add loudness normalization to Export Format & Graph

7 years agoprepare loudness normalization
Robin Gareus [Mon, 2 May 2016 11:58:51 +0000 (13:58 +0200)]
prepare loudness normalization

7 years agotweak AU redrawing blocking heuristics
Robin Gareus [Sun, 1 May 2016 18:02:09 +0000 (20:02 +0200)]
tweak AU redrawing blocking heuristics

7 years agoincrease visibility of actual compiler warnings
Robin Gareus [Sun, 1 May 2016 17:57:49 +0000 (19:57 +0200)]
increase visibility of actual compiler warnings

7 years agoRhythm Rodent updates:
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

7 years agofix aubio-onset detection parameters
Robin Gareus [Sun, 1 May 2016 16:47:14 +0000 (18:47 +0200)]
fix aubio-onset detection parameters

7 years agoadd option to auto-save post-export-analysis image
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.

7 years agofix plugin-creator display for non LADSPA plugins
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"

7 years agofix a Wsigncompare and 2 -Wuninitialized
Robin Gareus [Sun, 1 May 2016 11:35:30 +0000 (13:35 +0200)]
fix a Wsigncompare and 2 -Wuninitialized

7 years agofix: gcc4.2 / PPC compilation
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>]()'

7 years agofix adding favorite plugins post-fader
Robin Gareus [Sun, 1 May 2016 11:11:43 +0000 (13:11 +0200)]
fix adding favorite plugins post-fader

7 years agomake region > Edit context menus identical
Robin Gareus [Sat, 30 Apr 2016 23:29:07 +0000 (01:29 +0200)]
make region > Edit context menus identical

7 years agoNO-OP use spaces throughout the menu file, remove trailing whitespace.
Robin Gareus [Sat, 30 Apr 2016 23:28:44 +0000 (01:28 +0200)]
NO-OP use spaces throughout the menu file, remove trailing whitespace.

7 years agoGUI updates for transient rework
Robin Gareus [Sun, 1 May 2016 00:02:25 +0000 (02:02 +0200)]
GUI updates for transient rework

7 years agovarious transient-detection fixes (split region, trim, move, undo,..)
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)

7 years agoAPI call to be removed
Robin Gareus [Sat, 30 Apr 2016 22:28:54 +0000 (00:28 +0200)]
API call to be removed

7 years agouse CFRunLoopTimer to check the effect of plugin redrawing, not a glib idle
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

7 years agomake BasicUI (for control surfaces) loop toggle work like the GUI
Paul Davis [Sat, 30 Apr 2016 14:54:32 +0000 (10:54 -0400)]
make BasicUI (for control surfaces) loop toggle work like the GUI

8 years agoenable luaproc presets
Robin Gareus [Fri, 29 Apr 2016 16:34:41 +0000 (18:34 +0200)]
enable luaproc presets

8 years agoimplement lua plugin presets
Robin Gareus [Fri, 29 Apr 2016 16:34:27 +0000 (18:34 +0200)]
implement lua plugin presets

8 years agoremove skeleton backend (superseded by portaudio)
Robin Gareus [Fri, 29 Apr 2016 14:43:09 +0000 (16:43 +0200)]
remove skeleton backend (superseded by portaudio)

8 years agoI wanna be nasty, I wanna be cruel,..
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.

8 years agoclean up of displayIfNeeded hack code
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

8 years agosave custom favorite plugin order (revert when merging VCA2)
Robin Gareus [Thu, 28 Apr 2016 23:39:39 +0000 (01:39 +0200)]
save custom favorite plugin order (revert when merging VCA2)

8 years agoadd Lua DSP plugin category
Robin Gareus [Thu, 28 Apr 2016 23:40:06 +0000 (01:40 +0200)]
add Lua DSP plugin category

8 years agoremove "Lua DSP Proc" context meuu
Robin Gareus [Thu, 28 Apr 2016 23:36:31 +0000 (01:36 +0200)]
remove "Lua DSP Proc" context meuu

8 years agoinclude lua processors in plugin-selector
Robin Gareus [Thu, 28 Apr 2016 23:26:46 +0000 (01:26 +0200)]
include lua processors in plugin-selector

8 years agodon't special case lua processors, use plugin-manager
Robin Gareus [Fri, 29 Apr 2016 00:57:42 +0000 (02:57 +0200)]
don't special case lua processors, use plugin-manager

8 years agoclever tricks with code swizzling to slow down errant plugin GUIs for AU
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

8 years agoconsolidate and re-order luasession code
Robin Gareus [Thu, 28 Apr 2016 19:38:09 +0000 (21:38 +0200)]
consolidate and re-order luasession code

8 years agoflush pending Session Events at session close
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.

8 years agofix a deadlock with jack2 when inserting a plugin adds ports.
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

8 years agoadd a debug message for LV2 per port buffer allocation
Robin Gareus [Thu, 28 Apr 2016 10:27:53 +0000 (12:27 +0200)]
add a debug message for LV2 per port buffer allocation

8 years agofor mixed-i/o show HW ports of both types in the matrix
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.