13
0
Commit Graph

10393 Commits

Author SHA1 Message Date
864f9e497d DnDTreeview: allow to handle multiple drag-targets 2016-05-06 14:51:29 +02:00
7fed1ce085 what an oversight! 2016-05-05 23:44:33 +02:00
3dc7728038 we always only use the "C" locale when saving. 2016-05-05 21:49:56 +02:00
2624c0966b remove assert()s from LocaleGuard 2016-05-05 20:29:28 +02:00
bb99df867f minor comment change 2016-05-05 14:21:55 -04:00
25603d810f spelling fixes and an explanatory comment 2016-05-05 14:21:02 -04:00
f2c5522f0f rework locale-guard for C and C++ locales
let's hope querying the C-locale is more lightweight than setting it
on windows.
2016-05-05 20:02:48 +02:00
a644212506 no need to force a change here.
Fixes an issue with Mixbus where set_active() is a NO-OP for mixbusses.
2016-05-05 18:33:50 +02:00
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
ffc9901807 fix "warning: this decimal constant is unsigned only in ISO C90" 2016-05-05 01:28:17 +02:00
8882ef79d3 use existing API to find the instrument 2016-05-04 17:52:17 +02:00
6236c201bd NO-OP, whitespace 2016-05-04 12:57:30 +02:00
e48da9d5d0 tweak cases where pin-mapping is reset & always sanitize map 2016-05-03 20:12:58 +02:00
dc1a2fbca7 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 ?
2016-05-03 17:30:58 +01:00
a12288d9b5 Accommodate newly introduced source(s) in our MSVC project (audiographer) 2016-05-03 17:26:41 +01:00
ad4fe51255 handle single-bus, non-variable i/o Audio Units w/multiple configurations. 2016-05-03 18:17:29 +02:00
4c40fe8d04 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)
2016-05-03 14:27:52 +02:00
255b5174c4 add a const method to check for existing key/value properties
handy to lookup up XMLNodes with "id" == ID w/o allocating memory.
2016-05-03 03:03:00 +02:00
42e2cc0976 use same tooltip timeout throughout Ardour -- part one 2016-05-02 20:24:46 +02:00
d01cb7910f Add loudness normalization to Export Format & Graph 2016-05-02 15:44:13 +02:00
7547f02c07 prepare loudness normalization 2016-05-02 15:44:13 +02:00
9d50074a99 fix aubio-onset detection parameters 2016-05-01 18:47:14 +02:00
e6b95a3d65 fix a Wsigncompare and 2 -Wuninitialized 2016-05-01 13:35:30 +02:00
4727fa337d 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>]()'
2016-05-01 13:20:53 +02:00
82d1d7ef0b 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)
2016-05-01 02:02:04 +02:00
791ac8f843 API call to be removed 2016-05-01 00:28:54 +02:00
8b52b69810 make BasicUI (for control surfaces) loop toggle work like the GUI 2016-04-30 10:54:40 -04:00
6d49e24503 implement lua plugin presets 2016-04-29 18:34:27 +02:00
69bd02bd25 remove skeleton backend (superseded by portaudio) 2016-04-29 16:43:09 +02:00
69f99ee184 I wanna be nasty, I wanna be cruel,..
Somme disastrous signal generators for QA.
2016-04-29 16:10:09 +02:00
e56c8f0309 don't special case lua processors, use plugin-manager 2016-04-29 02:57:42 +02:00
17d782829e 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.
2016-04-28 21:37:18 +02:00
633f218911 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
2016-04-28 21:15:26 +02:00
d81547efb4 add a debug message for LV2 per port buffer allocation 2016-04-28 12:27:53 +02:00
b961c1d8f2 another attempt to use platform-specific path for the default VST path 2016-04-27 17:39:38 -05:00
370b507d45 amend c1c81a239c after testing 2016-04-27 23:52:34 +02:00
c30b47f0eb allow to customize variable i/o plugin inputs 2016-04-27 23:34:55 +02:00
b191408f98 fix default 64bit Windows VST path ( untested ) 2016-04-27 14:56:19 -05:00
c1c81a239c probable fix for 64bit VST signal latency 2016-04-27 21:45:00 +02:00
4a226385b6 OSC: Fix Solo to work with both SIP and Listen. 2016-04-27 09:06:46 -07:00
4005ef9db6 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)
2016-04-27 14:46:24 +02:00
9634888bf3 add the concept of a "state mask" that determines what info a WindowProxy will save 2016-04-27 00:03:14 -04:00
559860f016 make -D VSTCallbacks readable 2016-04-27 01:44:55 +02:00
da26a55b31 canvas tooltips, too 2016-04-27 01:24:37 +02:00
49e5494907 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.
2016-04-27 01:07:53 +02:00
cda5b48b96 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)
2016-04-26 22:21:00 +02:00
4b8bc84e4a let GMainContext clean up after us.
this fixes a potential crash in
AsyncMIDIPort::~AsyncMIDIPort() -> CrossThreadChannel::~CrossThreadChannel()
2016-04-26 19:45:06 +02:00
43e620504a port 93eac8b0 to ALSA and CoreAudio 2016-04-26 18:19:48 +02:00
59f7df38a2 allow to duplicate tracks with sends or load templates with sends/inserts 2016-04-26 18:16:14 +02:00
5227f57f2e implement missing PortManager methods and lua-bind them 2016-04-26 18:16:14 +02:00