Paul Davis
54f810f90e
throw WrongProgram exception if session was modified with incompatible app
2024-07-11 19:10:14 -06:00
Paul Davis
4212e23e77
make "modified-with" a session member
2024-07-11 19:10:13 -06:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
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
Robin Gareus
d6b14e761b
Remove unused backend channel count config API
2024-07-10 15:39:01 +02:00
Paul Davis
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
Robin Gareus
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
Paul Davis
41b6c8a5bf
fix previous commit (typo)
2024-06-27 16:51:16 -06:00
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
c94ca79798
provide access to the trace parser (if any) for a MidiPort
2024-06-21 20:31:29 -06:00
Paul Davis
bbcaf617c4
async MIDI ports run output trace parser scanner if there is one
2024-06-21 15:46:59 -06:00
Paul Davis
af9472ecb6
fix naming of MIDI scene changes
...
Or at least make the arithmetic precedence clearer
2024-06-21 15:46:59 -06:00
Paul Davis
d7f9b659f2
slightly improve mgmt of shared_ptr<MIDISceneChange>
2024-06-21 15:46:59 -06:00
Paul Davis
f54fd286ee
MIDI scene changes should use bank 0 if no bank msg has been seen
2024-06-21 15:46:59 -06:00
Paul Davis
10cd3c85cd
when delivering a MIDI scene change, ensure trace parser sees the data
2024-06-21 15:46:59 -06:00
Robin Gareus
a0da78d8c5
VST3: do not expose hidden parameters as automatable
2024-06-20 16:32:53 +02:00
Robin Gareus
3efe7ff056
Special case DPF VST3 MIDI CC Ports (similar to JUCE)
2024-06-20 16:32:31 +02:00
Robin Gareus
d2fdd72bc4
Constrain gain-control range (notably trim)
2024-06-20 01:01:11 +02:00
Robin Gareus
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
Paul Davis
1e5a5b6b4f
do not have MIDI input follow selection when recording
2024-06-15 14:01:36 -06:00
Paul Davis
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
Paul Davis
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
Robin Gareus
dbaead18bd
Prevent locate while recording
2024-06-14 15:43:03 +02:00
Robin Gareus
1e491591c3
VST3: move runloop into backend (3/3) - old remove API
2024-06-13 21:36:06 +02:00
Robin Gareus
816860e0f5
VST3: move runloop into backend (1/3)
2024-06-13 21:35:51 +02:00
Robin Gareus
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
Robin Gareus
b142fc4410
NO-OP: clarify maths
2024-06-12 18:30:01 +02:00
Robin Gareus
827be736ae
Convert rec-enable of old sessions
2024-06-11 23:57:13 +02:00
Robin Gareus
66ef68d46a
amend 16fb29d57 (ADM content creation)
2024-06-10 20:49:02 +02:00
Robin Gareus
acb5feec4a
Show master bus comment on session load #9718
2024-06-09 01:29:00 +02:00
Paul Davis
0a01acc86a
add optional Location::Flags argument to Locations::mark_at
...
If specified, we will only return a mark whose flags match those passed in
2024-06-07 22:19:44 -06:00
Robin Gareus
8a145c3bc1
Fix Wsign-compare
2024-06-06 22:52:30 +02:00
Paul Davis
1dd7d2af1f
sort of NO-OP: follow if/return coding guidelines
2024-06-05 16:38:00 -06:00
Ben Loftis
0fc5b49d9f
build fix for mac
2024-06-05 02:02:12 +02:00
Robin Gareus
b9bca313d2
CoreMIDI: fix crash when receiving long MIDI messages
...
CoreMidiIo::recv_event imposes a limit of 1024 bytes/packet.
2024-06-04 16:43:20 +02:00
Paul Davis
3dd8b930e4
fix paste error
2024-06-03 17:24:36 -06:00
Paul Davis
144fe5b08a
fix issues with the length of captured MIDI regions when there are tempo changes present
2024-06-03 17:23:46 -06:00
Robin Gareus
40ef5f3b15
Fix repeat of stem-export of stereo channels
...
Restoring the export profile state previously added a new
Export Processor for each state for each channel to the same
route.
This fixes silent stem export channels after an initial
correct stem export (which saves ExportChannelConfiguration)
2024-06-03 22:26:09 +02:00
Paul Davis
ecf5f9b1d7
remove unused global static variable
2024-06-01 09:02:32 -06:00
Paul Davis
949b4d4017
fix reversed logic in test of Delivery::set_name()
...
Note that the Delivery::set_name() method worked correctly, but
the Route::set_name() method would return false incorrectly. This
appears to have no consequences.
2024-06-01 07:56:42 -06:00
Robin Gareus
4a99a40afd
Add options to create and locate to scene markers
2024-05-31 18:21:21 +02:00
Paul Davis
69d63bac92
do not plot ruler marks that are left of the current (scroll-adjusted) canvas edge
2024-05-29 14:13:47 -06:00