13
0
Commit Graph

10393 Commits

Author SHA1 Message Date
7f8c7d8647 #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.
2016-04-26 15:02:20 +01:00
93eac8b068 Use 'const_iterator' to prevent MSVC from complaining 2016-04-26 14:58:16 +01:00
01286b442e don't show engine dialog when loading a session..
..and the engine is running at the desired samplerate
2016-04-26 12:56:52 +02:00
7cbc6cf8a2 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.
2016-04-26 04:02:58 +02:00
2169de3975 keep portmap & portindex in sync when renaming ports
Fixes crash on session re-load (introduced in 800c8182 and fde99e68)
2016-04-26 02:26:20 +02:00
11a69068af PortManager lua bindings (to debug lingering ports) 2016-04-26 02:21:09 +02:00
4f3f966276 update [lua bindings] documentation 2016-04-25 13:06:40 +02:00
f4f9963cdd add missing header for luadoc 2016-04-25 02:35:45 +02:00
fde99e68f7 ..and CoreAudio. 2016-04-24 20:45:50 +02:00
800c8182c6 O(log(n)) port and connection lookup for ALSA 2016-04-24 20:45:37 +02:00
ce052ba20a now with C++98 compat 2016-04-24 18:34:31 +02:00
a3856d44b2 delayline: use boost::shared_array 2016-04-24 18:26:39 +02:00
d1874d4685 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.
2016-04-24 18:26:39 +02:00
1321701189 reduce debug-build overhead. 2016-04-24 18:26:39 +02:00
36a928f0ae we need the process lock after all.. 2016-04-24 18:26:39 +02:00
f80c0faa24 some new lua-bindings and session-lua (creating sessions) 2016-04-24 14:43:18 +02:00
667a4aafb5 fix mismatched delete/delete[] 2016-04-24 14:43:18 +02:00
f6a621346c some notes on mem-leaks... 2016-04-24 14:43:18 +02:00
e3536fbefe hand over automationlist undo state ownership (mem-leak) 2016-04-24 14:43:18 +02:00
e3607a4c8b plug some memory leaks in libardour 2016-04-24 14:43:18 +02:00
4fe7d1ea08 further tweaks to session close 2016-04-24 02:53:01 +02:00
f317451609 lua bindings for track/bus and session creation 2016-04-24 00:25:34 +02:00
f8936ebcb1 Disconnect Signals before dropping ports
significantly speeds up session close
2016-04-24 00:24:43 +02:00
2a7a64a873 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)
2016-04-23 22:11:48 +02:00
e4b2b6477f fix typo in config variable 2016-04-23 00:01:28 +02:00
f719dcbd43 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"
2016-04-22 23:36:41 +02:00
5c41043a2d fix single-bus AU rendering & related updates 2016-04-22 22:04:48 +02:00
00f48c3d63 invalidate AU cache on re-scan 2016-04-22 21:10:39 +02:00
90babfaca3 use coreaudio wrapper 2016-04-22 20:50:06 +02:00
7e8fda8431 Single instance AUs only, use variable i/o 2016-04-22 19:35:38 +02:00
73aab79d59 AU multibus support 2016-04-22 18:48:20 +02:00
8a1aeccc82 fix AU cache clear 2016-04-22 18:48:20 +02:00
2dc6c1c74b add API to load plugin presets for all instances 2016-04-22 14:24:45 +02:00
238cec8549 and now with proper closing bracket. 2016-04-21 01:04:55 +02:00
fca2e76db2 take MB dithering into account when stripping silence on export 2016-04-21 01:02:18 +02:00
fc4dd032a7 backend part for MB send-panners (ignore existing state, force disable) 2016-04-20 21:44:28 +02:00
49d044bf04 fix AU sidechain connection 2016-04-20 18:06:51 +02:00
3e659bb657 include sidechain when delegating I/O configuration 2016-04-20 17:24:50 +02:00
65fada3b0a Mixbus: auto-connect monitor-section
Mixbus does not expose the "auto_connect_standard_busses" preference
and forces it to false.
2016-04-20 16:17:22 +02:00
ec44499666 amend 386f244f - don't reinitialize I/O map
load ChanCount to compare if I/O maps have changed.
2016-04-20 15:14:15 +02:00
386f244f1e Reset I/O map when copying plugin and ChanCount changes 2016-04-20 11:55:02 +02:00
622ba89dd9 OSC: removed unused _namespace_root variable. 2016-04-19 16:13:18 -07:00
d32333f4ef fix stuck solo w/sidechain (when using port, not send, connections) 2016-04-19 22:15:57 +02:00
24282065aa 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.
2016-04-19 20:39:40 +02:00
3715602ea7 Revert/amend "fix a const-cast issue"
This reverts commit c9d55cb172.
because it it's "const" one cannot set it from lua.
2016-04-19 19:07:09 +02:00
c69a9d7a06 some plugin-insert debugging
* report inplace
* debug-dump reason(s) why i/o maps are reset
2016-04-19 19:03:16 +02:00
c9d55cb172 fix a const-cast issue 2016-04-19 12:58:54 -04:00
00169f1da1 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.
2016-04-19 16:43:06 +02:00
00b703ebe8 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
2016-04-19 16:40:17 +02:00
170fca53ee Mixbus specific Pin Mapping tweaks 2016-04-19 13:54:07 +02:00
2729f59aba NO-OP, whitespace and comments 2016-04-19 13:21:54 +02:00
428c82b1bc fix plugin silence runs (e.g. during audition)
* use max of in+out buffers
* special case Mixbus
* clear delay-lines
2016-04-19 00:57:56 +02:00
26532364bb fix possible crash at session close.
In the wake of 81faa3b420. 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.
2016-04-18 21:55:50 +02:00
008eda2858 add some assert for reloading saved plugin pin connections 2016-04-18 17:22:55 +02:00
b2149de37b add notification if Engine Rate changes and mismatches session's SR 2016-04-18 15:16:27 +02:00
888614b714 never ever change sample-rate saved with the session after creation. 2016-04-18 14:50:09 +02:00
9840a11537 implement metadata-set for remaining backends 2016-04-18 00:35:51 +02:00
fa73112f08 set sidechain port pretty name 2016-04-17 21:50:20 +02:00
cb09b0b34e add IOProcessors pretty name support 2016-04-17 21:50:13 +02:00
81faa3b420 notify IO about port disconnection due to port removal
[Jack] Ports can be deleted without being disconnected first.
the IO Object does not catch that condition.
2016-04-17 18:36:40 +02:00
10bffda810 add API to set pretty names for ardour ports 2016-04-17 18:34:17 +02:00
10140a8e68 implement pretty-name set-property for ALSA and Dummy 2016-04-17 18:22:21 +02:00
1f43878050 add portengine set-property API (follows jack_set_property) 2016-04-17 18:18:16 +02:00
dc1102844a disconnect SideChain on delete, trigger Send self-destruct 2016-04-17 17:35:30 +02:00
6e94b1fb9f copy plugin state to all instances when instantiating. 2016-04-17 16:09:25 +02:00
ab1242ca65 don't use lv2plug.in for non-standard URIs 2016-04-17 16:08:53 +02:00
bb090c0012 add self-removing Sends (remove on disconnect)
The idea is to dynamically add/remove sends for feeding a sidechain
and re-use all existing "External Send" infrastructure in particular
latency compensation.
2016-04-17 14:01:09 +02:00
3079a73488 don't let the AudioEngine inherit PortEngine's class doc. 2016-04-16 12:45:52 +02:00
8f367ddaa0 Remove dangling plugin thru-connections
fixes crash when removing a thru-connected output
2016-04-16 12:43:56 +02:00
277893b130 ptformat: Make PT import more resilient to bad user choices and display messages
Previously, libptformat would attempt to parse all kinds of files,
now the library stops parsing when the version number and session rate
is outside valid ranges, returning an error code to the caller.

