13
0
Commit Graph

15636 Commits

Author SHA1 Message Date
fc1a0140a3 fix may-be-used-unset warning 2022-06-22 13:31:07 -06:00
5a0767bd7b fix may-be-used-unset warning 2022-06-22 13:31:07 -06:00
02b77ca88a better fix for CURL debugging unused variable warning 2022-06-21 17:36:26 -06:00
e1f9d28d6a fix unused code warning 2022-06-21 17:32:50 -06:00
48ab542ffa fix signed/unsigned warning 2022-06-21 17:32:27 -06:00
5bc7c26d9b fix unused variable errors 2022-06-21 17:32:09 -06:00
4b11b2ba28 remove unused item 2022-06-21 16:55:29 -06:00
d47b581cbb remove RegionRippleDrag
This used to be a distinct kind of drag, but ended up being refactored into
something that happens during a regular drag. Has not been used in quite some time.
2022-06-21 15:52:16 -06:00
9ae9282547
Use abstract group_override_modifier instead of hardcoded modifiers 2022-06-21 21:38:41 +02:00
0cc9f87baf continued work on modifier semantics (gtk part)
more implementations of group_override_event() and momentary_push_event()
2022-06-21 13:01:30 -05:00
f5866c1dee
Fix video-file audio extraction on big-endian systems 2022-06-20 16:16:25 +02:00
df518cba3c
Don't show blank MIDI Port Config page when no MIDI devices are present 2022-06-20 16:04:59 +02:00
4acd63b2ef fix uninitialized variable (detected with valgrind) 2022-06-18 12:37:39 -06:00
64c8607ffd midi streamview: fix crash when switching playlists
We need to delete all existing region views before we redisplay the track. This
was removed as part of an "experimental performance optimization" in 4f7a4cd233
but playlist switching is a rare and non-performance limited operation
2022-06-18 08:28:31 -06:00
ca744cd94a tooltips: append 'Lock' to Solo Safe menu-item, to match mixer-strip button 2022-06-17 11:08:04 -05:00
1965e90c24 tooltips: enumerate the various modifiers for mute, solo, scenes
TODO: monitor buttons, maybe more
2022-06-17 11:07:58 -05:00
9a6533c382 modifiers: unconditionally show the solo context menu
* accessing solo-isolate from the context menu is the preferred way
* some route_uis (like track headers) do not have solo isolate buttons
2022-06-17 11:07:58 -05:00
88888237ac modifiers: remove shortcut for solo isolate
* you should not be able to invisibly change a solo 'mode' from a modified click

* we want to use shift+click for momentary operation, anyway
2022-06-17 11:07:58 -05:00
a92af7768d modifiers: implement is_momentary_push_event for momentary buttons (gtk2 part) 2022-06-17 11:07:58 -05:00
86ddb11b9b
Fix displaying note events across tempo-changes
Note position in samples must be calculated using absolute position
on the timeline. Otherwise the tempo-map is not applied correctly.

Previously this caused issues since the position was first
offset back by _region->position() - time relative to region left
edge - and then the tempo-map was applied.

Another solution identically would be:
(note_start + session_source_start).samples() - _region->position().samples()
2022-06-17 17:07:47 +02:00
7724af1850 remove debug output 2022-06-16 22:34:59 -06:00
2f6047e000 tempo display: remove dangling unconditional call to reassociate markers 2022-06-16 22:14:43 -06:00
cdf98a1bd7 tempo display: when the tempo map changes, avoid unnecessary work
If the initial tempo marker is referencing a point in the new map, assume that
all markers have already been associated with the map.
2022-06-16 22:09:53 -06:00
3482d6db4e tempo display: when reassociating markers, use sclock equivalence
Since we're reconnecting visible marker objects with a new map, there's a good
chance that the map will contain map points that don't correspond to the map
points currently referenced by those markers. Thus, tests for address
equivalence will often fail.

Instead, repeat what has been done elsewhere and use the heuristic that we only
allow one point of a given type at the same superclock position.
2022-06-16 22:07:21 -06:00
8f7a267900 tempo display: when tempo map changes, metric markers must be reassociated with the new map 2022-06-16 12:58:03 -06:00
2f02b809e7
Fix save/restore of Insert-At position
UIConfig insert-at-position saves/restores the enum as integer.
This is used directly as parameter for insert_at_combo.set_active().
For this to work, the enum needs to match the order of elements
in the dropdown.

It would be preferable to register the enum, and map the
dropdown entries, but for now this does the trick, without
breaking existing UIConfigs.
2022-06-15 02:41:50 +02:00
5d10fd84eb
Reduce mixer redraws, and fix scrolling to newly added tracks
PresentationInfo::Change (Properties::selected) is emitted and
handled before Mixer_UI::add_routes() is called. At that point
in time the MixerStrip(s) to be selected may not exist.
Visual selection state was lost.

