Robin Gareus [Thu, 31 Oct 2019 15:33:56 +0000 (16:33 +0100)]
Remove unused string translation
Robin Gareus [Thu, 31 Oct 2019 14:55:46 +0000 (15:55 +0100)]
Consolidate automation and meter-point strings
This also properly selects texts in dropdown-menus on the mixer-strip,
panner and plugin-controls, gain-meters.
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 13:38:26 +0000 (14:38 +0100)]
Highlight the currently selected item in ArdourDropdown & co
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 13:21:57 +0000 (14:21 +0100)]
Workaround a GTKMenu bug in ArdourDropdown & co.
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 10:34:36 +0000 (11:34 +0100)]
Work around an initialization bug of GTK menus
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 09:42:37 +0000 (10:42 +0100)]
Update |offset| instead of changing the formula
So that the test to see if it fits also takes the new offset into
account.
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 09:27:16 +0000 (10:27 +0100)]
Align vertical centers of widget and active menuitem
Julien "_FrnchFrgg_" RIVAUD [Thu, 31 Oct 2019 09:26:06 +0000 (10:26 +0100)]
Fix a thinko in x position of menu popups
This has lasted without being noticed because menus that big are not
common.
Robin Gareus [Wed, 30 Oct 2019 23:22:26 +0000 (00:22 +0100)]
NO-OP: whitespace
Robin Gareus [Wed, 30 Oct 2019 23:22:12 +0000 (00:22 +0100)]
Declare helper function static (don't export)
Julien "_FrnchFrgg_" RIVAUD [Wed, 30 Oct 2019 22:53:49 +0000 (23:53 +0100)]
Try harder to put the active item under the mouse (ArdourDropdown)
Robin Gareus [Wed, 30 Oct 2019 22:51:53 +0000 (23:51 +0100)]
Update latency-compensation when re-ordering processors
When re-ordering processors, the route's own latency does not
change (at first).
But it might if sends or plugins with side-chains a involved.
Robin Gareus [Wed, 30 Oct 2019 22:45:27 +0000 (23:45 +0100)]
NO-OP: whitespace/comments
Robin Gareus [Wed, 30 Oct 2019 14:35:23 +0000 (15:35 +0100)]
Suggest multi-out of instruments by default
When a user picks a N-channel instrument with strict i/o.
Offer N-channel (with optional fan-out) as default.
Paul Davis [Wed, 30 Oct 2019 00:20:55 +0000 (18:20 -0600)]
fix vanished audio/MIDI setup window after "Start" is clicked anytime other than during startup
Paul Davis [Wed, 30 Oct 2019 00:09:55 +0000 (18:09 -0600)]
fix appearance of SessionDialog presented after Session > New
Needed to be told "require_new" to make sure the correct display is shown
Paul Davis [Tue, 29 Oct 2019 22:19:54 +0000 (16:19 -0600)]
missing part of working looping
Paul Davis [Tue, 29 Oct 2019 22:16:20 +0000 (16:16 -0600)]
get looping to work again
Paul Davis [Tue, 29 Oct 2019 22:15:38 +0000 (16:15 -0600)]
fix handling of deferred events in transportFSM
tfsm events live on intrusive lists, with only 1 hook, which means they
can only be on one list at a time, and cannot be deleted while part of
the list. This wasn't being addressed properly when deferring (and
undeferring) events.
Robin Gareus [Mon, 19 Mar 2018 00:33:13 +0000 (01:33 +0100)]
Customize Lua GC, add object-memory-lock API.
Add custom API to prevent Lua Objects from being garbage collected.
This is intended to for Ardour LuaBridge bindings (~1MB Objects:
tables, functions and userdata).
The bindings are persistent and the gc can skip them in mark & sweep
phases. This is a significant performance improvement for garbage
collection.
Note. The next version of Lua (5.4) will come with a generational-gc
rather than an incremental, so extending the API at this point in time
is acceptable.
Robin Gareus [Tue, 29 Oct 2019 04:36:24 +0000 (05:36 +0100)]
Update Lua to upstream 5.3.5
Paul Davis [Mon, 28 Oct 2019 23:34:38 +0000 (17:34 -0600)]
improve debug output
Paul Davis [Mon, 28 Oct 2019 23:34:23 +0000 (17:34 -0600)]
fix thinko
Paul Davis [Mon, 28 Oct 2019 23:24:21 +0000 (17:24 -0600)]
limit waveview render threads to 8
Paul Davis [Mon, 28 Oct 2019 23:23:54 +0000 (17:23 -0600)]
provide a mechanism to decide if Session::update_latency_compensation() is being called as part of a callback from the backend.
If it is, do not call AudioEngine::update_latencies() to avoid JACK1-style deadlock
Paul Davis [Mon, 28 Oct 2019 23:21:46 +0000 (17:21 -0600)]
fix mistakenly-placed semi-colon
Paul Davis [Mon, 28 Oct 2019 22:55:29 +0000 (16:55 -0600)]
to avoid deadlock in JACK1 scenarios, do not invoke AudioEngine::update_latencies() from update_latency_compensation() if called from a process thread
Paul Davis [Mon, 28 Oct 2019 22:53:00 +0000 (16:53 -0600)]
better comments
Paul Davis [Mon, 28 Oct 2019 22:52:18 +0000 (16:52 -0600)]
add new debug bit (DebugTimestamps) that adds timestamps to all debug messages
Paul Davis [Mon, 28 Oct 2019 22:07:38 +0000 (16:07 -0600)]
add DEBUG_TRACE for all (?) backend callbacks
Paul Davis [Mon, 28 Oct 2019 21:55:01 +0000 (15:55 -0600)]
sort debug bits in libardour alphabetically
Paul Davis [Mon, 28 Oct 2019 21:54:18 +0000 (15:54 -0600)]
add new debug bit for backend callbacks
Paul Davis [Mon, 28 Oct 2019 19:39:59 +0000 (13:39 -0600)]
do not hold a lock when calling AudioEngine::update_latencies() from Session::update_latency_compensation().
Only when using JACK1 is ::update_latencies() a synchronous call (ending up in Session::update_latency() which tries to take the
same lock). But the semantics of ::update_latencies() are sufficiently ill-defined that entering that call with a lock held
seems like a bad idea, so we release the lock unconditionally here.
Paul Davis [Mon, 28 Oct 2019 19:36:38 +0000 (13:36 -0600)]
add explanatory comment
Paul Davis [Mon, 28 Oct 2019 17:15:07 +0000 (11:15 -0600)]
move reset (deletion) of click_io and ltc_output objects until after we are disconnected from the engine
We use those objects unconditionally and without caching inside process(), which could be invoked by the engine during their
deletion
John Emmas [Mon, 28 Oct 2019 16:40:03 +0000 (16:40 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
Rui Nuno Capela [Mon, 28 Oct 2019 16:31:03 +0000 (17:31 +0100)]
Fixup prev commit (LV2 X11 UI) -- #7837
Robin Gareus [Mon, 28 Oct 2019 16:23:33 +0000 (17:23 +0100)]
Improve
1477bca76, ensure suil supports x11-in-gtk2
Robin Gareus [Mon, 28 Oct 2019 15:14:30 +0000 (16:14 +0100)]
Skip X11 LV2UI check on Windows and MacOS
Robin Gareus [Mon, 28 Oct 2019 15:12:58 +0000 (16:12 +0100)]
NO-OP: whitespace and comments
Rui Nuno Capela [Mon, 28 Oct 2019 15:00:48 +0000 (16:00 +0100)]
Prefer X11 Plugin UIs
Let LV2 Plugin UI support (via SUIL) prefer and select a X11 UI whenever
multiple UI type options are provided by LV2 plugins (eg. Vee-One's do
present several but their native Qt5UI should never be raised by Ardour,
on any chance:)).
Signed-off-by: Rui Nuno Capela <rncbc@rncbc.or
Robin Gareus [Mon, 28 Oct 2019 14:36:27 +0000 (15:36 +0100)]
Fix use of std::map<> in const methods
Prefer iterators, instead of C++11 `at() const`.
This should also fix MSVC error C2663
Paul Davis [Sun, 27 Oct 2019 17:17:49 +0000 (11:17 -0600)]
make transport work after rewind/ffwd are used
Robin Gareus [Sun, 27 Oct 2019 12:54:47 +0000 (13:54 +0100)]
Virtual-keyboard: allow octave switches while hand-pedaling
Robin Gareus [Sat, 26 Oct 2019 22:05:22 +0000 (00:05 +0200)]
Virtual-keyboard: consolidate options
Remove use options for annotations, force them "always on",
and request space to draw them.
Add option to pick single-line octave bindings
Robin Gareus [Sat, 26 Oct 2019 21:49:57 +0000 (23:49 +0200)]
Add support for single-octave "asdfg.." key-bindings
Robin Gareus [Fri, 25 Oct 2019 23:12:05 +0000 (01:12 +0200)]
Show PluginScanDialog only if needed (cancel VST scan)
Robin Gareus [Fri, 25 Oct 2019 23:06:04 +0000 (01:06 +0200)]
Fix latency compensation race-condition
Remove need for explicit `initialize_latencies` call that used
to be called from GUI-thread post_engine_init(), as well as
Session::engine_running().
Further reduce calls, `graph_reordered` implies a latency-update
and fix ordering issue. update_latency_compensation() must be called
*after* resort_routes().
Robin Gareus [Fri, 25 Oct 2019 21:52:53 +0000 (23:52 +0200)]
Virtual-keyboard: prefer dropdown for channel & transpose
This addresses issue with text-entry and input focus
Paul Davis [Fri, 25 Oct 2019 21:48:22 +0000 (15:48 -0600)]
remove unintended leading space
Robin Gareus [Fri, 25 Oct 2019 19:54:16 +0000 (21:54 +0200)]
Virtual-keyboard: fix text-entry in config widgets
Robin Gareus [Fri, 25 Oct 2019 19:23:27 +0000 (21:23 +0200)]
Virtual-keyboard: never-ending details
- Fix key-bindings (first propagate to piano, ignore global bindings)
- Allow to switch octaves with left/right arrow key
- Tweak font-sizes used for annotations
Robin Gareus [Fri, 25 Oct 2019 16:01:08 +0000 (18:01 +0200)]
Rename PianoKeyboard class, avoid ambiguities
A C++ class "PianoKeyboard" in the global namespace may cause
issues with some plugins that export and use an identically
named symbol.
Robin Gareus [Fri, 25 Oct 2019 16:05:28 +0000 (18:05 +0200)]
Continue C++ification of PianoKeyboard
Robin Gareus [Fri, 25 Oct 2019 15:57:56 +0000 (17:57 +0200)]
Add gtk-pianokeyoard author to about
Robin Gareus [Fri, 25 Oct 2019 12:35:38 +0000 (14:35 +0200)]
NO-OP: whitespace
Paul Davis [Fri, 25 Oct 2019 18:21:16 +0000 (12:21 -0600)]
better english
Paul Davis [Fri, 25 Oct 2019 18:20:10 +0000 (12:20 -0600)]
make comment about discovering plugins in the main thread more accurate
Paul Davis [Fri, 25 Oct 2019 17:55:10 +0000 (11:55 -0600)]
make logic for creation of startup plugin scan a little clearer
Also, do not actually show dialog unless it's a new user or the user explicitly
asks for VST scan at startup
Paul Davis [Fri, 25 Oct 2019 17:54:25 +0000 (11:54 -0600)]
add another DEBUG_TRACE line
Paul Davis [Fri, 25 Oct 2019 13:51:54 +0000 (07:51 -0600)]
fix deletion/pointer error
Not sure why the now deleted hack was ever necessary for the compiler
Paul Davis [Fri, 25 Oct 2019 03:14:00 +0000 (21:14 -0600)]
somewhat substantial changes to StartupFSM to try to get relationships betweem various dialogs, plugin scanning and splash screen correct
Added extensive comments to try to explain the nightmare of plugin discovery
Paul Davis [Fri, 25 Oct 2019 03:13:08 +0000 (21:13 -0600)]
clean up use of startupFSM
Paul Davis [Fri, 25 Oct 2019 03:12:37 +0000 (21:12 -0600)]
make ARDOUR_UI::gui_idle_handler() public and remove API that became part of PluginScanDialog
Paul Davis [Fri, 25 Oct 2019 03:12:05 +0000 (21:12 -0600)]
remove now-unused member variable
Paul Davis [Fri, 25 Oct 2019 03:11:16 +0000 (21:11 -0600)]
startupFSM is now responsible for attaching GUI to AudioEngine
Paul Davis [Fri, 25 Oct 2019 03:09:43 +0000 (21:09 -0600)]
add new source file
Paul Davis [Fri, 25 Oct 2019 03:09:20 +0000 (21:09 -0600)]
use PluginScanDialog to initiate plugin manager refresh
Paul Davis [Fri, 25 Oct 2019 03:08:24 +0000 (21:08 -0600)]
refactor plugin scan dialog into its own object
Paul Davis [Fri, 25 Oct 2019 03:07:36 +0000 (21:07 -0600)]
add startupFSM enums to enumwriter
Paul Davis [Fri, 25 Oct 2019 03:07:25 +0000 (21:07 -0600)]
add new DEBUG bit for GuiStartup
Paul Davis [Fri, 25 Oct 2019 03:06:20 +0000 (21:06 -0600)]
non-GUI startup should only use plugin cache and not discover new ones
Paul Davis [Fri, 25 Oct 2019 02:52:46 +0000 (20:52 -0600)]
remove debug output
Paul Davis [Thu, 24 Oct 2019 23:36:25 +0000 (17:36 -0600)]
NOOP: newline removal; space injection
Paul Davis [Thu, 24 Oct 2019 23:11:16 +0000 (17:11 -0600)]
don't inadvertently create a Splash when a dialog is shown
Paul Davis [Thu, 24 Oct 2019 20:56:58 +0000 (14:56 -0600)]
change rationale for deciding whether the "discover plugins" button appears in the new user wizard
Paul Davis [Mon, 21 Oct 2019 04:39:31 +0000 (22:39 -0600)]
do not scan (discover) (new) plugins when running without a GUI
Paul Davis [Mon, 21 Oct 2019 04:39:09 +0000 (22:39 -0600)]
alter ARDOUR::init() API to specify whether a GUI is in control or not
Robin Gareus [Thu, 24 Oct 2019 17:43:46 +0000 (19:43 +0200)]
Rough-in gtk-pianokeyboard C -> C++
Robin Gareus [Thu, 24 Oct 2019 17:46:59 +0000 (19:46 +0200)]
Require all terms of space-separated plugin search filter string
Robin Gareus [Thu, 24 Oct 2019 03:13:56 +0000 (05:13 +0200)]
Return key-focus to piano-keyboard
Robin Gareus [Thu, 24 Oct 2019 03:13:13 +0000 (05:13 +0200)]
Prepare key-binding display
Robin Gareus [Wed, 23 Oct 2019 21:59:59 +0000 (23:59 +0200)]
Fix prev commit, g_setenv() params
Robin Gareus [Wed, 23 Oct 2019 20:55:10 +0000 (22:55 +0200)]
Update MacOS installer to directly run Ardour w/o script wrapper
Robin Gareus [Wed, 23 Oct 2019 20:54:19 +0000 (22:54 +0200)]
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.
Robin Gareus [Tue, 22 Oct 2019 23:21:42 +0000 (01:21 +0200)]
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.
Ben Loftis [Tue, 22 Oct 2019 19:39:38 +0000 (14:39 -0500)]
New implementation for single-fader mackie devices (reverts b96d8e)
Robin Gareus [Mon, 21 Oct 2019 17:31:25 +0000 (19:31 +0200)]
Virtual-keyboard: add option to transpose
Robin Gareus [Mon, 21 Oct 2019 14:06:29 +0000 (16:06 +0200)]
NO-OP: whitespace
Robin Gareus [Mon, 21 Oct 2019 13:52:16 +0000 (15:52 +0200)]
NO-OP: whitespace
Robin Gareus [Mon, 21 Oct 2019 13:27:42 +0000 (15:27 +0200)]
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
Robin Gareus [Mon, 21 Oct 2019 12:58:59 +0000 (14:58 +0200)]
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
Robin Gareus [Mon, 21 Oct 2019 03:41:34 +0000 (05:41 +0200)]
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, ...)
Ben Loftis [Mon, 21 Oct 2019 03:24:17 +0000 (22:24 -0500)]
Add support for single-fader MCU devices: XTouch One and RuCo. (needs testing)
Robin Gareus [Sun, 20 Oct 2019 19:22:38 +0000 (21:22 +0200)]
Virtual-Keyboard: Fix use of scrollwheel on dropdowns
Robin Gareus [Sun, 20 Oct 2019 19:21:57 +0000 (21:21 +0200)]
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().
Robin Gareus [Sun, 20 Oct 2019 18:53:40 +0000 (20:53 +0200)]
Virtual-Keyboard: save/restore state
Robin Gareus [Sun, 20 Oct 2019 16:29:23 +0000 (18:29 +0200)]
Virtual-keyboard: add a pitch-bender
Robin Gareus [Sun, 20 Oct 2019 00:43:39 +0000 (02:43 +0200)]
Virtual-keyboard: add CCs, bank/patch selector
Robin Gareus [Sat, 19 Oct 2019 13:42:35 +0000 (15:42 +0200)]
Increase black key length