Robin Gareus
c92c8c8fa2
VST3: fix deadlock when recalling program changes latency
...
The GUI thread may call set_program() which can triggers
the plugin directly calling restartComponent from the same
thread.
2024-08-24 11:26:49 +02:00
Robin Gareus
09bddcad10
NO-OP: fix function name spelling
2024-08-24 00:24:28 +02:00
Robin Gareus
66b3ad79c1
RegionFx: mark session dirty when adding/removing plugins
2024-08-24 00:23:24 +02:00
Robin Gareus
e419b314a2
RegionFx: handle missing plugin, retain state
...
Since RegionFx are significantly simpler compared
to processors, missing plugin state can directly be handled
in the implantation without creating a subclass similar to
UnknownProcessor.
2024-08-23 15:42:33 +02:00
Robin Gareus
b6e187193d
RegionFx: abstract Plugin tail API
2024-08-23 15:26:50 +02:00
Robin Gareus
fc07a92d36
Prepare GUI for missing (stub) RegionFx
2024-08-23 15:16:57 +02:00
Robin Gareus
a1ba561cc5
Improve reliability of MIDI event rec-box
...
Previously there was a race condition. DiskWriter::run()
cleared the gui_feed_buffer before writing new events.
If the GUI thread had not yet picked up the events by then
they were not displayed. Furthermore due to the try-lock,
some events may have been written to the buffer in the first
place.
This fixes missing events (notably stuck notes) in the red
record box while recording MIDI.
2024-08-22 18:34:37 +02:00
Robin Gareus
9df6d7c5fa
Fix Lua Audio to MIDI script MIDI channel (off by one)
2024-08-21 18:54:19 +02:00
Robin Gareus
9465ff16cb
Fix Route Fader (and mute) latency offset #9780
...
_output latency was not used for those. Processor automation
was not affected.
This also fixes the visual offset of automation vs buttons/slider
when the transport is not running.
2024-08-21 18:54:16 +02:00
Robin Gareus
908a402a75
Drop some shared pointer references after RCU writes
...
When removing instances from some RCU managed list or vector,
they can still live on as shared_ptr references on the
RCU's dead wood stack.
In many cases this is not an issue, in these cases it's prudent.
see also 44610c7877
2024-08-21 03:57:08 +02:00
Robin Gareus
4d1d938263
I/O Plugin: delete plugin after removing it
...
Previously this kept a shared pointer reference to the
plugin around, and ports remained registered.
See also 44610c7877 (RCU update)
2024-08-21 03:57:05 +02:00
Robin Gareus
1b07ad731e
RegionFX: use actual plugin tail
2024-08-20 18:58:45 +02:00
Robin Gareus
09a3c325ec
RegionFx: don't crash if plugin is missing on session load
2024-08-20 01:45:11 +02:00
Paul Davis
6de2d8f5c4
macOS: prevent the Quit main menu item from interferring with modal rules
2024-08-19 15:15:45 -06:00
Paul Davis
d455f06f51
fix trailing whitespace
2024-08-19 15:15:45 -06:00
Paul Davis
9e9164f0d0
remove unnecessary header include
2024-08-19 15:15:45 -06:00
Paul Davis
51d95c189f
use NSMenuValidation informal protocol to desensitize app menu items
2024-08-19 15:15:45 -06:00
Paul Davis
ce6a2d73d8
use new GDK modal notification to (try to) desensitize global app menu items
2024-08-19 15:15:45 -06:00
Paul Davis
b544ac832c
move gdk global for modal notification to be with other gdk globals
2024-08-19 15:15:45 -06:00
Paul Davis
0901b239c1
fix spelling error
2024-08-19 15:15:45 -06:00
Paul Davis
4ad332ae50
fix initial commit
2024-08-19 15:15:45 -06:00
Paul Davis
221fd82d59
initial infrastructure for handling modal dialogs on macOS
2024-08-19 15:15:45 -06:00
Robin Gareus
002eabc01f
RegionFX: replay control automation (2/2)
...
Trigger GUI updates when region-fx are automated
2024-08-19 22:46:56 +02:00
Robin Gareus
79ff99ba15
RegionFX: replay control automation (1/2)
...
This riffs off the previous commit, a simple way to replay
ctrl events without re-evaluating plugin automation line.
There may be a better way to handle this (e.g. replicate the
plugin for display only, evaluate on the fly in the UI thread)
Short of redesigning our disk-reader/playlist/region infrastructure
this is likely a sucks-least compromise for the time being.
2024-08-19 22:46:37 +02:00
Robin Gareus
4ff1de4c75
RegionFX: save and replay Plugin Parameter Outputs
...
This is somewhat experimental, and only works for plugins
that have DSP/UI separation and use [float] control ports
to pass information to the UI.
2024-08-19 22:40:58 +02:00
Robin Gareus
7dac8994f6
LV2/Generic UI: Remove direct calls to plugin API
...
Use Ardour Controllable indirection.
2024-08-19 22:38:50 +02:00
Robin Gareus
8e063110db
Fix assert() when aborting automation line drag
2024-08-19 22:38:40 +02:00
Robin Gareus
fb1ca67e39
RegionFX: add clear-automation action
2024-08-19 15:24:53 +02:00
Robin Gareus
50044bd059
RegionFX: clamp automation line to region extent
2024-08-19 06:35:35 +02:00
Robin Gareus
9311a767cc
Export Report needs to heed RESPONSE_CANCEL for close-all-dialogs
...
This still does not work on macOS. closing a session (using
the menu) while the dialog is visible still causes a crash:
`unload_session()` completes and destroys the session
before the dialog's run() method returns and destroys the dialog.
2024-08-19 03:42:19 +02:00
Robin Gareus
fdf5b0f8a1
Fix export with RegionFX
...
Effect processing requires session event pool, and
thread local disk reader working buffers.
2024-08-19 02:57:15 +02:00
Alexandre Prokoudine
409a5ee2ea
Update Russian translation
2024-08-19 01:44:27 +02:00
Robin Gareus
516f8a9d45
Add some tooltips to audio region properties dialog
2024-08-19 01:00:31 +02:00
Robin Gareus
961cf955d2
Hide warnings caused by glibmm/helperlist.h declutter build log
2024-08-19 00:22:38 +02:00
Robin Gareus
c16e31012b
RegionFX: include plugin tail with pre-fade Fx
2024-08-18 00:54:36 +02:00
Robin Gareus
c2169d6d51
Add GUI to toggle pre/post region fade FX
2024-08-18 00:54:33 +02:00
Robin Gareus
4bcf1d31c6
RegionFX: implement pre/post region-fade FX
2024-08-18 00:54:29 +02:00
Robin Gareus
8f5d6295b3
RegionFX: fix plugin cycle times
2024-08-18 00:54:09 +02:00
Robin Gareus
d8725ff3c8
RegionFX: fix crash when custom GUI thread sends change requests
...
This can happen with VST2s (e.g gvst) and some JUCE based plugins.
Previously that lead to a "programming error: no per-thread pool"
when the DR queues a overwrite buffer session-event.
2024-08-17 16:54:53 +02:00
Robin Gareus
76ee3339ac
RegionFX: fix variable I/O channel map
2024-08-17 16:47:53 +02:00
Robin Gareus
74a909e299
RegionFx: allow touch (for "show on touch")
2024-08-17 16:47:45 +02:00
Robin Gareus
d9752bb2c5
RegionFX: fix replicated channels
2024-08-17 16:47:38 +02:00
Robin Gareus
a2a9ceab92
RegionFX: actually activate plugin on load
2024-08-17 16:47:33 +02:00
Robin Gareus
15c7603fdd
Add API to query plugin tail duration
...
So far only VST3 plugins have an actual implementation.
2024-08-17 16:47:30 +02:00
Robin Gareus
b4fca7bc1c
Refactor API to allow VST2 plugins to callback to I/O and RegionFx
2024-08-17 16:47:26 +02:00
Robin Gareus
8c4819e588
AU: request offline processing
2024-08-17 16:47:21 +02:00
Paul Davis
35cb60c2dc
remove "auto-discover" buttom from Mackie GUI
...
It could never do anything useful anyway, and deadlocked due to bad
lock usage
2024-08-16 13:12:24 -06:00
Alexandre Prokoudine
95d1ae595a
Normalize the name of the E-MU Xboard 61 map
2024-08-16 18:16:15 +02:00
Robin Gareus
d0994dbfcc
Remove debug message
2024-08-16 17:25:54 +02:00
Robin Gareus
2411a6a62d
Windows: unregister fonts on crash
...
This allows to cleanly un/reinstall Ardour after
a crash. Previously registered fonts remained in-use,
and uninstall could not remove the files.
2024-08-16 16:58:57 +02:00