Commit graph

8477 commits

Author SHA1 Message Date
Paul Davis
4b2ef73e29 follow various events related to playhead priority (loop changes, parameter changes); remove debug output 2015-06-25 10:49:09 -04:00
Robin Gareus
40ce7268fb API to set tooltip y-margin
Conflicts:
	libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h
	libs/gtkmm2ext/persistent_tooltip.cc
2015-06-25 10:49:09 -04:00
Paul Davis
575b4a7c05 give different Tracks + Ardour/Mixbus playhead priority functionality, and add missing set_track_loop() call for playhead priority 2015-06-25 10:49:09 -04:00
Paul Davis
dd313ca988 correct placement of buffering adjustments w.r.t Butler thread creation 2015-06-25 10:49:09 -04:00
GZharun
21a242c185 [Summary] Moved session buffers adjustment during butler thread set up to the place we are ready to handle them. 2015-06-25 10:49:09 -04:00
GZharun
d5fc9654cf [Summary] HOT FIX: Fixed crash which happens on an attempt to load a session with audio after preferences removal, when buffer preset is set to Medium.
[Details] It happened because ARDOUR::Butler::thread_work() was called before Buttler::map_parameters() method was called, which sets up the correct buffering parameters (set_buffering_parameters () call) according to chosen preset.
I've added this calls into Butler::start_thread () to make sure everything is set up and ready for use for Butler.

This is a hot fix, because it requires the review from Paul Davis, and probably more gentle solution. But it's possible this commit may become the main solution itself.
2015-06-25 10:49:09 -04:00
Paul Davis
e43cf2474e try to correctly set up build of AVX code for windows and linux, using compiler flags dictionary.
Adds use of 'pic' compiler flags dictionary item
2015-06-25 10:49:09 -04:00
Paul Davis
99dc4c266f meter computation must use absolute value of all samples (ignoring sign bit) 2015-06-25 10:49:09 -04:00
Paul Davis
16cc70c979 add windows-only AVX functions 2015-06-25 10:49:09 -04:00
Paul Davis
30f6a1b9e5 Made optimized function Prototypes more correct.
They shouldn't be dependant on ARDOUR types as long as they will work correctly with float
samples only and with 32 unsigned int as sample counter.
2015-06-25 10:49:09 -04:00
Paul Davis
6140e27976 Corrected comments for x86_sse_avx_find_peaks() intrinsics built function 2015-06-25 10:49:09 -04:00
Paul Davis
e066bd012f add new file with AVX functions.
Does not fully support Linux at this time
2015-06-25 10:49:09 -04:00
Paul Davis
35b8b6b02a Added optimized AVX function for sample processing
Added AVX versions of existing 5 SSE functions. Added 6th AVX function to copy vectors which is 1.5 times faster then memcpy.
Data consistency and validness  is fully tested after processing with new AVX functions on aligned and non aligned buffers.
2015-06-25 10:49:09 -04:00
Paul Davis
cd305dbf0e fix accidentally deleted return value 2015-06-25 10:49:09 -04:00
Paul Davis
5fce0d8f01 fix timing of Butler mapping config parameters to avoid crash.
Amazing that this didn't show up on Linux at all, or on the first run after build. Computers ... sigh.

Conflicts:
	libs/ardour/butler.cc
2015-06-25 10:49:09 -04:00
Paul Davis
70156905fb two tweaks required to fix up previous commit 2015-06-25 10:49:09 -04:00
Paul Davis
1e825f472a initial version of playback priority design. No GUI control over options yet
Conflicts:
	libs/ardour/ardour/session.h
	libs/ardour/ardour/types.h
	libs/ardour/enums.cc
	libs/ardour/session_transport.cc
	system_config
2015-06-25 10:49:09 -04:00
Paul Davis
d64005165c ensure that working buffers (for gain + mixing) are large enough.
Remove AudioDiskstream and AudioSource _working_buffers_size members, since they are no longer used
2015-06-25 10:49:09 -04:00
Paul Davis
aa59474f7c clean up cherry-pick of varifill tweaks from Waves Tracks 2015-06-25 10:49:09 -04:00
Paul Davis
392f3df1bd more tweaks for varifill model, and avoid filling playback buffers during session loading
Conflicts:
	libs/ardour/diskstream.cc
	libs/ardour/session.cc
	libs/ardour/session_state.cc

Conflicts:
	libs/ardour/session.cc
2015-06-25 10:49:09 -04:00
Paul Davis
b41284b614 add initial support for vari-fill
When refilling playback buffer, try to fill it completely, or at least
using the next-lowest power-of-2 as the amount to read. When locating,
where we use do_refill_with_alloc(), only partially fill the buffer.

