13
0
Commit Graph

13395 Commits

Author SHA1 Message Date
a2f7abc70b
Continue to load session after MIDI latency calibration
This amends e6febe040a
2020-04-10 01:43:11 +02:00
e6febe040a
Continue to load session after latency calibration #7998 2020-04-09 23:31:45 +02:00
ca022f6bb7 show transport master ports in their own "Sync" bundle in the global port matrices 2020-04-09 14:01:47 -06:00
980a38a988 still show port names in bundles with only a single port a given type
The bundle name is typically insufficient to identify the port
2020-04-09 14:01:47 -06:00
7434478a35
Update Waveform display when channel-count changes 2020-04-08 17:40:32 +02:00
f7abab11a3
Add preference to reset x-run counter on rec-start #6706 2020-04-07 23:52:16 +02:00
1eb98316a3
Rename KeyboardLayout to PianoKeyBindings
This is to prevent polluting the global namespace with a
symbol name that is likely to cause conflicts.
2020-04-07 18:40:04 +02:00
d4d57c844f
Styleguide #12 avoid get_ for accessors 2020-04-07 18:30:34 +02:00
Nil Geisweiller
7ffaae77a7
Rename KeyboardLayout::set_keyboard_layout to set_layout
Since the class indicates that it is a keyboard layout, no need to over
load the name with it.
2020-04-07 18:26:45 +02:00
Nil Geisweiller
104d37e5a2
Move keyboard layout in its own class 2020-04-07 18:26:45 +02:00
3cd2ad85af
Fix restoring custom MIDNAM #7984 2020-04-07 14:16:53 +02:00
eeb62c99fb
Fix typo in API name (2/2) 2020-04-07 04:07:34 +02:00
2991d74da5
GUI: follow LatencyUpdated signal handler, prevent duplicate updates 2020-04-07 00:14:09 +02:00
21b2ffbae6
Indicate ambiguous latency in the GUI 2020-04-07 00:09:38 +02:00
fbc48bdf34
Fix end vs. length bug when creating regions - #7978
set_length() includes the end.
A Region starting at 0 and ending at 0, has a length of 1
(think counting fence-posts, or video-frames).
2020-04-05 20:24:11 +02:00
14a2a50e93
Simplify snap-to magnetic distance calc 2020-04-05 20:24:11 +02:00
6b9bdbf0ff
NO-OP: cleanup snap-to code, mostly whitespace 2020-04-05 20:24:11 +02:00
Johannes Mueller
605b3d83a8 Fix #7971: Adjust paths of template archive entries exported on MacOS
... on Ardour5.

On MacOS g_dir_make_tmp() does not return the canonical path. Thus, exported
template archives end up with wrong entry paths. This has been fixed by
e52bdc55ad for exporting templates. However, template archives that have been
exported on Ardour5 are not affected by the fix. Therefor we need a workaround
for the case we are importing legacy template archives from Ardour5.
2020-04-05 16:34:48 +02:00
419af82645
Revert "replace use of gdk_pixmap_unref() with g_object_unref"
This reverts commit fdf0db02a0.

Even though `gdk_pixmap_unref` is deprecated, it is the correct way
to free `gdk_pixmap_new` objects.
This fixes a memory leak and glib warning:
GLib-GObject-CRITICAL **: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

PS. Eventually this pixmap should be replaced by a cairo surface.
2020-04-05 00:59:54 +02:00
e52bdc55ad Fix template export on MacOS
By default Apple uses a private TMP folder.