Furthermore move_stripable_into_view() calling translate_coordinates()
only works after GTK has completed the resize operation.
This lead to the mixer scrolling back to the left edge when creating
new tracks.

Also each selection change caused all tracks to be re-packed.
Now redisplay_track_list() is only called if visibility or order
changes. This signficanly improves performance with large sessions.
2022-06-15 02:41:45 +02:00
2e2a4be3b2
Fix windows debug builds (SIGUSR1 is POSIX only) 2022-06-14 17:12:30 +02:00
b8b899d3d5
Disable AU-GUI debug (revert e81dd6a943) 2022-06-14 15:02:42 +02:00
d060348df0 main: add a SIGUSR1 handler to allow dynamic triggering of debug bits 2022-06-13 13:48:37 -06:00
4296be2c70
Ignore double-middle-click when restoring scenes
Previously rapid middle-clicks could result in creating
a temporary mixer_scene while one is already in use.
2022-06-09 02:25:55 +02:00
e81dd6a943
Some more AU GUI debug messages 2022-06-07 23:49:42 +02:00
e5c19994c9 mixer scenes: reminder for mac trackpad users: Ctrl+Alt is a middle-click 2022-06-07 16:35:14 -05:00
fed731cb3d add single range marker: fix dialog to ask for a Range not a Location 2022-06-07 16:35:14 -05:00
ab1d9b0e39 further work on shortcuts...
fix bindings to shifted symbols (see below)
  add shortcuts to recorder, virtual midi keyboard
  change shortcut (secondary+c) from Big Clock to Cue page

(*) shifted symbols like '+' are accessed in a very specific way, like:
<@TERTIARY@>plus
and
<@SECONDARY@><@TERTIARY@>plus
2022-06-07 16:35:08 -05:00
2d631688f4
Yet another attempt to debug/fix AU plugin window size on mac/M1 2022-06-07 17:47:07 +02:00
5a0b22f8a4
Revert "Debug AU plugin window size issues on macOS/M1"
This reverts commit 81322a4ac9.
2022-06-07 17:45:15 +02:00
81322a4ac9
Debug AU plugin window size issues on macOS/M1 2022-06-07 02:56:46 +02:00
efa2efa221
Fix "muted" indicator (dup on audio-regions, missing on macOS)
RegionView::make_name already adds the prefix, AudioRegionView
does not need to add it again.

Also the font used on macOS (Lucia Grande) has a rather limited
UTF-8 charset and does not support:
 \u20F0 (COMBINING ENCLOSING CIRCLE BACKSLASH)
 \U0001F507 (SPEAKER WITH CANCELLATION STROKE)
so for now we keep using "!" on macOS.
2022-06-07 02:33:55 +02:00
828d1245c9 range analysis was only accessible by context-click; add to main menu 2022-06-06 14:17:39 -05:00
24df1503a8 add menu item for Consolidate Range 2022-06-06 14:17:39 -05:00
c431575f22 add menu-accessible actions for Consolidate Range 2022-06-06 14:17:38 -05:00
bd62f76875 fix redundant bounced-clips from a Consolidate operation 2022-06-06 14:17:35 -05:00
d842326999 add some keybindings (for Nathan at Harrison)
* expand/shrink track height
* stem-export selected tracks
* create a range from selected regions
* consolidate range
* add a single Range marker for selected region(s)
* unlink (fork) midi region from linked regions
* toggle plugin manager window
* fixed shortcut for Crop

* moved "audio patchbay" from Alt-P to Alt-Shift-A,
    making it more consistent with Alt-Shift-M: MIDI patchbay
2022-06-06 14:16:57 -05:00
c41ed2f133 keybindings: reformat for readability (no-op) 2022-06-06 14:16:57 -05:00
7225773660 fix Crop operation: all layers, preserve fades 2022-06-06 14:16:57 -05:00
f6c748537f
Fix deflection of shuttle control
See also 89a85da52c
 * Fix deflection when using percent (use sqrt/pow2)
 * Simplify linear deflection when using semitones
 * Allow deflection of > 200% when using semitones
2022-06-05 23:44:39 +02:00
720303a217
Fix edit-note dialog length calculation
The AudioClock uses samples. Duration calculation is
done using the current clock pos. The returned distance is
using Beats, can be directly used for all notes regardless of their
position.

