13
0
Commit Graph

8660 Commits

Author SHA1 Message Date
060f9cb355 fix const-cast warnings 2015-06-29 14:18:15 -04:00
438f3e5141 remove const warning in SMF C code by changing function parameter argument qualifier 2015-06-29 14:18:15 -04:00
2e87b7f24f comment unused but potentially usable variables 2015-06-29 14:18:15 -04:00
ec16c454ef comment unused but potentially usable variables 2015-06-29 14:18:15 -04:00
bbece8f8d9 try using threaded waveviews in tracks also 2015-06-29 14:18:15 -04:00
GZharun
6584a89c4e Fixed incomplete merge for audioengine.cc
[To be reviewed by] Paul Davis
2015-06-29 14:18:15 -04:00
a38e67d55b never use threaded waveview rendering for Tracks 2015-06-29 14:18:15 -04:00
0bbe7ad96b comment out two verbose debugging outputs 2015-06-29 14:18:15 -04:00
329753241f clip level is adjusted only by region amplitude (which is audible), not by _amplitude_above_axis 2015-06-29 14:18:15 -04:00
bace0e85dc attempt to correctly respond to changes in _amplitude_above_axis in ArdourCanvas::WaveView 2015-06-29 14:18:15 -04:00
2e29e7ee62 increase debug bitset size to accomodate additional debug bits imported from Tracks 2015-06-29 14:18:15 -04:00
0e72e8446a update waves' fader implementation, clean up whitespace, indentation, variable initialization and remove unused members 2015-06-29 14:18:15 -04:00
8e9bb12f92 no-op: fix whitespace/indentation 2015-06-29 14:18:15 -04:00
GZharun
dd0a73e2d4 Fixed use case when session is being replaced with new session with the same name.
We should check session state file (*.ardour) presence to determine if the session is new for TracksLive as TracksLive has a use case which gives user a possibility to replace existing session by clicking on it's state file when new session is being created.
[To be Reviewed by] Paul Davis
2015-06-29 14:18:15 -04:00
GZharun
c13d3ff790 [Summary] This action is duplicated. To make TRX features work correctly this flag should be dropped later.
[To be Reviewed by] Paul Davis
2015-06-29 14:18:15 -04:00
d4bd394b4b Revert "remove unused variables". They are used on OS X.
This reverts commit 0fba19e9e6e6c519c89ce63149581b8f24b38c8c.
2015-06-29 14:18:15 -04:00
8c4b899352 remove unused variables 2015-06-29 14:18:15 -04:00
e6b4c9f610 fix whitespace/indentation and compiler warnings 2015-06-29 14:18:15 -04:00
03dbf7857e remove compilation warning (-Wunused-but-set-variable) 2015-06-29 14:18:15 -04:00
93a64cb4fc new PBD::DEBUG API changes for Waves backend 2015-06-29 14:18:15 -04:00
6bdac56998 some more information output to log during save-as, for debugging 2015-06-29 14:18:15 -04:00
b6a8f1fbf5 two required changes to default values for Tracks 2015-06-29 14:18:15 -04:00
ca25a664d3 Tracks doesn't know how to handle Engine (JACK) sync 2015-06-29 14:18:15 -04:00
92b023b908 fix API version SNAFU caused by re-copying EngineStateController out of Tracks 2015-06-29 14:18:15 -04:00
0f9cac978e (re)implement Yevgeny's LTC branch changes in the context of ardour-merge-from-tracks (just the libs/* section) 2015-06-29 14:18:15 -04:00
e20242c242 fix indentation and style guide issues in new EngineStateController code 2015-06-29 14:18:15 -04:00
GZharun
bdbad46dee copy current EngineStateController from Tracks to import Yevgeny's LTC (re)connection related changes 2015-06-29 14:18:15 -04:00
dddf76abf5 fix previously cherry-picked commit to be Tracks-only, since Ardour/Mixbus are not affected 2015-06-29 14:18:15 -04:00
Nikolay
55658c3aae [Summary] Mac OS specific bug fix: Increased priority of the top menu bar events
[Details] g_idle_add () which was used for this purpose used G_PRIORITY_DEFAULT_IDLE>=200 which was too low for correct main menu requests processing, like showing Mixer or Big Clock Window.

