Robin Gareus [Wed, 16 Sep 2015 15:45:16 +0000 (17:45 +0200)]
update reported DSP load for ALSA & Dummy
Robin Gareus [Wed, 16 Sep 2015 15:36:01 +0000 (17:36 +0200)]
CoreAudio: use libardour provided DSP load calc.
Robin Gareus [Wed, 16 Sep 2015 15:45:04 +0000 (17:45 +0200)]
fix DSP load bounds 0..1 and add unbound API
Robin Gareus [Wed, 16 Sep 2015 15:33:50 +0000 (17:33 +0200)]
user-sortable recent session list
Robin Gareus [Wed, 16 Sep 2015 15:14:10 +0000 (17:14 +0200)]
add "last modified" column to session-dialog
Robin Gareus [Wed, 16 Sep 2015 13:47:29 +0000 (15:47 +0200)]
partially revert
de53fac (pre-sort session list)
<glib> header includes and commends remain for later use
Tim Mayberry [Wed, 16 Sep 2015 13:21:38 +0000 (23:21 +1000)]
Add PBD::QPC::initialize to initialize timer and call it from PBD::init
Check timer for invalid frequency
Precalculate timer tick rate to save a few instructions
Don't use static variables inside functions to avoid checking for initialization
Use static functions inside anonymous namespace for internal linkage
Tim Mayberry [Wed, 16 Sep 2015 12:22:00 +0000 (22:22 +1000)]
Make sure the QPC frequency is cached so the timer can be used
Tim Mayberry [Wed, 16 Sep 2015 06:28:18 +0000 (16:28 +1000)]
Don't try and split a region when dragging, should fix bug #6338
Tim Mayberry [Mon, 14 Sep 2015 11:04:27 +0000 (21:04 +1000)]
Use ARDOUR::DSPLoadCalculator in DummyBackend
Tim Mayberry [Mon, 14 Sep 2015 10:44:27 +0000 (20:44 +1000)]
Use PBD::get_microseconds() from pbd/windows_timer_utils.h in DummyBackend
Tim Mayberry [Mon, 14 Sep 2015 21:47:37 +0000 (07:47 +1000)]
Set max time of DSPLoadCalculator in every cycle in ALSA backend
Tim Mayberry [Mon, 14 Sep 2015 10:33:57 +0000 (20:33 +1000)]
Use ARDOUR::DSPLoadCalculator in ALSA Backend
Tim Mayberry [Mon, 14 Sep 2015 06:56:22 +0000 (16:56 +1000)]
Add test for DSPLoadCalculator to libardour tests
Tim Mayberry [Mon, 14 Sep 2015 06:48:38 +0000 (16:48 +1000)]
Add DSPLoadCalculator::set_max_time() to set max time based on samplerate and period size
Tim Mayberry [Mon, 14 Sep 2015 03:59:04 +0000 (13:59 +1000)]
Put functions inside anonymous namespace and use static for internal linkage
Tim Mayberry [Mon, 14 Sep 2015 03:54:00 +0000 (13:54 +1000)]
Mark strings intended for developers/debugging as not for translation
Tim Mayberry [Mon, 14 Sep 2015 03:47:38 +0000 (13:47 +1000)]
De/Initialize MMCSS on windows in PBD::init/cleanup instead of in PA Backend
Tim Mayberry [Mon, 14 Sep 2015 03:26:07 +0000 (13:26 +1000)]
Move Windows MMCSS related utility functions into libpbd
Tim Mayberry [Mon, 14 Sep 2015 02:22:39 +0000 (12:22 +1000)]
Add PBD::DebugBit for debugging thread related debugging output
Tim Mayberry [Mon, 14 Sep 2015 02:18:05 +0000 (12:18 +1000)]
Move MMCSS related utility functions into PBD namespace
In preparation for moving to libpbd
Tim Mayberry [Mon, 14 Sep 2015 01:24:33 +0000 (11:24 +1000)]
Perform QPC timer check on windows in PBD::init when PBD_TEST_TIMERS env is defined
Tim Mayberry [Mon, 14 Sep 2015 01:19:17 +0000 (11:19 +1000)]
Rename PBD::QPC::get_timer_valid to check_timer_valid and perform timer test
I'm not sure if this test is going to be effective as I don't have hardware to
test on at the moment. As noted in the documentation, Windows XP should be the
only OS where QPC uses a timer source that is non-monotonic(multi-core with
non-syncronized TSC).
Tim Mayberry [Mon, 14 Sep 2015 00:33:48 +0000 (10:33 +1000)]
Add windows specific test for pbd/windows_timer_utils.h API
Tim Mayberry [Mon, 14 Sep 2015 00:29:00 +0000 (10:29 +1000)]
Fix PBD::MMTIMER::reset_resolution and add some documentation
timeEndPeriod must be called with the same timer resolution value used in
timeBeginPeriod. When the process exits the timer resolution is restored anyway
so this is not very important.
Tim Mayberry [Sun, 13 Sep 2015 12:45:41 +0000 (22:45 +1000)]
Remove glib timer test from pbd testsuite
There are no test assertions and it takes a long time to execute the test so
just leave it disabled for now.
Tim Mayberry [Sat, 12 Sep 2015 11:41:00 +0000 (21:41 +1000)]
Move Windows timer utility functions from PA backend into libpbd
Tim Mayberry [Sat, 12 Sep 2015 04:58:35 +0000 (14:58 +1000)]
Put Windows timer functions into PBD namespace in preparation for moving them to libpbd
Add functions for get/set the Multimedia timer resolution, although we are
really only interested in the minimum, this will facilitate testing
Put timer utility functions inside nested namespaces as they are platform
specific
Tim Mayberry [Sat, 12 Sep 2015 02:34:10 +0000 (12:34 +1000)]
Update timestamp types in CycleTimer class to be signed
Tim Mayberry [Fri, 11 Sep 2015 13:26:31 +0000 (23:26 +1000)]
Move implementation for DSPLoadCalculator back into header
It can be inline now that it is much simpler
Tim Mayberry [Fri, 11 Sep 2015 13:07:01 +0000 (23:07 +1000)]
Use same algorithm as CA and ALSA backends in DSPLoadCalculation
Stop using an averaging of the values until we can establish whether it is
really necessary.
Tim Mayberry [Fri, 11 Sep 2015 12:29:52 +0000 (22:29 +1000)]
Add check for invalid timer values from the DummyBackend
Needed for systems where the Windows QPC timer returns erratic values
Tim Mayberry [Fri, 11 Sep 2015 12:13:50 +0000 (22:13 +1000)]
Change types in DSPLoadCalculator to signed integer after change in utils::get_microsecond
Tim Mayberry [Fri, 11 Sep 2015 11:48:26 +0000 (21:48 +1000)]
Check return value of windows timer functions and handle errors
Change return type of utils::get_microseconds to signed int and return -1 when
failing to read timer
Robin Gareus [Tue, 15 Sep 2015 23:23:42 +0000 (01:23 +0200)]
prepare time column in recent session
Robin Gareus [Tue, 15 Sep 2015 23:21:10 +0000 (01:21 +0200)]
inspect snapshot for its info (not parent)
Robin Gareus [Tue, 15 Sep 2015 23:20:27 +0000 (01:20 +0200)]
pre-sort recent-sessions by modification time - #6575
Paul Davis [Tue, 15 Sep 2015 21:01:12 +0000 (17:01 -0400)]
move speed quietning code into Delivery, where it belongs.
Note: I find the -12dB reduction too much of a reduction.
Paul Davis [Tue, 15 Sep 2015 20:35:32 +0000 (16:35 -0400)]
expose the new use monitor fades option
Paul Davis [Tue, 15 Sep 2015 20:34:53 +0000 (16:34 -0400)]
add an Amp to Delivery, remove it from Send, make use of this in various ::run() methods
Delivery::_amp now will handle monitor-related delicks assuming the Session::config.get_use_monitor_fades() is
true.
Robin Gareus [Tue, 15 Sep 2015 19:21:09 +0000 (21:21 +0200)]
remove unused variable
Robin Gareus [Tue, 15 Sep 2015 19:21:01 +0000 (21:21 +0200)]
don't allow to focus sidebar checkboxes - fixes #6445
Robin Gareus [Tue, 15 Sep 2015 15:49:26 +0000 (17:49 +0200)]
another note-off fix.
For nearly coincident note-on the sequence does not matter,
but note-off must be sent before a new note-on in strict
order (could be the same note).
Robin Gareus [Tue, 15 Sep 2015 15:46:48 +0000 (17:46 +0200)]
display active peak-builds
Robin Gareus [Tue, 15 Sep 2015 15:42:59 +0000 (17:42 +0200)]
prepare displaying peakfile queue-len
Paul Davis [Tue, 15 Sep 2015 13:08:38 +0000 (09:08 -0400)]
logic rearrangement to avoid unnecessary call to Route::monitoring_state() in instrument/generator tracks
Paul Davis [Tue, 15 Sep 2015 13:06:16 +0000 (09:06 -0400)]
NO-OP: comment clarification
Paul Davis [Tue, 15 Sep 2015 13:05:08 +0000 (09:05 -0400)]
NO-OP: parenthesis and brace style
Paul Davis [Tue, 15 Sep 2015 13:01:26 +0000 (09:01 -0400)]
expose transport fade option
Paul Davis [Tue, 15 Sep 2015 12:37:27 +0000 (08:37 -0400)]
only apply transport declicking if requested to do so (default is to do so)
Paul Davis [Tue, 15 Sep 2015 12:33:24 +0000 (08:33 -0400)]
add 2 new session properties related to implicit fades/gain ramps
Paul Davis [Mon, 14 Sep 2015 14:47:21 +0000 (10:47 -0400)]
use an explicit black list of route names that require numbering.
This replaces an attempt to check port names which fails for a number of reasons.
Robin Gareus [Tue, 15 Sep 2015 12:42:43 +0000 (14:42 +0200)]
GUI part: cleanup peak-files
Robin Gareus [Tue, 15 Sep 2015 12:41:27 +0000 (14:41 +0200)]
prepare peak-file cleanup/recreate.
John Emmas [Tue, 15 Sep 2015 12:17:22 +0000 (13:17 +0100)]
Remove ifstream / ofstream when accessing session template files (or creating a new session from a template file)
On Windows, the above classes don't support UTF-8 so let's get rid of them and use g_fopen / stringstream / fwrite() etc.
Robin Gareus [Tue, 15 Sep 2015 00:28:24 +0000 (02:28 +0200)]
pending-peaks: checker pattern.
Robin Gareus [Mon, 14 Sep 2015 22:19:02 +0000 (00:19 +0200)]
visually indicate peak-file rebuild
Not yet a checker pattern, but closing it :)
Robin Gareus [Mon, 14 Sep 2015 19:25:57 +0000 (21:25 +0200)]
amend previous commit.
Robin Gareus [Mon, 14 Sep 2015 19:18:56 +0000 (21:18 +0200)]
fix short x-fade rendering
Robin Gareus [Mon, 14 Sep 2015 02:55:01 +0000 (04:55 +0200)]
note-off ordering - fixes #6340
Evoral::Beats::operator>() rounds to (1.0 / PPQN), hardcoded 1/1920.0.
If the time difference between two events is smaller than 1/PPQN,
Beats::operator>() and Beats::operator<() produce ambiguous results.
The same pair of values is both "less than" and "greater than" depending
which operator is used.
While it's fine for some cases to ignore the order of nearly concurent
events, the std::priority_queue must be strictly ordered.
Robin Gareus [Mon, 14 Sep 2015 01:21:13 +0000 (03:21 +0200)]
fix bundled LV2 plugin deployment.
Ardour Application bundles use uppercase LV2, consistent with LV2
"the name" on http://lv2plug.in/ and the recommendation for OSX & Win
on http://lv2plug.in/pages/filesystem-hierarchy-standard.html/
Since this is for internal-use only, so we do not need to follow the lowercase Unix recommendation.
Robin Gareus [Sun, 13 Sep 2015 18:23:12 +0000 (20:23 +0200)]
hack around a bug in cppunit/mingw/windows.
Robin Gareus [Sun, 13 Sep 2015 18:12:10 +0000 (20:12 +0200)]
adjust precision to specified value, avoid "0".
Robin Gareus [Sun, 13 Sep 2015 13:30:00 +0000 (15:30 +0200)]
allow to run unit-test under wine from srcdir.
Robin Gareus [Sun, 13 Sep 2015 02:10:14 +0000 (04:10 +0200)]
Revert inadvertently pushed commit
This reverts commit
3a6114c02579db5eaf22c1a44efc3c34f504f99c.
The actual solution is http://dev.drobilla.net/ticket/1085
Robin Gareus [Sun, 13 Sep 2015 02:08:49 +0000 (04:08 +0200)]
fix mismatched delete/free
Robin Gareus [Thu, 10 Sep 2015 20:37:56 +0000 (22:37 +0200)]
center, don't expand plugin widgets
Tim Mayberry [Sat, 12 Sep 2015 22:58:45 +0000 (08:58 +1000)]
Fix typo in DSPLoadCalculator causing assertions on Windows debug builds
Robin Gareus [Sat, 12 Sep 2015 19:47:44 +0000 (21:47 +0200)]
valgrind: only use objc supression file on OSX
Robin Gareus [Sat, 12 Sep 2015 18:05:46 +0000 (20:05 +0200)]
GUI part of memleak fixes
Robin Gareus [Sat, 12 Sep 2015 18:05:25 +0000 (20:05 +0200)]
plug some memory leaks in libs
Robin Gareus [Sat, 12 Sep 2015 15:55:04 +0000 (17:55 +0200)]
remove cruft
Robin Gareus [Fri, 11 Sep 2015 22:29:25 +0000 (00:29 +0200)]
trick ardour to print main-thead mem-pool stats.
Robin Gareus [Fri, 11 Sep 2015 22:29:02 +0000 (00:29 +0200)]
Event Pool usage debugging, see also
6ade16b38
Paul Davis [Fri, 11 Sep 2015 13:23:43 +0000 (09:23 -0400)]
spelling error fixes (notably "overriden" => "overidden") from IOhannes m zmölnig
Robin Gareus [Fri, 11 Sep 2015 11:21:16 +0000 (13:21 +0200)]
Have GUI Option reflect current state (in case toggle fails)
Robin Gareus [Fri, 11 Sep 2015 11:14:27 +0000 (13:14 +0200)]
fail to create Monitor section if port-names are not unique
We should still prevent a user from naming a route "Monitor", but
since "Monitor" is a translatable string, this is an i18n safeguard. eg.
- create a session with a mon-section and a track Монитор.
- send the session to a friend in Russia.
Robin Gareus [Fri, 11 Sep 2015 10:36:08 +0000 (12:36 +0200)]
add gcc5 ABI test tool
Paul Davis [Thu, 10 Sep 2015 20:49:15 +0000 (16:49 -0400)]
queue disk buffer overwrite when playlist layering changes.
This is a first approximation. Doing this 100% efficiently is quite hard because it would require comparing the range
currently in the disk buffer and the range impacted by the layer change. I suspect this will work fine for the
foreseeable future
Paul Davis [Thu, 10 Sep 2015 20:27:14 +0000 (16:27 -0400)]
use PortManager::port_name_prefix_is_unique to check for new route names
Paul Davis [Thu, 10 Sep 2015 20:26:48 +0000 (16:26 -0400)]
add PortManager::port_name_prefix_is_unique()
Robin Gareus [Thu, 10 Sep 2015 15:39:05 +0000 (17:39 +0200)]
session->path() returns a dir (not the session file)
Robin Gareus [Thu, 10 Sep 2015 15:38:16 +0000 (17:38 +0200)]
ditto for the announcement message
Robin Gareus [Thu, 10 Sep 2015 15:34:59 +0000 (17:34 +0200)]
fix recent session loading.
std::stringstream::operator<< calls strlen(), but the string in the
temp buffer may not [yet] be NULL terminated.
Robin Gareus [Thu, 10 Sep 2015 15:14:38 +0000 (17:14 +0200)]
fix a small memleak.
downcase(char*) requires free(), downcase(std::string) does not.
Robin Gareus [Thu, 10 Sep 2015 14:51:38 +0000 (16:51 +0200)]
catch mem-leaks more easily.
Paul Davis [Thu, 10 Sep 2015 15:35:25 +0000 (11:35 -0400)]
when removing routes, don't do potentially expensive work once for each route.
We can update solo state and tell interested parties about the removal once the actual removal is done
Paul Davis [Thu, 10 Sep 2015 15:23:12 +0000 (11:23 -0400)]
fix deadlock when removing routes and using JACK1.
graph reorder callback needed an early exit if we were deleting routes, is all.
Robin Gareus [Thu, 10 Sep 2015 14:39:35 +0000 (16:39 +0200)]
use FileSource::within_session() for peak-files
Paul Davis [Thu, 10 Sep 2015 12:10:27 +0000 (08:10 -0400)]
remove duplicate enum registration
Colin Fletcher [Thu, 10 Sep 2015 10:50:20 +0000 (11:50 +0100)]
Check that a route has a track before trying to insert time on it.
Routes which are busses don't have a track, and thus no playlists either:
avoid a crash when inserting time when a bus is selected and 'all
playlists' is chosen.
John Emmas [Thu, 10 Sep 2015 09:24:04 +0000 (10:24 +0100)]
Make sure that the DSPLoadCalculator class is exportable
John Emmas [Thu, 10 Sep 2015 09:22:38 +0000 (10:22 +0100)]
Add support for newly introduced class ARDOUR::DSPLoadCalculator (when building with MSVC)
Tim Mayberry [Thu, 10 Sep 2015 01:48:52 +0000 (11:48 +1000)]
Remove DSPLoadCalculator class in portaudio backend source
Tim Mayberry [Thu, 10 Sep 2015 01:46:34 +0000 (11:46 +1000)]
Use ARDOUR::DSPLoadCalculator in PortAudioBackend
Tim Mayberry [Thu, 10 Sep 2015 01:44:39 +0000 (11:44 +1000)]
Add DSPLoadCalculator class to libardour
This is similar to the class in the PortaudioBackend but uses an average of the
values if raw load is under 80%
Robin Gareus [Wed, 9 Sep 2015 22:55:28 +0000 (00:55 +0200)]
allow LV2 plugins to query current block-size.
This is akin to VST2's audioMasterGetBlockSize.
It returns the current nominal block size (think jack-buffersize).
It's not the only block size that may be used when calling run(), it's
just the normal one. The actual block sizes used may be larger or smaller
and may vary between successive calls of run().
This change became neccesary after
53e969e9. Some plugins expected
maxBlockLength to be the /current/ buffer-size and not all-time maxiumum.
Those plugins can now use nominalBlockLength.
Robin Gareus [Wed, 9 Sep 2015 22:48:10 +0000 (00:48 +0200)]
rework peakfile handling:
- copy old peak-files to new (do not require re-calc)
- keep old peak-files (for now, backwards compat)
- fix cleanup-sources to remove *new* peak-file
- include channel-number in hash (like it was done before)
see also
624f76b
TODO: add Session > Cleanup > remove/re-create peaks
Robin Gareus [Tue, 8 Sep 2015 18:13:56 +0000 (20:13 +0200)]
remove Ardour broken peak-file support
Ardour-2.0 put peak-files in a "broken" location for several months.
Since then Ardour renamed those files. No more. When loading ancient
sessions peak-files are now re-created (in the background).
Robin Gareus [Wed, 9 Sep 2015 14:54:26 +0000 (16:54 +0200)]
update libltc to
v1.1.4-4-gb034a23 (endianess issue)