Now that this works correctly the dialog can also be made available
for multiple-selection.
2022-06-04 04:58:31 +02:00
0e85655c38 right click on tempo curve should be equivalent to right click on empty bar 2022-06-03 15:02:37 -06:00
cc021f9e94 complete list of return values for ::get_grid_type_as_beats()
Except triplets
2022-06-03 15:02:37 -06:00
de2c553e1a improvements to BBT marker dialog appearance and behavior 2022-06-03 13:20:13 -06:00
b6907cffba
LuaDialog: only hide border if scrollbar is n/a 2022-06-03 01:52:02 +02:00
64f8f6c31a
Hide the border of the Lua dialog scrollbar frame
This results in much cleaner look/feel, which was apparently the
motivation for 817fccb3e5.
2022-06-02 22:32:26 +02:00
5db59b9fd6
Update scroll-window policy of Lua dialog windows
Better version of 817fccb3e5, the visibility should not depend
on the number of items in the dialog, but its requested height
vs screen height.

The main use-case is to not show the scroll-bar if the dialog has only
a few rows. Then again if the scrollbar is visible, the dialog
should not shrink below a reasonable min. height.
2022-06-02 22:04:23 +02:00
2cef35247c
Revert "Lua Dialogs: only add a scroller if we have 16+ items in the dialog"
This reverts commit 817fccb3e5.
2022-06-02 22:04:23 +02:00
10bbcd167d Mixer Scenes: scene buttons should look 'pushed in' when clicked
* trigger the actual recall on button_release
2022-06-02 13:53:45 -05:00
eb0e9616f0
Implement temporary mixer scene restore, clean up code 2022-06-02 19:07:28 +02:00
8f074200cc
Fix Ferret when using onset detection + split
When not starting at a silent area, onset detection can have
a transient at 0 (region start). This needs to be ignored.
2022-06-02 01:45:47 +02:00
9ef9277d47
Clear mixer scene buttons when closing session 2022-06-02 00:52:25 +02:00
d79a1aaa98
Fix mixer-scene signaling
Mixer-scenes are session objects, and the signal must not be
connected across session instances.

This fixes a read-lock after write-lock when switching snapshots:

 Session::set_state -> MixerScene::set_state ->
 MixerScene::set_name -> Change(); /* emit signal */
 ... -> Mixer_UI::update_scene_buttons -> Session::nth_mixer_scene
2022-06-02 00:19:32 +02:00
69179117a5
Amend ca8dddcd, handle nullptr mixer scenes
This fixes an assert/crash when loading sessions without scenes.
Also only show "Right-Click to Store" label if all slots are empty
2022-06-01 16:57:21 +02:00
ca8dddcd37 Mixer Scenes: first-draft GUI for mixer scenes 2022-06-01 08:53:50 -05:00
b3e4f243b0 Mixer Scenes: tweak action names; add mother-may-i for scene overwrites 2022-06-01 08:53:50 -05:00
3fe6bf3cf7 Mixer Scenes: add bindings for F1..F12 on the mix window 2022-06-01 08:53:50 -05:00
3387d127e7 Lua: add arguments to trigger_script_by_name 2022-06-01 08:53:50 -05:00
817fccb3e5 Lua Dialogs: only add a scroller if we have 16+ items in the dialog 2022-06-01 08:53:50 -05:00
a127399f5e click on a region in TimeFX mode should not switch back to grab mouse mode 2022-05-31 13:21:11 -06:00
763d92a294 timefx: fix interactions with duration clock and percentage spinner in timefx dialog 2022-05-31 13:15:36 -06:00
b806ccf373 timestretching: fix inaccuracies in generated length
The design ignored the ratio computed by the drag interaction, and relied on getting the stretch
ratio from the dialog. This truncated the actual ratio, leading to (relatively) small errors
in the length of the generated region.

Now, if the ratio provided by the drag is not (1/1) (i.e. a single click while in timefx mode)
then the percentage stretch spinner is marked insensitive and the stretch ratio is taken from
the given ratio. For single clicks, the user can still adjust the percentage as they wish
2022-05-31 12:36:54 -06:00
43f58f88a6
Allow input meters without session when backend is connected
This also fixes a race with ARDOUR::AudioEngine::start() emitting
a Running() signal being emitted without a valid session.
2022-05-31 19:08:19 +02:00
265f5d8342 numerous fixes for meter marker drag 2022-05-30 21:14:57 -06:00
25c151bd8d fix errors in drawing BBT markers
This was hastily added and inadequately checked code before
2022-05-29 14:42:23 -06:00
7168139861 abort reversible command if add-bbt-marker is cancelled 2022-05-29 14:41:55 -06:00
fdd634f530 add ctrl-drag on tempo bar/ruler to adjust tempo more directly 2022-05-29 14:19:27 -06:00
Hubert Figuière
9e754959f6 AutomationLine: make sure control points aren't empty
- Otherwise this trigger a C++ assert when built with it
- More reference https://github.com/flathub/org.ardour.Ardour/issues/34
2022-05-28 22:50:06 -04:00
c82745301c fix #ifdef'ed-out call to TrimDrag in case we ever use it in the future 2022-05-28 12:59:35 -06:00
47c6493725
Loudness analysis, remove superfluous format options
The previous commit prevents any post-processing when
exporting for analysis only.
2022-05-28 18:20:22 +02:00
b04ee501ff
Add a no-file, analysis only export mode 2022-05-28 18:20:22 +02:00
e2e6274956 libardour: change API of Session::request_locate() to include "force" argument (GUI edition) 2022-05-27 18:49:23 -06:00
69ee83e6ce require explicit time domain for most region-centric drags
This removed one #warning nutempo line.
2022-05-27 15:57:14 -06:00
73a6cb7957 editor: add method to get time domain from any object with a ::time_domain() method 2022-05-27 15:56:41 -06:00
399a5b3f25 convert use of operator* for tim::line types with ::scale(ratio_t) (GUI edition) 2022-05-27 12:47:44 -06:00
ffda4b867e temporal: remove dangerous muldiv methods and use explicit method name not cast (GUI edition) 2022-05-27 12:47:44 -06:00
0eb8b6aa85 freesound: cosmetic tweaks
Disable the "More" button when search parameters change.  The button is
supposed to continue the current search, but if any of the search
parameters (tags, sort, or licence) have changed, that doesn't really
make sense. Just disable it if the user changes any of them.

