summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2016-05-03MSVC won't compile 'const float _demolition[]' because it uses 'divide by ↵John Emmas
zero' while initializing Hopefully we can use INFINITY and NAN for the relevant initializers ?
2016-05-03Accommodate newly introduced source(s) in our MSVC project (audiographer)John Emmas
2016-05-03handle single-bus, non-variable i/o Audio Units w/multiple configurations.Robin Gareus
2016-05-03another (non critical) concurrency issue:Robin Gareus
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-03add a const method to check for existing key/value propertiesRobin Gareus
handy to lookup up XMLNodes with "id" == ID w/o allocating memory.
2016-05-02use same tooltip timeout throughout Ardour -- part oneRobin Gareus
2016-05-02Add loudness normalization to Export Format & GraphRobin Gareus
2016-05-02prepare loudness normalizationRobin Gareus
2016-05-01fix aubio-onset detection parametersRobin Gareus
2016-05-01fix a Wsigncompare and 2 -WuninitializedRobin Gareus
2016-05-01fix: gcc4.2 / PPC compilationRobin Gareus
no match for 'operator!=' in 'x != std::list<_Tp, _Alloc>::rend() [with _Tp = long long int, _Alloc = std::allocator<long long int>]()'
2016-05-01various transient-detection fixes (split region, trim, move, undo,..)Robin Gareus
* 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-01API call to be removedRobin Gareus
2016-04-30make BasicUI (for control surfaces) loop toggle work like the GUIPaul Davis
2016-04-29implement lua plugin presetsRobin Gareus
2016-04-29remove skeleton backend (superseded by portaudio)Robin Gareus
2016-04-29I wanna be nasty, I wanna be cruel,..Robin Gareus
Somme disastrous signal generators for QA.
2016-04-29don't special case lua processors, use plugin-managerRobin Gareus
2016-04-28flush pending Session Events at session closeRobin Gareus
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-28fix a deadlock with jack2 when inserting a plugin adds ports.Robin Gareus
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-28add a debug message for LV2 per port buffer allocationRobin Gareus
2016-04-27another attempt to use platform-specific path for the default VST pathBen Loftis
2016-04-27amend c1c81a239c after testingRobin Gareus
2016-04-27allow to customize variable i/o plugin inputsRobin Gareus
2016-04-27fix default 64bit Windows VST path ( untested )Ben Loftis
2016-04-27probable fix for 64bit VST signal latencyRobin Gareus
2016-04-27OSC: Fix Solo to work with both SIP and Listen.Len Ovens
2016-04-27tweak LV2 atom buffer allocation strategyRobin Gareus
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-27add the concept of a "state mask" that determines what info a WindowProxy ↵Paul Davis
will save
2016-04-27make -D VSTCallbacks readableRobin Gareus
2016-04-27canvas tooltips, tooRobin Gareus
2016-04-27also hide persistent tooltipsRobin Gareus
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-26initialize output data ports for cases where the plugin is not runRobin Gareus
(e.g. load session with inactive track, or instantiate an audio plugin on a midi track before the synth)
2016-04-26let GMainContext clean up after us.Robin Gareus
this fixes a potential crash in AsyncMIDIPort::~AsyncMIDIPort() -> CrossThreadChannel::~CrossThreadChannel()
2016-04-26port 93eac8b0 to ALSA and CoreAudioRobin Gareus
2016-04-26allow to duplicate tracks with sends or load templates with sends/insertsRobin Gareus
2016-04-26implement missing PortManager methods and lua-bind themRobin Gareus
2016-04-26#define HAVE_JACK_PORT_RENAME when building with MSVCJohn Emmas
This means needing to build against libjack v1.9.11 (or later) although that's probably not a bad thing.
2016-04-26Use 'const_iterator' to prevent MSVC from complainingJohn Emmas
2016-04-26don't show engine dialog when loading a session..Robin Gareus
..and the engine is running at the desired samplerate
2016-04-26styleguide #10Robin Gareus
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-26keep portmap & portindex in sync when renaming portsRobin Gareus
Fixes crash on session re-load (introduced in 800c8182 and fde99e68)
2016-04-26PortManager lua bindings (to debug lingering ports)Robin Gareus
2016-04-25update [lua bindings] documentationRobin Gareus
2016-04-25add missing header for luadocRobin Gareus
2016-04-24..and CoreAudio.Robin Gareus
2016-04-24O(log(n)) port and connection lookup for ALSARobin Gareus
2016-04-24now with C++98 compatRobin Gareus
2016-04-24delayline: use boost::shared_arrayRobin Gareus
2016-04-24optimize port lookup, adding/removing/reconnecting routesRobin Gareus
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.