Commit Graph

39297 Commits

Author SHA1 Message Date
Alexandre Prokoudine
1b6868f69c Rename the DDX3216 map to clarify who the vendor is 2024-08-14 20:18:14 +02:00
Robin Gareus
b55e94ced4 Fix crash when deleting route while creating a routegroup for it
This reverts 00e35c48b6. Modal dialog does not
allow to change the color of the RouteGroup. Interaction
with the colorpicker was not possible.

See also 0db79b8023
2024-08-13 21:08:04 +02:00
Robin Gareus
b501eaf43a Fix undo when removing multiple regions on the same track 2024-08-13 03:07:39 +02:00
Robin Gareus
9f0b829cfb Fix undo when ripple deleting a region (#9767) 2024-08-13 03:07:36 +02:00
Robin Gareus
3bdf378df3 Add some additional Lua bindings 2024-08-12 21:36:55 +02:00
Robin Gareus
58120f75d5 Add API to check if backend was used previously
This is backported from LiveTrax, yet potentially handy
for future auto-connect policy in Ardour as well.
2024-08-12 21:26:42 +02:00
Robin Gareus
84506a041c Move Mute automation with region(s) #9762
Mute and Panner are the only automatable Route owned controls
(that are not managed by a processor). So they need special
casing to be moved when moving a region.
2024-08-09 16:03:39 +02:00
Paul Davis
550b38fb00 preliminary change to avoid unnecessary stuff happening when track drags do not reorder 2024-08-08 18:46:41 -06:00
Robin Gareus
c4224b2a5a Fix x-alignment of velocity lollis for Percussive Events 2024-08-08 21:35:46 +02:00
Robin Gareus
c07c865b1d Correctly mark Lollipops for Percussive events as hits 2024-08-08 21:35:00 +02:00
Paul Davis
21610015ed make sure SelectionRemove case is handled for selection ops
Also fix formatting for switch/case statements
2024-08-06 17:36:35 -06:00
Robin Gareus
15912fea77 Remove outdated monitor-modes PDF, refer to the manual 2024-08-07 01:16:57 +02:00
Robin Gareus
b121ee157e Update Auto-Input meter policy
This replaces rule #17, 27, 43 and 59 on
https://manual.ardour.org/appendix/monitor-modes/

"Meter (What you see)" changes to 'Disk (Audio)'
aka "what you hear" in those cases.

This way "what you see" is always "what you hear".
Monitoring inputs is more conveniently done using
the Recorder Page.
2024-08-07 01:15:50 +02:00
Robin Gareus
76b25163bd Fix YTK filemanager recently-used (Windows, macOS)
g_get_user_data_dir() folder does not exist on macOS
compare to gtkfilechoosersettings.c which creates
g_get_user_config_dir().
2024-08-06 20:51:56 +02:00
Robin Gareus
558e32e639 VST3: handle offline FX processing callbacks
This fixes potential deadlocks, when not using rt
process threads.
2024-08-06 20:51:55 +02:00
Paul Davis
3f1486fa12 coreselection: fix thinko
The core selection can be (a) stripables (b) automation controls (c) possibly a combination of both

Any given selection op might pass (a) or (b) or (c), so we need to handle the
case where (a) is null.
2024-08-05 20:14:28 -06:00
Robin Gareus
c2bf45a033 Fix triggerbox cues when looping
This correctly handles the case when a cue marker is at the
same position as loop-end. Previously the cue was triggered
even though transport looped
2024-08-03 20:21:53 +02:00
Robin Gareus
dc5753118c Fix LTC TC master for incoming 30fps LTC
By default timecode.rate = 30. When 30fps LTC is received,
::detect_ltc_fps() never returned true (FPS changed), and
the TransportMaster never entered "locked" stage.
2024-08-02 23:29:13 +02:00
Robin Gareus
460ecadc00 Significantly speed up building region bounday cache 2024-08-02 20:08:51 +02:00
Robin Gareus
533f4a61f6 Remove unused variable 2024-08-02 20:08:51 +02:00
Paul Davis
a06e519296 GUI code changes to follow new CoreSelection API
This removes ::add_grouped_tracks() from Editor selection and
RouteProcessorSelection, since adding grouped stripables is now
a CoreSelection function, and should not be attempted by UI-side
elements
2024-08-02 11:50:21 -06:00
Paul Davis
b21dd1212e redesign API and internals of CoreSelection for more universality
We now have two basic methods for CoreSelection

* when selecting a stripable, use ::select_stripable_and_maybe_group() with
  appropriate arguments to cover the group selection aspects.

* when selecting an automation control that is part of a stripable, call
  ::select_stripable_with_control()

The old, more simply named methods (set/add/toggle etc.) have all been
made private, and their internal implementations changed somewhat.

This commit includes changes to control surfaces that use CoreSelection directly.
2024-08-02 11:50:21 -06:00
Paul Davis
af5c99dd05 move definition of selection operations in to ARDOUR namespace
This is a rare commit that I think should be done for GUI and libs at the same time
2024-08-02 11:50:21 -06:00
Robin Gareus
0f4fb04344 Prevent crash when dragging notes near 1|0|0
When moving the mouse fast it can happen that the resulting
position (note_qn + dx) becomes negative. Which causes
tempo-map ramp calculations to fail and the application aborts.
2024-08-02 17:53:26 +02:00
Robin Gareus
5d02970de8 Clarify new session dirty state
New unnamed sessions need to remain dirty so that the GUI
asks to save or delete the session.
2024-08-01 23:26:57 +02:00
Ben Loftis
2a5b5a8b0e in the case of a missing theme file, fall back to 'dark' 2024-08-01 12:43:07 -05:00
Ben Loftis
03971be30d tweak MMC behavior: ffwd should start rolling immediately; but disallow ffwd during active recording 2024-08-01 12:34:58 -05:00
Ben Loftis
ff9a55df97 add a preference for MMC FastWind which allows skipping to markers 2024-08-01 12:34:58 -05:00
Robin Gareus
59e50c0e16 Better version of 1471950e (Note-drag dx) 2024-08-01 19:17:05 +02:00
Robin Gareus
1471950e24 Fix dragging MIDI events when using a tempo-map
This keeps mouse pointer and the dragged note in sync.
See also https://discourse.ardour.org/t/110511
2024-08-01 19:03:01 +02:00
Paul Davis
d4227b6ca4 add actions for region lock/unlock (from Mark Knoop < mark@opus11.net> 2024-07-31 22:38:45 -06:00
Robin Gareus
170bc45de9 Sort MIDI Ports by human readable name in connection matrix
This is mainly for the benefit of CoreMIDI where MIDI
ports are identified by kMIDIPropertyUniqueID and ALSA
where Ardour uses a unique hash for persistent names.
2024-07-31 17:38:40 +02:00
Robin Gareus
cb34845498 Rename JACK to "JACK/Pipewire" on Linux (2/2) 2024-07-31 04:44:04 +02:00
Robin Gareus
a76b2ed1bb Rename JACK to "JACK/Pipewire" on Linux (1/2) 2024-07-31 04:38:01 +02:00
Paul Davis
cc56f92a73 modify caa0cc8790 to actually pass a reference to the selected plugin 2024-07-29 17:25:06 -06:00
Paul Davis
3064533594 change default MIDI bindings that use plain ASCII characters to use tertiary (shift) not primary
This minimizes conflicts with global bindings
2024-07-29 10:23:27 -06:00
Paul Davis
caa0cc8790 notify control protocols about plugin selection in a processor box 2024-07-29 10:19:52 -06:00
Paul Davis
83984a7884 emit a new signal when a ProcessorElement is added to the selection inside a DnDVBox<ProcessorEntry> 2024-07-29 10:19:52 -06:00
Paul Davis
ad1377abb5 add a new class-static signal for ControlProtocol modules to know when a plugin has been selected 2024-07-29 10:19:52 -06:00
Paul Davis
f3e35cc145 name RF64 files with .wav suffix
In livetrax, where RF64 is one of two file formats, people frequently end up
with files named .rf64 that are actually .wav due to the libsndfile
header file downgrade. We want to avoid this, and this seems like
a more common case than people generating actual RF64 files that
(now) will be named .wav
2024-07-29 10:19:52 -06:00
Paul Davis
4de0189dc4 add rf64 file suffix to list of safe file extensions for audio 2024-07-29 10:19:52 -06:00
Paul Davis
941bc3a4f2 NO-OP: braces, please! 2024-07-29 10:19:52 -06:00
Robin Gareus
4b75ed249e Unregister ports directly after RCU update
see also 2e23ec4422. This fixes a bug where some ports
remain in used (shared_ptr<Port>) by the RCUManager, even
after the port is removed from the port_map.

This can lead to issues when the port is re-registered later.
2024-07-27 22:25:09 +02:00
Robin Gareus
00e35c48b6 Make Mew Route Group Dialog modal
Prevent interaction with main window while creating a new
route group. This fixes an edge-case: one can currently
delete route that is going to be part of the new group.

- select a single track
- click and drag the left bar to create a group that includes
  the selected track, but don't click "new" yet
- delete the selected track
- click new on the track group window

The group retains a reference to the route.
2024-07-25 22:14:03 +02:00
Robin Gareus
d5bae02e33 Set Transport Master sensitivity when loading session or changing masters
TransportMastersWidget::rebuild made all masters sensitive
even when external sync is active.
2024-07-25 17:08:05 +02:00
Mads Kiilerich
4f2b96dca8 faderport8: Better debug trace when not probing the midi ports
This would have helped former me when trying to use FaderPort with
PulseAudio backend.
2024-07-25 13:50:54 +02:00
Mads Kiilerich
8633e82891 commandline: Allow -D to be specified multiple times
Yes, -D takes a comma separated list, but it is still confusing and
unnecessary that the first -D options were silently ignored.
2024-07-25 13:48:38 +02:00
Mads Kiilerich
04b3cf980e commandline: Warn when -D is ignored in release mode 2024-07-25 13:36:39 +02:00
Paul Davis
46715fec66 locations: extend API for first_mark_{before,after}_flagged to allow returning the found location
Also use newer C++ loop syntax for syntactic sugariness
2024-07-24 19:00:55 -06:00
Robin Gareus
0db79b8023 Close RouteGroup dialog when route is deleted
This fixes a crash when trying to interact with the
RouteGroup dialog after deleting the group
2024-07-24 23:21:12 +02:00