summaryrefslogtreecommitdiff
path: root/libs
AgeCommit message (Collapse)Author
2016-10-11Unit-tests to check Lua session+DSP scriptsRobin Gareus
2016-10-10add const'ness (allowing LuaScriptList::const_iterator)Robin 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-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-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-07proper C++ const API (possible fix for MSVC builds)Robin Gareus
2016-10-07Allow 'qm-dsp' to build again with MSVCJohn Emmas
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
2016-10-07avoid more C++11 - fixes OSX/PPC & MSVC buildsRobin Gareus
2016-10-07remove cruftRobin Gareus
2016-10-07Document version of bundled qm-dsp libraryRobin Gareus
2016-10-07Lua binding for std::map<>::at()Robin Gareus
2016-10-07Add tempo-map Lua bindingsRobin Gareus
2016-10-07avoid C++11 - fixes OSX/PPC buildsRobin Gareus
2016-10-07Add Lua bindings for basic MIDI model editingRobin Gareus
2016-10-06cont'd work on Vamp/Lua bindingsRobin Gareus
2016-10-06remove more unused qm-dsp code (fixes windows compile no LAPACK)Robin Gareus
2016-10-06Thin out qm-dsp code: no threadingRobin Gareus
2016-10-06update/include Queen Mary Vamp plugin setRobin Gareus
2016-10-06update OnsetDetector for updated QM-DSPRobin Gareus
2016-10-06update qm-dsp libraryRobin Gareus
2016-10-05Add option to separate type-0 SMF channels to tracksRobin Gareus
2016-10-05split type-0 SMF files by channel on importRobin Gareus
2016-10-05SMF add support for type-0 files (count channels, not tracks)Robin Gareus
2016-10-05Revert "add debug info to a-fluidsynth"Robin Gareus
This reverts commit 6821f54817e03a55f100f422b6c0bba4328c8fb8.
2016-10-05add debug info to a-fluidsynthRobin Gareus
2016-10-05add API to list Vamp PluginsRobin Gareus