13
0
Commit Graph

14233 Commits

Author SHA1 Message Date
297760885c add UI option to control region cue mark visibility 2021-05-14 18:37:50 -06:00
56857302f4 add cue markers to RegionViews 2021-05-14 18:37:50 -06:00
2b7ae1a79f
Use sub-menus for > 32 processor automation parameters 2021-05-14 16:47:46 +02:00
Edgar Aichinger
ffcf90eacb update german translation 2021-05-13 11:02:23 -06:00
084d7e221b centralize naming of a couple of context menus 2021-05-13 10:29:19 -06:00
fe5c56ecca remove pointless line of code
If _size_menu was non-null, we just return it. Ergo, it was already null when we reached
this line, which makes calling delete on it completely pointless
2021-05-13 10:29:19 -06:00
798b968610 do not test for gobj() being null when deciding if _size_menu exists
This test was added because of confusion about when/where dynamically constructed menus
were constructed and deleted. This should be consistent now, and this additional check
(on top of _size_menu itself being null) should be unnecessary
2021-05-13 10:29:19 -06:00
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
2e7b193988
Support MacVST2 plugins with multiple child views (e.g. UAD) 2021-04-28 00:57:41 +02:00
b6c75ef42a
Fix Mac Plugin re/sizing
Some plugin UIs, particularly those that cannot be resized
unset `autoresizesSubviews`. Since the plugin-view is re-parented,
the host has to directly set the view's size.

However some plugins have multiple child views, apparently
for off-screen pixmaps (e.g. UAD plugins). Those additional
should not be resized (or re-stacked).

e.g.

Reason-Rack
  view 0x7fe27e44e570 @ 0, 33 834 x 804
    view 0x7fe288aa3770 @ 278, 268 278 x 268

UAD Tube-tech
  view 0x7fe270a9cbf0 @ 0, 33 1160 x 374
    view 0x7fe28883d030 @ 0, 0 1160 x 374
    view 0x7fe2888546e0 @ 0, 0 1160 x 24


