Commit graph

31763 commits

Author SHA1 Message Date
Paul Davis
57b3df8b22 copy over (boo!) transport control changes to BasicUI (control surfaces) 2021-05-08 09:20:21 -06:00
Paul Davis
6b98e56da2 const-ification tweak 2021-05-08 09:19:50 -06:00
Paul Davis
6ca18bfcfd tweak gradual rewind/ffwd action to move in 4 semitone steps once the speed is below "one octave down"
This avoids taking forever to get to -40st, where we reverse direction
2021-05-08 09:13:32 -06:00
Paul Davis
9d7ded8bfe allow rewind/ffwd to incrementally move between speeds of zero and 1/-1
It's a little slow in getting all the way to zero, so this may need some tweaking
2021-05-08 08:16:28 -06:00
Robin Gareus
d88e0c6673
Fix windows builds (declare class binding)
see also 2ff8f5a5de
2021-05-08 14:38:43 +02:00
Robin Gareus
08092d22b4
Prevent invalid frame/child size allocation 2021-05-08 14:36:43 +02:00
Robin Gareus
ce1e05fc3d
Update DnD min. movement threshold -- #8686
Previously x-axis threshold was in samples. This is
useless unless zoomed in to the max. So in most cases
the first-move was always in x-direction, making constrained
y-axis drags near impossible.

Furthermore the threshold for copy-drags was increased
as per #8686
2021-05-08 04:28:36 +02:00
Todd Naugle
4d815554dd Various Control Surfaces: Fix one off in calculation of fader position
MIDI pitch bend holds 14 bits (16384) which gives values of 0 to 16383.
2021-05-07 18:02:44 -05:00
Carlo Stemberger
67cce59f4e
Avoid regex convention in script documentation 2021-05-08 00:35:31 +02:00
Edgar Aichinger
a103a89f4f
also install desktop icon files 2021-05-08 00:27:33 +02:00
Edgar Aichinger
433d7dc8a0
freedesktop: install (not only build) desktop, mimeinfo and appdata files 2021-05-08 00:27:33 +02:00
Tiefseetauchner
720a7eed77 Update compile.sh
cd in line 4 would not work if path has blank as it would have two arguments
./compile.sh: line 4: cd: too many arguments
2021-05-07 16:25:21 -06:00
Paul Davis
e2a28ec776 avoid playhead jumping while we locate from a control surface 2021-05-07 16:24:53 -06:00
Robin Gareus
b0d4f77d92
Optimize RegionList redisplay for batch changes 2021-05-07 23:29:25 +02:00
Robin Gareus
f6c011cb65
Remove old RegionPropertyChanged signal (3/3) 2021-05-07 23:29:25 +02:00
Robin Gareus
283cade057
Update GUI Region[s]PropertyChanged signal handlers (2/3) 2021-05-07 23:29:25 +02:00
Robin Gareus
2ff8f5a5de
Consolidate RegionsPropertyChanged signal emission (1/3)
This prepares to combine multiple RegionPropertyChanged signals
(potentially thousands) into a single signal.
2021-05-07 23:29:25 +02:00
Robin Gareus
5af480083c
MIDI List Editor, subscribe to region's signal (not all regions) 2021-05-07 23:29:25 +02:00
Paul Davis
bb7f919a07 fix import file Lua script to follow new API to PublicEditor::do_import() 2021-05-07 14:58:16 -06:00
Paul Davis
3e47057609 import process now allows optional import of MIDI markers/cues 2021-05-07 14:58:16 -06:00
Paul Davis
f689e9ecab Evoral: add methods to SMF to load and access markers/cues in SMF files 2021-05-07 14:58:16 -06:00
Robin Gareus
4db1c02bd1
Fix crashes when rippling many regions
Region positions were updated in the GUI, before the playlist
was catching up.

The butler thread reads a region using the region's new position,
but the playlist's old range.


Thread 1 (GUI)
```
#22 ARDOUR::Playlist::notify_layering_changed()
#26 ARDOUR::AudioPlaylist::region_changed
#27 ARDOUR::Playlist::region_changed_proxy
#35 ARDOUR::Region::send_change
#36 ARDOUR::Region::set_position
#37 RegionRippleDrag::remove_unselected_from_views
#38 RegionRippleDrag::finished
```

LayeringChanged() also triggers DiskIOProcessor::playlist_modified
which schedules a pending-override and summons the butler.
Note that when moving only a few regions the butler starts after all
updates have been completed.

Butler thread:
```
#4  ARDOUR::AudioRegion::read_at
#5  ARDOUR::AudioPlaylist::read
#6  ARDOUR::DiskReader::audio_read
#7  ARDOUR::DiskReader::overwrite_existing_audio
#8  ARDOUR::DiskReader::overwrite_existing_buffers
#9  ARDOUR::Track::overwrite_existing_buffers
#10 ARDOUR::Session::non_realtime_overwrite
```

Region read fails:
```
 libs/ardour/audioregion.cc:503  assert (position >= _position);
(gdb) p position
$1 = 1312000
(gdb) p _position
$2 = {<PBD::PropertyTemplate<long>> = {_have_old = true,
    _current = 1336000, _old = 1312000} }
```
2021-05-07 21:56:09 +02:00
Robin Gareus
11719144b3
Update split-benchmark script with new transport API 2021-05-07 21:56:09 +02:00
Robin Gareus
49e1380417
Add missing Lua binding (see also 48e5607f7c) 2021-05-07 21:56:09 +02:00
Todd Naugle
d2ba90b2c1 Fallback to the default export path when the saved export path is not found.
Previously we would end up with an export path of top level session
directory.
2021-05-07 12:25:42 -05:00
Todd Naugle
9e6b85f330 Don't save a leading slash when storing a relative export path.
It is not needed in the relative case and causes issues when taking
sessions between platforms.