g_dir_make_tmp() returns `/var/folders/...` while the real
absolute path is `/private/var/folders/...`.
This caused a problem when the tmp-prefix is chopped off when building
the archive.
2020-04-05 00:10:41 +02:00
bb925ea151 Editor-mixer-strip: fix intermittent crash if we try to set up gui before set_route() is called (amends d2032d) 2020-04-04 12:03:45 -05:00
d2032df2e5 Fix for Editor-mixer-strip: polarity buttons were not updating with route selection changes. 2020-04-04 10:54:33 -05:00
0ecf1e40ea add Editor-level action to toggle track layer display 2020-04-03 18:54:51 -06:00
c2b026831c yes, RouteTimeAxisView::set_layer_display() really never applies to the selection 2020-04-03 18:54:51 -06:00
743fbaf7bf change implementation of layer display menu items and handlers
The menu items no longer ever apply to the selection, because there will be an Editor-level
action to change things "globally"
2020-04-03 18:54:51 -06:00
d1e55ff5b7 add RouteTimeAxis::toggle_layer_display() 2020-04-03 18:54:51 -06:00
1c53e73599 add two new ptr-to-menu-item, and remove an unused one, for RouteTimeAxis 2020-04-03 18:54:51 -06:00
ac6bd95e3a move automation menu to under View in main menu 2020-04-03 18:54:51 -06:00
a6d1890168
NO-OP: whitespace 2020-04-04 01:48:31 +02:00
4e005540c6
Update PatchChange when instrument/midnam changes 2020-04-04 01:48:30 +02:00
096d23fcc2 change text describing relayout after UI scaling change 2020-04-03 14:31:51 -06:00
8a1f1a3005 remove border around ATAV controls table (looks better with new theme) 2020-04-03 14:25:32 -06:00
626d97b13a a better solution for automation axis name labels 2020-04-03 14:25:13 -06:00
be2322ef2b set size request for automation lane name label, to prevent it from changing tracker header width 2020-04-03 14:11:14 -06:00
f26dd1f13d add automation item to top level edit menu 2020-04-03 13:28:58 -06:00
9ca9aa8ae1 add new Editor method to toggle all existing automation
Applies to selected tracks if non-empty; all tracks otherwise
2020-04-03 13:28:58 -06:00
97d1ee9822 move templated foreach methods from TrackSelection into parent (TrackViewList)
This allows the same methods to be used on e.g. Editor::track_views
2020-04-03 13:28:58 -06:00
e954303fec move automation show/hide methods into public access
Note that they are still intended to be called via a specific mechanism from Editor, not
directly.

Also remove unnecessary duplicate virtual decls
2020-04-03 13:28:58 -06:00
71ab4614f8
Fix fan-out port connection race-condition
This directly creates tracks without auto-connect.
2020-04-03 15:37:49 +02:00
11f28a4b1d
NO-OP: cleanup and remove debug messages 2020-04-03 14:49:03 +02:00
714e2f1736
Optimize MTAV creation, speed up new MIDI track
This removes various duplicate code-paths leading to midi-model
updates, and expensive context-menu rebuilds. This significantly
speeds up MIDI track creation.
2020-04-03 03:42:56 +02:00
14f15ca1e9
Move RouteUI::fan_out to Mixer_UI
The previous version had various issues, in particular
when creating Tracks with an instrument, the RouteUI was not
available when the signal was emitted (likely caused by recent
ee-work of Audio+MIDI and Tape track removal).

However as side-effect fanned-out tracks/busses may now
be ordered before the new instrument route.

This also fixes an edge case of multiple fan-out in case
there is more than one RouteUI instance (mixer, editor-mixer,
meter-bridge).
2020-04-02 20:27:51 +02:00
652f62f20a
Remove signal in preparation to rework fan-out 2020-04-02 20:27:48 +02:00
849bce6e4d
Add LTC output port preference #7932 2020-04-02 16:46:05 +02:00
Johannes Mueller
41fa647b69 Template descriptions no longer dirty when saved or changes discarded 2020-04-02 14:37:12 +02:00
Johannes Mueller
64cb0a6e4b Let the user also choose template archives from Ardour 5.x 2020-04-02 14:37:12 +02:00
42af08fb92
Consolidate MIDNAM control display code 2020-04-01 23:26:13 +02:00
a6c9c04fd6
Hide snap cursor when not using mouse edit #7966 2020-04-01 22:55:06 +02:00
75adc33629
Remove unused variable 2020-04-01 22:55:06 +02:00
38caf9ddd3 NOOP: whitespace 2020-04-01 10:10:50 -06:00
d9d9740f1c do not show xrun markers in the "Ranges & Marks" editor list 2020-04-01 10:10:50 -06:00
98884e9736 rename variable (frames -> samples) 2020-04-01 10:10:50 -06:00
8d28115ec7
Update MIDNAM handling in GUI
* Always use InstrumentInfo for lookups.
  Remove name lookups that directly used gui_property()