Work not yet finished, but possibly promising.
2015-06-25 10:49:09 -04:00
Paul Davis
5dc9f58b74 introduce the idea of buffering presets, along with 3 possible settings (plus custom).
Actual numbers for the parameters are still to be determined/verified, and probably subject to
some platform specificity
2015-06-25 10:49:08 -04:00
Paul Davis
ec80a121ea fix logic of previous commit for transport-stop during locate 2015-06-25 10:49:08 -04:00
Paul Davis
778f5f2b6d Do not disable record (performing transport stop) during locate request when MTC source is activated
This is required for the case when we leave Tracks ready for record and then activate MTC source.
2015-06-25 10:49:08 -04:00
Paul Davis
6120fe04de Add some libardour support for indicating MTC active status.
The general design here is wrong, because it should be more general and cover all possible sync sources.
But it does work, it is used in Tracks, and my attempt to do it correctly revealed the problem to be
an EXTREMELY difficult design issue (as in: two weeks of work on it did not really solve the
fundamental issues with slave design).

So, here it is for now, c/o Grygorii
2015-06-25 10:49:08 -04:00
Paul Davis
a604dc8af5 Revert "[Summary] Adding missing initialization of the date &time formats. “Init trashes” caused a bit ruined logic of the export dialog."
This reverts commit c9a190b7470d29bc6528195323a907a8d619c1d4. Change was
already in place (and used correct initialization order as well).
2015-06-25 10:49:08 -04:00
Valeriy Kamyshniy
11176eb80e [Summary] Adding missing initialization of the date &time formats. “Init trashes” caused a bit ruined logic of the export dialog. 2015-06-25 10:49:08 -04:00
GZharun
c22a1ee962 [Summary] Do not restore routes connection using XML IO state for TracksLive, because this is redundant for TracksLive.
Moreover if the device is changed XML state of IO contains port names of  the old device which causes attempts to connect to non existent ports.
[Reviewed by] Paul Davis
2015-06-25 10:49:08 -04:00
GZharun
62cdb1478e Fixed f65026f0a1cbc64862a82109c28f5d493fc45f2e merged commit related to waves backend
[Reviewed] PDavis
2015-06-25 10:49:08 -04:00
Valeriy Kamyshniy
7ba47bda6f [Summary] Just adding comment for better code-maintaining. 2015-06-25 10:49:08 -04:00
Paul Davis
4182f5908e superior fix for limits on track name length 2015-06-25 10:49:08 -04:00
Valeriy Kamyshniy
8cb454e5c8 [Summary] Fixed bug: Dragging Region with copying it provoked a crash. The reason is: too short room for name generated for new region. 2015-06-25 10:49:08 -04:00
GZharun
6f3ee63199 [Summary] Fixed race condition: "should_do_transport_work" must not be dropped to 0 outside, it's illegal. It may cause "should_do_transport_work" go below 0 and make butler to round for a very-very long time (hang and possible lock of other threads) before stop() call returns.
_butler->stop () is synchronous, so its safe to wait in this call for butler to finish it's work.

[Reviewed by] PDavis
2015-06-25 10:49:08 -04:00
Paul Davis
d434661ff3 when reversing regions, use the original source's SR, not the current session one 2015-06-25 10:49:08 -04:00
Paul Davis
3cd99871f4 when creating new sources for a non-realtime Filter process, add option to use the same SR as the initial sources 2015-06-25 10:49:08 -04:00
Paul Davis
7eef64ac83 after changing session SR, reset all write sources to use new rate 2015-06-25 10:49:08 -04:00
Paul Davis
e56484d586 Tracks does not (want to) support destructive tracks 2015-06-25 10:49:08 -04:00
Paul Davis
d75ca2cf5d Tracks specific fix for SR reverting to previous value while creating new session 2015-06-25 10:49:08 -04:00
Paul Davis
c5f2692bca add 176.4kHz to available sample rates in export GUI 2015-06-25 10:49:08 -04:00
Paul Davis
7434e0c1f9 add 176.4kHz to export sample possibilities 2015-06-25 10:49:08 -04:00
Paul Davis
4cab8b4cf0 more reliable check for session files, to cover *.ardour.bak cases, and exclude them 2015-06-25 10:49:08 -04:00
Paul Davis
ac22eb73fa Tracks puts the master bus remote ID into a different "namespace" than Ardour 2015-06-25 10:49:07 -04:00
Paul Davis
41faf7dafb Tracks does not use a K20 meter for the master 2015-06-25 10:49:07 -04:00
VKamyshniy
755e9c6b6c [Summary] In Location::set_state - adding emitted FlagsChanged (if any flag changed). This is not a hot fix - it's for UNDO changed skipping state for SKIP markers. Paul has approved this change. 2015-06-25 10:49:07 -04:00
Paul Davis
5b1e3ea717 remove unnecessary and unused changes from grygorii 2015-06-25 10:49:07 -04:00
Paul Davis
af1dcecb9a remove unused method 2015-06-25 10:49:07 -04:00
Paul Davis
6eff2099c1 fix whitespace/indentation and remove references to ScopedConnectionLists that were not used even in Tracks 2015-06-25 10:49:07 -04:00
GZharun
37dd17d6b5 [Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events 2015-06-25 10:49:07 -04:00
Paul Davis
d36aa7f601 noop: indentation 2015-06-25 10:49:07 -04:00
Paul Davis
b81f37ef76 add required header 2015-06-25 10:49:07 -04:00