ardour.git
8 years agoport 93eac8b0 to ALSA and CoreAudio
Robin Gareus [Tue, 26 Apr 2016 16:19:48 +0000 (18:19 +0200)]
port 93eac8b0 to ALSA and CoreAudio

8 years agoallow to duplicate tracks with sends or load templates with sends/inserts
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

8 years agolua snippet to interact with portengine
Robin Gareus [Tue, 26 Apr 2016 15:51:48 +0000 (17:51 +0200)]
lua snippet to interact with portengine

8 years agoimplement missing PortManager methods and lua-bind them
Robin Gareus [Tue, 26 Apr 2016 12:35:47 +0000 (14:35 +0200)]
implement missing PortManager methods and lua-bind them

8 years ago#define HAVE_JACK_PORT_RENAME when building with MSVC
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.

8 years agoUse 'const_iterator' to prevent MSVC from complaining
John Emmas [Tue, 26 Apr 2016 13:58:16 +0000 (14:58 +0100)]
Use 'const_iterator' to prevent MSVC from complaining

8 years agoremove the splash-screen when changing sessions
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).

8 years agodon't show engine dialog when loading a session..
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

8 years agostyleguide #10
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.

8 years agokeep portmap & portindex in sync when renaming ports
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)

8 years agoPortManager lua bindings (to debug lingering ports)
Robin Gareus [Tue, 26 Apr 2016 00:21:09 +0000 (02:21 +0200)]
PortManager lua bindings (to debug lingering ports)

8 years agotweak location-UI layout (right-align checkboxes & buttons)
Robin Gareus [Mon, 25 Apr 2016 17:55:00 +0000 (19:55 +0200)]
tweak location-UI layout (right-align checkboxes & buttons)

8 years agoslightly improved location-UI layout
Robin Gareus [Mon, 25 Apr 2016 17:39:59 +0000 (19:39 +0200)]
slightly improved location-UI layout

8 years agoNO-OP whitespace
Robin Gareus [Mon, 25 Apr 2016 16:49:42 +0000 (18:49 +0200)]
NO-OP whitespace

8 years agoreturn of the location GoTo Button
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.

8 years agocompile-time test for useful ASL API
Paul Davis [Mon, 25 Apr 2016 13:37:12 +0000 (09:37 -0400)]
compile-time test for useful ASL API

8 years agoremove unused code
Paul Davis [Sun, 24 Apr 2016 16:41:25 +0000 (12:41 -0400)]
remove unused code

8 years agofix copy/paste typo in in 5e0f0fc
Robin Gareus [Mon, 25 Apr 2016 12:29:12 +0000 (14:29 +0200)]
fix copy/paste typo in in 5e0f0fc

8 years agoupdate luadoc tools
Robin Gareus [Mon, 25 Apr 2016 11:49:43 +0000 (13:49 +0200)]
update luadoc tools

8 years agoupdate [lua bindings] documentation
Robin Gareus [Mon, 25 Apr 2016 11:06:40 +0000 (13:06 +0200)]
update [lua bindings] documentation

8 years agolua action details (button sensitivity, text ellipsis)
Robin Gareus [Mon, 25 Apr 2016 10:56:21 +0000 (12:56 +0200)]
lua action details (button sensitivity, text ellipsis)

8 years agoadd missing header for luadoc
Robin Gareus [Mon, 25 Apr 2016 00:35:45 +0000 (02:35 +0200)]
add missing header for luadoc

8 years agoadd optional buttons to trigger lua scripted actions.
Robin Gareus [Sun, 24 Apr 2016 22:16:08 +0000 (00:16 +0200)]
add optional buttons to trigger lua scripted actions.

8 years agoupdate keyeditor when action label changes
Robin Gareus [Sun, 24 Apr 2016 20:20:44 +0000 (22:20 +0200)]
update keyeditor when action label changes

8 years ago..and CoreAudio.
Robin Gareus [Sun, 24 Apr 2016 18:45:50 +0000 (20:45 +0200)]
..and CoreAudio.

8 years agoO(log(n)) port and connection lookup for ALSA
Robin Gareus [Sun, 24 Apr 2016 18:45:37 +0000 (20:45 +0200)]
O(log(n)) port and connection lookup for ALSA

8 years agonow with C++98 compat
Robin Gareus [Sun, 24 Apr 2016 16:34:31 +0000 (18:34 +0200)]
now with C++98 compat

8 years agodelayline: use boost::shared_array
Robin Gareus [Sun, 24 Apr 2016 16:23:14 +0000 (18:23 +0200)]
delayline: use boost::shared_array

8 years agooptimize port lookup, adding/removing/reconnecting routes
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.

