13
0
Commit Graph

31405 Commits

Author SHA1 Message Date
48225c10bd
Show error when session-archive loading fails 2021-03-11 18:25:22 +01:00
9f3fba6988
VST3: Prevent recursive endless resizing
Skip call to onSize() when the plugin's size already matches.

https://github.com/Ardour/ardour/pull/599
https://github.com/juce-framework/JUCE/pull/867
https://discourse.ardour.org/t/sonobus-vst3-gui-hogs-cpu-only-when-ran-inside-ardour-on-linux-but-not-windows/105573
2021-03-11 18:19:21 +01:00
e07b3104bb
Expose VST Micro Edit display option. 2021-03-10 17:57:42 +01:00
32bba6d7d1
Add option to not show VST3 Micro Edit ctrls by default 2021-03-10 17:44:38 +01:00
33de08e9e7
Do not commit empty split undo transactions
When no region(s) are selected and none are under the edit-point,
only a selection change was committed as undo action.
2021-03-10 14:20:24 +01:00
d5eaeb041b
Do not create empty, unused folders when packaging 2021-03-10 13:55:54 +01:00
bdc1cdc15f
Fix crash when separating ranges with automation
playlist->partition() calls DiskReader::playlist_ranges_moved()
which may add Panner and Fader automation state changes.

The reversible command has to be started before calling
playlist->partition(). Simply collecting playlist->rdiff() after
the fact is not sufficient.
2021-03-10 13:55:32 +01:00
9fb21a0905
Add API to determine undo status
This is is useful to determine if an undoable action was
performed before adding additional information (e.g. selection
changes) to the undo transaction.
2021-03-10 13:51:35 +01:00
1ef4fc1140
Show splash-screen content
Since switching to StartupFSM, the GUIIdle signal isn't available
connected at application start. The splash-screen was blank until
the main UI was up.
"Ardour is ready for use" was the only visible message.
2021-03-09 18:29:00 +01:00
John Emmas
3b3d362d56 Add a cast when using 'abs' (to keep MSVC happy) 2021-03-09 11:33:19 +00:00
bdd362ee24 Apply a name to eventboxen in the menu bar, so the theme can be applied 2021-03-08 18:37:54 -06:00
54ece22efb
Prevent denormals in Lua DSP state (LPF, Biquad) 2021-03-08 22:19:01 +01:00
cb6ad45e9d
Fix crash when CatchDeletion signal from self_delete arrives late
This is rather an unusual edge-case, seen on macOS when the UI
never continues past the first idle stage.
2021-03-08 17:15:03 +01:00
9ed877f0a1
NO-OP: re-indent and reduce scope 2021-03-07 00:12:29 +01:00
Artem Alimov
5add650871 Add lua methods to control range locations
Method Session:locations():range_starts_at(pos, slop, incl)
to search range by start point with some inaccuracy delta.
Similar to mark_at(pos, slop)

Method Session:locations():add_range(start, end)
to create new range and get it for later changes.
2021-03-07 00:12:13 +03:00
John Emmas
c294932142 When building 'libs/ardour/luabindings/cc' MSVC now requires me to add '/bigobj' to the compiler options 2021-03-06 11:15:39 +00:00
John Emmas
b625461132 Guard some code which isn't currently buildable with VS2019
For some unknown reason, VC++2019 won't let us take the address of std::list::unique() - although other std::list members seem okay. I've spent weeks tracking this down but there's no fix available AFAICT.

I've flagged it up to the MSVC development team - just don't hold your breath !!
2021-03-06 11:12:02 +00:00
e236c2ab0f
s/Plugin Manager/Plugin Selector/
The GUI allows to select and add plugins.
Managing plugins will be something different.
2021-03-04 22:09:17 +01:00
John Emmas
73b3ca30bb Add a missing 'const' qualifier to keep VC2019 happy 2021-03-03 12:25:47 +00:00
7143592e50
Fix MonitoringAutomation parameter-range 2021-03-03 02:15:25 +01:00
cb0b152b35
VST3: Fix MSVC related crashes
Do not simply allocate std::vector<> space but also initialize
elements. The data is later accessed as C-pointer array: &var[0].
With most compilers simply reserving space in the vector is
sufficient in order to later access the elements directly.
However actually placing objects in the vector before referencing
them is more correct.
2021-03-02 19:05:58 +01:00
e81794d878
Add preference to keep spilled automation-lanes visible 2021-03-02 19:00:23 +01:00
3722b8a94f
VST3: work around plugins with missing controller state
If a plugin implements Vst::IComponent::set_state() but
does not implement Vst::IEditController::setComponentState()
nor dedicated get/setState interface for the IEditController,
querying the parameters using Vst::IEditController::getParamNormalized()
returns values that do reflect the restored state.

In this case the host needs to save/restore all control-parameters,
and ignore values reported by ::getParamNormalized().

This fixes a state save/restore issue with softube.vst3, however
vstpresets are still broken: the GUI (IComponent) is updated,
however the controller isn't.
2021-03-02 03:22:25 +01:00
650f027a9b
Backport VST3 diagnostic pragma
Fixes excessive warnings when compiling on macOS.

This will be overwritten with the identical upstream fix
https://github.com/steinbergmedia/vst3_pluginterfaces/blob/master/base/falignpush.h
with the next tools/update_vst3.sh run
2021-03-01 22:14:38 +01:00
e3c3109618
Unsubscribe from signals when clearing references
This fixes crashes with plugins calling setDirty() when the
UI is closed. `plugin` has already been reset before
the actual window is closed:

`PluginUIWindow::~PluginUIWindow()` runs, and destroys the window,
here `~VST3NSViewPluginUI ()`. This closes the VST3 view, which
triggers a `VST3PI::setDirty`.
At this point in time `~PlugUIBase()` has not yet run, so all
signals are still connected.