* Use set/get_gui_property() only to save/restore state,
  push custom selection to InstrumentInfo.
* Only store custom selection, use unset for "default"
  default = plugin-provided (if available) otherwise general-midi
2020-04-01 16:33:40 +02:00
370f7bb30f
Propagate MIDNAM selection to Route
Most of Ardour's GUI queries route->instrument_info() for MIDNAM.
This is a minimal invasive hotfix to update the PatchChange
dialog and patch-names on the timeline when the MIDNAM selection
changes.

This got lost in de74cca6b8.
2020-04-01 00:53:27 +02:00
1aae553dae
Fix source list selection
Retain selection when showing context-menu.
2020-03-31 21:00:45 +02:00
Johannes Mueller
5774be46fe Remember the route count when route lua template sets it by "how_many"
If the user has an audio interface with 32 inputs, there is the danger, that
they click through the route template list and hit "Generic Audio Track" which
then sets the number of routes to be added to 32. When they click back to
e.g. "Audio Tracks" this number remains at 32. So they will accidentally add 32
audio tracks although they wanted just one. Somewhat inconvenient.

By this commit we remember the number of routes to be added, when it is set by
a lua template and thus can set it back when the user clicks back on a route
type that does not set it.
2020-03-31 09:01:59 +02:00
bd92e290c0
Fix send-button layout (2 column table)
Amend c765079b2f, remove Mixbus special-case for Ardour
2020-03-31 01:37:38 +02:00
8fced29372
Visibility fixes for detached editor and Show-Sends buttons
Detaching the editor would cause the inactive_name labels and
to mixer-strip elements to appear (due to show_all).
2020-03-31 01:37:38 +02:00
eb6d718305
Hide Aux-send button in editor-mixer 2020-03-31 01:37:38 +02:00
b7e30cfc24 remove debug output 2020-03-30 17:37:10 -06:00
04635896d4 add braces as per coding guide 2020-03-30 17:25:07 -06:00
6fec78221f use const ref to UIConfiguration::instance() to shorten lines a bit 2020-03-30 17:25:07 -06:00
ff08fbb969 when build the region boundary cache, use the "end" of a region, not its "last sample"
It makes no sense to every align a region start/sync point during a drag or alignment operation
with the last sample of another region. It only makes sense to align with the position immediately
after the last sample of the other region (e.g. directly sequencing regions).
2020-03-30 17:25:07 -06:00
070d8f5ee1
Fix SesionhandlRef when rebuilding peak-files
Since rebuilding peaks does not call drop-references, the WaveView
is not explicitly released. and ArdourWaveView::WaveView
keeps a shared pointer reference to the AudioRegion.

This also fixes a memory leak, waves, tmp_waves store C++ pointers,
not shared pointers. Explicit delete is required
2020-03-30 21:19:43 +02:00
7701e5ecb9
Tweak wording: Rebuild (not reset) 2020-03-30 18:51:08 +02:00
4162f0f1ba
Fix snap if there are no locations - amend 4a036a2da 2020-03-30 18:16:09 +02:00
58bbf358e9
Follow backend API change 2020-03-30 18:00:21 +02:00
b6ca576832
Zero x-run counter after GUI completed loading a session
This re-introduces 4262d701eb in a different manner.
2020-03-30 17:43:16 +02:00
591c219349 don't mark session as unnamed if -N name given on command line 2020-03-29 20:28:08 -06:00
0cedb68882
Statusbar: fix double-click to reset x-run counter 2020-03-30 03:53:09 +02:00
232b21d289
Statusbar: tweak tooltips 2020-03-30 03:52:20 +02:00
9a505ec671
Statusbar: finishing touches (tooltips, engine-dialog) 2020-03-30 01:40:47 +02:00
b49764edf5
Statusbar: link session property dialog for format & timecode 2020-03-30 01:10:00 +02:00
65e34719bb
Statusbar: respond to mouse-clicks
* open session folder when path label is clicked
* reset x-runs only on x-run label
* allow to reset x-run count via shift+click and double-click
2020-03-30 00:37:49 +02:00
e43cc9c7bb
Statusbar: add session-path display 2020-03-30 00:14:25 +02:00
96b2b35963
Statusbar: increase spacing around the clock 2020-03-29 23:54:56 +02:00
325477803e
Statusbar: fix >24h disk-space label 2020-03-29 23:54:34 +02:00
7a98605748
Statusbar: do not highlight 100% DSP load when freewheeling 2020-03-29 21:05:23 +02:00
a49365ef1e
Statusbar: use white on red as fixed color error highlight 2020-03-29 21:04:21 +02:00
6f4d1f5e2e
Use light font for status-bar labels instead of italic 2020-03-29 21:02:26 +02:00
3c9a5c7ee5
Reorder "WallClock" visibility option to match L->R layout 2020-03-29 19:06:18 +02:00
9076cc60a4
Tweak status-bar layout & design
* remove color: increase contrast, do not use red/green
  foreground because it does no work with various themes
