Robin Gareus [Thu, 26 Dec 2019 22:57:04 +0000 (23:57 +0100)]
Preferences/Config changes for image-surface settings
Robin Gareus [Thu, 26 Dec 2019 22:55:44 +0000 (23:55 +0100)]
Replace explicit image-surface with cairo pattern/group
For MacOS/X this is equivalent, rendering happens using a
CGBitmapContext + image-surface. Windows and Linux needs profiling
for respective equivalent surfaces.
Robin Gareus [Thu, 26 Dec 2019 17:19:21 +0000 (18:19 +0100)]
Allow for per-widget image-surface backing
This is an intermediate commit, before replacing image surfaces with
cairo pattern groups.
The eventual goal is to reduce flickering and/or use
CPU + bitblt for specific widgets instead of cairo
graphics-cards accel.
This also removes excessive calls to getenv() for every rendering
operation.
Paul Davis [Fri, 27 Dec 2019 17:50:56 +0000 (10:50 -0700)]
remove unused member
Note: there is no global state for "the" transport master, since we have several at all times now
Paul Davis [Fri, 27 Dec 2019 17:49:14 +0000 (10:49 -0700)]
variable rename
Paul Davis [Fri, 27 Dec 2019 16:29:28 +0000 (09:29 -0700)]
improve parseability of a comment
Robin Gareus [Thu, 26 Dec 2019 11:17:20 +0000 (12:17 +0100)]
Vkeybd: force release notes on panic
If key(s) are still being pressed, a key-repeat will re-trigger
the most recently pressed note (depending on keyboard settings).
Robin Gareus [Wed, 25 Dec 2019 17:00:57 +0000 (18:00 +0100)]
Use weak-ptr for source added/removed signals (2/2)
Robin Gareus [Wed, 25 Dec 2019 16:59:38 +0000 (17:59 +0100)]
Use weak-ptr for source added/removed signals (1/2)
This might fix a "SessionHandleRef exists across session deletion",
when the shared_ptr was be pushed onto a x-thread pool, and not
invalidated in time before the session was closed.
Robin Gareus [Wed, 25 Dec 2019 16:57:10 +0000 (17:57 +0100)]
Prevent copy-construction of sources to be destroyed list
destroy_sources () is only called from Session::remove_last_capture ().
The list of sources to be destroyed is the local scope of that method
and will hold a reference to the object.
copy-construct the list and removing elements one by one from the
copy is only unnecessary overhead.
Robin Gareus [Wed, 25 Dec 2019 16:52:02 +0000 (17:52 +0100)]
NO-OP: comment signal emission
Robin Gareus [Wed, 25 Dec 2019 11:46:34 +0000 (12:46 +0100)]
Vkeybd: improve velocity dropdown usability
Limit velocity dropdown to a subset of most used values, but
allow to select any value using mouse-wheel
Robin Gareus [Tue, 24 Dec 2019 17:15:09 +0000 (18:15 +0100)]
Vkeybd: use ArdourWidgets for all GUI elements
Remove Gtk widgets and improve look&feel consistency.
Paul Davis [Mon, 23 Dec 2019 17:26:33 +0000 (10:26 -0700)]
use new method in MidiPatchManager to use MIDNAM data when setting a MidiTimeAxisView
Paul Davis [Mon, 23 Dec 2019 17:26:05 +0000 (10:26 -0700)]
add a mechanism to use existing MIDNAM info and connect to PatchesChanged in future, atomically
The atomically is with respect to the initial thread-based MIDNAM loading
Paul Davis [Thu, 19 Dec 2019 20:30:18 +0000 (13:30 -0700)]
basics of threaded MIDNAM loading
Robin Gareus [Thu, 19 Dec 2019 22:02:19 +0000 (23:02 +0100)]
Vkeybd: numeric only spinboxes for octave and velocity
based on a patch by Alex Mitchell
Paul Davis [Thu, 19 Dec 2019 20:14:19 +0000 (13:14 -0700)]
slightly enhanced error handling when loading MIDNAM data
Paul Davis [Thu, 19 Dec 2019 20:11:43 +0000 (13:11 -0700)]
handle MIDI rendering correctly when there are no regions
Robin Gareus [Thu, 19 Dec 2019 03:27:54 +0000 (04:27 +0100)]
Vkeybd simplification
* remove Y-axis dependent velocity (difference between
black/white keys made this not very usable
* remove Bank/Patch selector (there are already three other
Bank/Patch UIs
* move keyboard-layout selection into Preferences > MIDI
Robin Gareus [Wed, 18 Dec 2019 14:01:46 +0000 (15:01 +0100)]
Vkeybd: re-layout, prepare config & patch pane removal
Robin Gareus [Wed, 18 Dec 2019 14:01:17 +0000 (15:01 +0100)]
Vkeybd: add a mod-wheel
Paul Davis [Thu, 19 Dec 2019 16:09:42 +0000 (09:09 -0700)]
fix thinko ... we're checking if a DiskReader handles audio
Paul Davis [Thu, 19 Dec 2019 02:56:38 +0000 (19:56 -0700)]
further improve debug message
Paul Davis [Thu, 19 Dec 2019 02:50:32 +0000 (19:50 -0700)]
fix thinko in MidiRegion::render()
MidiSource::read() wants a length, not an end-sample.
This should fix (at least) some cases where notes past the region end
get included/played
Paul Davis [Thu, 19 Dec 2019 02:49:34 +0000 (19:49 -0700)]
remove debug message
Paul Davis [Thu, 19 Dec 2019 02:49:09 +0000 (19:49 -0700)]
fix debug message
Paul Davis [Thu, 19 Dec 2019 01:00:53 +0000 (18:00 -0700)]
fix Temporal::Beats::operator*
Paul Davis [Thu, 19 Dec 2019 01:00:33 +0000 (18:00 -0700)]
tweak debug output
Paul Davis [Thu, 19 Dec 2019 00:34:39 +0000 (17:34 -0700)]
do not try to process audio in a diskreader with no audio playlist
Paul Davis [Wed, 18 Dec 2019 22:05:35 +0000 (15:05 -0700)]
fix crash when looping with a MIDI track
Robin Gareus [Wed, 18 Dec 2019 14:04:41 +0000 (15:04 +0100)]
Remove VST plugin discovery option from first-start wizard
Because (a) it makes the startup seem "very long and complicated",
and (b) sometimes fails or crashes weirdly,
or (c) a plugin dialog gets hidden behind the main window, or ...
Overall the first impression of the program may be horrible when
the first step includes discovering VST plugins.
Robin Gareus [Tue, 17 Dec 2019 23:54:11 +0000 (00:54 +0100)]
Fix DSP load sorting with inactive plugins
Robin Gareus [Tue, 17 Dec 2019 21:54:55 +0000 (22:54 +0100)]
Cont'd work on Playlists import from old 2.x sessions
v2.0.0 sessions don't save empty playlists. So missing playlists
for a give diskstream are fine. Just use a default empty one.
Paul Davis [Tue, 17 Dec 2019 20:21:33 +0000 (13:21 -0700)]
a new stop command while in the middle of declick-to-stop is not a bad transition
Robin Gareus [Tue, 17 Dec 2019 16:17:27 +0000 (17:17 +0100)]
Directly apply MIDI automation state changes
Previously "play/off" and "discrete/linear" changes had no effect
until the MIDI playlist was edited and MIDI re-read into RAM.
Robin Gareus [Tue, 17 Dec 2019 15:47:46 +0000 (16:47 +0100)]
VKeybd: exponential pitch-wheel/bend interpolation
Robin Gareus [Tue, 17 Dec 2019 04:56:49 +0000 (05:56 +0100)]
Fix MIDI port i/o when vari-speeding
Robin Gareus [Tue, 17 Dec 2019 00:53:33 +0000 (01:53 +0100)]
Indicate current Disk-I/O setting
Robin Gareus [Mon, 16 Dec 2019 23:34:26 +0000 (00:34 +0100)]
Convert Disksteam & Playlists from old 2.x sessions
Paul Davis [Mon, 16 Dec 2019 23:18:30 +0000 (16:18 -0700)]
remove mistakenly left-in debug stacktrace
Paul Davis [Mon, 16 Dec 2019 23:13:27 +0000 (16:13 -0700)]
reinstate missing latency initialization code
Removed (mistakenly) during work on transportFSM
Paul Davis [Mon, 16 Dec 2019 23:13:02 +0000 (16:13 -0700)]
expand DEBUG_TRACE output
Robin Gareus [Mon, 16 Dec 2019 21:16:40 +0000 (22:16 +0100)]
Remove cruft, unused API
Robin Gareus [Mon, 16 Dec 2019 17:30:09 +0000 (18:30 +0100)]
Parse v2 session-information
Robin Gareus [Mon, 16 Dec 2019 17:29:32 +0000 (18:29 +0100)]
Lua bindings for well-known send controls
Nikolaus Gullotta [Mon, 16 Dec 2019 19:06:04 +0000 (13:06 -0600)]
Add additional roll check in transport_record
Previously there was no check for roll in case Session::Enabled this
can cause issues with "latched-record-enable" and "transport-roll"
Paul Davis [Mon, 16 Dec 2019 17:24:38 +0000 (10:24 -0700)]
fix logic error that prevented MIDI playlists from being rendered at load time
An edit was required to force the render
Robin Gareus [Mon, 16 Dec 2019 14:37:08 +0000 (15:37 +0100)]
Vkeybd: fix octave up/down direction, speed up pitch-bend
John Emmas [Mon, 16 Dec 2019 14:34:41 +0000 (14:34 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
Robin Gareus [Mon, 16 Dec 2019 14:02:39 +0000 (15:02 +0100)]
Vkeybd: grab all key-events and use timer instead of key-repeat
This fixes an issue with arrow-keys (up/down, left/right). Those
were previously only handled when the Virtual Keyboard window itself
had focus.
Also key-repeat for pitch-bend is now ignored and a dedicated timer
is used to queue events. This fixes an issue with the first repeat
taking longer than successive ones, and makes this feature independent
of any desktop user settings.
Robin Gareus [Mon, 16 Dec 2019 01:30:33 +0000 (02:30 +0100)]
Vkeybd: Experiment with key-repeat for pitch-bend
Robin Gareus [Sun, 15 Dec 2019 19:34:14 +0000 (20:34 +0100)]
VKeybd: Pass on primary (Ctrl/Cmd) shortcuts
This allows Ctrl/Cmd+s (save) and Ctrl/Cmd+z (undo) etc shortcuts
to work, even though the virtual-keyboard is visible.
Robin Gareus [Sun, 15 Dec 2019 16:30:25 +0000 (17:30 +0100)]
VKeybd: add Up/Down as alternative Pitch-bend shortcuts
Robin Gareus [Sun, 15 Dec 2019 13:05:25 +0000 (14:05 +0100)]
LV2: add state:mapPath as supported feature and sort URIs
Robin Gareus [Sun, 15 Dec 2019 13:04:44 +0000 (14:04 +0100)]
Vkeybd: Add tooltip to pitchbend control
Robin Gareus [Sun, 15 Dec 2019 12:58:03 +0000 (13:58 +0100)]
VKeybd: Pitchebend sprung mode and keyboard-shortcuts
This unconditionally returns the pitch-bend wheel when used
by mouse-drag/drop. Mouse-wheel retains the "wheel" mode.
<F1>-<F4> key-bindings have been added to jump to discrete values
Paul Davis [Sun, 15 Dec 2019 02:34:13 +0000 (19:34 -0700)]
fix behavior of DiskReader when moved after an instrument
Robin Gareus [Sat, 14 Dec 2019 22:32:24 +0000 (23:32 +0100)]
Remove unused API (no more unconditional splash pop-back)
Robin Gareus [Sat, 14 Dec 2019 22:31:24 +0000 (23:31 +0100)]
First batch of MessageDialog replacements
Robin Gareus [Sat, 14 Dec 2019 22:26:25 +0000 (23:26 +0100)]
Add a MessageDialog wrapper that handles the splash-screen
Paul Davis [Sat, 14 Dec 2019 17:39:47 +0000 (10:39 -0700)]
truncate unnecessarily verbose debug set/bits output
Paul Davis [Sat, 14 Dec 2019 17:36:31 +0000 (10:36 -0700)]
Enable Menu > Quit to work again after startup on macOS
Paul Davis [Sat, 14 Dec 2019 17:27:44 +0000 (10:27 -0700)]
cleanup and recomment StartupFSM::load_from_application_api()
Paul Davis [Sat, 14 Dec 2019 17:27:10 +0000 (10:27 -0700)]
remove unnecessary calls to Application::ready
Paul Davis [Sat, 14 Dec 2019 17:22:25 +0000 (10:22 -0700)]
move i/o redirect for macOS bundle before no_app_nap() and comment
Paul Davis [Sat, 14 Dec 2019 17:20:55 +0000 (10:20 -0700)]
emit Application::ready() at a suitable time during startup
This causes macOS to deliver an "openFile" event which allows us
to function correctly when started by a click on a .ardour file
Paul Davis [Sat, 14 Dec 2019 16:58:53 +0000 (09:58 -0700)]
add safety tests inside ShuttleControl to deal with _session == 0
Paul Davis [Sat, 14 Dec 2019 16:02:12 +0000 (09:02 -0700)]
remove use of os_log() API from macOS
This enables building on earlier versions of that platform. It was only used for debugging anyway
Robin Gareus [Sat, 14 Dec 2019 14:47:45 +0000 (15:47 +0100)]
Use InlineControl Port Property
This replaces the special case of showing send-level controls
inline in the mixer-strip with a generic Controllable::InlineControl
property.
Robin Gareus [Sat, 14 Dec 2019 14:00:34 +0000 (15:00 +0100)]
Add Inline Control Port Property
This allows to indicate that a control should by default be displayed
inline in the mixer-strip.
Previously that was hard-coded for and enabled for send-level
controls only.
Robin Gareus [Sat, 14 Dec 2019 14:04:32 +0000 (15:04 +0100)]
Make BusSendLevel 1st class citizen (2/2)
Robin Gareus [Sat, 14 Dec 2019 14:04:08 +0000 (15:04 +0100)]
Make BusSendLevel 1st class citizen (1/2)
Equivalent to Gain and Trim (gain-coefficient, not dB) and use
it for Sends.
Robin Gareus [Sat, 14 Dec 2019 10:44:28 +0000 (11:44 +0100)]
DSPLoad report: allow to sort plugins by load
Robin Gareus [Sat, 14 Dec 2019 09:49:55 +0000 (10:49 +0100)]
Increase contrast of Plugin DSP load report bar colors
Robin Gareus [Fri, 13 Dec 2019 22:05:15 +0000 (23:05 +0100)]
Add Lua bindings to query AutomationControl paramater ranges
Robin Gareus [Fri, 13 Dec 2019 22:02:43 +0000 (23:02 +0100)]
Amend
561cf86919d commit (toolbar sensitivity)
Paul Davis [Fri, 13 Dec 2019 20:06:31 +0000 (13:06 -0700)]
allow setting debug flags via an environment variable (ARDOUR_DEBUG_FLAGS)
Paul Davis [Fri, 13 Dec 2019 20:05:55 +0000 (13:05 -0700)]
fix up stderr and stdout on macOS to write to log files in ~/Library/Preferences/PROGRAM_NAME
Robin Gareus [Fri, 13 Dec 2019 15:33:12 +0000 (16:33 +0100)]
Fix session sensitivity of some toolbar controls
Robin Gareus [Fri, 13 Dec 2019 15:04:34 +0000 (16:04 +0100)]
VKeybd: shrink height when hiding config pane
Robin Gareus [Fri, 13 Dec 2019 14:42:09 +0000 (15:42 +0100)]
Fix mismatched delete
Robin Gareus [Thu, 12 Dec 2019 22:58:17 +0000 (23:58 +0100)]
Vkeybd: default to single-row QWERTY binding
Robin Gareus [Thu, 12 Dec 2019 22:47:12 +0000 (23:47 +0100)]
NO-OP: some const correctness
Robin Gareus [Thu, 12 Dec 2019 22:46:54 +0000 (23:46 +0100)]
VKeybd: fix MacOS key-bindings
Paul Davis [Thu, 12 Dec 2019 20:32:42 +0000 (13:32 -0700)]
fix startup FSM handling when pre-release dialog is shown AND cmdline session info is given
Paul Davis [Thu, 12 Dec 2019 20:32:12 +0000 (13:32 -0700)]
fix ASL logging/stdout+stderr when running from terminal in macOS
Robin Gareus [Thu, 12 Dec 2019 19:50:34 +0000 (20:50 +0100)]
Allow to bind initial Lua action via left-click
Robin Gareus [Thu, 12 Dec 2019 19:35:14 +0000 (20:35 +0100)]
Pre-seed Lua action-buttons
Robin Gareus [Thu, 12 Dec 2019 19:34:50 +0000 (20:34 +0100)]
Add method to look up Lua script by name
Paul Davis [Thu, 12 Dec 2019 19:09:15 +0000 (12:09 -0700)]
reduce another race condition risk
overwrite_queued == true is equivalent to _pending_overwrite != 0
Paul Davis [Thu, 12 Dec 2019 19:08:48 +0000 (12:08 -0700)]
remove debug output
Paul Davis [Thu, 12 Dec 2019 18:31:43 +0000 (11:31 -0700)]
remove useless lock
rbuf allocation/use is protected by process_lock
Paul Davis [Thu, 12 Dec 2019 18:24:56 +0000 (11:24 -0700)]
fix playback of newly added/modified MIDI data
Paul Davis [Thu, 12 Dec 2019 18:24:32 +0000 (11:24 -0700)]
expand DEBUG_TRACE() statement
Robin Gareus [Thu, 12 Dec 2019 15:06:46 +0000 (16:06 +0100)]
BOOST_SP_NOEXCEPT is n/a in boost 1.62
Even though the method that is overridden (shared_ptr<t>::operator=),
has that signature in modern boost, it's of no real significance
for the case at hand (ExportChannel, ExportTimespan)
Paul Davis [Thu, 12 Dec 2019 03:36:00 +0000 (20:36 -0700)]
use process lock to lock out process() during playback buffer resizing
Paul Davis [Thu, 12 Dec 2019 01:08:01 +0000 (18:08 -0700)]
remove MIDI readahead parameter
We just don't do this anymore
Paul Davis [Thu, 12 Dec 2019 01:00:56 +0000 (18:00 -0700)]
variable renaming in Butler for various buffer sizes
Robin Gareus [Thu, 12 Dec 2019 02:57:58 +0000 (03:57 +0100)]
Fix stackoverflow, endless recursion on ComparableSharedPtr assignment
boost::shared_ptr & operator=(shared_ptr const & r);
is not declared virtual and cannot safely be overloaded.