The priority was increased to G_PRIORITY_HIGH_IDLE = 100.
According to GTK manual (https://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#G-PRIORITY-HIGH-IDLE:CAPS)
GTK+ uses G_PRIORITY_HIGH_IDLE + 10 = 110 for resizing operations, and G_PRIORITY_HIGH_IDLE + 20 = 120 for redrawing operations.

I assume that during record or playback on tracks there are too many redraw request which didn't give any chance for main menu request to be processed in time with old priority value.

This change must be considered as a hot fix so far.
The issue might be deeper. Will be investigated with Paul.

[Feature reviewed] AMishyn
[Reviewed by] PDavis, GZharun
2015-06-29 14:18:15 -04:00
a9e84cee27 new file holding non-AVX stubs for AVX functions on linux 2015-06-29 14:18:15 -04:00
GZharun
40ddbc6195 Fixed up types mismatch in AudioCallback and AudioCllbackData struct 2015-06-29 14:18:15 -04:00
76f066f40c fix typo in wavesbackend code 2015-06-29 14:18:15 -04:00
0a433b2d07 Revert "add operator bool() to Evoral::Beats"
This reverts commit f8b5263af5e4d5088f1d5551e999679515add432.

OS X compiler gets confused by this change.
2015-06-29 14:18:14 -04:00
16c34acc88 add operator bool() to Evoral::Beats 2015-06-29 14:18:14 -04:00
d27dc3557e new Session::default_track_name_pattern (DataType) method, based on an idea in Tracks 2015-06-29 14:18:14 -04:00
c66ea2c170 add new Gtkmm2ext::pixel_size() to conveniently get width&height for a given font + string 2015-06-29 14:18:14 -04:00
GZharun
dbe0d5a649 Fixed up the comment 2015-06-29 14:18:14 -04:00
a624573ee6 add additional check for playhead priority target when testing loop range, to match Tracks' logic 2015-06-29 14:18:14 -04:00
cb38b4689b add Session::reconnection_in_progress(), used by Tracks 2015-06-29 14:18:14 -04:00
3b1609fc52 use the frame/sample based inter-scene gap, not the msecs one (now removed) 2015-06-29 14:18:14 -04:00
60b16811b7 scene gap is measured in frames, not msecs.
Could have used "samples" here but that can wait till we do a big rename
throughout the code base
2015-06-29 14:18:14 -04:00
5d41ab6983 add some session-scope configuration variables needed by Tracks.
Also add some comments regarding the presence of certain variables in this file
2015-06-29 14:18:14 -04:00
8ac5ef15f0 add more directory names to set managed via various APIs (automation, analysis, plugins, externals) 2015-06-29 14:18:14 -04:00
GZharun
b33d1732a6 Fixed a misprint in a comment 2015-06-29 14:18:14 -04:00
c2476ea73d add API for controlling and determining active status of a SceneChange
Conflicts:
	libs/ardour/ardour/scene_change.h
2015-06-29 14:18:14 -04:00
GZharun
51d2804535 Waves Backend MERGED from Tracks
[To be reviewed by] Paul Davis
2015-06-29 14:18:14 -04:00
GZharun
5d4f1c3419 Backend MERGE:
Paul Davis' change 3d12a4da82
[To be reviewed by] Paul Davis
2015-06-29 14:18:14 -04:00
GZharun
edbbc8344a Reverted Ben's default buffer size function implementation.
Related to  eeca7f7
2015-06-29 14:18:14 -04:00
GZharun
21b9e180bd Reverted Ben's m_DefaultBufferSize stuff as it looks redundant. Will be put back if we establish the opposite 2015-06-29 14:18:14 -04:00
6485300479 remove more explicit compiler flags by placing them in the compiler flags dictionary 2015-06-29 14:18:14 -04:00
3adfa9ef57 minor fix for wavesaudio backend after earlier changes + merge/meld madness 2015-06-29 14:18:14 -04:00
943394a49a add PBD::DEBUG bits for WavesAudio and WavesMIDI 2015-06-29 14:18:14 -04:00
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
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
ab2e23db9a follow various events related to playhead priority (loop changes, parameter changes); remove debug output 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
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
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
9ef4888e91 fix logic of previous commit for transport-stop during locate 2015-06-29 14:18:12 -04:00
4abea520df 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-29 14:18:12 -04:00
16dccfcb8a 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-29 14:18:12 -04:00
5c8c249db9 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-29 14:18:12 -04:00
Valeriy Kamyshniy
fa3a843d61 [Summary] Adding missing initialization of the date &time formats. “Init trashes” caused a bit ruined logic of the export dialog. 2015-06-29 14:18:12 -04:00
GZharun
67d42d9b28 [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-29 14:18:12 -04:00
GZharun
939e7c2d52 Fixed f65026f0a1cbc64862a82109c28f5d493fc45f2e merged commit related to waves backend
[Reviewed] PDavis
2015-06-29 14:18:12 -04:00
Valeriy Kamyshniy
8505c16057 [Summary] Just adding comment for better code-maintaining. 2015-06-29 14:18:12 -04:00
125c5e224c superior fix for limits on track name length 2015-06-29 14:18:12 -04:00
Valeriy Kamyshniy
eab6e309b2 [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-29 14:18:12 -04:00
GZharun
87f1c66ba1 [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-29 14:18:12 -04:00
7ef5aea500 when reversing regions, use the original source's SR, not the current session one 2015-06-29 14:18:12 -04:00
4a27a8b531 when creating new sources for a non-realtime Filter process, add option to use the same SR as the initial sources 2015-06-29 14:18:12 -04:00
f116455280 after changing session SR, reset all write sources to use new rate 2015-06-29 14:18:12 -04:00
c4e3135617 Tracks does not (want to) support destructive tracks 2015-06-29 14:18:12 -04:00
d0b5f87fba Tracks specific fix for SR reverting to previous value while creating new session 2015-06-29 14:18:12 -04:00
c5a657ceee add 176.4kHz to available sample rates in export GUI 2015-06-29 14:18:12 -04:00
54ec059a6f add 176.4kHz to export sample possibilities 2015-06-29 14:18:12 -04:00
d98bf248ad more reliable check for session files, to cover *.ardour.bak cases, and exclude them 2015-06-29 14:18:12 -04:00
f6149dffa3 Tracks puts the master bus remote ID into a different "namespace" than Ardour 2015-06-29 14:18:12 -04:00
ba151374b0 Tracks does not use a K20 meter for the master 2015-06-29 14:18:12 -04:00
VKamyshniy
94fc1dc745 [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-29 14:18:12 -04:00
8488d8f6a5 remove unnecessary and unused changes from grygorii 2015-06-29 14:18:12 -04:00
fb89ff4643 remove unused method 2015-06-29 14:18:12 -04:00
f11fc1852c fix whitespace/indentation and remove references to ScopedConnectionLists that were not used even in Tracks 2015-06-29 14:18:12 -04:00
GZharun
317bacfa3a [Summary] Eliminated redundant marker update notification which lead to creation of huge amount of redundant session events 2015-06-29 14:18:12 -04:00
b8f29872a7 noop: indentation 2015-06-29 14:18:12 -04:00
a6a522766b add required header 2015-06-29 14:18:12 -04:00
0b1a10b2d5 make use of loop range as default export range being Tracks specific 2015-06-29 14:18:12 -04:00
VKamyshniy
14226356d8 [Summary] Per Igor's request: if auto play loop is set on, the main timespan should be the range loop location. 2015-06-29 14:18:11 -04:00
860e22ac6d when loop range is set, if loop-is-mode and seamless looping, set loop for all tracks 2015-06-29 14:18:11 -04:00
13964dd9eb fix inadvertent typo 2015-06-29 14:18:11 -04:00
b558d00789 Tracks uses -inf gain on newly created tracks 2015-06-29 14:18:11 -04:00
fab465c4cc bring in more connection-related changes from Tracks 2015-06-29 14:18:11 -04:00
c57aecafb1 add engine_state_controller.cc to libardour sources when building tracks 2015-06-29 14:18:11 -04:00
c9f6cd88b1 add track auto-naming options from Tracks 2015-06-29 14:18:11 -04:00
3a56004f65 fix crash caused by missing return; add explanatory comments 2015-06-29 14:18:11 -04:00
4d64aed5d2 fix typo in Tracks build 2015-06-29 14:18:11 -04:00
42f5cc4784 include Tracks engine state controller header for Tracks build 2015-06-29 14:18:11 -04:00
4cd7f2568c add required profile header 2015-06-29 14:18:11 -04:00
33d1d8a6c1 change names for scene I/O port connection methods 2015-06-29 14:18:11 -04:00
18415ba6cd avoid redundant IO port reconnections in Tracks runtime case 2015-06-29 14:18:11 -04:00
49e292f360 noop: more style guide fixes 2015-06-29 14:18:11 -04:00
6eebb6326a noop: fix indentation to match style guide 2015-06-29 14:18:11 -04:00
71dd7ce934 add EngineStateController code from Tracks 2015-06-29 14:18:11 -04:00
3c3d62c18a Fixed issue with crash when invalid get_connections request is made on invalid port handle. (Grygorii) 2015-06-29 14:18:11 -04:00
32224ee608 add in more Tracks-related auto-(re)connect changes 2015-06-29 14:18:11 -04:00
bebb03a0a4 add in more Tracks-related auto-(re)connect changes, all conditionalized by Profile 2015-06-29 14:18:11 -04:00
c46ec135e5 initial incorporation of Tracks' automatic reconnect features, based on current Tracks code 2015-06-29 14:18:11 -04:00
de4efe73a6 merge several of the trickiest Tracks- and platform-specific RC configuration variables 2015-06-29 14:18:11 -04:00
d1747b4137 no-op: indentation and whitespace fixes 2015-06-29 14:18:11 -04:00
GZharun
ae8c494c02 [Summary] Added export cleanup
[Reviewed by] Andriy Mishyn
2015-06-29 14:18:11 -04:00
f9aeb659ee indentation and formatting cleanup 2015-06-29 14:18:11 -04:00
GZharun
f837b66c20 [Summary] Fixed issue with export built on Mavericks. There was not check on empty sets in ExportFormatSpecification class.
C standard, section 6.5.6.8 says:
"...if the result points one past the last element of the array object, it shall not be used as the operand of a unary * operator that is evaluated..."
So GCC compiler and CLANG compiler (Mavericks) process this operation different way. GCC returns 0 on an attempt to dereference end iterator when CLANG returns a non 0 value.
2015-06-29 14:18:11 -04:00
Greg Zharun
5877f255f0 [Summary] Fixed windows build 2015-06-29 14:18:11 -04:00
04b2d34362 add channel_count() to audio source API 2015-06-29 14:18:11 -04:00
9c95a8bdea another signal related to record state added from Tracks.
This doesn't appear to have obviously distinct semantics from RecordStateChanged
but Tracks is using it and I can't verify instantly that it could be replaced
by RecordStateChanged.
2015-06-29 14:18:11 -04:00
43f4b82485 distribute use of RouteAddedOrRemoved to appropriate places.
It might be wise to use this rather than GUIIdle but that needs further investigation
2015-06-29 14:18:11 -04:00
8c880b6529 include emission of RouteAddedOrRemoved in Session::add_audio_track() 2015-06-29 14:18:11 -04:00