Make sure that filenames in the freesound results list are escaped
properly for the tooltip, and append the full licence URL returned to the
tooltip too.

Make the filename column Gtk::TREE_VIEW_COLUMN_FIXED, so that it doesn't
expand to the width of the longest filename in the results and push the
columns to the right out of view. Resizing the import dialogue larger
still allows longer file names to be seen, and it's still possible to
manually resize the filename column as well.

Only show the hours & minutes in the duration column if they're non-zero,
and justify them right.
2022-05-27 16:17:55 +01:00
eae1673ff1 freesound: filter results by licence
Add a drop-down list to the freesound import tab, to optionally restrict
search results to "CC-BY", "CC-BY-NC", or "PD" only licensed sound
files. Defaults to "Any", which will return sounds with any licence.
2022-05-26 17:38:10 +01:00
Mads Kiilerich
cc6a1e2d6f gtk2_ardour/editor_drag.cc: fix confusing newline 2022-05-24 17:15:37 -06:00
62bcaf2191 for now (at least) do not show tempo/meter markers for MusicTimePoints
This policy may change in the future
2022-05-24 17:10:25 -06:00
2ec6d45d6d temporal: remove the concept of a time domain for the tempo map (GUI edition) 2022-05-24 17:10:25 -06:00
bd3fdaeb67 clean up editor's set_ramped() and set_continuing() code
Now that the libardour methods return bool, we can identify whether or not any
change actually took place, and act appropriately.
2022-05-24 17:10:25 -06:00
12bf8279e8 better undo/redo command names for tempo/timesig edits 2022-05-24 17:10:25 -06:00
1a44e612e9 ctrl-dragging a tempo mark uses horizontal, not vertical motion to adjust tempo 2022-05-24 17:10:25 -06:00
89a85da52c
Overhaul vari-speed shuttle control display
* keep shuttle and mouse position in sync when dragging
* do not show speed options above max-transport-speed
* use quadratic deflection with speed percentage
* reduce knob width since the slider is rather narrow these days
2022-05-25 00:21:56 +02:00
00bd50882e
Mark speed UI controls insensitive if varispeed is not available 2022-05-24 20:41:59 +02:00
1e0d14f429 freesound: don't exclude mp3s
Ardour can import MP3s nowadays: no need to exclude them from Freesound
search results any more.
2022-05-23 18:15:43 +01:00
1516dcc529 freesound: handle https:// licence URLs
Relax the check for matching licence URLs so that https:// as well as
http:// (and indeed any protocol at all) URLs match.
2022-05-23 18:15:02 +01:00
14cf7e4c23
Add UI actions to save/recall mixer-scenes 2022-05-23 16:13:04 +02:00
d8ba73f542 temporal: change "clamped" terminology to "continuing" (since that's what the GUI calls it) (GUI edition) 2022-05-23 08:07:08 -06:00
fcbe6aab49
Fix crash when time stretching
```
#3  in __assert_fail
#4  in Temporal::TempoMap::use
#5  in Temporal::timepos_t::_superclocks
#6  in Temporal::timepos_t::superclocks
#7  in Temporal::timepos_t::samples
#8  in ARDOUR::Region::position_sample
#9  in ARDOUR::RBEffect::run
#10 in Editor::do_timefx
#11 in Editor::timefx_thread
```
2022-05-22 15:26:19 +02:00
411e031bab
Hide I/O Plugins for Mixbus for now 2022-05-20 23:56:20 +02:00
7fa207d9ee
Add UI config-option for freesound download cache
This also invalidates any prior libardour rc-config
(which was not previously exposed as config).

Note: old existing cache is not moved or invalidated
when the path changes.
2022-05-20 22:03:14 +02:00