* PRO: you can audition synths at the varispeed tuning; you can use x42 guitar tuner when stopped
* CON: this is NOT like a tape machine ... a tape machine has no 'speed' when stopped
ToDo: if we find that this is contentious, we could make a config var for it
* remove unused variables in session.h
* move default play speed (varispeed(sic)) into fsm
* request_transport_speed should -never- set the default_play_speed
Transport Masters and Async MIDI port already have a parser available, so
just connect to it.
Normal Midi ports are the only one that need to use the Midi Tracers parser.
Only basic midi ports use the _trace_parser and they enter
here via cycle_start which will pass the _trace_parser to
this function. No need to double up calls.
This fixes various issues, esp on macOS and Windows where
the window is only hidden, not re-stacked:
* plugin scan dialog hides the splash, but
the plugin-manager emits BootMessage
(this worked mostly because gtk event loop didn't
have time to catch up)
* More than one dialog can pop back/front the splash,
e.g. scripted session-setup or error messages when
loading recent sessions.
BindingProxy owns a PopUp prompter with 30 sec self-destruct
timeout. However ~BindingProxy explicitly destroys the PopUp.
Later the timeout can lead to a double-free.
This fixes a crash when deleting a plugin within 30 sec
after using MIDI learn.
MidiControlUI drops the reference to a given controllable in
its own thread. This can happen after the plugin is already
destroyed (even though the PBD::Controllable still exists).
This uses the existing optional runtime ffmpeg dependency to add support
for m4a files (and in theory whatever other file formats ffmpeg
supports) to the import audio dialog.
The same functionality is mostly already available via Session -> Open
Video, with the "import audio only" selection (even though m4a isn't
currently included as one of the video formats, it still works). Having
this in the import audio dialog however seems much more user friendly.
Harvid daemonizes and does not write anything
to stdout/err. as opposed to select(), poll() on
macOS does not return when the child process
terminates or is killed.
However poll() on an invalid FD does throw an
error and POLLNVAL is set.