this really tries to do the right thing regarding meta-events we're interested in,
and channel events we're interested in, no matter how they are distributed across
different channels in the SMF.
it augments/extends the work started in 8a554f659c
Quantize, Legatize, Transform and Remove Overlaps (negative legatize) are all handy, and should be accessible
here. There may be other operations to add to this menu in the future
The RouteGroup containing the deleted routes emits the RouteRemoved signal; Session handles this
and if the RouteGroup is now empty, deletes the RouteGroup *while in the middle of the signal
emission process*. This deletes the Signal (since it was owned by the RouteGroup) which leads
to a crash inside the signal emission code, since that is now running "on" a deleted Signal
object.
This change simply makes that signal static, and so deleting the RouteGroup has no effect
on the Signal itself.
More changes to come related to better (shared_ptr<RouteGroup>) mgmt of RouteGroup lifetimes.
This reverts commit 0ddc050555.
It is not clear what this commit was really trying to do - when canvas items
are deleted they are removed from their parent, so just *not* deleting them
should not by itself fix an issue.
It turns out that not deleting the canvas item means that it remains in the
canvas scene graph to deliver events to, at which time it references its
now-deleted owner object, leading to a crash.
We need to keep an eye open for crashes resembling the double-free that this
reverted commit claimed to fix.
```
== Info: WARNING: disabling hostname validation also disables SNI.
```
which leads to a "431 Misdirected Request" reply for servers
with shared hosting.
This handles the case where only part of a bus' ports are
connected. This can happen when a given speaker configuration
is not directly accepted, and the plugin provides more I/O than
requested.
This fixes some plugins that require a valid Bus/SpeakerArrangement
setting to set the available per bus I/O channel-count.
(e.g. Altiverb). Most other VST3s initially announce all
available channels.
TODO: check that this does not break plugins with optional
busses (sidechain in, multi-out instruments)