summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-10-12Clarify documentation of Lua inter-processor communicationRobin Gareus
2016-10-11cleaner version of feed9648 -- fixes #7067Robin Gareus
2016-10-11Revert "Allow loading sessions with missing external files #7067"Robin Gareus
This reverts commit feed9648e19f5750b102a161a1028bb143ea16c5.
2016-10-11Allow loading sessions with missing external files #7067Robin Gareus
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-11add missing symbol for windows compileRobin Gareus
2016-10-11cater for Note translations. e.g. "Ré ♯" UTF-8Robin Gareus
2016-10-11Bundle session-scripts for linux buildsRobin Gareus
2016-10-11Hide Dummy backend from optimized release buildsRobin Gareus
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-11skip Push2 unit-test for now:Robin Gareus
The test segfaults due to missing screen and prevents other libardour unit tests from running.
2016-10-11allow to run single tests from ./artestRobin Gareus
2016-10-11make raw-midi script pass unit-tests (no midi port on track)Robin Gareus
2016-10-11Unit-tests to check Lua session+DSP scriptsRobin Gareus
2016-10-10add const'ness (allowing LuaScriptList::const_iterator)Robin Gareus
2016-10-10Example Lua script for inter-plugin communicationRobin Gareus
2016-10-10Add Lua-bindings for inter-processor communicationRobin Gareus
2016-10-10Forward "owner" from Processor to PluginRobin Gareus
2016-10-10Allow to get a route reference from SessionObject*Robin Gareus
The motivation is to allow a Processor (here Lua) to get a pointer to the owning Route without resorting to iterative lookup.
2016-10-10Wrong iterator used with IDSortedListJohn Emmas
2016-10-10add missing #includeRobin Gareus
2016-10-10convert VST parameter names to UTF8Robin Gareus
Another fix for "µ-iness" (ec8cf4e4f58a, d121e6bf15cbf6f, 57b9dab27cb05d) this time for Windows.
2016-10-10Fix order of Playlist XML nodes changing on Session save, bug #7053Tim Mayberry
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-10Fix indentation in SessionPlaylists::add_state()Tim Mayberry
2016-10-10Use std::vector::reserve to improve performance of adding propertiesTim Mayberry
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-10Remove PropertyMap from XMLNode classTim Mayberry
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-10Use references rather than copying containers in libpbd xml codeTim Mayberry
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-10Add test of pbd/xml++.h API performance with three file sizesTim Mayberry
Generate, write and then read three Session like XML files to test the performance of changes made to pbd/xml++.h API
2016-10-10Add XMLNode::operator==/!=() for comparing XMLNode instancesTim Mayberry
Implemented to be able to test that when writing an XML document via XMLTree and then reading back into another XMLTree the structure is equivalent as a general API test of pbd/xml++.h to check for breakage when changing implementation.
2016-10-10Change position of average in PBD::timing_summary and add msecsTim Mayberry
2016-10-10Add PBD::Timing::elapsed_msecs() as convenience APITim Mayberry
2016-10-10Interpret start & length_beats properties as double rather than Evoral::Beats.nick_m
- Evoral::Beats operator!= would prevent an increment of start_beats by intervals of less than a tick, so its possible that other subtle problems existed due to this kind of thing.
2016-10-09Audio->MIDI script: properly handle MIDI-region start-offsetRobin Gareus
2016-10-09Add some more midi-region BBT lua-bindingsRobin Gareus
2016-10-09Ensure midi region start trim always sets _start_beats.nick_m
- Property::set() requires that new_val != current for a change to occur, but Beats::operator!= has tick resolution. i think this is pretty good evidence that _start/_length_beats should actually be double rather than Evoral::Beats (adjusting a region by increments of less than a tick is desirable).
2016-10-09TempoSection methods deal in beats rather than pulses per minute.nick_m
- removes note type from curve function for a slightly more accurate result.
2016-10-09Ensure we have a region _beat for legacy sessions, set _pulse ↵nick_m
unconditionally when loading from xml.
2016-10-09Fix logic fail when setting midi region position, rework midi region start ↵nick_m
trimming.
2016-10-09Use double comparison in MidiRegionView::note_in_region_range().nick_m
2016-10-08libqm-dsp is now a static libraryRobin Gareus
2016-10-07prepare for proper VST synth categorizationRobin Gareus
2016-10-07Clean up is_instrument vs needs-midi-in APIRobin Gareus
The latter is only really relevant for Audio Units. This fixes an issue with vocoders or audio-plugins that simply have a MIDI input for other purposes to be wrongly categorized as Instruments.. .. and thereby override strict-i/o rules (prefer stereo)
2016-10-07fix namespace inconsistencyRobin Gareus
2016-10-07Clean up cppcheck warnings about handling of allocated memory in SysEx classNathan Stewart
2016-10-07proper C++ const API (possible fix for MSVC builds)Robin Gareus
2016-10-07Allow 'qm-dsp' to build again with MSVCJohn Emmas
2016-10-07add BBT offsets to Audio->MIDI scriptRobin Gareus
2016-10-07Arrrgh Ardour starts counting at 1 :(Robin Gareus
2016-10-07fix script now that block + step size are set correctlyRobin Gareus
2016-10-07honor Vamp Plugin preferred step+block sizes.Robin Gareus
2016-10-07Build qm-dsp & kissfft as static lib w/hidden symbolsRobin Gareus
...as precaution for plugins which may potentially use a different version of the library.
2016-10-07fix typo in 0cf75054Robin Gareus