On windows, the default path would be "\export". When that is used
on linux the resulting fullpath would end up as

/your/session/path/\export

which is then not found on the file system.

This change is consistent with how relative paths are normally written and
does cure the default path when moved across platforms.

It does not solve the larger issue of mixed directory separators.
A relative path of "export\myMixV1" will still fail when moving between
platforms.
2021-05-07 12:25:42 -05:00
Alexandre Prokoudine
a18d9b9cb4
Update Russian translation 2021-05-07 05:38:57 +02:00
Robin Gareus
98f5224d4c
Fix incorrect port lists due to custom sort
Previously the following were treated as equal
 "MIDI_foo" == "MIDI bar"
So std::map<> PortManager::_ports and PortEngineSharedImpl:_ports
could only have either. This resulted in missing ports
and missing calls to existing ports in cycle_start().

This mainly affected MIDI tracks with imported files, since there
is "MIDI Clock in", and imported files result in tracks
"MIDI_file-name".

This issue was introduced in 6.6-200-g60ff3ef764
2021-05-07 04:24:32 +02:00
Paul Davis
bfd52fd94d TransportFSM: do not enter Reversing state too early
We do need to know that a reversal is intended before we do a locate, but we should
not enter Reversing before the declick is finished. So instead, we add a new
member, _reverse_after_declick to keep track, and enter Reversing just before
we start the locate
2021-05-06 19:40:08 -06:00
Robin Gareus
97167ed927
Fix harvid bind address on BigSur 2021-05-07 01:45:00 +02:00
Robin Gareus
7dc21fdc96
PortList debug methods (to be called from gdb) 2021-05-07 01:43:19 +02:00
Paul Davis
ade679f162 move <poll.h> inside an appropriate #ifdef, since it does not exist on Windows 2021-05-06 14:45:56 -06:00
Paul Davis
3a7ea6b217 use poll(2) rather than select(2) for reading output from an exec'ed process
select(2) can only handle file descriptors up to 1024, and there are fairly easy to reproduce
cases where the file descriptor used here is larger than that.
2021-05-06 14:41:28 -06:00
Robin Gareus
221b272f8a
Fix loading old route-templates
This follows 983c577945, don't allow unlinked
pannable to override main panners.
2021-05-06 21:21:47 +02:00
Robin Gareus
1173262503
Fix insert-position when adding route from template 2021-05-06 21:21:47 +02:00
Robin Gareus
31b709b7ff
NO-OP: rename variable, avoid ambiguities
Portmanager uses "ports" as local variable in various places
(usually vector<string>). While the compiler is fine with that,
it is confusing when debugging or reading code.
2021-05-06 21:21:47 +02:00
Paul Davis
e570a290c4 add a few casts to avoid compiler warnings regarding size_type vs int
The class members are int because they need to hold negative (out-of-bound) values as sentinels
2021-05-06 12:03:27 -06:00
Paul Davis
29c89cf362 fix tiny typo in a tooltip 2021-05-06 11:42:50 -06:00
Paul Davis
05d8545655 preference item for auto-return-after-rewind-ffwd 2021-05-06 11:40:20 -06:00
Paul Davis
c47f5eb951 pay attention to auto-return-after-rewind-ffwd 2021-05-06 11:40:20 -06:00
Paul Davis
3bbae4ec62 add new config parameter for auto-return after rewind/ffwd (set to false by default) 2021-05-06 11:40:20 -06:00
Robin Gareus
fd9e9df742
Fix optimized build, amend 5957e14259 2021-05-06 15:50:44 +02:00
Robin Gareus
fc54ab48ec
Remove unused function, fix optimized builds 2021-05-06 15:27:26 +02:00
Paul Davis
b75118ee13 a more robust value check for 8cb09ab2cf modification 2021-05-05 18:48:53 -06:00
Paul Davis
8cb09ab2cf fix for region-drag to the dropzone (#8672)
The DraggingView's time_axis_view (index) is set to the size of _time_axis_views
in ::motion() near line 1149. This makes it invalid as index into the vector.
2021-05-05 18:33:44 -06:00
Robin Gareus
9e77d9dd50
Fix packaging debug builds on Catalina 2021-05-06 01:24:03 +02:00
John Emmas
a222292e68 Emulate exp2f() for older MS compilers where it wasn't available 2021-05-05 17:50:41 +01:00
Robin Gareus
5957e14259
Remove unused #include<> (2/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:57:16 +02:00
Robin Gareus
5c579ed52d
Remove unused #include<> (1/2)
PBD::stacktrace() is not used nor needed by default.
It should be used sparingly.
2021-05-05 17:43:28 +02:00
Robin Gareus
3cd7c3e206
Reduce default max transport speed
Since Ardour 6, a transport speed of 200% will also double
DSP load. Under the hood Ardour rolls twice the distance and
the output is downsampled.

Vari-speed > +/-200% will likely cause dropouts with many
sessions on most systems, users should explicitly select it.
2021-05-05 17:30:48 +02:00