Commit graph

39418 commits

Author SHA1 Message Date
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
Robin Gareus
06962c7728
Yet another runtime free() API fix
See also 8c583f8e20
2024-07-24 19:23:50 +02:00
Robin Gareus
12e1a6f73d
Fix runtime error free()ing LV2 event buffers 2024-07-24 17:47:54 +02:00
Paul Davis
3f8d0ddc3d faderport: fix SNAFU caused by switching to Mixbus-style use of user button
User stopped being a modifier but was still being treated as one.
2024-07-23 18:21:43 -06:00
Robin Gareus
c2329c4708
Unify package scripts with VBM 2024-07-24 02:02:54 +02:00
Mads Kiilerich
213812c31c
region: Drop superfluous setting of _type in Region constructor 2024-07-24 01:50:11 +02:00
Mads Kiilerich
ea242254d3
warnings: Remove redundant move in return statement
GCC 14 educates us:

	../libs/ardour/session.cc: In member function ‘std::vector<std::__cxx11::basic_string<char> > ARDOUR::Session::source_search_path(ARDOUR::DataType) const’:
	../libs/ardour/session.cc:6969:25: warning: redundant move in return statement [-Wredundant-move]
	 6969 |         return std::move(sp);
				|                ~~~~~~~~~^~~~
	../libs/ardour/session.cc:6969:25: note: remove ‘std::move’ call
2024-07-24 01:50:11 +02:00
Mads Kiilerich
0352ff8c5e
warnings: Remove redundant/illegal/undefined-behaviour template-id for constructor
GCC 14 educates us:

	In file included from ../libs/ardour/ardour/io.h:44,
									 from ../libs/ardour/ardour/route.h:50,
									 from ../libs/ardour/ardour/session.h:92,
									 from ../libs/ctrl-interface/midi_surface/midi_surface.cc:30:
	../libs/ardour/ardour/port_set.h:92:37: warning: template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
		 92 |                 iterator_base<PS,P>(PS& list, DataType type, size_t index)
				|                                     ^~
	../libs/ardour/ardour/port_set.h:92:37: note: remove the ‘< >’
2024-07-24 01:50:11 +02:00
Robin Gareus
3cb03d9564
Fix typo 2024-07-23 22:05:00 +02:00
Robin Gareus
50e5e3bd8f
Consistently ignore punch-in/out without punch-range 2024-07-23 18:56:26 +02:00
Robin Gareus
51030a9a40
Set punch sensitivity when loading session 2024-07-23 18:55:49 +02:00
Mads Kiilerich
74edf63d01
format: Apply some work-arounds for code that would confuse clang-format 2024-07-23 17:04:14 +02:00
Mads Kiilerich
f063bfef03
format: Improve header robustness against #include reordering 2024-07-23 17:03:56 +02:00
Mads Kiilerich
81ca475b10
format: Protect the special session_configuration_vars.h and its use of CONFIG_VARIABLE 2024-07-23 17:03:56 +02:00
Robin Gareus
853204e455
Ignore files generated by macOS packaging 2024-07-23 17:01:16 +02:00
Robin Gareus
9b6039c170
Remove debug message, improve comment 2024-07-23 16:56:25 +02:00
Robin Gareus
5f0b15d446
NO-OP: whitespace 2024-07-23 15:46:53 +02:00
Edgar Aichinger
787f5b2cc8
better translation for 2nd screen of new user wizard 2024-07-23 01:20:47 +02:00
Paul Davis
607301ad5b LT: remove many elements from import dialog that are not appropriate for livetrax 2024-07-22 15:37:07 -06:00
Paul Davis
181ba4db54 ytk: do not show filter combo box in filechooser if there is only 1 filter 2024-07-22 15:36:45 -06:00
Robin Gareus
bb8f6a3d66
Remove debug output 2024-07-22 20:28:45 +02:00
Robin Gareus
7567884111
Fix LV2 Atom sequence alignment #9750 2024-07-20 21:42:18 +02:00
Robin Gareus
8c583f8e20
Use 64bit alignment for LV2 event buffer #9748 2024-07-20 17:37:47 +02:00
Robin Gareus
cb5b955a74
Use C++ for LV2 event buffer
This will allow to throw fatal exceptions when malloc fails.
2024-07-20 17:37:09 +02:00
Robin Gareus
0bf42af59d Collect ctrl surface ports into single bundle
This prevents a crash on Windows (and optimized mac builds) in
~PortGroup() when a ctrl surface is disabled. Despite the bundle being a
shared_ptr, unloading the ctrl surface module (.dll, dylib), destroys
the shared_ptr<> (or rather the memory are where the shared_ptr is
stored). This later causes a segfault in ~shared_ptr<Bundle>
when the PortGroup is released.

It is also much nicer to have all the ctrl surface grouped into a common
Bundle, rather than having a lot of bundles each with a single unnamed
port.
2024-07-18 18:39:34 +02:00
Robin Gareus
2cdfdc9212 Prevent minimizing Dialog Windows on macOS
This works around an issue with some embedded plugin windows not being
properly restored when the window is restored after being minimized. It
also prevents zooming (full-screen) display of dialog windows.

Also recent macOS allows to maximize Windows even if they are not
supposed to be resizable (also causing issues with some plugins).
2024-07-18 17:57:52 +02:00
Alexandre Prokoudine
7c311761c2 Update Russian translation 2024-07-17 22:15:20 +02:00
Robin Gareus
f2ceaecc4d
Fix Lua script to use new API from 0a01acc86a 2024-07-17 18:38:04 +02:00
Robin Gareus
cd3c65fbda
The return of the tempo-map cut/copy section warning
see also 964600b9bd.
2024-07-17 17:58:25 +02:00
Paul Davis
e175410f54 midi surfaces fixes (partially for PR #898)
1. do more to ensure that we do not call MidiSurface::begin_using_device()
multiple times without ::stop_using_device() in between. This reduces the risk
of duplicate signal handler connections being made (it might even eliminate it).

2. Notify all control surfaces when MIDI connectivity is established AND
disestablished. This gives them a chance to update their notion of their
current connection state. This can be important with JACK across zombification,
but also likely across backend stop&start.

These changes currntly only impact classes derived from MidiSurface but
something equivalent is required for all control surfaces
2024-07-16 11:12:41 -06:00