13
0
Commit Graph

14076 Commits

Author SHA1 Message Date
95c674e3be rationalize where a TimeAxisView::_size_menu is detached from its parent menu
This happens before the parent menu is deleted and rebuilt
2021-05-13 10:29:19 -06:00
03db585f24 do not delete display (context) menu when adding a new automation child lane
The manu is rebuilt every time it is required, no need to delete it. In addition, deleting it
in the middle of an event handler causes memory corruption because the entire menu (with all
items and submenus) is deleted before event handling for the menu is completed
2021-05-13 10:29:19 -06:00
3a7304ca01
Fix session loading when aborting latency measurement #8691
Stop the engine if it was started for latency measurement
but measurement was aborted.

Previously the engine was kept running and the "Start' button
was not available.
If this happened during initial session loading, a user
would have to manually restart the engine to proceed.
2021-05-12 00:11:43 +02:00
0567c143f1
Tweak export-report to fit on smaller screens #8698
When the screen-height is insufficient, the loudness-graph is
not included in the dialog. It is still visible in the image
saved with the export (save-export-analysis-image).

For tiny screens the conformity analysis may also be skipped.
2021-05-11 23:12:31 +02:00
ca1ff5afaf
Remove cruft 2021-05-11 20:30:53 +02:00
e64e140809
Update Russian translation 2021-05-11 02:21:15 +02:00
bfb5bfcd2d
Fix builds (float, double ambiguity)
```
gtk2_ardour/ardour_ui.cc:2060: error: ISO C++ says that these are ambiguous, even though the worst conversion for the first is better than the worst conversion for the second:
/usr/include/architecture/i386/math.h:343: note: candidate 1: double pow(double, double)
/usr/include/c++/4.2.1/cmath:357: note: candidate 2: float std::pow(float, float)

```
2021-05-09 05:59:29 +02:00
600e959db5 set a boolean flag as needed to break out of MIDI tempo map import 2021-05-08 18:38:39 -06:00
78d56daf0a fix position of imported MIDI markers
Note: this fix may imply that the same change needed when importing a tempo map
2021-05-08 18:38:19 -06:00
05ef7f2647 come to a complete stop if rewind/ffwd steps past -40 semitones slower 2021-05-08 17:58:46 -06:00
cc83cdd9df
Config isn't editable 2021-05-08 19:19:16 +02:00
1c47f0adbe use 4 semitone steps whenever rewind/ffwd is adjusting in the range below 1 octave slower 2021-05-08 09:43:04 -06:00
6b98e56da2 const-ification tweak 2021-05-08 09:19:50 -06:00
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
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
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
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
e2a28ec776 avoid playhead jumping while we locate from a control surface 2021-05-07 16:24:53 -06:00
b0d4f77d92
Optimize RegionList redisplay for batch changes 2021-05-07 23:29:25 +02:00
283cade057
Update GUI Region[s]PropertyChanged signal handlers (2/3) 2021-05-07 23:29:25 +02:00
5af480083c
MIDI List Editor, subscribe to region's signal (not all regions) 2021-05-07 23:29:25 +02:00
3e47057609 import process now allows optional import of MIDI markers/cues 2021-05-07 14:58:16 -06:00
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
a18d9b9cb4
Update Russian translation 2021-05-07 05:38:57 +02:00
97167ed927
Fix harvid bind address on BigSur 2021-05-07 01:45:00 +02:00
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
29c89cf362 fix tiny typo in a tooltip 2021-05-06 11:42:50 -06:00
05d8545655 preference item for auto-return-after-rewind-ffwd 2021-05-06 11:40:20 -06:00
b75118ee13 a more robust value check for 8cb09ab2cf modification 2021-05-05 18:48:53 -06:00
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
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
f72c2b93c5
Fix video-monitor display when seeking
see also 25c0bd9274

play, locate, play resulted in the video-monitor showing
the target frame shortly, and play a few frames from the old
location.

This was due to locate happening async. Click to locate
directly sends the new location:

