13
0
Commit Graph

17172 Commits

Author SHA1 Message Date
Greg Zharun
320da29922 [Summary] AudioPort buffer does not need 64 byte alignment which cache_aligned_malloc provides.
Added new function which accepts argument to specify required alignment.

AudioPort buffer requires 32 byte alignment

[Review Required] YPosdnyakov
2015-06-29 14:18:14 -04:00
237f255fb5 meld-driven unification of current ardour-ish WavesAudio backend and current tracks WavesAudio backend.
May be incomplete, and may not compile (testing to follow)
2015-06-29 14:18:14 -04:00
GZharun
0fca07fa9d cosmetic fix (grygorii) 2015-06-29 14:18:14 -04:00
480f1e4082 noop: fix indentation/whitespace 2015-06-29 14:18:14 -04:00
f34d870a2c increase event pool for backend reset thread (somewhat unnecessarily, but lets keep Kyiv happy) 2015-06-29 14:18:14 -04:00
2911bb9fb8 AudioEngine tweaks from Tracks, related to stopping audioengine and halting 2015-06-29 14:18:14 -04:00
289078f7f8 merge in Tracks-derived session-end-is-N-seconds beyond last region end, but define N as zero for Ardour/Mixbus 2015-06-29 14:18:14 -04:00
a9f3ca6a81 fix indentation and remove whitespace 2015-06-29 14:18:14 -04:00
68aab0153c rename Session::add_session_range_location() to ::set_session_range_location() 2015-06-29 14:18:14 -04:00
440618bc85 enabling record (either tentative for punch or fully enabled) cancels play loop mode 2015-06-29 14:18:14 -04:00
854ff8d886 implement missing methods for MIDISceneChange 2015-06-29 14:18:13 -04:00
960cff790b mark session dirty after scene change is added/removed 2015-06-29 14:18:13 -04:00
a47cacfcc6 add signal to indicate absence of removal of scene change from Location 2015-06-29 14:18:13 -04:00
8367b7cab3 remove artificial, accidental and utterly unintended limit of the numbering of scene changes 2015-06-29 14:18:13 -04:00
706eb6dacd add Tracks specific handling of MMC Record Strobe, since Tracks has no concept of punch 2015-06-29 14:18:13 -04:00
745a235b9d properly track, update, maintain and set auto return state
Conflicts:
	gtk2_ardour/ardour_ui_options.cc
2015-06-29 14:18:13 -04:00
682d8ae064 make sure we allocate large enough buffers when doing a non-butler context disk buffer refill.
The size of the buffer now needs to reflect that we calculate read
refills in bytes, and if we are not using 32 bit float sample format
on disk, that can translate into > 1M samples.
2015-06-29 14:18:13 -04:00
3a65005a75 remove Tracks runtime conditional, incorrectly added during manual merging 2015-06-29 14:18:13 -04:00
7592b5d3e1 correctly track range selection trim and drag creation w.r.t playback priority 2015-06-29 14:18:13 -04:00
aefd089b88 make editor_drag.h fully self-contained as a header file (it was missing more than a dozen necessary fwd decls etc)
Conflicts:
	gtk2_ardour/editor_drag.h
2015-06-29 14:18:13 -04:00
eb791b7302 start work on auto return target dropdown rather than button
Conflicts:
	gtk2_ardour/ardour_ui.cc
2015-06-29 14:18:13 -04:00
6c8e11d3f8 change ArdourDropdown API to allow other types of menu elements 2015-06-29 14:18:13 -04:00
ab2e23db9a follow various events related to playhead priority (loop changes, parameter changes); remove debug output 2015-06-29 14:18:13 -04:00
736baab0f9 remove debug output 2015-06-29 14:18:13 -04:00
a2604ea38c fix copy-n-paste errors that used wrong buttons for playhead priorities 2015-06-29 14:18:13 -04:00
82487c9196 fix copy-n-paste errors that used incorrect enum values for playhead priorities 2015-06-29 14:18:13 -04:00
827fa16239 restore use of vertical margin on ardour knob popup tooltip/window 2015-06-29 14:18:13 -04:00
96078650c9 API to set tooltip y-margin
Conflicts:
	libs/gtkmm2ext/gtkmm2ext/persistent_tooltip.h
	libs/gtkmm2ext/persistent_tooltip.cc
2015-06-29 14:18:13 -04:00
016beaab9b give different Tracks + Ardour/Mixbus playhead priority functionality, and add missing set_track_loop() call for playhead priority 2015-06-29 14:18:13 -04:00
30a698f42e correct placement of buffering adjustments w.r.t Butler thread creation 2015-06-29 14:18:13 -04:00
GZharun
e52375aa40 [Summary] Moved session buffers adjustment during butler thread set up to the place we are ready to handle them. 2015-06-29 14:18:13 -04:00
GZharun
be92c927e8 [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-29 14:18:13 -04:00
6878742d9f 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-29 14:18:13 -04:00
751d330dbb store compiler flags in conf/bld context object so that we can use them selectively at build time 2015-06-29 14:18:13 -04:00
0d78359d29 meter computation must use absolute value of all samples (ignoring sign bit) 2015-06-29 14:18:13 -04:00
8bb54f41c6 add windows-only AVX functions 2015-06-29 14:18:13 -04:00
b938129589 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-29 14:18:13 -04:00
92df1594f9 Corrected comments for x86_sse_avx_find_peaks() intrinsics built function 2015-06-29 14:18:13 -04:00
07c0750142 add new file with AVX functions.
Does not fully support Linux at this time
2015-06-29 14:18:13 -04:00
6410aa896f 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-29 14:18:13 -04:00
e2a76746e6 fix accidentally deleted return value 2015-06-29 14:18:13 -04:00
5927fb4997 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-29 14:18:13 -04:00
e71236794d two tweaks required to fix up previous commit 2015-06-29 14:18:13 -04:00
35fe7e4ba7 add preferences GUI elements to allow control of playhead priority items 2015-06-29 14:18:13 -04:00
ba981a14c4 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-29 14:18:13 -04:00
2a5dbff87b 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-29 14:18:12 -04:00
5f4f40205b clean up cherry-pick of varifill tweaks from Waves Tracks 2015-06-29 14:18:12 -04:00
ca09a4a355 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-29 14:18:12 -04:00
1caf54ee7f 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-29 14:18:12 -04:00
4644e113a8 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-29 14:18:12 -04:00