see also aef366c156
https://discourse.ardour.org/t/uad-plugin-will-not-load-shows-as-expired-when-its-not/105756/5?u=x42
2021-04-27 23:50:59 +02:00
d627e00ff6
NO-OP: whitespace 2021-04-27 23:40:45 +02:00
fc9a4754bc allow <PRIMARY>-w to close the preferences window, just other dialogs
Preferences is a tabbable, a leftover artifact of when it was, in fact, intended to be a tabbable. Rather than
re-engineer this right now, add a key event handler so that Primary-w works for this just like other dialogs
2021-04-26 10:50:30 -06:00
cce41ee15b no need for 2nd argument in OptionEditorContainer constructor call 2021-04-26 10:49:23 -06:00
3f1e4ceaaa remove unused argument to OptionEditorContainer constructor 2021-04-26 10:48:53 -06:00
54c135c8b9 fix "trim to loop" region edit operation so that it applies to any region that intersects the loop, not just those spanning it 2021-04-25 09:42:06 -06:00
4abfcca8b6 rewind/ffwd from GUI needs to start transport, not just set speed 2021-04-23 11:02:54 -06:00
4c1a82a153 fix URL for VST3 plugin locations specs (#8659) 2021-04-21 18:00:41 -06:00
eeadf5087d
Shuttle wheel context-menu: max speed only applies to percentage 2021-04-20 14:26:30 +02:00
80405e41b0
Fix shuttle wheel unit granularity
When switching to Semitones, round speed to nearest semitone.

This fixes an issue when rolling forward at < 25% which is
less that -24st and then scrolling right (increase pitch).
The result may still be < -24st and playback reverses.

When changing max-speed, directly constrain speed.
2021-04-20 14:14:45 +02:00
2c8746eda9
Fix shuttle wheel semi-tone mode
Previously it was not possible to return from reverse playback
since left-scroll decreased pitch, even during reverse playback.

This also fixes an edge-case when quickly scrolling through
zero. use_shuttle_fract() ignores rapid events, map_transport_state()
can round speed to zero and next scroll-event set the default +1st
speed (really should have been 0st).This is solved by starting at
-24st, similar to how percentage does not start at 100%.
2021-04-20 13:53:35 +02:00
81c08b6efb restore sprung shuttle behavior (mistakenly altered in a recent commit 2021-04-19 16:14:08 -06:00
48e5607f7c use Session::request_roll() instead of request_transport_speed (1.0, ...) 2021-04-19 16:14:08 -06:00
52b7e68102 use new Session transport API calls in GUI 2021-04-19 16:14:08 -06:00
0bccc4bffd fix mispelling of actual in shuttle control code 2021-04-19 16:14:08 -06:00
1d97220cff use Session::request_transport_roll() in main GUI call site 2021-04-19 16:13:38 -06:00
7cbecaedff improve GUI behavior of the tempo dialog by preselecting the start bpm text field
most common user action will be: show dialog, type keys, press return. This works now.
2021-04-19 16:13:38 -06:00
905ea49f05
Prevent libXML read error in case file does not exist 2021-04-19 04:55:17 +02:00
dd060b04dc
RecorderUI: Fix monitoring when hot-plugging devices
When there are no input ports at the time the engine starts
running, MonitorInputChanged signal was not subscribed to.
This breaks AFL solo. This happens e.g. when re-starting the
engine with ALSA slave devices.
2021-04-18 19:03:35 +02:00
271860f630
Consistent port-matrix channel name display
Previously the columns always displayed port-names unconditionally,
while rows only showed them if there was one more port per bundle.
2021-04-17 00:27:38 +02:00
209536a967
Option to hide "-none-" from instrument dropdown
This is useful for the audition instrument selector.
2021-04-16 22:25:41 +02:00
32acfbd52c
Fix blurry text in connection manager
Text that that is not on extract pixels will be anti-aliased
leading to blurry rendering.
2021-04-16 21:42:49 +02:00
4abde9972d
Yet another fix for asymetric I/O latencies 2021-04-15 03:44:33 +02:00
37243ce61b
Further tweaks for UTF8 font-issues on Windows 2021-04-13 23:38:54 +02:00
03f63d4463
Fix BPM button text display on Windows 2021-04-13 19:46:47 +02:00
fc4e42662d
UTF8 compatibility with default windows font 2021-04-13 19:46:20 +02:00
ec64112fb9
Fix another C++11ism 2021-04-13 06:16:01 +02:00
f8c4b70b8e
Overhaul LAN dialog
* Add Loudness Graph
* Consolidate loudness settings
* Update Layout, always show conformity analysis
2021-04-13 00:10:41 +02:00
39334279b5
LAN for ranges 2021-04-13 00:10:38 +02:00
b52c6b5c47
Include confomity analysis in export-report 2021-04-12 23:16:17 +02:00
735a8f7175
Unify loudness settings, prepare for custom user config 2021-04-12 23:16:11 +02:00
4324efa7f0
Always show short/momentary loudness in report 2021-04-12 23:15:31 +02:00
2eaf19a10b
Tweak loudness graph
* plot short on top of momentary data
* limit range to 65dB
2021-04-12 23:15:31 +02:00
d3d4a8664f
Plot export-limiter redux on analysis-report 2021-04-12 23:15:31 +02:00
68326f5017
Export: GUI option to disable limiter 2021-04-12 23:15:30 +02:00
08b169f17b
NO-OP: clang-indent 2021-04-12 23:15:30 +02:00
Edgar Aichinger
5d12aa15f5
update german translation 2021-04-11 17:44:17 +02:00
ced5918e22
Fix path to ctrl-surface map path when running from src-tree
This bug was introduced in 54c4d3adc5
2021-04-11 16:07:02 +02:00
4cbf642bfd
Add missing header guards 2021-04-11 15:15:04 +02:00
b095cb8e75
Prepare for 6.7 2021-04-07 01:50:34 +02:00
15c2077cdf
Include loudness plot on export-report 2021-04-07 01:50:30 +02:00
3bc4dcf36f
Add method to plot loudness analysis graph 2021-04-07 01:48:01 +02:00
babf319cea
NO-OP: separate export-report image rendering 2021-04-07 01:47:00 +02:00
1890cc234f
Tweak export-report time-axis labels 2021-04-05 03:32:48 +02:00
2ed8fd2723
Pixel-pushing: vertically align special busses
The mixer's track area has a border with shadow (again).
This breaks vertical alignment with monitor-section,
master, foldback busses.
2021-04-03 22:27:05 +02:00
4c228c2eab
Remove cruft 2021-04-03 14:56:15 +02:00
c48c09c080 Recover waveform-gradient-depth slider for ardour, and timeline-item-gradient-depth for mixbus
These items were likely a casualty of a merge when re-laying out the preferences panel
2021-03-30 17:04:13 -05:00
b7c030b347
Indicate ambiguous latency, capture alignment issues
Previously this was only displayed when the latency
toolbar widget was added (off by default).
2021-03-30 21:19:55 +02:00
98c55abdfe
Foldback: fix removing last fb bus
This also reverts a RouteUI change to handle set_route(NULL)
from ce28065421.

The RouteUI already calls self_delete() when DropReferences
is emitted.
2021-03-30 01:48:46 +02:00
1bffdfc334
Open add-route dialog on double-click or context-click 2021-03-28 20:39:34 +02:00
e4f59d9a4d
Foldback: update button sensitivity when sends or fb's change 2021-03-28 20:11:34 +02:00
8fbde5860d
Make group tabs insensitive when spilling sends
* Mixer layout does not change when spilling sends
* Tabs don't automatically show after spill_nothing()
  even if `show-group-tabs` is off
2021-03-28 17:46:01 +02:00
88ed770bce
Implement group-tab sensitivity 2021-03-28 17:43:17 +02:00
bfc72ac379
Fix 32bit builds (missing size_t string convert)
../libs/pbd/pbd/string_convert.h: In function 'std::string PBD::to_string(T) [with T = long unsigned int]':
../gtk2_ardour/foldback_strip.cc:581:   instantiated from here
../libs/pbd/pbd/string_convert.h:238: error: 'long unsigned int' is not a class, struc
2021-03-28 05:45:20 +02:00
09d9938ecd
Remove duplicate symbol ColumnInfo from global namespace #8637 2021-03-28 04:31:11 +02:00
9c4a8ba528
Foldback: GUI consistency
* Insensitive route-ops menu when track disabled
* Re-order route-ops to match mixer-strip
* Add number Label to foldbacks
* Set spacing for consistent look/feel
2021-03-27 23:14:19 +01:00
8402dd4888
Spill only direct feeds
When using chained sends, only show the direct parent:
    track A -> bus 1 -> bus 2
Showing sends feeding "bus 2", previously also displayed
"track A". However only "bus 1"' mixer-strip changed to show
the send controls.

We should not propagate displayed deliveries upstream, since
there may be ambiguities. There could be an additional send:
     track A -> bus 2
2021-03-27 21:30:56 +01:00
bf8f0efbf9
Foldback: Cont'd tweaks and fixes
* Follow track order changes
* Show send context menu on right-click
* use "route_connections" for route signals
2021-03-27 19:33:46 +01:00
294b550584
Trap click signals of inline-controls
RouteUI::show_sends_press() is re-used used to show
the send context menu. However other button actions
need to be ignored.
2021-03-27 18:47:01 +01:00
c91080e950
NO-OP: cosmetic changes
* Prefix private member variable with underscores.
* use C-style comment blocks
* Inline single-use method
2021-03-27 18:31:10 +01:00
602135ad66
Foldback: Remove shadowed session-variable, RouteUI is-a SessionHandlePtr 2021-03-27 18:24:39 +01:00
5be04a4920
NO-OP: clang-format 2021-03-27 17:58:45 +01:00
ac5bca4a92
Clean up RouteUI header
* Consolidate access modifiers
* Remove all public member variables
* Only expose required functions, use private
  whenever possible
* Rename private members, prefix underscore
* Remove cruft
2021-03-27 17:44:34 +01:00
003be3d87e
Localize private variable (only used by RouteUI) 2021-03-27 16:25:30 +01:00
24499fa7da
Foldback: use RouteUI send-spill functions
This resolves ambiguities of overloaded non-virtual methods
that used shared protected variables (send_blink_connection).

It fixes "show sends" of foldback busses (spilling the send
controls) and allows for showing showing other sends directly
without first disabling it.

This fixes some related issues with inheritance and
signal propagation.
2021-03-27 15:52:14 +01:00
212b08b422
Foldback: remove unused processor actions
Also since foldback-busses are not selectable AxisViews,
various keyboard-shortcut operations cannot be performed
from the mixer-context. However the processox-box itself
provides these actions for the fold-back bus.
2021-03-26 23:52:12 +01:00
a94c0d62a6
Foldback: Con't work to remove unused mixer-strip code 2021-03-26 23:49:36 +01:00
0edb6083f1
Foldback strip: remove cruft
Remove unused code that was copy/pasted from mixer_strip.cc
which is not needed for foldback strips. Notably alternative
delivery display mode (aux-sends).
2021-03-26 16:39:40 +01:00
cf7aad8a8a
Fix typo in previous commit 2021-03-26 15:04:21 +01:00
ada1b9bce5
Show shaded plus icon on scroller-base background (rec, mixer) 2021-03-26 14:36:50 +01:00
04a40140dc
Remove "add route" button from recorder and mixer
This GTK button style is out of place in both contexts.
Furthermore it is inconsistent to not have the same button
in the editor (there is a dropzone).
2021-03-26 14:35:17 +01:00
05f6550e2c
Foldback: NO-OP clang-format 2021-03-26 02:48:04 +01:00
01bc039f9b
Foldback: use IObutton
This follows 3e7b2bb3f5, common shared implementation
of IOButtons. This also uses RouteUI provided IOSelectorWindows.
2021-03-26 02:33:56 +01:00
b12cad80bc
Foldback: consistent mouse handling part 1
* un-hardcode button numbers, use portable modifier API
* allow to toggle Send bypass with middle-click
* add support for delete-operator
* Only act on single-click press
2021-03-26 02:17:09 +01:00
ce28065421
Foldback: refactor spill logic
Prefer to reuse spill logic from the mixer-ui.
This allows to spill routes directly after spilling
foldbacks. Previously that resulted in FB "show sends"
to keep flashing even then no foldbacks were spilled anymore.

It also simplifies various aspects of foldback prev/next
logic.
2021-03-25 21:38:10 +01:00
fe99dd4ec2
Fix solo button handler (amend aab296be48)
Exclusive solo is possible for both listen and in-place.
2021-03-25 14:47:24 +01:00
c3fb344f44
Foldback: spill follows selection 2021-03-25 14:39:46 +01:00
ff1083128b
Include Tracks and Busses in connection dropdown #8636 2021-03-25 01:54:48 +01:00
812dc2ec28 fix arguments for fmt-bindings now that argument formats have changed slightly 2021-03-24 16:42:33 -06:00
af0413b400 fix some errors in the keybindings template/input file 2021-03-24 16:33:31 -06:00
830f76bdce
Change Solo button tooltip when using A/PFL 2021-03-24 18:16:43 +01:00
aacfc0704d
Add A/PFL button to foldback strip 2021-03-24 17:48:22 +01:00
aab296be48
Exclusive P/AFL is possible since f2d2ea4baa 2021-03-24 17:04:44 +01:00
cooltehno
49301785d6
Update cubasish-ardour.colors 2021-03-23 23:25:00 +01:00
cooltehno
4ec0f0b7ea
Update recbox-ardour.colors 2021-03-23 23:24:05 +01:00
cooltehno
305bfb02e6
Update clear_gray-ardour.colors 2021-03-23 23:22:32 +01:00
41c52882af
Fix region-peak display for trimmed regions 2021-03-23 20:37:57 +01:00
46d9a8d819
Increase contrast of insensitive faders (automation play) 2021-03-22 21:54:25 +01:00
59b3b02dea
Indicate gain-entry focus/selection
The mixer gain-entry selects all when the entry is focused
(see ArdourWidgets::FocusEntry). Due to the selection there is
no visible cursor, and it was not obvious that the entry
has focus. Also moving the mouse outside of the strip drops focus
without any indication.
2021-03-22 21:24:33 +01:00
8b4edaa950
gcc-11 compat, volatile atomic variables (2/2)
GUI part of previous commit.
2021-03-22 15:30:16 +01:00
bf64852fc2
Remove volatile/atomic re-display flags in GUI thread
Atomic operations are not needed here, since the GUI
is single threaded.
2021-03-22 13:45:29 +01:00
8fcbe789b4
Ignore pinout when copy/pasting plugins using Ctrl+c/v
This can lead to invalid configuration and crashes in
case plugin-replication changes.

see also 9ab84a95f1
2021-03-22 04:10:03 +01:00
86a594fe90
Mitigate batch gain-changes #8576
This combines SessionEvent per playlist. Now per change
there are "only" two SessionEvent::Overwrite events
queued per playlist in the GUI thread for later processing
the Butler.

These are triggered by Playlist::ContentsChanged()
and Playlist::LayeringChanged(), both of which trigger
DiskIOProcessor::playlist_modified.

(Previously there used to be two per region)
2021-03-22 02:14:30 +01:00
d13eb84fa3
Fix BPM button overflow
"T: " prefix isn't very useful. in music-notation the note
symbol is established: ♩ = <bpm> or ♪ = <bpm>.

This fixes an issue on Windows, where those note symbols are
not available in the default unicode font. There "1/4" is used
which adds two extra monospace chars leading to cropped text.
2021-03-20 19:07:31 +01:00
745b194241
Get sample-rate from session-archive
This correctly sets the engine sample-rate when opening
a session-archive.
2021-03-19 22:52:27 +01:00
2111c3531f Return (Enter) should behave the same in all windows 2021-03-19 16:00:30 -05:00
5a4ef850ce better fix for same issue as 985eb93674
Copy region selection so that when it is invalidated, iteration doesn't break
2021-03-18 13:17:02 -06:00
985eb93674 avoid possible iterator corruption in MIDI region selection handling 2021-03-18 12:50:06 -06:00
3bda6020b9
Remove excess parentheses 2021-03-18 04:09:04 +01:00
d4c3e43b03
Address another -Wunused-private-field
TrackSelection is just a different name for TrackViewList
the private _editor is no longer needed nor used.
2021-03-18 04:06:46 +01:00
Olivier Humbert
df260ccea9
Update fr.po 2021-03-17 23:16:19 +01:00
Olivier Humbert
d3cfbbabd1
Update fr.po 2021-03-17 23:15:33 +01:00
fddecc11ec
Remove unrelated enum cases (-Wenum-compare-switch) 2021-03-17 17:44:11 +01:00
4abe3ade28 do not commit reversible commands when clearing locations if nothing was changed 2021-03-16 17:40:25 -06:00
bcb3e75cec GUI to remove xrun markers 2021-03-16 16:49:49 -06:00
dfa9f92e53
Fix tab-button state and cycling through tabs
The initial calls in `we_have_dependents()` was redundantly setting
all widows to "Hidden", before the actual state was known.

tabbable_state_change() is initially called for all Tabs:
ARDOUR_UI::setup_windows -> add_to_notebook() -> attach(),
or for detached windows Tabbable::set_state() -> hide_tab().

Step_up/down_through_tabs used window visibility to determine
candidates. This incorrectly considered detached visible tabs.
Detached windows cannot be cycled to.

This also addressed an issue where tab-buttons state was
incorrectly unset what unrelated tab state changed.
ImplicitActive of the currently active tab is now retained
when some other window is attached/detached.
2021-03-16 00:36:22 +01:00
6627d28983
Fix typo in comment 2021-03-15 22:12:31 +01:00
1d106c88ca
NO-OP: comment for later 2021-03-15 20:58:43 +01:00
e267c1e129
Also show route owned controls on touch
This add support for special-cased automation controls
(Fader, Trim, Panner, Mute) and spills their automation-lane
on touch.

It also features a small internal API update directly mapping
CheckMenuItem. See also bd8c26a059
2021-03-15 20:58:42 +01:00
c9241a5e71
Fix label, remove underscores (amend e81794d87) 2021-03-13 18:36:35 +01:00
77d88233a5
Update path label after rename or save-as 2021-03-13 16:53:09 +01:00
93121e8aa3
Revert "Show error when session-archive loading fails"
This reverts commit 48225c10bd.

We need to allow this to fail and fall-through to test normal sessions.
2021-03-11 19:37:10 +01:00
9ee2a46b7a
Allow re-try when session-parameters mismatch
Previously Ardour kept running but no interaction was possible
since the session-dialog was hidden.
2021-03-11 19:20:29 +01:00
48225c10bd
Show error when session-archive loading fails 2021-03-11 18:25:22 +01:00
9f3fba6988
VST3: Prevent recursive endless resizing
Skip call to onSize() when the plugin's size already matches.

https://github.com/Ardour/ardour/pull/599
https://github.com/juce-framework/JUCE/pull/867
https://discourse.ardour.org/t/sonobus-vst3-gui-hogs-cpu-only-when-ran-inside-ardour-on-linux-but-not-windows/105573
2021-03-11 18:19:21 +01:00
e07b3104bb
Expose VST Micro Edit display option. 2021-03-10 17:57:42 +01:00
33de08e9e7
Do not commit empty split undo transactions
When no region(s) are selected and none are under the edit-point,
only a selection change was committed as undo action.
2021-03-10 14:20:24 +01:00
bdc1cdc15f
Fix crash when separating ranges with automation
playlist->partition() calls DiskReader::playlist_ranges_moved()
which may add Panner and Fader automation state changes.

The reversible command has to be started before calling
playlist->partition(). Simply collecting playlist->rdiff() after
the fact is not sufficient.
2021-03-10 13:55:32 +01:00
1ef4fc1140
Show splash-screen content
Since switching to StartupFSM, the GUIIdle signal isn't available
connected at application start. The splash-screen was blank until
the main UI was up.
"Ardour is ready for use" was the only visible message.
2021-03-09 18:29:00 +01:00
bdd362ee24 Apply a name to eventboxen in the menu bar, so the theme can be applied 2021-03-08 18:37:54 -06:00
cb6ad45e9d
Fix crash when CatchDeletion signal from self_delete arrives late
This is rather an unusual edge-case, seen on macOS when the UI
never continues past the first idle stage.
2021-03-08 17:15:03 +01:00
e236c2ab0f
s/Plugin Manager/Plugin Selector/
The GUI allows to select and add plugins.
Managing plugins will be something different.
2021-03-04 22:09:17 +01:00
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
e3c3109618
Unsubscribe from signals when clearing references
This fixes crashes with plugins calling setDirty() when the
UI is closed. `plugin` has already been reset before
the actual window is closed:

`PluginUIWindow::~PluginUIWindow()` runs, and destroys the window,
here `~VST3NSViewPluginUI ()`. This closes the VST3 view, which
triggers a `VST3PI::setDirty`.
At this point in time `~PlugUIBase()` has not yet run, so all
signals are still connected.

setDirty() ends up calling PlugUIBase::update_preset_modified()
which access `plugin` pointer, which is NULL.
2021-03-01 22:11:15 +01:00
0d838355c3
RecorderUI: handle meter lineup level config changes 2021-02-28 20:57:22 +01:00
f8c75914c4
RecorderUI: handle meter-theme changes 2021-02-28 20:03:12 +01:00
b553b67407
Fix curl free() ambiguity - fixes windows issues
curl_free() is to be used for data allocated by
curl_easy_escape() or curl_easy_unescape() in libcurl.

This is unrelated to realloc/free in WriteMemoryCallback().
2021-02-28 15:17:30 +01:00
f8ba27f417
Work around crash #8586
MidiRegionView::select_notes() may call MRV::add_to_selection
which may call editor().get_selection().clear ();
This in turn clears the pending_midi_note_selection, invalidating
iterator.

This bug was introduced in 7cf435a876 (6.5.148)
2021-02-28 14:58:18 +01:00
0f63cba3c7
Fix audition-tool
* Don't set default speed when using audition
* Use actual engine speed, since v6
  Session::transport_speed is {-1, 0, 1}
2021-02-27 23:12:15 +01:00
51cba19eaf
Fix big clock window record-state info
When showing the clock window after starting to record,
the record-state was not correctly indicated.
2021-02-27 19:25:45 +01:00
003245654a
Allow auto-start if there is no backend information for the session 2021-02-27 16:41:09 +01:00
835f30e5f5
Consistency: replace "x-run" with "xrun" (2/2) 2021-02-26 22:22:57 +01:00
355528781d
Fix Bundle Editor: show connected ports
PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`

That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`

However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
2021-02-26 19:14:57 +01:00
4716f34c28
UserBundle: Allow adding/removing ports
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()

UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().

While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.

This further prevents removing the last port, preventing empty bundles.
2021-02-26 15:49:07 +01:00
017b272864
Update I/O Button when bundles change
This fixes an issue with the connection button still showing
the name of a Bundle even after deleting it, or displaying an
old name after renaming a bundle.
2021-02-26 15:49:04 +01:00
Cameron
c075d3a026
prevent registering multiple identical file descriptors
fix indentation

fix more indentation
2021-02-26 15:47:40 +01:00
John Emmas
74670d2789 Derive some functions from RecInfoBox::update() (in the derived classes)
For whatever reason, MSVC doesn't like us connecting so many signals to 'RecInfoBox::update()' (crashes the Debug build)
2021-02-26 13:07:35 +00:00
739ee688bf
Fix Bundle I/O direction
With bundles `ports_are_inputs()` indicates inputs that Ardour
can write to (data sinks, for playback).

BundleEditor::input_or_output_changed () set this correctly.
2021-02-26 13:44:04 +01:00
61b29c5810
Fix track-record-axis cleanup, duplicate self delete
Also hide/delete IOSelector dialogues early on when closing
the session.
2021-02-26 03:08:35 +01:00
ad9e44e92a
RecorderUI: consistent rec-arm button size
The rec-arm circle diameter is given by 0.5 * min (width, height).
For mono tracks the diameter is limited with the height of the
track. When more channel meters are visible the height increases and
the rec-arm circle grows.

The solution here is to constrain the rec-arm button width to its
minimum and not grow to have the same width as other buttons.

This also changes the default meter-height so mono and stereo tracks
have the same height (with default scaling).
2021-02-26 00:02:50 +01:00
a7ce58b995
Fix rec-ruler time display
The calculation to round the distance to seconds has to be performed
using floating point maths, not just the result being cast to double.
The time-granularity must not be zero.
2021-02-25 17:59:53 +01:00
John Emmas
53b90dc0dc Add a cast when using 'ceil' (to keep MSVC happy) 2021-02-25 16:46:19 +00:00