If there is a valid PT file detected, but some audio files are missing,
Ardour now pops up an error message to inform the user that some files
may be missing from the import.  A success message is displayed otherwise.

Signed-off-by: Damien Zammit <damien@zamaudio.com>
2016-04-16 12:21:12 +02:00
241f734af4 disallow strict-i/o output on monitor and auditioner
monitor follows the master bus outs,
auditioner is fixed stereo and synth dependent.
(fixes crash when adding/removing the monitor section)
2016-04-16 00:10:48 +02:00
b6c8b96cf2 fix duplicate definition (typo in 5242aeb8) 2016-04-15 18:43:06 +02:00
424cacfbc8 variable plugin port config.
* extend plugin API (query IO ports)
* collect possible variable plugin configurations (AU, Lua)
* prepare semi-automatic configuration (presets: mono, stereo, N)
2016-04-15 17:57:40 +02:00
ed3eddaf19 special case mixbus routing 2016-04-15 14:52:19 +02:00
426e2f2a19 AU synth inplace processing 2016-04-15 13:36:02 +02:00
52a8bad4a2 luaproc error logging 2016-04-15 03:24:37 +02:00
9041fc8d54 find a good match for variable i/o plugins 2016-04-15 03:24:22 +02:00
ba67217dbc document buffer requirement, add sidechain constraint. 2016-04-14 22:43:14 +02:00
03db4805fd fix locking when switching strict i/o.
try_configure_processors_unlocked() needs process lock
2016-04-14 22:13:25 +02:00
4f3fed1c08 fix split plugin default connection with strict-i/o
Only connect the available input channels, ignore others.
2016-04-14 21:02:28 +02:00
a3eaa4d3f0 Mixbus enforces output port count
Ardour features  N in -> M out panners. It can make sense that
the last processor has fewer outputs than the route.
In Mixbus this is not the case.
2016-04-14 20:01:52 +02:00
104fafbdc2 fix odd case where a deliver has no ports e.g session load. 2016-04-14 19:20:39 +02:00
7962176219 properly calculate requrired thread buffers 2016-04-14 14:13:26 +02:00
5af4ce47eb alternative approach for 48532baaa, C++98 compat that actually works, too 2016-04-14 12:46:23 +02:00
eda1508da1 Revert "remove C++11'isms from libptformat. back to C++98 compat."
This reverts commit 48532baaa7.
2016-04-14 12:45:02 +02:00
204c8016c7 allow to compare C class instances from lua 2016-04-14 03:08:02 +02:00
1b097d57bd NO-OP, whitespace 2016-04-13 20:58:35 +02:00
9b8faf1679 allow midi tracks with audio-out only (and vice versa)
and a potential fix for odd noise on startup.
2016-04-13 20:57:40 +02:00
9fedb74b36 strict i/o sets enforces output port count. 2016-04-13 20:54:42 +02:00
868ed41d09 fix typo 2016-04-13 20:31:14 +02:00
ab6d93bf59 fix configurable IO MIDI FX w/strict-i/o 2016-04-13 20:13:39 +02:00
b4e4bd8733 fix crash introduced in 0d1cd3865d 2016-04-13 19:10:43 +02:00
bc0bb9662e prepare fix for copying plugin state 2016-04-13 18:53:47 +02:00
0d1cd3865d properly auto-connect sidechain pins
Handle cases where the SC pin is not the last (SC3 anyone?)
also round-robin connect multiple SC inputs when replicating instances.
2016-04-13 17:42:38 +02:00
51d58d2c08 fix OSX builds 2016-04-13 14:47:36 +02:00
66b14b7bbb special case strict-i/o on the master-bus 2016-04-13 13:23:17 +02:00
2b3205df0c initialize uninitialized variable 2016-04-13 12:37:19 +02:00
7239cb09d9 extend strict-i/o to include route outputs. 2016-04-13 12:28:57 +02:00
e77729125e VST report audioMasterPinConnected according to Pin Management 2016-04-13 00:52:47 +02:00
e8366dbd83 prepare VST plugins for reporting connected pins
The VST needs a way to get the parent PluginInserts's channel-map :(
2016-04-13 00:52:28 +02:00