* do use red background to alert users
* use italics for labels heading
* increase spacing between elements
* use mono-space font with DSP load (fixed with) up to 99%
* Fix translations, use compose strings
2020-03-29 18:56:21 +02:00
2cb075bf49
StatusBar: move clock to the right 2020-03-29 18:56:21 +02:00
9d737964d6
Set thread-names (GUI) 2020-03-29 14:56:50 +02:00
9873e1d211
VKeybd: fix stuck keys when changing octaves - #7957
Using the mouse/dropdown to change octaves can lead to stuck
notes when keys are held. This is because the most recently
pressed key, sends key-repeat events.

Using Arrow keys to switch octaves does not cause this problem,
because the most recently pressed key will be an arrow key.

PS. Changing Chromatic Transpose while holding keys still
can lead to stuck notes. This will need a different fix.
2020-03-29 00:47:26 +01:00
7e0abc0dbf
Remove duplicate unit in ctrl-point dialog - #7472 2020-03-28 22:43:37 +01:00
Nil Geisweiller
4001ed7515 Initialize keyboard layout based on user preference
Otherwise the Simple QWERTY layout is loaded in the Virtual MIDI Keyboard
regardless of what is set in

Preferences->MIDI->Virtual Keyboard->Virtual Keyboard Layout
2020-03-28 20:36:39 +02:00
4a036a2daa Grid: explicitly check for empty marker list (fixes: grid fails if no start+end markers yet) 2020-03-28 08:10:36 -05:00
918eacdfa7 NOOP: remove newlines 2020-03-27 12:40:44 -06:00
ef3c4a17fc display MIDI qtr msgs in the MIDI tracer window 2020-03-27 12:37:44 -06:00
e219a6cd1e
Source-tree consistency (headless tools at top-level)
This move ardour-lua session tool to top-level, next to
headless/hardev.
2020-03-26 19:00:41 +01:00
nia
7e15496d5a NetBSD has /etc/login.conf too. 2020-03-26 09:39:44 -06:00
8a65c1fce2 remove visibility of "draggable playhead" option 2020-03-26 07:50:32 -06:00
d7500056fc stop transport clocks from jumping after the playhead is moved via a CursorDrag 2020-03-25 19:24:38 -06:00
6291433e27 set Editor::_pending_locate_request to true before sending locate request. 2020-03-25 18:39:59 -06:00
25c0bd9274 Prevent updates to the playhead when a locate is pending after a drag/click is used to move the playhead.
There are two problem cases:

  1) the drag "fake-located" the playhead, but a redraw happens before the locate itself finishes.
  2) the transport emits Session::PositionChanged from Session::non_realtime_stop(), even though
     this is occuring in the "middle" of the locate process (we stop first).

In the first case, the drag code sets _pending_locate_request, since we need this to be true even
before the queued SessionEvent for the locate has been processed. So to deal with this case