8 years agoreduce debug-build overhead.
Robin Gareus [Sun, 24 Apr 2016 15:35:21 +0000 (17:35 +0200)]
reduce debug-build overhead.

8 years agowe need the process lock after all..
Robin Gareus [Sun, 24 Apr 2016 14:06:38 +0000 (16:06 +0200)]
we need the process lock after all..

8 years agorestore sending stderr/stdout to the console
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

8 years agoadd debug facilities to arlua (valgrind, callgrind) to test libardour
Robin Gareus [Sun, 24 Apr 2016 12:40:31 +0000 (14:40 +0200)]
add debug facilities to arlua (valgrind, callgrind) to test libardour

8 years agosome new lua-bindings and session-lua (creating sessions)
Robin Gareus [Sun, 24 Apr 2016 12:39:58 +0000 (14:39 +0200)]
some new lua-bindings and session-lua (creating sessions)

8 years agoNO-OP whitespace
Robin Gareus [Sun, 24 Apr 2016 12:39:22 +0000 (14:39 +0200)]
NO-OP whitespace

8 years agofix crash when loading a session with non-default clock modes.
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.

8 years agofix mismatched delete/delete[]
Robin Gareus [Sun, 24 Apr 2016 12:16:15 +0000 (14:16 +0200)]
fix mismatched delete/delete[]

8 years agosome notes on mem-leaks...
Robin Gareus [Sun, 24 Apr 2016 11:22:15 +0000 (13:22 +0200)]
some notes on mem-leaks...

8 years agohand over automationlist undo state ownership (mem-leak)
Robin Gareus [Sun, 24 Apr 2016 11:07:07 +0000 (13:07 +0200)]
hand over automationlist undo state ownership (mem-leak)

8 years agoplug some memory leaks in libardour
Robin Gareus [Sun, 24 Apr 2016 12:41:07 +0000 (14:41 +0200)]
plug some memory leaks in libardour

8 years agodo NOT use Glib::ustring unless you know that the contents are UTF-8 AND that you...
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.

8 years agofurther tweaks to session close
Robin Gareus [Sun, 24 Apr 2016 00:51:23 +0000 (02:51 +0200)]
further tweaks to session close

8 years agolua bindings for track/bus and session creation
Robin Gareus [Sat, 23 Apr 2016 22:25:34 +0000 (00:25 +0200)]
lua bindings for track/bus and session creation

8 years agoDisconnect Signals before dropping ports
Robin Gareus [Sat, 23 Apr 2016 22:24:43 +0000 (00:24 +0200)]
Disconnect Signals before dropping ports

significantly speeds up session close

8 years agodelegate port-connections to low priority thread.
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)

8 years agosave-as/snapshot tweaks:
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

8 years agofix typo in config variable
Robin Gareus [Fri, 22 Apr 2016 22:01:28 +0000 (00:01 +0200)]
fix typo in config variable

8 years agofix send-id "0" when loading session
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"

8 years agofix single-bus AU rendering & related updates
Robin Gareus [Fri, 22 Apr 2016 20:04:48 +0000 (22:04 +0200)]
fix single-bus AU rendering & related updates

8 years agoinvalidate AU cache on re-scan
Robin Gareus [Fri, 22 Apr 2016 19:10:04 +0000 (21:10 +0200)]
invalidate AU cache on re-scan

8 years agouse coreaudio wrapper
Robin Gareus [Fri, 22 Apr 2016 18:50:06 +0000 (20:50 +0200)]
use coreaudio wrapper

8 years agoPin Management UI tweaks for AU.
Robin Gareus [Fri, 22 Apr 2016 17:35:58 +0000 (19:35 +0200)]
Pin Management UI tweaks for AU.

8 years agoSingle instance AUs only, use variable i/o
Robin Gareus [Fri, 22 Apr 2016 17:35:38 +0000 (19:35 +0200)]
Single instance AUs only, use variable i/o

8 years agoAU multibus support
Robin Gareus [Fri, 22 Apr 2016 16:47:45 +0000 (18:47 +0200)]
AU multibus support

8 years agofix AU cache clear
Robin Gareus [Fri, 22 Apr 2016 15:31:08 +0000 (17:31 +0200)]
fix AU cache clear

8 years agoload presets for all instances
Robin Gareus [Fri, 22 Apr 2016 12:26:33 +0000 (14:26 +0200)]
load presets for all instances

8 years agoadd API to load plugin 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

8 years agoClarify my XML error printout from yesterday (see previous commit)
John Emmas [Fri, 22 Apr 2016 06:18:15 +0000 (07:18 +0100)]
Clarify my XML error printout from yesterday (see previous commit)

