Commit graph

16800 commits

Author SHA1 Message Date
Robin Gareus
8486a938ed
Keep track of xruns per source when recording 2021-02-14 16:22:29 +01:00
Robin Gareus
d04713c0ab
Add missing class to canvas forward declarations 2021-02-14 00:54:17 +01:00
Robin Gareus
0253f3b4e4
Expose resampler quality (read-only) 2021-02-13 16:47:51 +01:00
Robin Gareus
64160e755d
VST3: improve verbose scanner output 2021-02-13 15:03:04 +01:00
Robin Gareus
01ac384380
Fix Intel/AMD FMA mix_buffers_with_gain()
see also 1fc8b55314
2021-02-13 01:05:01 +01:00
Paul Davis
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
Paul Davis
d8eb016aaa use new _requested_transport_speed member in Session to correctly apply speed after changing direction 2021-02-12 09:36:52 -07:00
Paul Davis
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
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
Paul Davis
65bc109849 implement Configuration::reset_default_speed_on_stop 2021-02-09 16:01:08 -07:00
Paul Davis
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
Paul Davis
f9b8b761e0 add parameter to control whether or not default speed is reset at transport stop 2021-02-09 15:58:58 -07:00
Robin Gareus
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
Robin Gareus
7e74f9eb1e
Keep track of recently touched Controllable 2021-02-09 02:11:04 +01:00
Paul Davis
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
Robin Gareus
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
Robin Gareus
482507fabe
Add Lua bindings to modify plugin pin bypass/thru-map 2021-02-05 01:52:27 +01:00
Robin Gareus
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
Paul Davis
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
Robin Gareus
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
Robin Gareus
ed5a9979ea
Retain "Virtual Keyboard" pretty name across engine restarts 2021-02-04 05:23:17 +01:00
Robin Gareus
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
Robin Gareus
25ab3b14c9
Don't run input meters (unused in Ardour 6) 2021-02-04 03:03:13 +01:00
Robin Gareus
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
Robin Gareus
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
Robin Gareus
b50a6fbe17
Fix LV2 boolean Atom values size #8558
As per lv2/atom.lv2/atom.h
LV2_Atom_Bool is-a LV2_Atom_Int, which uses int32_t
2021-02-02 22:41:57 +01:00
Robin Gareus
4f87d59576
Reduce InternalReturn inheritance
InternalReturn makes no use of Return or IOProcessor methods
or members. It is a truly independent Processor.
2021-02-01 23:49:49 +01:00
Robin Gareus
74566fc006
Add "+" icon 2021-01-30 16:47:44 +01:00
John Emmas
b496a71d2e Some preliminary changes needed to support building with VS2019
(these get me about as far as 'libardour' )
2021-01-30 13:55:25 +00:00
Robin Gareus
2e5ba08286
Add signal to indicate any track rec-arm change 2021-01-30 02:38:54 +01:00
Robin Gareus
2abf9c66a4
Fix size-request that rely on Pango::Layout
A Pango::Layout created by Gtk::Widget::get_pango_context ()
does not have any font set. The Font is inherited from the
layout's context.

The actual font is set when the layout is used in
on_expose_event() via get_window ()->create_cairo_context ().

In some cases we rely on the font-size to calculate the widget's
size before rendering. At this point in time there is no drawing
context from which to inherit the style.

Furthermore, even after a call to `ensure_style()` in the c'tor
of a Widget get_font() simply returns the default value.

All Widgets that rely an Pango::Layout font size during
size-requests have to explicitly set the font.

This fixes various overlarge buttons with the initial default layout.
2021-01-30 02:23:35 +01:00
John Emmas
42aef22e17 Add/remove source(s) in our MSVC project (gtkmm2ext) 2021-01-28 10:50:27 +00:00
Robin Gareus
42ac0f1d64
ArdourButton: Render text on pixel boundaries
This fixes some occasional blurry font display when text
was rendered to non-integer pixel positions.
2021-01-27 18:33:03 +01:00
Robin Gareus
6636bba6ae
Add missing file (amend 70ad205bc1) 2021-01-27 04:42:38 +01:00
Robin Gareus
70ad205bc1
Separate static widget theme into abstract class
This allow the style to be used in classed that are not
directly derived from Ardour's CairoWidget, notably
container widgets or plugin UIs.
2021-01-26 23:37:54 +01:00
Robin Gareus
e78de225d4
ArdourButton: LED-sized buttons w/o LED
This is useful for consistent layout in the recorder Window,
where Buttons are either push-buttons or LED toggle-buttons.
2021-01-25 19:18:56 +01:00
Robin Gareus
f0a89c4f1d
ALSA: allow to select clock-source when using multiple devices 2021-01-24 18:23:37 +01:00
Len Ovens
cd524f70dc OSC, strip and select share all main strip functions
Allow blocking strip commands for master or monitor
2021-01-23 21:18:32 -08:00
Len Ovens
a9f0f771c1 Reuse the same code for strip and select
Combine Maser and Monitor to reuse code

Started adding query functionality

	Added query functionality to all touchosc fixed commands
2021-01-23 21:17:46 -08:00
Robin Gareus
ed603ea8dd
Add Playlist::set_name() Lua binding & unique name check
Note: Previously only the GUI dialog to rename playlists
performed the test to check for unique playlist names.
2021-01-23 23:44:31 +01:00
Robin Gareus
e07e9eb2da
Fix typo in vst3-scanner --help text 2021-01-23 23:43:14 +01:00