In the second case, we use Session::locate_initiated() to decide if we're in the middle of a locate.
2020-03-25 18:39:59 -06:00
51165aec0b remove some additional debug output 2020-03-25 16:14:25 -06:00
0622d69196 change text for a couple of UI config options 2020-03-25 16:10:27 -06:00
5d1b75bd4f likely fix for cases where a button release event falls through from the canvas to the editor, during a drag
The drag code expects coordinates in canvas coordinates, but we were not translating them at the editor level (canvas event handling
does do this, but cannot affect the situation if the event falls through to the editor)
2020-03-25 15:30:52 -06:00
4151ec1907 remove accumulated debug output 2020-03-25 15:12:30 -06:00
a0f2ae4833
Do not allow aux sends from the master-bus
This always leads to feedback situations. It may be acceptable
via the "allow feedback" option and accepting 1 cycle delay.
yet Aux-sends from the master bus are just bad practice,
and no found on any mixing desk.
2020-03-25 21:38:44 +01:00
53c666f1b8
Add restrictions for aux send cut/copy/paste & DnD
This prevents adding duplicate sends via copy/paste, or
creating invalid aux-send in the destination bus.
2020-03-25 21:38:44 +01:00
4a24cc5083
Fix Aux-Send names on copy/paste
Sends do not have any ports, so a unique name is not required.
Since 82541b33a4 custom aux names are kept when setting state.

Previously this "worked" because set_state() change the name
of the new aux-send to the name of the target-bus.
2020-03-25 21:38:44 +01:00
dbcd78cf71 more playhead-drag/click locate debugging 2020-03-25 13:18:58 -06:00
1b05ebbafa more playhead-drag/click locate debugging 2020-03-25 12:33:46 -06:00
77ab1a39b8 more playhead-drag/click locate debugging 2020-03-25 11:48:53 -06:00
becfad91c2 more playhead-drag/click locate debugging 2020-03-25 11:48:18 -06:00
f8b16e9e83 remove a few cerr outputs and change a couple to use cout, since they are not errors 2020-03-25 11:39:32 -06:00
04aebc920e more playhead-drag/click locate debugging 2020-03-25 11:23:45 -06:00
41ff788a76 more playhead-drag/click locate debugging 2020-03-25 11:03:18 -06:00
4b40243f2b fix two poorly-formed uses of Glib::DateTime 2020-03-25 10:45:00 -06:00
447a045828 do not parse debug options in a non-debug build 2020-03-25 10:34:16 -06:00
b3cbd8f44e if user chooses not to delete a scratch session, removed the file that identifies it as unnamed (GUI) 2020-03-25 10:25:00 -06:00
ec345037b0
Suppress debug output in optimized builds 2020-03-25 16:43:24 +01:00
89904468b3
Fix generic UI crash when plugin has ctrl outputs -- #7937
build_control_ui() special cases `AutomationControl mcontrol = NULL`
to create read-only output display. So Iterating over
Evoral::Control that are not AutomationControl must not crash.

This fixes a bug introduced in a44fecb740.
"Edit with generic controls" caused crashes for plugins with ctrl outs.
2020-03-25 16:36:54 +01:00
807915b40c remove debug output 2020-03-24 21:15:57 -06:00
900bab7271 basic pass at deleting scratch sessions 2020-03-24 21:15:32 -06:00
4d9017a1fb
Also allow scratch sessions via Session > New 2020-03-25 02:43:20 +01:00
993cba5a7c
NO-OP: whitespace 2020-03-25 02:34:17 +01:00
e3e794f3a8
Fix crash at exit when closing session before quit 2020-03-25 02:23:16 +01:00
777ac65831 debug output 2020-03-24 18:55:16 -06:00
384ded905d debug output 2020-03-24 18:39:46 -06:00
4d91637b45 handle scratch session when quitting 2020-03-24 18:26:12 -06:00
Nil Geisweiller
fe6c5f98b2
Remove redundant AZERTY Virtual MIDI Keyboard Layout 2020-03-24 22:36:20 +01:00
97340a5c89 when saving an unnamed session, rename it (GUI edition)
Note that this is done at the GUI level, might need to double check if there are
other paths into a "save" that should be covered. Control surfaces use the action, but
Lua comes to mind
2020-03-24 14:10:39 -06:00
5d4ad01b58 introduce the idea of an "unnamed" session (GUI edition) 2020-03-24 14:10:39 -06:00
20717b68bf fix startup behavior if answering "No" to "Do you want to open (this existing session)?" 2020-03-24 14:10:39 -06:00
ccc9042bf2 detect whether or not user edited the name for a new session
Suprisingly hard/irritating. Thanks, GTK! (Gtk::Entry::set_text() emits all
the same signals that actual user interaction can trigger, except for key events)
2020-03-24 14:10:39 -06:00
78cf1ed119 prefill new session name with a date-based default
Select it, so that typing will immediately replace it
2020-03-24 14:10:39 -06:00
6ddeaa273a
Do not use openGL backed canvas + widgets on Catalina
This needs testing: local builds on Catalina vs.
running existing (10.6, 10.11) builds on 10.15.
2020-03-24 14:27:36 +01:00
853bf6d178
Add API to query OSX/MacOS version 2020-03-24 14:25:22 +01:00
0f63b82943 fix error in multiple calls to SourceFactory::createWritable()
removal of tape tracks removed an intermediate argument in the argument list; presence of default args for the
last two arguments and implicit conversion from int->bool prevented the compiler from complaining
about any existing calls.