8 years agoWhen logging XML error messages, make sure we don't accidentally log an empty message
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!

8 years agoand now with proper closing bracket.
Robin Gareus [Wed, 20 Apr 2016 23:04:55 +0000 (01:04 +0200)]
and now with proper closing bracket.

8 years agotake MB dithering into account when stripping silence on export
Robin Gareus [Wed, 20 Apr 2016 23:02:18 +0000 (01:02 +0200)]
take MB dithering into account when stripping silence on export

8 years agodisable sidechain & manual cfg for MB & AU for now
Robin Gareus [Wed, 20 Apr 2016 20:36:03 +0000 (22:36 +0200)]
disable sidechain & manual cfg for MB & AU for now

8 years agobackend part for MB send-panners (ignore existing state, force disable)
Robin Gareus [Wed, 20 Apr 2016 19:44:28 +0000 (21:44 +0200)]
backend part for MB send-panners (ignore existing state, force disable)

8 years agospecial case send panning for MB
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.

8 years agofix AU sidechain connection
Robin Gareus [Wed, 20 Apr 2016 16:06:51 +0000 (18:06 +0200)]
fix AU sidechain connection

8 years agoinclude sidechain when delegating I/O configuration
Robin Gareus [Wed, 20 Apr 2016 15:24:50 +0000 (17:24 +0200)]
include sidechain when delegating I/O configuration

8 years agoMixbus: auto-connect monitor-section
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.

8 years agoamend 386f244f - don't reinitialize I/O map
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.

8 years agoReset I/O map when copying plugin and ChanCount changes
Robin Gareus [Wed, 20 Apr 2016 09:55:02 +0000 (11:55 +0200)]
Reset I/O map when copying plugin and ChanCount changes

8 years agoOSC: removed unused _namespace_root variable.
Len Ovens [Tue, 19 Apr 2016 23:13:18 +0000 (16:13 -0700)]
OSC: removed unused _namespace_root variable.

8 years agofix stuck solo w/sidechain (when using port, not send, connections)
Robin Gareus [Tue, 19 Apr 2016 20:15:57 +0000 (22:15 +0200)]
fix stuck solo w/sidechain (when using port, not send, connections)

8 years agoclear [midi] plugin audio output buffers before running plugin.
Robin Gareus [Tue, 19 Apr 2016 18:39:40 +0000 (20:39 +0200)]
clear [midi] plugin audio output buffers before running plugin.

some samplers don't zero the output buffers if they're not configured
or no samples are loaded.

8 years agoRevert/amend "fix a const-cast issue"
Robin Gareus [Tue, 19 Apr 2016 17:07:09 +0000 (19:07 +0200)]
Revert/amend "fix a const-cast issue"

This reverts commit c9d55cb172d07d5da25140516abe045ea409b66b.
because it it's "const" one cannot set it from lua.

8 years agoshow no/inplace info in Pin Dialog (debug builds only)
Robin Gareus [Tue, 19 Apr 2016 17:02:50 +0000 (19:02 +0200)]
show no/inplace info in Pin Dialog (debug builds only)

.. also only show latency (relevant for thru) in debug-builds.

8 years agosome plugin-insert debugging
Robin Gareus [Tue, 19 Apr 2016 17:02:03 +0000 (19:02 +0200)]
some plugin-insert debugging

* report inplace
* debug-dump reason(s) why i/o maps are reset

8 years agofix a const-cast issue
Paul Davis [Tue, 19 Apr 2016 16:58:54 +0000 (12:58 -0400)]
fix a const-cast issue

8 years agodon't show plugin GUI when renaming tracks/busses
Robin Gareus [Tue, 19 Apr 2016 16:24:35 +0000 (18:24 +0200)]
don't show plugin GUI when renaming tracks/busses

ProcessorBox::route_property_changed() iterates over existing windows
and hit a "show_all".

8 years agofix midi-bypass drawing.
Robin Gareus [Tue, 19 Apr 2016 15:31:00 +0000 (17:31 +0200)]
fix midi-bypass drawing.

8 years agoGUI part of 00169f1da (TRY_AUTOSTART_ENGINE)
Robin Gareus [Tue, 19 Apr 2016 15:20:45 +0000 (17:20 +0200)]
GUI part of 00169f1da (TRY_AUTOSTART_ENGINE)

8 years agohidden config option to replace TRY_AUTOSTART_ENGINE environment var.
Robin Gareus [Tue, 19 Apr 2016 14:43:06 +0000 (16:43 +0200)]
hidden config option to replace TRY_AUTOSTART_ENGINE environment var.

It's really only used by the GUI, but engine states are part of
ARDOUR::Config::extra_xml  so this is at least similarly inconsistent.

