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)
Len Ovens [Wed, 9 Sep 2015 03:58:56 +0000 (20:58 -0700)]
Added Mackie device files for three surfaces.
Len Ovens [Wed, 9 Sep 2015 03:47:16 +0000 (20:47 -0700)]
Made master fader touch and jog go to _master_surface instead of first surface.
Tim Mayberry [Tue, 8 Sep 2015 23:55:18 +0000 (09:55 +1000)]
Don't unload session with Session -> Open -> Cancel, Fixes #6568
Paul Davis [Tue, 8 Sep 2015 21:40:18 +0000 (17:40 -0400)]
offer up (when possible) MBWF, RF64 and RF64 (WAV) options
Paul Davis [Tue, 8 Sep 2015 21:39:41 +0000 (17:39 -0400)]
RF64, RF64 (WAV) and MBWF native file header formats
Paul Davis [Tue, 8 Sep 2015 21:37:02 +0000 (17:37 -0400)]
new enums required for RF64 => RIFF and MBWF support
Paul Davis [Tue, 8 Sep 2015 21:36:02 +0000 (17:36 -0400)]
configure time detection of a patch/feature of libsndfile not yet in release
Guy Sherman [Tue, 8 Sep 2015 20:30:30 +0000 (22:30 +0200)]
NOOP, whitespace only
Guy Sherman [Tue, 8 Sep 2015 20:28:30 +0000 (22:28 +0200)]
Replaced broken code in recent_sessions.cc
The original broken code was intended to stop using ifstream
and ofstream to open files, but it used a very old MSVCism to
open streams from FILE*.
In the case for reading, this patch replaces that code by using
standard c file manipulation to read the data into a stringstream,
and then it uses the existing stream-based code to read from there.
Similarly the ofstream in the code for writing the recent files list
is replaced by a stringstream, and then a c-string is extracted
from it and written using standard c file manipulation.
Also tweaked a couple of typos from rgareus :)
Robin Gareus [Tue, 8 Sep 2015 20:25:23 +0000 (22:25 +0200)]
fix prev. commit
Robin Gareus [Tue, 8 Sep 2015 19:21:28 +0000 (21:21 +0200)]
portable c-code for reading pingback/announcement message
John Emmas [Tue, 8 Sep 2015 14:43:23 +0000 (15:43 +0100)]
Use glib to open our 'recent file' list, rather than opening directly with ifstream / ofstream
(on Windows, ifstream & ofstream don't support UTF8)
John Emmas [Tue, 8 Sep 2015 14:38:17 +0000 (15:38 +0100)]
Use glib to open our 'announcements' file, rather than opening directly with ofstream
(on Windows, std::ofstream doesn't support UTF8)
Robin Gareus [Tue, 8 Sep 2015 13:14:02 +0000 (15:14 +0200)]
dummy, allow 8k buffer-size.
Robin Gareus [Tue, 8 Sep 2015 10:49:24 +0000 (12:49 +0200)]
fix redeclaration of symbol
Robin Gareus [Tue, 8 Sep 2015 00:51:58 +0000 (02:51 +0200)]
Allow to override A/V-lock (when moving audio)
Robin Gareus [Mon, 7 Sep 2015 23:35:35 +0000 (01:35 +0200)]
Allow to override A/V-lock (when moving video)
Robin Gareus [Mon, 7 Sep 2015 13:43:20 +0000 (15:43 +0200)]
add OSX/objc valgrind suppression file
Robin Gareus [Mon, 7 Sep 2015 11:35:48 +0000 (13:35 +0200)]
properly clean up meter-pattern cache
Robin Gareus [Mon, 7 Sep 2015 11:35:11 +0000 (13:35 +0200)]
image-surface/software rendering as preference
Robin Gareus [Sun, 6 Sep 2015 22:00:44 +0000 (00:00 +0200)]
fix some more uninitialized vars
Robin Gareus [Sun, 6 Sep 2015 20:36:09 +0000 (22:36 +0200)]
Workaround to allow loading large sessions.
During session-load, ardour calls Route::SoloControllable::set_value()
which calls Session::set_solo() which in turn sends a session-rt event.
Along with other rt-events (locations,..) the current solo logic limits
Ardour to only load sessions with about >= 200 tracks.
now bumped to a few thousand tracks.. until a proper solution comes along.
Robin Gareus [Sun, 6 Sep 2015 19:55:12 +0000 (21:55 +0200)]
libardour: initialize some uninitialized vars..
Robin Gareus [Sun, 6 Sep 2015 19:54:54 +0000 (21:54 +0200)]
initialize some uninitialized variables.
really just nitpicking (keep valgrind clean).
Robin Gareus [Sun, 6 Sep 2015 17:32:13 +0000 (19:32 +0200)]
gracefully handle LV2 GUI instantiation failure.
Robin Gareus [Sun, 6 Sep 2015 16:15:48 +0000 (18:15 +0200)]
catch duplicate shortcut folders.
Robin Gareus [Sun, 6 Sep 2015 16:15:13 +0000 (18:15 +0200)]
Don't keep gtk-file-chooser around.
This fixes some odd-crashes in the gtk main-thread after loading a new
session in gtk_file_system_model_sort().
Robin Gareus [Sun, 6 Sep 2015 14:45:48 +0000 (16:45 +0200)]
update region's constrained-name width with name
Robin Gareus [Sun, 6 Sep 2015 14:39:08 +0000 (16:39 +0200)]
consistent pango-text layout size - fixes #6490
Use gdk_pango_layout() for all text-size calculations.
In Canvas::Text always use the same context (local image surface)
for layouting (prior to this, local and window-context mix resulted in
different sizes).
Robin Gareus [Sun, 6 Sep 2015 10:58:54 +0000 (12:58 +0200)]
highlight regions with pending peak-files
Robin Gareus [Sun, 6 Sep 2015 10:56:50 +0000 (12:56 +0200)]
properly disconnect peak-ready connection
Robin Gareus [Sun, 6 Sep 2015 10:39:53 +0000 (12:39 +0200)]
fix peak-thread, GUI-thread race condition
Robin Gareus [Sun, 6 Sep 2015 09:49:47 +0000 (11:49 +0200)]
terminate peak-file creation on session-close
Robin Gareus [Sun, 6 Sep 2015 08:42:58 +0000 (10:42 +0200)]
another hint for clang static analysis.
Robin Gareus [Sun, 6 Sep 2015 08:42:29 +0000 (10:42 +0200)]
fix dummy-backend driver state
When loading previous state, set_driver() is called before
enumerate_drivers().
The available driver list must be available early on.
Robin Gareus [Sat, 5 Sep 2015 22:46:05 +0000 (00:46 +0200)]
mode dummy speeds
Robin Gareus [Sat, 5 Sep 2015 22:33:24 +0000 (00:33 +0200)]
add dummy-backend speed-selection
Robin Gareus [Sat, 5 Sep 2015 21:28:34 +0000 (23:28 +0200)]
create peak files in background when loading session
Robin Gareus [Sat, 5 Sep 2015 17:14:16 +0000 (19:14 +0200)]
initialize private variable (unit-test)
Robin Gareus [Sat, 5 Sep 2015 16:11:15 +0000 (18:11 +0200)]
leave a hint for clang scan-build
John Emmas [Sat, 5 Sep 2015 17:05:10 +0000 (18:05 +0100)]
Add a newly introduced source to our MSVC project (libardour)
John Emmas [Sat, 5 Sep 2015 17:04:29 +0000 (18:04 +0100)]
Add some newly introduced sources to our MSVC project (portaudio_backend)
John Emmas [Sat, 5 Sep 2015 17:02:32 +0000 (18:02 +0100)]
As an experiment, use PBD::ScopedFileDescriptor in preference to 'ofstream' which doesn't support UTF8 (on Windows at least)
This change should ensure that our "been_here_before" file ('.a3' or whatever) will get created successfully - even for user paths with non-English characters in them.
If this experiment works on all platforms, there are several other areas where we'll probably need something similar.
Robin Gareus [Sat, 5 Sep 2015 15:25:59 +0000 (17:25 +0200)]
fix log-scale for automation lanes.
Robin Gareus [Sat, 5 Sep 2015 15:13:04 +0000 (17:13 +0200)]
don't use gain-mapping (verbose-cursor) for plugin params.
Robin Gareus [Sat, 5 Sep 2015 13:47:00 +0000 (15:47 +0200)]
remove a float loop counter
Robin Gareus [Sat, 5 Sep 2015 13:45:59 +0000 (15:45 +0200)]
display session create/open failure errors.
Robin Gareus [Sat, 5 Sep 2015 11:16:26 +0000 (13:16 +0200)]
provide details about session-creation failure.
Robin Gareus [Sat, 5 Sep 2015 09:36:16 +0000 (11:36 +0200)]
add missing include
Robin Gareus [Fri, 4 Sep 2015 23:16:10 +0000 (01:16 +0200)]
unit-test: set instance name to pre-configure dummy engine
Robin Gareus [Fri, 4 Sep 2015 23:15:28 +0000 (01:15 +0200)]
Dummy-Backend: special case unit-test
Robin Gareus [Fri, 4 Sep 2015 22:00:16 +0000 (00:00 +0200)]
fix bitwise enum parsing
Robin Gareus [Fri, 4 Sep 2015 20:36:14 +0000 (22:36 +0200)]
print insanity-check message only in debug builds
Tim Mayberry [Fri, 4 Sep 2015 01:24:56 +0000 (11:24 +1000)]
Fix invalid error message when selecting directories/folders in Import dialog
On linux SndFileSource::get_soundfile_info was being called with an empty path
value when clicking on a folder in the left side part of the file browser which
resulted in an unnecessary error message.
On Windows every time a directory was selected in the Import dialog,
SndFileSource::get_soundfile_info would fail to open the directory in read only
mode and produce an error, but as we don't want to query/open soundfile info
for directories anyway just test and return if the path is a directory.
Tim Mayberry [Thu, 3 Sep 2015 13:10:42 +0000 (23:10 +1000)]
Remove Apply button in Import dialog/Window and change OK to "Import"
Don't close the window when clicking on Import. Changing "OK" to "Import" makes
it clear what action is being taken by the button. I quite frequently imported
several files from different directories using "Apply" and then would click on
OK to finish using the dialog only to have the last import occur again
unintentionally.
Another option would of been to change "Apply" to "Import" and "OK" to "Import
and Close" and not have a Close button.
Tim Mayberry [Thu, 3 Sep 2015 12:32:53 +0000 (22:32 +1000)]
Change Cancel button in Import Dialog to Close button
This button closes the window, it doesn't actually cancel any importing that
has taken place and cancelling the import in progress is done by the Cancel
button in popup progress dialog
Tim Mayberry [Thu, 3 Sep 2015 12:13:43 +0000 (22:13 +1000)]
Indentation and whitespace fixes in sfdb_ui.h
Mathias Buhr [Thu, 3 Sep 2015 08:05:36 +0000 (10:05 +0200)]
Review changes
Mathias Buhr [Sat, 29 Aug 2015 11:48:05 +0000 (13:48 +0200)]
Fixes case where audiofiles used wrong peakfiles