This supplements/extends a54b000a70
2020-03-23 21:47:13 -06:00
3bbad66a99 control over transport-masters-just-roll-when-sync-is-lost 2020-03-23 19:08:57 -06:00
e04f0a4c2c tweaks to display in TransportMastersWidget to reduce width jumping 2020-03-23 18:34:31 -06:00
c765079b2f Show Sends button should instigate a Spill, akin to a VCA spill 2020-03-23 15:24:08 -05:00
7058a8074f Theme-ing: Replace lost color for aux-send-panners 2020-03-23 15:24:00 -05:00
42cc09af13
Remove Mixbus Aux-Link special case 2/2 2020-03-23 17:45:55 +01:00
b760d541c6
Pan: remove automation-state indirection 1/2 2020-03-23 16:41:13 +01:00
faac3e0d38
Remove unused variable 2020-03-23 06:12:44 +01:00
1c551e432c fix port/connection combo/dropdown for TransportMastersWidget 2020-03-22 22:45:28 -06:00
9e84245c58 fix small error in GUI dimensions stemming from removal of tape tracks
THe original determinant of width was:

   double     const width     = ((at->mode() == Destructive) ? 2 : 0);

the conditional is always false now, so the width is a constant (zero)
2020-03-22 16:43:13 -06:00
386264bd23
Pan: consolidate what_can_be_automated API 2020-03-21 19:46:39 +01:00
60bcefd03d
Pan: remove/consolidate parameter-descriptor 2020-03-21 19:46:38 +01:00
628d704d4e
Panner GUI: fix detent in center
Previously the dead-zone was too small (1/360). The mono/balance
panner GUI has a throw of 180 deg L<>R.

Also snapping to center didn't allow to smoothly move out of the
center. The accumulated_delta as directly applied. This caused
jumps by 4.5. degrees.

This commit reduces the deadzone to 1 degree of the azimuth
around the center.
2020-03-21 19:46:38 +01:00
5f27382b88
Remove Audio+MIDI track, and consolidate route creation methods
Audio+MIDI tracks were just MIDI tracks with an additional
audio input, and do not directly allow use of vocoders (an
instrument is loaded by default).

For pitch-correction or similar use-cases one would prefer an
audio-track (main data) with MIDI only being used as control-input.

Ardour 5/6 pin-connections and side-chain offer a much nicer
workflow for this setup.

Alternatively one can get those tracks-types by manually adding
an input port to an existing track, and creating a custom template.
2020-03-19 16:18:48 +01:00
e8776d39fe
Fix wine-VST build 2020-03-18 19:57:59 +01:00
a44fecb740
Hide hidden Controls in GUI 2020-03-18 18:16:32 +01:00
e83d1f7368 warn user about destructive/tape tracks 2020-03-17 16:31:50 -06:00
53e743f4ae remove reference to ImportAsTapeTracks 2020-03-17 16:31:49 -06:00
a4d7b45fe0 remove destructive/tape mode tracks 2020-03-17 16:31:49 -06:00