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
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
a4ad0a90d1
GUI to allow aux-send feedback loops
2016-10-14 16:07:30 +02:00
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
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
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
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
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
24eaec1fa8
handle blink-rec-arm change without application restart
2016-10-13 18:07:41 +02:00
Nil Geisweiller
651fb79818
Add region position to note start in the midi list editor
2016-10-13 12:06:38 -04:00
Robert Scott
8098c7785f
Don't reset the audio tracks name when changing the channel configuration.
2016-10-13 12:05:28 -04:00
cooltehno
c087b7ab30
Update cubasish-ardour.colors
...
file:///home/cooltehno/DATA/ARDOUR_EXP/.темы/3_cubasish/cor_131016.jpg
This commit changes the clip indicator from white to red coloured (from "color 9" to "color 55"). Also the "color 55" is changing from orange (f85813) to maximum bright red color (ff0009)
2016-10-13 12:02:02 -04:00
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
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
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
27cff39dc7
peak level numeric display now uses "clip indicator" for base color, not "bright indicator"
...
Should address #7010
2016-10-12 15:50:30 -04:00
4bfe707342
add gtk_clip_indicator as a separate color from gtk_bright_indicator
2016-10-12 15:43:47 -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
114bc97f94
Fixes minor memory leak found in color_theme_manager.cpp:326
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
e4edd8e602
Clarify documentation of Lua inter-processor communication
2016-10-12 20:08:55 +02:00
0b51d760ad
cleaner version of feed9648
-- fixes #7067
2016-10-11 22:57:38 +02:00
6c933c7789
Revert "Allow loading sessions with missing external files #7067 "
...
This reverts commit feed9648e1
.
2016-10-11 22:54:21 +02:00
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
c60b4ff4cb
add missing symbol for windows compile
2016-10-11 19:55:35 +02:00
78fef4a253
cater for Note translations. e.g. "Ré ♯" UTF-8
2016-10-11 14:09:54 +02:00
8f19aed7eb
Bundle session-scripts for linux builds
2016-10-11 02:20:26 +02:00
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
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
688eb2883f
allow to run single tests from ./artest
2016-10-11 00:03:18 +02:00
9543452bb0
make raw-midi script pass unit-tests (no midi port on track)
2016-10-11 00:01:27 +02:00
99e9382cdb
Unit-tests to check Lua session+DSP scripts
2016-10-11 00:00:52 +02:00
2eb58913e8
add const'ness (allowing LuaScriptList::const_iterator)
2016-10-10 23:49:19 +02:00
ecba48a116
Example Lua script for inter-plugin communication
2016-10-10 17:34:18 +02:00
0517e186c7
Add Lua-bindings for inter-processor communication
2016-10-10 17:34:18 +02:00
b9791aa63c
Forward "owner" from Processor to Plugin
2016-10-10 17:34:18 +02:00
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
8d710a5f8a
Wrong iterator used with IDSortedList
2016-10-10 14:10:39 +01:00
de24d3fddf
add missing #include
2016-10-10 14:37:03 +02:00
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
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
66d29e8ca8
Fix indentation in SessionPlaylists::add_state()
2016-10-10 11:00:34 +10:00
816f3bfb36
Use std::vector::reserve to improve performance of adding properties
...
The number of properties per node roughly corresponds to the number of members
of the class the node is representing and should be fairly low.
Use std::vector::reserve to prevent reallocation on insert for most node types,
there are exceptions like Region(~40 properties).
This seems worth it as part(maybe 1/10th of the total time) of saving a Session
is a combination of what occurs in "Create" and "Write" in this test.
Perf results before changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 30610 Max: 42656 Total: 376672 Avg: 37667 (37 msecs)
Write : Count: 10 Min: 42804 Max: 54277 Total: 460455 Avg: 46045 (46 msecs)
Read : Count: 10 Min: 70364 Max: 85484 Total: 750909 Avg: 75090 (75 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 164360 Max: 356995 Total: 3064482 Avg: 306448 (306 msecs)
Write : Count: 10 Min: 308655 Max: 372953 Total: 3226707 Avg: 322670 (322 msecs)
Read : Count: 10 Min: 517243 Max: 541839 Total: 5289950 Avg: 528995 (528 msecs)
Perf results after changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 30375 Max: 48253 Total: 431727 Avg: 43172 (43 msecs)
Write : Count: 10 Min: 42553 Max: 49163 Total: 453353 Avg: 45335 (45 msecs)
Read : Count: 10 Min: 70307 Max: 75987 Total: 734923 Avg: 73492 (73 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 154486 Max: 307856 Total: 2678989 Avg: 267898 (267 msecs)
Write : Count: 10 Min: 304273 Max: 343274 Total: 3169158 Avg: 316915 (316 msecs)
Read : Count: 10 Min: 496920 Max: 541394 Total: 5260410 Avg: 526041 (526 msecs)
2016-10-10 08:45:34 +10:00
e84fbfe6e5
Remove PropertyMap from XMLNode class
...
It appears that there is no performance benefit from storing properties in a
map for faster lookup or it is counteracted by the penalty of storing and
maintaining the additional data structure.
Timing results before changes with an optimized build:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 41293 Max: 63746 Total: 564448 Avg: 56444 (56 msecs)
Write : Count: 10 Min: 42932 Max: 49221 Total: 453955 Avg: 45395 (45 msecs)
Read : Count: 10 Min: 80160 Max: 84678 Total: 824506 Avg: 82450 (82 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 228759 Max: 420236 Total: 3587597 Avg: 358759 (358 msecs)
Write : Count: 10 Min: 307095 Max: 348767 Total: 3205704 Avg: 320570 (320 msecs)
Read : Count: 10 Min: 572400 Max: 657219 Total: 5959630 Avg: 595963 (595 msecs)
Perf results after changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 30610 Max: 42656 Total: 376672 Avg: 37667 (37 msecs)
Write : Count: 10 Min: 42804 Max: 54277 Total: 460455 Avg: 46045 (46 msecs)
Read : Count: 10 Min: 70364 Max: 85484 Total: 750909 Avg: 75090 (75 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 164360 Max: 356995 Total: 3064482 Avg: 306448 (306 msecs)
Write : Count: 10 Min: 308655 Max: 372953 Total: 3226707 Avg: 322670 (322 msecs)
Read : Count: 10 Min: 517243 Max: 541839 Total: 5289950 Avg: 528995 (528 msecs)
2016-10-10 08:45:34 +10:00
97752e6a51
Use references rather than copying containers in libpbd xml code
...
It is slightly surprising but there seems to be little difference to
performance with these changes. Possibly a slight improvement in "Create" test
with a large xml document(~5%).
Timing results before these changes with an optimized build using new XML perf tests:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 38656 Max: 63827 Total: 571228 Avg: 57122 (57 msecs)
Write : Count: 10 Min: 43594 Max: 49279 Total: 459907 Avg: 45990 (45 msecs)
Read : Count: 10 Min: 80247 Max: 84912 Total: 827207 Avg: 82720 (82 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 230706 Max: 456054 Total: 3850998 Avg: 385099 (385 msecs)
Write : Count: 10 Min: 312322 Max: 353789 Total: 3264211 Avg: 326421 (326 msecs)
Read : Count: 10 Min: 573556 Max: 610865 Total: 5951908 Avg: 595190 (595 msecs)
Timing results after these changes:
XMLTest::testPerfMediumXMLDocumentTiming
Create : Count: 10 Min: 41293 Max: 63746 Total: 564448 Avg: 56444 (56 msecs)
Write : Count: 10 Min: 42932 Max: 49221 Total: 453955 Avg: 45395 (45 msecs)
Read : Count: 10 Min: 80160 Max: 84678 Total: 824506 Avg: 82450 (82 msecs)
XMLTest::testPerfLargeXMLDocumentTiming
Create : Count: 10 Min: 228759 Max: 420236 Total: 3587597 Avg: 358759 (358 msecs)
Write : Count: 10 Min: 307095 Max: 348767 Total: 3205704 Avg: 320570 (320 msecs)
Read : Count: 10 Min: 572400 Max: 657219 Total: 5959630 Avg: 595963 (595 msecs)
2016-10-10 08:45:34 +10:00