8 years agodefault strict-i/o preference to enable
Robin Gareus [Tue, 19 Apr 2016 14:40:17 +0000 (16:40 +0200)]
default strict-i/o preference to enable

This makes a lot of sense for all midi-instruments and the
vast majority of mono+stereo workflows

8 years agoMixbus specific Pin Mapping tweaks
Robin Gareus [Tue, 19 Apr 2016 11:54:07 +0000 (13:54 +0200)]
Mixbus specific Pin Mapping tweaks

8 years agosmall is beautiful
Robin Gareus [Tue, 19 Apr 2016 11:31:41 +0000 (13:31 +0200)]
small is beautiful

...but I need new glasses
to tweak thru-via drawing for <=100% GUI scaling

8 years agoNO-OP, whitespace and comments
Robin Gareus [Tue, 19 Apr 2016 11:21:54 +0000 (13:21 +0200)]
NO-OP,  whitespace and comments

8 years agomore wire drawing..
Robin Gareus [Tue, 19 Apr 2016 11:21:09 +0000 (13:21 +0200)]
more wire drawing..

* use via-style circles for thru
* widen the spacing
* show gnd -> thru connections

8 years agofix plugin silence runs (e.g. during audition)
Robin Gareus [Mon, 18 Apr 2016 22:57:56 +0000 (00:57 +0200)]
fix plugin silence runs (e.g. during audition)

* use max of in+out buffers
* special case Mixbus
* clear delay-lines

8 years agofix possible crash at session close.
Robin Gareus [Mon, 18 Apr 2016 19:55:50 +0000 (21:55 +0200)]
fix possible crash at session close.

In the wake of 81faa3b420303eec2ca0e3. Disconnect Signal from process
callback, may notify an IO that just reached a zero shared ptr refcount
due to route-deletion (GUI thread) resulting in a double free.

8 years agoupdate instrument list when rescanning plugins
Robin Gareus [Mon, 18 Apr 2016 17:15:53 +0000 (19:15 +0200)]
update instrument list when rescanning plugins

8 years agoslightly better version of 0077923d, don't stop the engine for nothing
Robin Gareus [Mon, 18 Apr 2016 15:37:14 +0000 (17:37 +0200)]
slightly better version of 0077923d, don't stop the engine for nothing

8 years agoadd some assert for reloading saved plugin pin connections
Robin Gareus [Mon, 18 Apr 2016 15:22:55 +0000 (17:22 +0200)]
add some assert for reloading saved plugin pin connections

8 years agoupdate flow when loading a new session with different SR.
Robin Gareus [Mon, 18 Apr 2016 13:18:36 +0000 (15:18 +0200)]
update flow when loading a new session with different SR.

8 years agoGUI samplerate Mismatch notification
Robin Gareus [Mon, 18 Apr 2016 13:17:51 +0000 (15:17 +0200)]
GUI samplerate Mismatch notification

8 years agoadd notification if Engine Rate changes and mismatches session's SR
Robin Gareus [Mon, 18 Apr 2016 13:16:27 +0000 (15:16 +0200)]
add notification if Engine Rate changes and mismatches session's SR

8 years agonever ever change sample-rate saved with the session after creation.
Robin Gareus [Mon, 18 Apr 2016 12:50:09 +0000 (14:50 +0200)]
never ever change sample-rate saved with the session after creation.

8 years agoadd a try-autostart-engine option (most recently used settings)
Robin Gareus [Mon, 18 Apr 2016 12:11:22 +0000 (14:11 +0200)]
add a try-autostart-engine option (most recently used settings)

8 years agoEngine Dialog: exclude optional widgets from show_all.
Robin Gareus [Mon, 18 Apr 2016 12:07:49 +0000 (14:07 +0200)]
Engine Dialog: exclude optional widgets from show_all.

8 years agomore sidechain send GUI details:
Robin Gareus [Sun, 17 Apr 2016 23:01:49 +0000 (01:01 +0200)]
more sidechain send GUI details:

* don't list exising normal sends (separate mono connections)
* tooltip inidicate autoremoval

8 years agofix initial panner control for new Sends
Robin Gareus [Sun, 17 Apr 2016 22:52:24 +0000 (00:52 +0200)]
fix initial panner control for new Sends

8 years agoimplement metadata-set for remaining backends
Robin Gareus [Sun, 17 Apr 2016 22:35:51 +0000 (00:35 +0200)]
implement metadata-set for remaining backends

8 years agoPin Dialog: cache UI thread information
Robin Gareus [Sun, 17 Apr 2016 20:21:26 +0000 (22:21 +0200)]
Pin Dialog: cache UI thread information

fixes crash when redraw happens before idle update.