13
0
Commit Graph

16816 Commits

Author SHA1 Message Date
78c5537639
Use MonitorReturn for Monitor Bus 2021-02-22 01:00:00 +01:00
114d5f20e6
Add Monitor Return
This is a special case of an Internal Return processor
dedicated to the monitor-section. The main use-case will
be to collect signals from physical ports in a realtime-safe
manner (no connections or Port creation)
2021-02-22 00:59:59 +01:00
b48ce43ade
Implement Input Monitoring 2021-02-22 00:59:59 +01:00
2556f47c2b
Move method exclusive/momentary-solo setup to libardour
This allows to re-use the method in various places, outside of
RouteUI (e.g. control surfaces, recorder page)
2021-02-22 00:59:58 +01:00
f2d2ea4baa
Refactor Solo/Mute release
This is in preparation to move RoueUI::SoloMuteRelease
to libardour to reuse the implementation in various places.
This also prepares the solo logic for exclusive port-monitoring.
2021-02-22 00:59:58 +01:00
ecdaf7136d
Add dedicated Monitor Port
This allows for rt-safe monitoring, collecting data
directly from input-ports without requiring a dedicated connection
or dynamic ARDOUR::AudioPort creation.
2021-02-22 00:59:57 +01:00
1610b0baae
MonitorSection: fade input in/out for AFL/PFL
This slowly un/mutes the direct monitor signal when listen state
changes.

Listen sends already fade in as well. However un-soloing still
hard-removes the listen send path.
2021-02-22 00:59:57 +01:00
18882ef17c
Lua: allow cast of ControlList to AL (for undo)
see also https://discourse.ardour.org/t/write-cc-automation-to-midi-region-via-lua/105512
2021-02-21 19:11:20 +01:00
4a5b355d3d
Handle JACK latency callbacks in sync with process thread #8304
see also b5e479dfc3
2021-02-20 00:46:47 +01:00
3f4e2fa348
ALSA: retain port-connections of slave devices
When the engine is re-started, ports should only be reconnected
when all slave devices are running. Previously those connections
were lost.
2021-02-19 14:03:37 +01:00
8089998eaa
Consistent DiskIO Processor naming
Use a name-prefix when creating the processor just like later
DiskReader::set_name() DiskWriter::set_name() do.
2021-02-19 14:03:32 +01:00
e6bbcd415d
Remove unused methods (to query public latency) 2021-02-19 14:03:27 +01:00
ae1eb0bbad
Backport VST3/musl support -- GH #596
This will be overwritten with the identical upstream fix
https://github.com/steinbergmedia/vst3_pluginterfaces/blob/master/base/fplatform.h#L98
with the next tools/update_vst3.sh run
2021-02-17 20:38:26 +01:00
d05572e14a
Fix round-corner backround of insensitive ArdourWidgets
ArdourButton draws a custom insensitive background, using
the color "gtk_background". This can conflict with gtk's
insensitive background color when using round-corners.
2021-02-14 22:53:18 +01:00
acae86781b
Fix race condition when deleting tracks
In rare cases it can happen that the GUI thread results in
a call to DropReferences(), while the backend (RCU) still has a
reference to the track and processes the track.

However the call to DropReferences, DiskIO processor will
have cleared the pointer to _track, leading to segfaults when
the processor runs.

Since the DIO processor is owned by the track, one cannot directly
pass a shared_ptr<Track>. That would keep the Track around forever.

