Commit graph

11823 commits

Author SHA1 Message Date
Robin Gareus
3e32a00a52 fast region export -- don't call process() 2016-10-17 21:35:00 +02:00
Paul Davis
8519677a24 fix potentially crash-inducing race condition by removing event loops' x-thread channel from an event loop when it is destroyed 2016-10-17 14:48:15 -04:00
Paul Davis
157253c2c6 remove debug output 2016-10-17 13:41:22 -04:00
Paul Davis
9a3c1dbfe7 fix thinko in d2835bc80 (re-enables mute, solo and likely other automation controls) 2016-10-17 13:20:03 -04:00
Paul Davis
5b22e67387 add more DEBUG_TRACE statements for port/destruction debugging 2016-10-17 11:16:07 -04:00
Paul Davis
2c2ce7aa55 convert cerr<< to DEBUG_TRACE 2016-10-17 11:16:07 -04:00
Paul Davis
1fd7ec58cd use existing method rather than inline code for pending port deletions 2016-10-17 11:16:07 -04:00
nick_m
46d137414b Initialize TempoMetric _pulse in sonstructor. 2016-10-18 02:14:15 +11:00
nick_m
0585393989 Music locked regions stay positive after tempo map change. 2016-10-18 02:12:33 +11:00
Robin Gareus
466141229f ignore send buffers for which there's no return
This fixes an issue with Audio+Midi sends feeding into an audio only return.
2016-10-17 00:33:02 +02:00
Paul Davis
d2835bc802 improved and hopefully correct fix for "setting AutomationControl marks session dirty even when it should not, if in playback mode"
Hopefully comment is more explanatory as well.
2016-10-16 15:51:50 -04:00
nick_m
92920307ae Tempo curve cleanup, now also works on optimized builds. 2016-10-17 01:28:33 +11:00
Robin Gareus
f52443e17e Increase range of a-comp release time.
This facilitates ducking music for voice-overs w/o hold-time.
2016-10-15 21:27:29 +02:00
Robin Gareus
07ee9b6164 Source and AudioSource Lua bindings 2016-10-15 21:27:29 +02:00
nick_m
8ae0c1b36c Minor cleanup (don't set pulse twice in Region::set_position()). 2016-10-16 03:50:14 +11:00
nick_m
3a0a628a75 Rework duration clock and TempoMap::insert_time to include meter at offset.
- should fix 7072

	- also fixes scroll behavior over multiple tempi.
2016-10-16 02:33:49 +11:00
Paul Davis
102547089b remove debug output 2016-10-14 11:50:27 -04:00
Paul Davis
9066dd731b much simpler implementation of fix originally in c104c9d472: don't call Session::set_dirty() or emit Changed() unless AutomationControl actually changes value 2016-10-14 11:42:41 -04:00
Paul Davis
92f1eb6be9 Revert "change return type of AutomationControl::actually_set_value() from void to bool, to indicate if value was changed."
This reverts commit c104c9d472.
2016-10-14 11:42:41 -04:00
Robin Gareus
c21a0760a4 allow feedback (loops) from internal sends
This facilitates custom "Echo" chains:

  Bus 1 [FX] [aux-send to Bus 2] -> master
  Bus 2 [FX] -> Bus 2
2016-10-14 15:06:49 +02:00
Robin Gareus
88dedfcbdb fix math ambiguity & OSX compilation
cc121.cc: In member function 'void ArdourSurface::CC121::encoder_handler(MIDI::Parser&, MIDI::EventTwoBytes*)':
cc121.cc:413: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/include/architecture/i386/math.h:343: note: candidate 1: double pow(double, double)
/usr/include/c++/4.2.1/cmath:357: note: candidate 2: float std::pow(float, float)
2016-10-13 23:41:49 +02:00
Paul Davis
8f9a9523d2 new scheme for managing port deletion
shared_ptr<Port> now uses a deleter functor which pushes Port* to a lock-free FIFO so that the Port is
always deleted (and thus unregistered with the PortEngine/backend) in a safe context w.r.t. various
callbacks in the host. Currently the auto_connect_thread in Session has been tasked with doing these
deletions.
2016-10-13 17:18:54 -04:00
Paul Davis
1552547f65 stop using gkd_pango_context_get() in ArdourCanvas::Canvas and require concrete instances to supply a Pango::Context; do this for GtkCanvas and Push2Canvas 2016-10-13 17:18:54 -04:00
Robin Gareus
228556ab9c fix panner reset when switching to aux-sends -- fixes #6893 2016-10-13 19:57:50 +02:00
W.P. van Paassen
279b19258b Small improvement and change to comply with coding standard 2016-10-13 12:10:39 -04:00
W.P. van Paassen
5a3fe4aa20 Inital support for Steinberg's CC121 control surface 2016-10-13 12:10:39 -04:00
Michiel de Roo
bbb20272d5 OSC added plugin activate/deactivate 2016-10-13 12:08:31 -04:00
Robin Gareus
215d88ac87 Allow a LV2 plugin to mark the session dirty
If some plugin-internal state changes (GUI <> Plugin e.g. load a sample)
no ports change and the host does not know that the plugin state has
changed. The session may be closed without save.

This is a prototype using an ardour.org URI, pending upstream lv2plug.in
2016-10-13 16:04:28 +02:00
nick_m
c09e467595 Improve check in tempoAtPulseTest 2016-10-13 14:26:54 +11:00
nick_m
d824e696c0 Fix ramp test, add tempoAtPulseTest. 2016-10-13 14:14:27 +11:00
Robin Gareus
eae567bd9e Allow opening sessions with files embedded from removable drives
Otherwise Windows shows a critical error for files embedded from
removable devices.
2016-10-13 02:07:34 +02:00
Paul Davis
c104c9d472 change return type of AutomationControl::actually_set_value() from void to bool, to indicate if value was changed.
Don't call Session::set_dirty() when no change occurs
2016-10-12 17:26:46 -04:00
Nathan Stewart
0df00465fd Fixed array index out of bounds in Push2Menu::set_active() 2016-10-12 14:50:03 -04:00
Nathan Stewart
ca98c7a051 map::clear() calls erase. Cleans up cpp check warning 'iterator used after element has been erased' 2016-10-12 14:50:02 -04:00
Robin Gareus
0b51d760ad cleaner version of feed9648 -- fixes #7067 2016-10-11 22:57:38 +02:00
Robin Gareus
6c933c7789 Revert "Allow loading sessions with missing external files #7067"
This reverts commit feed9648e1.
2016-10-11 22:54:21 +02:00
Robin Gareus
feed9648e1 Allow loading sessions with missing external files #7067
The issue was introduced in dbf86a495b, forcing must_exist = true
for *all* files that have a absolute _origin, including stub
SilentFileSources.

If an external file is no longer available and a user chooses to
"ignore, skip" an SilentFile is created instead of the actual source,
The SilentFileSource has the same XML state which includes _origin.

ARDOUR::SilentFileSource::SilentFileSource () c'tor calls
AudioFileSource::AudioFileSource (,.., must_exit = false)
but since the file has an absolute _origin, the AudioFileSource c'tor sets
must_exist = true; throws and the session cannot be loaded.
2016-10-11 22:05:27 +02:00
Robin Gareus
c60b4ff4cb add missing symbol for windows compile 2016-10-11 19:55:35 +02:00
Robin Gareus
78fef4a253 cater for Note translations. e.g. "Ré ♯" UTF-8 2016-10-11 14:09:54 +02:00
Robin Gareus
74ba1b2691 Hide Dummy backend from optimized release builds
Prepare to bundle session-utils with releases.
Session-utils use libardour which needs an Engine. "Dummy" is the only
engine that always works
2016-10-11 00:29:56 +02:00
Robin Gareus
b997232aad skip Push2 unit-test for now:
The test segfaults due to missing screen and prevents other libardour
unit tests from running.
2016-10-11 00:05:08 +02:00
Robin Gareus
99e9382cdb Unit-tests to check Lua session+DSP scripts 2016-10-11 00:00:52 +02:00
Robin Gareus
2eb58913e8 add const'ness (allowing LuaScriptList::const_iterator) 2016-10-10 23:49:19 +02:00
Robin Gareus
0517e186c7 Add Lua-bindings for inter-processor communication 2016-10-10 17:34:18 +02:00
Robin Gareus
b9791aa63c Forward "owner" from Processor to Plugin 2016-10-10 17:34:18 +02:00
Robin Gareus
4f8fdf0af7 Allow to get a route reference from SessionObject*
The motivation is to allow a Processor (here Lua) to get a pointer
to the owning Route without resorting to iterative lookup.
2016-10-10 17:34:18 +02:00
John Emmas
8d710a5f8a Wrong iterator used with IDSortedList 2016-10-10 14:10:39 +01:00
Robin Gareus
de24d3fddf add missing #include 2016-10-10 14:37:03 +02:00
Robin Gareus
cdded19b9f convert VST parameter names to UTF8
Another fix for "µ-iness" (ec8cf4e4f5, d121e6bf15, 57b9dab27c)
this time for Windows.
2016-10-10 14:06:32 +02:00
Tim Mayberry
f8a098f3dc Fix order of Playlist XML nodes changing on Session save, bug #7053
Playlists in SessionPlaylists are sorted by pointer/address which means the
order they are written in the Session XML file usually changes the first time
the Session is re-saved.

Sort the Playlists by PBD::ID before iterating and writing XML so that
playlists are always written in the same order.
2016-10-10 11:00:35 +10:00