setDirty() ends up calling PlugUIBase::update_preset_modified()
which access `plugin` pointer, which is NULL.
2021-03-01 22:11:15 +01:00
291de1d277
Fix OSX and non GCC builds 2021-03-01 16:20:38 +01:00
0d838355c3
RecorderUI: handle meter lineup level config changes 2021-02-28 20:57:22 +01:00
f8c75914c4
RecorderUI: handle meter-theme changes 2021-02-28 20:03:12 +01:00
b064b3c136 OSC: fix some compiler warnings 2021-02-28 20:01:06 +01:00
0c3eaf188b OSC: liblo compatibility fix
see also 770fd1519c
2021-02-28 20:00:04 +01:00
7195ca20e0
Update weak_libjack - https://github.com/x42/weakjack/
This fixes an issue with recent MSVC causing a compile-error
due to __attribute__((constructor))
2021-02-28 16:27:22 +01:00
b553b67407
Fix curl free() ambiguity - fixes windows issues
curl_free() is to be used for data allocated by
curl_easy_escape() or curl_easy_unescape() in libcurl.

This is unrelated to realloc/free in WriteMemoryCallback().
2021-02-28 15:17:30 +01:00
f8ba27f417
Work around crash #8586
MidiRegionView::select_notes() may call MRV::add_to_selection
which may call editor().get_selection().clear ();
This in turn clears the pending_midi_note_selection, invalidating
iterator.

This bug was introduced in 7cf435a876 (6.5.148)
2021-02-28 14:58:18 +01:00
770fd1519c
Liblo compat fix
Upstream liblo changed the opaque type `lo_message` from void*
to a custom struct {}.

2c1ef1c682/
2021-02-28 02:25:02 +01:00
0f63cba3c7
Fix audition-tool
* Don't set default speed when using audition
* Use actual engine speed, since v6
  Session::transport_speed is {-1, 0, 1}
2021-02-27 23:12:15 +01:00
51cba19eaf
Fix big clock window record-state info
When showing the clock window after starting to record,
the record-state was not correctly indicated.
2021-02-27 19:25:45 +01:00
81d833e938
Fix Windows builds, declare class-keys for bindings 2021-02-27 16:51:37 +01:00
003245654a
Allow auto-start if there is no backend information for the session 2021-02-27 16:41:09 +01:00
835f30e5f5
Consistency: replace "x-run" with "xrun" (2/2) 2021-02-26 22:22:57 +01:00
ace11bd243
Consistency: replace "x-run" with "xrun" (1/2) 2021-02-26 22:22:08 +01:00
355528781d
Fix Bundle Editor: show connected ports
PortGroupList::gather() first adds UserBundle ports to
`system->add_bundle (*i, allow_dups);`

That can include ports that are already associated with the
current bundle. The port in this case has the Bundle's name.
Those ports are later removed in BundleEditorMatrix::setup_ports
`_ports[OTHER].remove_bundle (_bundle);`

However we do need to show physical ports by their name, even
if they're identical to the already associated bundle to allow
disassociating them.
2021-02-26 19:14:57 +01:00
4716f34c28
UserBundle: Allow adding/removing ports
Clean up internal API confusion
- can_add_channels_proxy () -- checks presence of io
- can_add_channel_proxy () -- checks io->can_add_port()

UserBundle don't have a PortGroup::_bundle reference
that can be used to lookup the IO via io_from_bundle().

While BundleEditorMatrix::can_add_channels_proxy() was overriden
to allow adding I/Os, can_add_channel_proxy() later prevented that.

This further prevents removing the last port, preventing empty bundles.
2021-02-26 15:49:07 +01:00
017b272864
Update I/O Button when bundles change
This fixes an issue with the connection button still showing
the name of a Bundle even after deleting it, or displaying an
old name after renaming a bundle.
2021-02-26 15:49:04 +01:00
Cameron
c075d3a026
prevent registering multiple identical file descriptors
fix indentation

fix more indentation
2021-02-26 15:47:40 +01:00
John Emmas
74670d2789 Derive some functions from RecInfoBox::update() (in the derived classes)
For whatever reason, MSVC doesn't like us connecting so many signals to 'RecInfoBox::update()' (crashes the Debug build)
2021-02-26 13:07:35 +00:00
739ee688bf
Fix Bundle I/O direction
With bundles `ports_are_inputs()` indicates inputs that Ardour
can write to (data sinks, for playback).

BundleEditor::input_or_output_changed () set this correctly.
2021-02-26 13:44:04 +01:00
1ae8ebf7c0
Fix OSX/PPC builds
monitor_port.cc:164: error: reference to 'AudioBuffer' is ambiguous
candidates are:
 CoreAudio.framework/Headers/CoreAudioTypes.h:106: typedef struct AudioBuffer AudioBuffer
 ardour/audio_buffer.h:34: error: class ARDOUR::AudioBuffer
2021-02-26 13:38:29 +01:00
d2d268263c
Add Lua Bindings to access Bundles 2021-02-26 13:34:24 +01:00
61b29c5810
Fix track-record-axis cleanup, duplicate self delete
Also hide/delete IOSelector dialogues early on when closing
the session.
2021-02-26 03:08:35 +01:00
ad9e44e92a
RecorderUI: consistent rec-arm button size
The rec-arm circle diameter is given by 0.5 * min (width, height).
For mono tracks the diameter is limited with the height of the
track. When more channel meters are visible the height increases and
the rec-arm circle grows.

The solution here is to constrain the rec-arm button width to its
minimum and not grow to have the same width as other buttons.

This also changes the default meter-height so mono and stereo tracks
have the same height (with default scaling).
2021-02-26 00:02:50 +01:00