However the DIO processor cannot exist without a track passing
a reference is acceptable.
2021-02-14 21:43:36 +01:00
dc56272753
Don't create timeline x-run markers by default 2021-02-14 19:44:39 +01:00
8486a938ed
Keep track of xruns per source when recording 2021-02-14 16:22:29 +01:00
d04713c0ab
Add missing class to canvas forward declarations 2021-02-14 00:54:17 +01:00
0253f3b4e4
Expose resampler quality (read-only) 2021-02-13 16:47:51 +01:00
64160e755d
VST3: improve verbose scanner output 2021-02-13 15:03:04 +01:00
01ac384380
Fix Intel/AMD FMA mix_buffers_with_gain()
see also 1fc8b55314
2021-02-13 01:05:01 +01:00
5c4ed8ee2b fix logic error when deciding whether we are actually changing speeds 2021-02-12 11:42:39 -07:00
YQ-YSY
8e7a23642c New Chinese translation for Ardour 6.6 libs_ardour_po_zh.po 2021-02-12 09:47:29 -07:00
YQ-YSY
aeca9d6095 New Chinese translation for Ardour 6.6 libs_gtkmm2ext_po_zh.po 2021-02-12 09:47:29 -07:00
YQ-YSY
12a411a002 Chinese translation Ardour for 6.6 libs_gtkmm2ext_po
Chinese translation Ardour for 6.6 libs_gtkmm2ext_po
2021-02-12 09:47:29 -07:00
YQ-YSY
a4347812d1 Ardour 6.6 Chinese translation for libs_gtkmm2ext_po
Ardour 6.6 Chinese translation  for libs_gtkmm2ext_po
2021-02-12 09:47:29 -07:00
d8eb016aaa use new _requested_transport_speed member in Session to correctly apply speed after changing direction 2021-02-12 09:36:52 -07:00
07c16d38a2 control surfaces: make methods used for transport control (BasicUI) do the right thing w.r.t. default speed 2021-02-12 09:36:52 -07:00
767253bbd8 add new transport related member to Session, and initialize _last_transport_speed
The missing initialization didn't cause a visible problem, but was added for completeness
2021-02-12 09:36:52 -07:00
f6150a7b3a
Add MTS support to ACE fluidsynth 2021-02-12 14:19:17 +01:00
John Emmas
a90e3efde5 For MSVC builds revert some mappings to use the heap based strategy rather than boost::aligned_storage and StackAllocator
It was initially thought that the runtime issues had been fixed in VS2015 but in fact it's still very problematic - even in VS2019 :-(
2021-02-11 09:51:17 +00:00
c33b40bb7f
Crash-test tester 2021-02-11 10:06:47 +01:00
Edgar Aichinger
8321e7d6a6 update german translation 2021-02-10 12:02:45 +01:00
65bc109849 implement Configuration::reset_default_speed_on_stop 2021-02-09 16:01:08 -07:00
220706459f fix problem with attempting to set virtual keyboard port pretty name from a port registration callback
The JACK API doesn't allow server calls from inside a server callback, even though JACK2 doesn't enforce this.

It would be nice to find a way to NOT call Session::setup_bundles() from every port registration callback, too.
2021-02-09 16:01:08 -07:00
f9b8b761e0 add parameter to control whether or not default speed is reset at transport stop 2021-02-09 15:58:58 -07:00
e67c925b1f
Auto-connect thread: only take process-lock if needed 2021-02-09 22:46:31 +01:00
John Emmas
15f12bd3a9 A few minor changes to keep VS2019 happy 2021-02-09 10:52:37 +00:00
7e74f9eb1e
Keep track of recently touched Controllable 2021-02-09 02:11:04 +01:00
c2aad41e46 libardour: default speed requires transport *and* engine speed
Retain engine speed across stop/start/locate, so that it is
possible to run a loop at non-unity speed. User must
explicitly reset to 1.0 if default speeds are set to !1.0
2021-02-05 22:24:02 -07:00
fb954f50d4
Prevent silentfile over-read #8563
Fixes negative read-count