```
VideoTimeLine::manual_seek_video_monitor
ARDOUR_UI::update_transport_clocks
CursorDrag::fake_locate
CursorDrag::start_grab
DragManager::start_grab

```

CursorDrag::finished unset _dragging_playhead before the
call to resuest_locate(). Meanwhile playback continues.
2021-05-05 17:11:24 +02:00
9f4189c031 copy over changes to BasicUI::button_varispeed() to ARDOUR_UI::button_varispeed() 2021-05-04 23:14:48 -06:00
f792735672 remove double-tooltip setting (copy-paste error) for a preferences item 2021-05-04 20:54:38 -06:00
7fef16af6f add rewind/ffwd option to transport section of Preferences 2021-05-04 20:52:21 -06:00
9905f6e0a9 copy BasicUI::button_varispeed() into ARDOUR_UI, and use in all the right places
We really must find a way to share code between BasicUI and ARDOUR_UI
2021-05-04 16:56:19 -06:00
b01632356d fix cast warning 2021-05-04 16:55:33 -06:00
981fc6b3cd transition-to-roll should work whether rolling or stopped 2021-05-04 15:57:03 -06:00
8c427279d9 transition-to-roll should not set the default transport speed 2021-05-04 15:37:04 -06:00
1f18b4905d remove assert() that is triggered via multiple selection in region list (now possible for some time) 2021-05-04 11:55:48 -06:00
0aef128207 fix assumption that during dragging, a DraggingView's time_axis_view field is always a positive integer within range 2021-05-04 11:55:23 -06:00
5bfc507cb3 fix out-of-bounds access to a vector.
If the time axis view is not found, i will equal N, and _views[i] is out of bounds
2021-05-04 11:54:50 -06:00
ac53a9bbf8 remove unnecessary 2nd argument from Session::request_locate() calls (default value is identical) 2021-05-03 17:40:41 -06:00
e82b2b48fb
Avoid ambiguity with C++17 enum class std::byte 2021-05-02 16:36:57 +02:00
61885f0284
Explicitly set announce=false when creating regions (2/2)
This is in preparation for to improve consistency of
RegionFactory::create() default parameters (change
default to true).
2021-04-30 18:40:51 +02:00
6a82aa392c
Fix deadlock when duplicating regions w/ripple
This is an initial work-around for signal emission with
Playlist:region_lock held:

Playlist::duplicate() takes RegionWriteLock() and then calls
RegionFactory::create(). The newly created region does NOT have
property-changes suspended, and the RegionFactory can change
region-properties which results in signal-emission.

This in turn can lead to a call Editor::session_gui_extents()
-> ARDOUR::Playlist::get_extent() -> Playlist::RegionReadLock

which deadlocks: https://pastebin.com/84rSbsA3

Eventually we need a mechanism to create regions with
->suspend_property_changes() and add it to the playlist's
thawlist (pass a thawlist to the region-factory).
2021-04-30 03:40:32 +02:00
7a89d56009
Fix insert + ripple undo/redo
Playlist changes do not include region-property changes.
When inserting a region, position(s) of other Regions may
change and those changes have to be recorded explicitly (for now).

see also RegionRippleDrag.
2021-04-29 22:56:09 +02:00
2c64736604
Fix crash when consolidating range with automation
The undo command needs to be started before calling
playlist->add_region() because that may move automation
or include ripple changes. see the following backtrace:

```
UndoTransaction::add_command
ARDOUR::DiskReader::move_processor_automation
ARDOUR::Route::foreach_processor
ARDOUR::DiskReader::playlist_ranges_moved
ARDOUR::Playlist::flush_notifications
ARDOUR::Playlist::RegionWriteLock::~RegionWriteLock
ARDOUR::Playlist::add_region
Editor::bounce_range_selection
```

Except. it seems automation is moved incorrectly in this case..
2021-04-29 21:17:22 +02:00
5014b20c5f
Inform user if there have been dropouts during export 2021-04-29 17:50:46 +02:00