13
0
Commit Graph

39348 Commits

Author SHA1 Message Date
66b3ad79c1
RegionFx: mark session dirty when adding/removing plugins 2024-08-24 00:23:24 +02:00
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
b6e187193d
RegionFx: abstract Plugin tail API 2024-08-23 15:26:50 +02:00
fc07a92d36
Prepare GUI for missing (stub) RegionFx 2024-08-23 15:16:57 +02:00
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
9df6d7c5fa
Fix Lua Audio to MIDI script MIDI channel (off by one) 2024-08-21 18:54:19 +02:00
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
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
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
1b07ad731e
RegionFX: use actual plugin tail 2024-08-20 18:58:45 +02:00
09a3c325ec
RegionFx: don't crash if plugin is missing on session load 2024-08-20 01:45:11 +02:00
6de2d8f5c4 macOS: prevent the Quit main menu item from interferring with modal rules 2024-08-19 15:15:45 -06:00
d455f06f51 fix trailing whitespace 2024-08-19 15:15:45 -06:00
9e9164f0d0 remove unnecessary header include 2024-08-19 15:15:45 -06:00
51d95c189f use NSMenuValidation informal protocol to desensitize app menu items 2024-08-19 15:15:45 -06:00
ce6a2d73d8 use new GDK modal notification to (try to) desensitize global app menu items 2024-08-19 15:15:45 -06:00
b544ac832c move gdk global for modal notification to be with other gdk globals 2024-08-19 15:15:45 -06:00
0901b239c1 fix spelling error 2024-08-19 15:15:45 -06:00
4ad332ae50 fix initial commit 2024-08-19 15:15:45 -06:00
221fd82d59 initial infrastructure for handling modal dialogs on macOS 2024-08-19 15:15:45 -06:00
002eabc01f
RegionFX: replay control automation (2/2)
Trigger GUI updates when region-fx are automated
2024-08-19 22:46:56 +02:00
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
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
7dac8994f6
LV2/Generic UI: Remove direct calls to plugin API
Use Ardour Controllable indirection.
2024-08-19 22:38:50 +02:00
8e063110db
Fix assert() when aborting automation line drag 2024-08-19 22:38:40 +02:00
fb1ca67e39
RegionFX: add clear-automation action 2024-08-19 15:24:53 +02:00
50044bd059
RegionFX: clamp automation line to region extent 2024-08-19 06:35:35 +02:00
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
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
409a5ee2ea Update Russian translation 2024-08-19 01:44:27 +02:00
516f8a9d45
Add some tooltips to audio region properties dialog 2024-08-19 01:00:31 +02:00
961cf955d2
Hide warnings caused by glibmm/helperlist.h declutter build log 2024-08-19 00:22:38 +02:00
c16e31012b
RegionFX: include plugin tail with pre-fade Fx 2024-08-18 00:54:36 +02:00
c2169d6d51
Add GUI to toggle pre/post region fade FX 2024-08-18 00:54:33 +02:00
4bcf1d31c6
RegionFX: implement pre/post region-fade FX 2024-08-18 00:54:29 +02:00
8f5d6295b3
RegionFX: fix plugin cycle times 2024-08-18 00:54:09 +02:00
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
76ee3339ac
RegionFX: fix variable I/O channel map 2024-08-17 16:47:53 +02:00
74a909e299
RegionFx: allow touch (for "show on touch") 2024-08-17 16:47:45 +02:00
d9752bb2c5
RegionFX: fix replicated channels 2024-08-17 16:47:38 +02:00
a2a9ceab92
RegionFX: actually activate plugin on load 2024-08-17 16:47:33 +02:00
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
b4fca7bc1c
Refactor API to allow VST2 plugins to callback to I/O and RegionFx 2024-08-17 16:47:26 +02:00
8c4819e588
AU: request offline processing 2024-08-17 16:47:21 +02:00
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
95d1ae595a Normalize the name of the E-MU Xboard 61 map 2024-08-16 18:16:15 +02:00
d0994dbfcc
Remove debug message 2024-08-16 17:25:54 +02:00
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
d4b71a7777
VST3: correctly set offline processing 2024-08-15 15:03:42 +02:00
8a8ae7069e
Fix edge-case pre-roll required for looping
This is mainly for the benefit of Mixbus, where input_latency
is not propagated upwards from the master bus (no direct
connection).

In Ardour's case _worst_input_latency >= _worst_route_latency
unless a given track with latent plugin is not connected.

Previously looping became out of sync (normal playback was not
affected) when a track had a latent plugin.
2024-08-14 21:50:58 +02:00