```
Thread 45 (Thread 0x7fff9d79c640 (LWP 32440) "butler"):
#0 ?? () from /lib64/libc.so.6
#1 ARDOUR::SilentFileSource::read_unlocked (this=0x5555699f2160, dst=0x7fff9c5d8010, start=60547072, cnt=-47406) at ../libs/ardour/ardour/silentfilesource.h:58
#2 ARDOUR::AudioSource::read (this=0x5555699f2160, dst=0x7fff9c5d8010, start=60547072, cnt=262144) at ../libs/ardour/audiosource.cc:322
#3 ARDOUR::AudioRegion::read_from_sources (this=0x555570859780, srcs=std::vector of length 2, capacity 2 = {...}, limit=33675720, buf=0x7fff9c5d8010, position=60547072, cnt=262144, chan_n=0) at ../libs/ardour/audioregion.cc:747
#4 ARDOUR::AudioRegion::read_at (this=0x555570859780, buf=0x7fff9cdd9010, mixdown_buffer=0x7fff9c5d8010, gain_buffer=0x7fff677ff010, position=60547072, cnt=262144, chan_n=0) at ../libs/ardour/audioregion.cc:587
```
2021-02-05 16:06:55 +01:00
482507fabe
Add Lua bindings to modify plugin pin bypass/thru-map 2021-02-05 01:52:27 +01:00
634d325e5d
Prevent deadlock when disconnecting
The backend holds `_port_callback_mutex` while disconnecting ports.
In some cases disconnecting a port can drop the last reference
resulting in a port-deletion from the connection handler.
This in turn will eventually aquire the `_port_callback_mutex`
and deadlock.

This is now circumvented by using atomic operations instead of
taking a lock to set the `_port_change_flag`.

The flag is also used to trigger a latency update in some cases,
atomic is preferable to taking a lock to set this flag.

--

Full bt: https://paste.debian.net/1184056/
Short:

#1  in pthread_mutex_lock ()
#2  in ARDOUR::PortEngineSharedImpl::port_connect_add_remove_callback()
#3  in ARDOUR::BackendPort::~BackendPort()
#4  in ARDOUR::DummyPort::~DummyPort()
#6  in ARDOUR::DummyAudioPort::~DummyAudioPort()
#7  in boost::checked_delete<ARDOUR::BackendPort>(ARDOUR::BackendPort*)
#12 in boost::shared_ptr<ARDOUR::ProtoPort>::reset()
#13 in ARDOUR::Port::drop()
#14 in ARDOUR::Port::~Port()
#15 in ARDOUR::AudioPort::~AudioPort()
#17 in ARDOUR::AudioEngine::add_pending_port_deletion(ARDOUR::Port*)
#20 in boost::detail::sp_counted_base::release()
#37 in ARDOUR::PortManager::connect_callback() at libs/ardour/port_manager.cc:788
#38 in ARDOUR::DummyAudioBackend::main_process_thread() at libs/backends/dummy/dummy_audiobackend.cc:1018
2021-02-04 21:06:20 +01:00
30da8c00b5 fix (??) issue with transport control (stop after locate with no audio tracks)
Unclear why previous code used !tfsm->rolling() rather than tfsm->stopped() but this
now works as intended
2021-02-04 11:07:28 -07:00
acfa04d700
Update Ctrl-surface MIDI port list when ports change
This is a better variant of bbb6851468, directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
ed5a9979ea
Retain "Virtual Keyboard" pretty name across engine restarts 2021-02-04 05:23:17 +01:00
3d44f39c09
Report failed connections when reconnecting ports
This is needed to update the GUI (mixer-strip I/O buttons)
when the engine is re-started with different I/O.

When Port::reconnect() cannot re-connect the port (e.g.
because the corresponding hardware port is missing), the IO object
needs o be notified -> PostDisconnect() -> IO::disconnect_check.

While the port-manager re-establishes and re-connects port,
port_manager->running() == false, and Port::get_connections()
returns the Port::_connections set (not actual engine connections).
So _connections.clear() has to be called synchronize it with
the actual engine connection state.
2021-02-04 04:41:22 +01:00
25ab3b14c9
Don't run input meters (unused in Ardour 6) 2021-02-04 03:03:13 +01:00
162b6426d7
Fix fader font-size
This partially reverts 2abf9c66a4. The layout
of faders widgets is not persistent and re-created as needed.
2021-02-03 20:14:22 +01:00
f01ece1bd7 AU: Fix variable I/O instruments
Refactoring in 7ec10f7771 assumed that
audio inputs are always present.
2021-02-03 15:33:07 +01:00