Robin Gareus
08a9368adf
Allow calling Dropdown::set_active from a signal handler
...
This breaks a potential recursion when set_active() is called
from activate_item(). See also 88fc22610
2019-10-21 14:58:59 +02:00
Ben Loftis
b96d8e7ffa
Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
2019-10-20 22:24:32 -05:00
Robin Gareus
88fc226107
Add API to set select item from ArdourDropdown
...
This fixes an issue with scroll-wheel control which uses `get_active()`.
It work around an issue with gtkmm:
const MenuItem* get_active () const
void set_active (guint index)
and MenuList::activate_item() not emitting activate_item().
2019-10-20 21:21:57 +02:00
Robin Gareus
699a47cc65
Fix typo in bc363f1258
2019-10-19 02:15:13 +02:00
Robin Gareus
bc363f1258
Special case "Virtual Keyboard" to be available as external input
2019-10-18 23:40:40 +02:00
Robin Gareus
c4d7870c68
Allow to translate "Virtual Keyboard"
...
reserved_io_names[] already uses a translatable string for this.
2019-10-18 23:40:23 +02:00
Robin Gareus
eade673771
Expose virtual-keyboard port as async-port
2019-10-18 22:56:46 +02:00
Robin Gareus
f961fd4687
Add Virtual-Keyboard MIDI port
2019-10-18 03:42:41 +02:00
Robin Gareus
f4ebb5995d
NO-OP: indent, tabs/whitespace fixes
2019-10-18 03:41:45 +02:00
Robin Gareus
b4cbee724e
Fix a rare EventList race-condition/crash
...
The GUI thread may modify fade-in/out while the butler-thread
reads audio.
e.g. select a Range and click delete.
---
Thread 0:: Dispatch queue: com.apple.main-thread
0 libsystem_pthread.dylib 0x00007fffd45924fc pthread_mutex_lock + 0
1 libglib-2.0.0.dylib 0x00000001085a9d2a g_mutex_lock + 26
2 libevoral.dylib 0x0000000107fd0a49 PBD::Signal0<void, PBD::OptionalLastValue<void> >::operator()() + 57
3 libevoral.dylib 0x0000000107fd486d Evoral::ControlList::clear() + 253
4 libardour.dylib 0x00000001072ef9a5 ARDOUR::AudioRegion::set_fade_out(ARDOUR::FadeShape, long long) + 309
5 libardour.dylib 0x00000001072f19ea ARDOUR::AudioRegion::recompute_at_end() + 122
6 libpbd.dylib 0x00000001082993ff PBD::Stateful::resume_property_changes() + 191
7 libardour.dylib 0x00000001076476af ARDOUR::Playlist::cut(long long, long long, bool) + 575
8 libardour.dylib 0x0000000107646b5b ARDOUR::Playlist::cut_copy(boost::shared_ptr<ARDOUR::Playlist> (ARDOUR::Playlist::*)(long long, long long, bool), std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 187
9 libardour.dylib 0x0000000107647461 ARDOUR::Playlist::cut(std::__1::list<ARDOUR::AudioRange, std::__1::allocator<ARDOUR::AudioRange> >&, bool) + 33
10 Ardour.bin 0x00000001065f0fa0 RouteTimeAxisView::cut_copy_clear(Selection&, Editing::CutCopyOp) + 592
11 Ardour.bin 0x0000000106118a94 Editor::cut_copy_ranges(Editing::CutCopyOp) + 164
12 Ardour.bin 0x0000000106116053 Editor::cut_copy(Editing::CutCopyOp) + 1587
Thread 20 Crashed:
0 libardour.dylib 0x00000001072f4b19 ARDOUR::AudioRegion::body_range() const + 89
1 libardour.dylib 0x00000001072bd318 ARDOUR::AudioPlaylist::read(float*, float*, float*, long long, long long, unsigned int) + 1176
2 libardour.dylib 0x00000001072ac236 ARDOUR::AudioDiskstream::read(float*, float*, float*, long long&, long long, int, bool) + 854
3 libardour.dylib 0x00000001072abbb8 ARDOUR::AudioDiskstream::overwrite_existing_buffers() + 392
4 libardour.dylib 0x00000001077ef36a ARDOUR::Session::non_realtime_overwrite(int, bool&) + 186
5 libardour.dylib 0x00000001077ed7f0 ARDOUR::Session::butler_transport_work() + 1696
6 libardour.dylib 0x0000000107323425 ARDOUR::Butler::thread_work() + 149
7 libardour.dylib 0x000000010732334f ARDOUR::Butler::_thread_work(void*) + 95
2019-10-18 01:41:18 +02:00
Robin Gareus
88f9aaff7d
Add API to safely query timestamp of first/last control event
...
Direct calls to back()->when or front()->when are not safe
when the list is concurrently modified, or empty.
2019-10-18 01:37:56 +02:00
Robin Gareus
3ff1541825
Fix export w/o session-range (typo in 468731c14b)
2019-10-15 23:17:48 +02:00
Robin Gareus
9fa7e919a7
Improve multi-channel instrument listing
2019-10-15 16:02:47 +02:00
Robin Gareus
32a97d242e
Fix typos in AU channel-count calc
2019-10-15 15:24:50 +02:00
Robin Gareus
bcd1391bf7
API to count max multi-channel plugin outputs
2019-10-15 14:48:32 +02:00
Robin Gareus
0b377fc393
Detect plugin-name ambiguities
2019-10-15 14:04:26 +02:00
Robin Gareus
7e5120e7c9
NO-OP: indent, comments and consistency
2019-10-15 12:26:14 +02:00
Robin Gareus
7fb259ece2
Fix fan-out channel-assignment
2019-10-13 23:12:38 +02:00
Robin Gareus
52eea55988
Remove unused API declaration (removed in 789f08891b)
2019-10-13 04:12:02 +02:00
Paul Davis
bfb998ca0a
remove Session::AudioMidiSetupRequired signal (no longer necessary)
2019-10-12 12:45:13 -06:00
Paul Davis
789f08891b
remove responsibility for starting AudioEngine from Session
2019-10-11 10:25:32 -06:00
Paul Davis
3294f193fd
make error message very slightly more indicative of what might be happening when audioengine backend fails to start
2019-10-10 16:52:00 -06:00
Paul Davis
af82a06517
make BusProfile argument to new Session constructor be const (and in associated call tree)
2019-10-10 16:52:00 -06:00
Paul Davis
dd29e9b0e9
remove unnecessary template methods (replicated in libs/gtkmm2ext/doi.h
2019-10-10 16:52:00 -06:00
Robin Gareus
2c33d31bbb
NO-OP: whitespace
2019-10-10 23:59:05 +02:00
Robin Gareus
42df310c6f
Add "List/Browse" vector icon
2019-10-10 23:58:49 +02:00
Paul Davis
95676a5f66
add constructor
2019-10-07 20:50:08 -06:00
Robin Gareus
c663a2d8ef
Invert Pan-Azimuth (up means left)
...
It's a well established convention that pan y-axis automation,
or vertical uses (top) +1 for left.
This special cases rotary knobs (and horizontal sliders) to retain
a clockwise movement (or movement to the right) for panning to the
right.
2019-10-07 05:07:55 +02:00
Paul Davis
f470d3e856
remove all use of NO_PLUGIN_STATE #ifdef
...
We determined several years that we should never ever do this,
and changed the basis for the free/demo copy because of that.
2019-10-02 18:04:40 -06:00
Robin Gareus
bc3b658349
Prefer portable (MSVC?) getenv (amend 5ea54be)
2019-10-02 23:14:58 +02:00
Robin Gareus
5ea54beff1
Allow ARDOUR_AVG_DSP_LOAD for non-debug builds
2019-10-02 22:55:55 +02:00
Robin Gareus
27f6754f1a
Amend 903c3ec5a API rename
2019-10-02 21:28:13 +02:00
Robin Gareus
a7cb2055ec
Plugin type lookup does not change PI
2019-10-02 19:35:03 +02:00
Robin Gareus
539b61f127
Remove unused API (and some MIXBUS specifics)
2019-10-02 19:29:52 +02:00
Robin Gareus
e99fe62137
Optimize default case: no delay
2019-10-02 01:54:08 +02:00
Robin Gareus
ec2628f2ca
Fix thinko in cd5f70e69a (delayline buffer resize)
...
The delay-time itself can change arbitrarily, but the buffer-size
never shrinks.
If the buffersize grows it means that the new delay is longer than
the current one (or at least as large as any pending, not yet
active delay).
This is important for the mechanism that adjusts the read-pointer
to the new buffer-size.
2019-10-01 13:42:34 +02:00
Robin Gareus
07905f0776
Update Fluidsynth to v2.0.7
2019-09-30 23:12:32 +02:00
Robin Gareus
ecc2597870
Fix remaining doxygen warnings (!)
2019-09-30 21:03:29 +02:00
Robin Gareus
bfec73b8c3
NO-OP: whitespace, indent
2019-09-30 21:03:20 +02:00
Robin Gareus
feb5d1261e
Fix use of doxygen documented parameters in running text
2019-09-30 06:30:11 +02:00
Robin Gareus
ee54b13d6d
Fix some more doxygen warnings
2019-09-30 05:33:44 +02:00
Robin Gareus
6c83b6f47d
NO-OP: whitespace (use tab to indent)
2019-09-30 04:52:20 +02:00
Robin Gareus
959a37144b
Fix a few hundred doxygen warnings..
...
There are still over a hundred left, but this addresses many already.
In particular @param references to undocumented parameters.
Most notably in audio_backend.h
2019-09-30 04:45:59 +02:00
Robin Gareus
0daee87803
Ardour::IO is not latent by itself
2019-09-29 18:25:14 +02:00
Robin Gareus
f417bc07d0
Fix port-insert default latency
2019-09-29 18:25:14 +02:00
Robin Gareus
cd5f70e69a
Fix issues when delay-buffers are re-allocated
...
Previously buffers were dropped, and data was not copied to
newly allocated buffers. As side-effect the read-offset was not
adjusted either.
The distance between read and write-pointer needs to be maintained
(delay does not change). This needs to be accounted for, when the
buffer increases while read->write wraps around the old (smaller)
buffer. Previously this triggered an assert (in line 180)
2019-09-29 17:00:27 +02:00
Robin Gareus
1c680f116a
Emit signal when session latency was updated
2019-09-29 01:27:35 +02:00
Robin Gareus
16066786e3
Add Lua bindings related to latency compensation
2019-09-29 01:26:54 +02:00
Robin Gareus
430dae6250
Add Signal to indicate global delay compensation status
2019-09-29 01:26:52 +02:00
Robin Gareus
e1378e7be5
Handle case where an audio-port is added to a MIDI only delayline
2019-09-27 14:50:40 +02:00