fc5076f926
refactor plugin scan dialog into its own object
2019-10-24 21:32:46 -06:00
f40b859ff7
add startupFSM enums to enumwriter
2019-10-24 21:32:46 -06:00
b62091d7d2
add new DEBUG bit for GuiStartup
2019-10-24 21:32:46 -06:00
64af49f6c3
non-GUI startup should only use plugin cache and not discover new ones
2019-10-24 21:32:46 -06:00
015eb03bd5
remove debug output
2019-10-24 21:32:46 -06:00
a4723ab8d9
NOOP: newline removal; space injection
2019-10-24 21:32:46 -06:00
4abdfe19d1
don't inadvertently create a Splash when a dialog is shown
2019-10-24 21:32:46 -06:00
84b34f9df1
change rationale for deciding whether the "discover plugins" button appears in the new user wizard
2019-10-24 21:32:46 -06:00
362956dd7c
do not scan (discover) (new) plugins when running without a GUI
2019-10-24 21:32:46 -06:00
58e8fb7aab
alter ARDOUR::init() API to specify whether a GUI is in control or not
2019-10-24 21:32:46 -06:00
3f2f517291
Rough-in gtk-pianokeyboard C -> C++
2019-10-24 19:59:22 +02:00
7664f8fd29
Require all terms of space-separated plugin search filter string
2019-10-24 19:47:32 +02:00
aaae93cae3
Return key-focus to piano-keyboard
2019-10-24 05:13:56 +02:00
406bd1bf07
Prepare key-binding display
2019-10-24 05:13:13 +02:00
7f11d13c8a
Fix prev commit, g_setenv() params
2019-10-23 23:59:59 +02:00
81ef802869
Update MacOS installer to directly run Ardour w/o script wrapper
2019-10-23 22:55:10 +02:00
9cae196a04
Allow to run Ardour without start-script on MacOS
...
This might break JACK, since the previous environment
is no longer re-set before calling JackConnection::open(), then
again, no Ardour does not un/set any critical env variables on MacOS.
2019-10-23 22:54:19 +02:00
7060ba4c1d
Fix strict-i/o override on session-load (amend 31847f88ef)
...
Plugins may override strict-i/o, and in order to know do this
the plugin needs to be instantiate first.
2019-10-23 01:36:33 +02:00
496e6f2a4c
New implementation for single-fader mackie devices (reverts b96d8e)
2019-10-22 14:39:38 -05:00
f3e6f60242
Virtual-keyboard: add option to transpose
2019-10-21 19:31:25 +02:00
226cac95e7
NO-OP: whitespace
2019-10-21 16:08:28 +02:00
35647577e0
NO-OP: whitespace
2019-10-21 16:08:22 +02:00
3daf16dc3a
Virtual-keyboard: cont'd initial development:
...
* Reset default note range to 0..127 for step-entry and other users
* Allow to print label "C-<n>" on keyboard
* Fix 6 octave note range
* Save/load user settings in virtual-keyboard window
2019-10-21 16:07:12 +02:00
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
b523583bb4
Virtual-Keyboard significant overhaul:
...
* fix key-range off-by-one 0..127
* allow to shift octave
* allow to configure note range
* highlight grand-piano range and keyboard-shortcut range
* proper piano layout (black key offsets)
* add support for DVORAK keyboard layout
(still incomplete: settings are not yet saved/restored,
_piano_key_velocity should become a HSliderController, ...)
2019-10-21 05:42:05 +02:00
b96d8e7ffa
Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
2019-10-20 22:24:32 -05:00
92173ca118
Virtual-Keyboard: Fix use of scrollwheel on dropdowns
2019-10-20 21:22:38 +02:00
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
20daca9290
Virtual-Keyboard: save/restore state
2019-10-20 20:53:40 +02:00
9c00d6216a
Virtual-keyboard: add a pitch-bender
2019-10-20 18:29:23 +02:00
e63c2133e5
Virtual-keyboard: add CCs, bank/patch selector
2019-10-20 02:44:16 +02:00
ce13979175
Increase black key length
2019-10-20 02:44:16 +02:00
John Emmas
a81ad91294
Add/remove source(s) in our MSVC project (gtk2_ardour)
2019-10-19 16:05:42 +01:00
7e10eec3c2
Use conf.fatal for fatal configuration errors
2019-10-19 02:22:59 +02:00
84efcb2534
Fix Python3 incompatible syntax
2019-10-19 02:22:59 +02:00
a1d5499f40
Fix typo
2019-10-19 02:22:59 +02:00
699a47cc65
Fix typo in bc363f1258
2019-10-19 02:15:13 +02:00
bc363f1258
Special case "Virtual Keyboard" to be available as external input
2019-10-18 23:40:40 +02:00
c4d7870c68
Allow to translate "Virtual Keyboard"
...
reserved_io_names[] already uses a translatable string for this.
2019-10-18 23:40:23 +02:00
19e4f47b4b
Cont'd work on Virtual-keyboard
...
* allow gtk_pianokeyboard to respond to y-axis click position
and include MIDI velocity with note-on signal
* add configuration settings to virual-keyboard
min/max velocity, keyboard-layout
* add a CC7 controller knob
2019-10-18 22:56:46 +02:00
148a9682be
Remove redundant port-owner check
...
Ports owned by Ardour are already filtered out by
PortManager::get_known_midi_ports() ->
PortManager::fill_midi_port_info_locked()
This change is in preparation for allowing to expose Ardour's
"Virtual MIDI Keyboard" keyboard (which is owned by Ardour).
2019-10-18 22:56:46 +02:00
f0d2327af0
Use AsyncMIDIPort API
2019-10-18 22:56:46 +02:00
eade673771
Expose virtual-keyboard port as async-port
2019-10-18 22:56:46 +02:00
0d86819a2b
fix two thinkos with startup sequence
...
1) audio/MIDI setup was being shown unnecessarily
2) could crash if entire startup sequence passed without any dialogs being necessary
2019-10-18 00:07:31 -06:00
ebb89ba805
Super basic Virtual-Keyboard UI
2019-10-18 03:50:52 +02:00
f961fd4687
Add Virtual-Keyboard MIDI port
2019-10-18 03:42:41 +02:00
f4ebb5995d
NO-OP: indent, tabs/whitespace fixes
2019-10-18 03:41:45 +02:00
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
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
3ff1541825
Fix export w/o session-range (typo in 468731c14b
)
2019-10-15 23:17:48 +02:00