13
0
Commit Graph

21190 Commits

Author SHA1 Message Date
181ba4db54 ytk: do not show filter combo box in filechooser if there is only 1 filter 2024-07-22 15:36:45 -06:00
bb8f6a3d66
Remove debug output 2024-07-22 20:28:45 +02:00
7567884111
Fix LV2 Atom sequence alignment #9750 2024-07-20 21:42:18 +02:00
8c583f8e20
Use 64bit alignment for LV2 event buffer #9748 2024-07-20 17:37:47 +02:00
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
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
7c311761c2 Update Russian translation 2024-07-17 22:15:20 +02:00
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
f8f6c89136 fix a likely logic error in GtkMenu handling of enter events
On macOS popping up a menu with a position function that leads the menu to be
under the mouse pointer generates the same initial set of enter events as on
linux, but this is then followed  by some leave events and then a repeat of the
same set of enter events.

this exposes what appears to be a logic error in gtk_menu_enter_notify().

Nonlinear enter events (i.e. where the menu pops up under the mouse, so the
mouse was never actually moved into the menu's window) should not cause a reset
of priv->seen_item_enter. This value, when true, is used to force the next
received button release event to be handle as an menu activation event. This
should only happen when the mouse has actually been moved by the user into the
menu (as already indicated in existing comments). The value has this effect by,
on the next enter event for a menu item, if already set, forcing
menu->activate_time to zero, which in turn will cause menu activation on button
up/release.

This bug doesn't appear on Linux (or Windows) because the event sequence
associated with a menu popup is different. The lack of another set of enter
events means that menu->activate_time is never reset, and so the behavior is as
expected.

This change makes the setting of priv->seen_item_enter be idempotent with
respect to non-linear enter events, which I believe is the intended behavior.
2024-07-15 11:09:59 -06:00
b50477e608
Exclude monitor gain from mixer scenes 2024-07-15 00:43:51 +02:00
5401f2c3eb ifdef out modified-with check (intended for livetrax) 2024-07-11 19:10:14 -06:00
eeccb813bb remove unused local variable 2024-07-11 19:10:14 -06:00
54f810f90e throw WrongProgram exception if session was modified with incompatible app 2024-07-11 19:10:14 -06:00
4212e23e77 make "modified-with" a session member 2024-07-11 19:10:13 -06:00
5a647cd84a Fix guard point logic for editor_add_ordered API.
Previously the code was too simple and potentially added points out of
order, leading to automation jumping back in time.
2024-07-12 00:45:37 +02:00
Edgar Aichinger
0f654ebde4
update german translation 2024-07-11 23:04:34 +02:00
fa6fbbf810
Fix ctrl surface shutdown sequence
Tear down GUI before stopping event loop, this fixes
a crash on windows (and perhaps a rare crash on other OS).
2024-07-11 19:19:21 +02:00
676b372ac5
FP8: tear down GUI before terminating event loop
This fixes an issue on Windows, where UI::run can dispatch
a signal that ends up via cross-thread channel at the surfaces'
BaseUI::request_handler. causing a segfault.
2024-07-11 18:10:39 +02:00
c3d90f415c
Fix fader/trim automation after locate
First see 31c6f66d9b and 5cb6e1046b.

It worked previously due to `AutomationControl::get_value`
evaluating automation, which was removed in 5cb6e1046b
in favor of properly using latency compensated evaluation.

However due to 31c6f66d9b, fader and trim automation were
never evaluated on locate, only during playback via
`Amp::setup_gain_automation`.

This fixes a case where gain is incorrect after a locate.
The amp still has the gain from before the locate, and when starting
playback ramps to the new gain.
2024-07-10 19:26:02 +02:00
ab0d2dce6f
Fix reduced channelcount when restarting engine with different device
1. Start engine with a stereo soundcard (n_inputs was set to 2)
2. Restart engine with multi-channel soundcard, n_inputs remained a 2)
2024-07-10 15:39:01 +02:00
d6b14e761b
Remove unused backend channel count config API 2024-07-10 15:39:01 +02:00
249442fe99 JACK backend: fix race condition caused by not wrapping jack_set_property() in JACK_SERVER_CALL 2024-07-09 10:14:39 -06:00
630587ee3f
VST2: amend prev commit, ignore SysEx and invalid MIDI events 2024-06-30 23:07:29 +02:00
Attila M. Magyar
e1ef129ab0 VST2: store VstMidiEvents with the correct size
...otherwise MidiBuffer::push_back() will drop them. (E.g.
MIDI_CMD_CHANNEL_PRESSURE events are just 2 bytes, not 3.)
2024-06-30 22:47:38 +02:00
Attila M. Magyar
5360ba0000 VST3: store kAfterTouch events with the correct size
...otherwise MidiBuffer::push_back() will drop them.
2024-06-30 13:11:53 +02:00
41b6c8a5bf fix previous commit (typo) 2024-06-27 16:51:16 -06:00
8efab1c796 fix handling of MIDI controller MSB & LSB values
The MIDI specification makes it quite clear that when a receiver
receives the MSB of a 14 bit controller value, it should consider
the LSB reset to zero. This has been an error in Ardour for many,
many years, though likely of little consequence
2024-06-27 16:42:00 -06:00
da520cecf3
Yet another attempt at gcc-14 lstat/realpath (#9703 PR #893)
See also 4b8b5acfc4 and realpath(3)

```
realpath():
   _XOPEN_SOURCE >= 500
       || /* Glibc since 2.19: */ _DEFAULT_SOURCE
       || /* Glibc versions <= 2.19: */ _BSD_SOURCE
```
2024-06-27 17:01:46 +02:00
2e23ec4422
Use RCU to for IO::_ports (#9730) 1/2
This removes the _io_lock in favor of a RCU.
The reason for this change is to ensure data structure
consistency, notably iterators. Previously adding/removing
ports invalidated iterators, which caused [rare] crashes,
since IO::ports() simply returned a PortSet reference.

(This breaks API)
2024-06-24 22:19:22 +02:00
c94ca79798 provide access to the trace parser (if any) for a MidiPort 2024-06-21 20:31:29 -06:00
bbcaf617c4 async MIDI ports run output trace parser scanner if there is one 2024-06-21 15:46:59 -06:00
af9472ecb6 fix naming of MIDI scene changes
Or at least make the arithmetic precedence clearer
2024-06-21 15:46:59 -06:00
d7f9b659f2 slightly improve mgmt of shared_ptr<MIDISceneChange> 2024-06-21 15:46:59 -06:00
f54fd286ee MIDI scene changes should use bank 0 if no bank msg has been seen 2024-06-21 15:46:59 -06:00
10cd3c85cd when delivering a MIDI scene change, ensure trace parser sees the data 2024-06-21 15:46:59 -06:00
a0da78d8c5
VST3: do not expose hidden parameters as automatable 2024-06-20 16:32:53 +02:00
3efe7ff056
Special case DPF VST3 MIDI CC Ports (similar to JUCE) 2024-06-20 16:32:31 +02:00
d2fdd72bc4
Constrain gain-control range (notably trim) 2024-06-20 01:01:11 +02:00
e15c337f57
Fix crash (invalid Track Drag) when starting automation value edit
When double-clicking to edit a fader value three button press
events are created:
1. GDK_BUTTON_PRESS
2. GDK_BUTTON_PRESS
3. GDK_2BUTTON_PRESS

The first two start an Editor Drag, which later crashes in
Editor::mid_track_drag() gtk2_ardour/editor.cc:7067
2024-06-17 19:55:08 +02:00
1e5a5b6b4f do not have MIDI input follow selection when recording 2024-06-15 14:01:36 -06:00
0847dc8a37 when disconnecting a MIDI port for follows-selection, get ALL connections
without the 3rd argument, we only get information about ports that we own.
2024-06-14 22:17:41 -06:00
cf58a157e3 extend PortManager API to include 3rd argument used by backend get_connections()
Value is defaulted so this does not change behavior at all
2024-06-14 22:17:30 -06:00
dbaead18bd
Prevent locate while recording 2024-06-14 15:43:03 +02:00
1e491591c3
VST3: move runloop into backend (3/3) - old remove API 2024-06-13 21:36:06 +02:00
816860e0f5
VST3: move runloop into backend (1/3) 2024-06-13 21:35:51 +02:00
698ad071b7
VST3: prepare to provide a runloop to IAudioProcessor
Currently _run_loop is NULL (which is valid) until the
GUI is opened at least once. Next step is to move
the [static] runloop into libpbd.
2024-06-13 17:00:38 +02:00
b142fc4410
NO-OP: clarify maths 2024-06-12 18:30:01 +02:00
827be736ae
Convert rec-enable of old sessions 2024-06-11 23:57:13 +02:00
66ef68d46a
amend 16fb29d57 (ADM content creation) 2024-06-10 20:49:02 +02:00
acb5feec4a
Show master bus comment on session load #9718 2024-06-09 01:29:00 +02:00