ardour.git
4 years agoPreferences/Config changes for image-surface settings
Robin Gareus [Thu, 26 Dec 2019 22:57:04 +0000 (23:57 +0100)]
Preferences/Config changes for image-surface settings

4 years agoReplace explicit image-surface with cairo pattern/group
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.

4 years agoAllow for per-widget image-surface backing
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.

4 years agoremove unused member
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

4 years agovariable rename
Paul Davis [Fri, 27 Dec 2019 17:49:14 +0000 (10:49 -0700)]
variable rename

4 years agoimprove parseability of a comment
Paul Davis [Fri, 27 Dec 2019 16:29:28 +0000 (09:29 -0700)]
improve parseability of a comment

4 years agoVkeybd: force release notes on panic
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).

4 years agoUse weak-ptr for source added/removed signals (2/2)
Robin Gareus [Wed, 25 Dec 2019 17:00:57 +0000 (18:00 +0100)]
Use weak-ptr for source added/removed signals (2/2)

4 years agoUse weak-ptr for source added/removed signals (1/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.

4 years agoPrevent copy-construction of sources to be destroyed list
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.

4 years agoNO-OP: comment signal emission
Robin Gareus [Wed, 25 Dec 2019 16:52:02 +0000 (17:52 +0100)]
NO-OP: comment signal emission

4 years agoVkeybd: improve velocity dropdown usability
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

4 years agoVkeybd: use ArdourWidgets for all GUI elements
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.

4 years agouse new method in MidiPatchManager to use MIDNAM data when setting a MidiTimeAxisView
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

4 years agoadd a mechanism to use existing MIDNAM info and connect to PatchesChanged in future...
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

4 years agobasics of threaded MIDNAM loading
Paul Davis [Thu, 19 Dec 2019 20:30:18 +0000 (13:30 -0700)]
basics of threaded MIDNAM loading

4 years agoVkeybd: numeric only spinboxes for octave and velocity
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

4 years agoslightly enhanced error handling when loading MIDNAM data
Paul Davis [Thu, 19 Dec 2019 20:14:19 +0000 (13:14 -0700)]
slightly enhanced error handling when loading MIDNAM data

4 years agohandle MIDI rendering correctly when there are no regions
Paul Davis [Thu, 19 Dec 2019 20:11:43 +0000 (13:11 -0700)]
handle MIDI rendering correctly when there are no regions

4 years agoVkeybd simplification
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

4 years agoVkeybd: re-layout, prepare config & patch pane removal
Robin Gareus [Wed, 18 Dec 2019 14:01:46 +0000 (15:01 +0100)]
Vkeybd: re-layout, prepare config & patch pane removal

4 years agoVkeybd: add a mod-wheel
Robin Gareus [Wed, 18 Dec 2019 14:01:17 +0000 (15:01 +0100)]
Vkeybd: add a mod-wheel

4 years agofix thinko ... we're checking if a DiskReader handles audio
Paul Davis [Thu, 19 Dec 2019 16:09:42 +0000 (09:09 -0700)]
fix thinko ... we're checking if a DiskReader handles audio

4 years agofurther improve debug message
Paul Davis [Thu, 19 Dec 2019 02:56:38 +0000 (19:56 -0700)]
further improve debug message

4 years agofix thinko in MidiRegion::render()
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

4 years agoremove debug message
Paul Davis [Thu, 19 Dec 2019 02:49:34 +0000 (19:49 -0700)]
remove debug message

4 years agofix debug message
Paul Davis [Thu, 19 Dec 2019 02:49:09 +0000 (19:49 -0700)]
fix debug message

4 years agofix Temporal::Beats::operator*
Paul Davis [Thu, 19 Dec 2019 01:00:53 +0000 (18:00 -0700)]
fix Temporal::Beats::operator*

4 years agotweak debug output
Paul Davis [Thu, 19 Dec 2019 01:00:33 +0000 (18:00 -0700)]
tweak debug output

4 years agodo not try to process audio in a diskreader with no audio playlist
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

4 years agofix crash when looping with a MIDI track
Paul Davis [Wed, 18 Dec 2019 22:05:35 +0000 (15:05 -0700)]
fix crash when looping with a MIDI track

4 years agoRemove VST plugin discovery option from first-start wizard
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.

4 years agoFix DSP load sorting with inactive plugins
Robin Gareus [Tue, 17 Dec 2019 23:54:11 +0000 (00:54 +0100)]
Fix DSP load sorting with inactive plugins

4 years agoCont'd work on Playlists import from old 2.x sessions
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.

4 years agoa new stop command while in the middle of declick-to-stop is not a bad transition
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

4 years agoDirectly apply MIDI automation state changes
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.

4 years agoVKeybd: exponential pitch-wheel/bend interpolation
Robin Gareus [Tue, 17 Dec 2019 15:47:46 +0000 (16:47 +0100)]
VKeybd: exponential pitch-wheel/bend interpolation

4 years agoFix MIDI port i/o when vari-speeding
Robin Gareus [Tue, 17 Dec 2019 04:56:49 +0000 (05:56 +0100)]
Fix MIDI port i/o when vari-speeding

4 years agoIndicate current Disk-I/O setting
Robin Gareus [Tue, 17 Dec 2019 00:53:33 +0000 (01:53 +0100)]
Indicate current Disk-I/O setting

4 years agoConvert Disksteam & Playlists from old 2.x sessions
Robin Gareus [Mon, 16 Dec 2019 23:34:26 +0000 (00:34 +0100)]
Convert Disksteam & Playlists from old 2.x sessions

4 years agoremove mistakenly left-in debug stacktrace
Paul Davis [Mon, 16 Dec 2019 23:18:30 +0000 (16:18 -0700)]
remove mistakenly left-in debug stacktrace

4 years agoreinstate missing latency initialization code
Paul Davis [Mon, 16 Dec 2019 23:13:27 +0000 (16:13 -0700)]
reinstate missing latency initialization code

Removed (mistakenly) during work on transportFSM

4 years agoexpand DEBUG_TRACE output
Paul Davis [Mon, 16 Dec 2019 23:13:02 +0000 (16:13 -0700)]
expand DEBUG_TRACE output

4 years agoRemove cruft, unused API
Robin Gareus [Mon, 16 Dec 2019 21:16:40 +0000 (22:16 +0100)]
Remove cruft, unused API

4 years agoParse v2 session-information
Robin Gareus [Mon, 16 Dec 2019 17:30:09 +0000 (18:30 +0100)]
Parse v2 session-information

4 years agoLua bindings for well-known send controls
Robin Gareus [Mon, 16 Dec 2019 17:29:32 +0000 (18:29 +0100)]
Lua bindings for well-known send controls

4 years agoAdd additional roll check in transport_record
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"

4 years agofix logic error that prevented MIDI playlists from being rendered at load time
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

4 years agoVkeybd: fix octave up/down direction, speed up pitch-bend
Robin Gareus [Mon, 16 Dec 2019 14:37:08 +0000 (15:37 +0100)]
Vkeybd: fix octave up/down direction, speed up pitch-bend

4 years agoAdd/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Mon, 16 Dec 2019 14:34:41 +0000 (14:34 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)

4 years agoVkeybd: grab all key-events and use timer instead of key-repeat
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.

4 years agoVkeybd: Experiment with key-repeat for pitch-bend
Robin Gareus [Mon, 16 Dec 2019 01:30:33 +0000 (02:30 +0100)]
Vkeybd: Experiment with key-repeat for pitch-bend

4 years agoVKeybd: Pass on primary (Ctrl/Cmd) shortcuts
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.

4 years agoVKeybd: add Up/Down as alternative Pitch-bend shortcuts
Robin Gareus [Sun, 15 Dec 2019 16:30:25 +0000 (17:30 +0100)]
VKeybd: add Up/Down as alternative Pitch-bend shortcuts

4 years agoLV2: add state:mapPath as supported feature and sort URIs
Robin Gareus [Sun, 15 Dec 2019 13:05:25 +0000 (14:05 +0100)]
LV2: add state:mapPath as supported feature and sort URIs

4 years agoVkeybd: Add tooltip to pitchbend control
Robin Gareus [Sun, 15 Dec 2019 13:04:44 +0000 (14:04 +0100)]
Vkeybd: Add tooltip to pitchbend control

4 years agoVKeybd: Pitchebend sprung mode and keyboard-shortcuts
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

4 years agofix behavior of DiskReader when moved after an instrument
Paul Davis [Sun, 15 Dec 2019 02:34:13 +0000 (19:34 -0700)]
fix behavior of DiskReader when moved after an instrument

4 years agoRemove unused API (no more unconditional splash pop-back)
Robin Gareus [Sat, 14 Dec 2019 22:32:24 +0000 (23:32 +0100)]
Remove unused API (no more unconditional splash pop-back)

4 years agoFirst batch of MessageDialog replacements
Robin Gareus [Sat, 14 Dec 2019 22:31:24 +0000 (23:31 +0100)]
First batch of MessageDialog replacements

4 years agoAdd a MessageDialog wrapper that handles the splash-screen
Robin Gareus [Sat, 14 Dec 2019 22:26:25 +0000 (23:26 +0100)]
Add a MessageDialog wrapper that handles the splash-screen

4 years agotruncate unnecessarily verbose debug set/bits output
Paul Davis [Sat, 14 Dec 2019 17:39:47 +0000 (10:39 -0700)]
truncate unnecessarily verbose debug set/bits output

4 years agoEnable Menu > Quit to work again after startup on macOS
Paul Davis [Sat, 14 Dec 2019 17:36:31 +0000 (10:36 -0700)]
Enable Menu > Quit to work again after startup on macOS

4 years agocleanup and recomment StartupFSM::load_from_application_api()
Paul Davis [Sat, 14 Dec 2019 17:27:44 +0000 (10:27 -0700)]
cleanup and recomment StartupFSM::load_from_application_api()

4 years agoremove unnecessary calls to Application::ready
Paul Davis [Sat, 14 Dec 2019 17:27:10 +0000 (10:27 -0700)]
remove unnecessary calls to Application::ready

4 years agomove i/o redirect for macOS bundle before no_app_nap() and comment
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

4 years agoemit Application::ready() at a suitable time during startup
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

4 years agoadd safety tests inside ShuttleControl to deal with _session == 0
Paul Davis [Sat, 14 Dec 2019 16:58:53 +0000 (09:58 -0700)]
add safety tests inside ShuttleControl to deal with _session == 0

4 years agoremove use of os_log() API from macOS
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

4 years agoUse InlineControl Port Property
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.

4 years agoAdd Inline Control Port 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.

4 years agoMake BusSendLevel 1st class citizen (2/2)
Robin Gareus [Sat, 14 Dec 2019 14:04:32 +0000 (15:04 +0100)]
Make BusSendLevel 1st class citizen (2/2)

4 years agoMake BusSendLevel 1st class citizen (1/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.

4 years agoDSPLoad report: allow to sort plugins by load
Robin Gareus [Sat, 14 Dec 2019 10:44:28 +0000 (11:44 +0100)]
DSPLoad report: allow to sort plugins by load

4 years agoIncrease contrast of Plugin DSP load report bar colors
Robin Gareus [Sat, 14 Dec 2019 09:49:55 +0000 (10:49 +0100)]
Increase contrast of Plugin DSP load report bar colors

4 years agoAdd Lua bindings to query AutomationControl paramater ranges
Robin Gareus [Fri, 13 Dec 2019 22:05:15 +0000 (23:05 +0100)]
Add Lua bindings to query AutomationControl paramater ranges

4 years agoAmend 561cf86919d commit (toolbar sensitivity)
Robin Gareus [Fri, 13 Dec 2019 22:02:43 +0000 (23:02 +0100)]
Amend 561cf86919d commit (toolbar sensitivity)

4 years agoallow setting debug flags via an environment variable (ARDOUR_DEBUG_FLAGS)
Paul Davis [Fri, 13 Dec 2019 20:06:31 +0000 (13:06 -0700)]
allow setting debug flags via an environment variable (ARDOUR_DEBUG_FLAGS)

4 years agofix up stderr and stdout on macOS to write to log files in ~/Library/Preferences...
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

4 years agoFix session sensitivity of some toolbar controls
Robin Gareus [Fri, 13 Dec 2019 15:33:12 +0000 (16:33 +0100)]
Fix session sensitivity of some toolbar controls

4 years agoVKeybd: shrink height when hiding config pane
Robin Gareus [Fri, 13 Dec 2019 15:04:34 +0000 (16:04 +0100)]
VKeybd: shrink height when hiding config pane

4 years agoFix mismatched delete
Robin Gareus [Fri, 13 Dec 2019 14:42:09 +0000 (15:42 +0100)]
Fix mismatched delete

4 years agoVkeybd: default to single-row QWERTY binding
Robin Gareus [Thu, 12 Dec 2019 22:58:17 +0000 (23:58 +0100)]
Vkeybd: default to single-row QWERTY binding

4 years agoNO-OP: some const correctness
Robin Gareus [Thu, 12 Dec 2019 22:47:12 +0000 (23:47 +0100)]
NO-OP: some const correctness

4 years agoVKeybd: fix MacOS key-bindings
Robin Gareus [Thu, 12 Dec 2019 22:46:54 +0000 (23:46 +0100)]
VKeybd: fix MacOS key-bindings

4 years agofix startup FSM handling when pre-release dialog is shown AND cmdline session info...
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

4 years agofix ASL logging/stdout+stderr when running from terminal in macOS
Paul Davis [Thu, 12 Dec 2019 20:32:12 +0000 (13:32 -0700)]
fix ASL logging/stdout+stderr when running from terminal in macOS

4 years agoAllow to bind initial Lua action via left-click
Robin Gareus [Thu, 12 Dec 2019 19:50:34 +0000 (20:50 +0100)]
Allow to bind initial Lua action via left-click

4 years agoPre-seed Lua action-buttons
Robin Gareus [Thu, 12 Dec 2019 19:35:14 +0000 (20:35 +0100)]
Pre-seed Lua action-buttons

4 years agoAdd method to look up Lua script by name
Robin Gareus [Thu, 12 Dec 2019 19:34:50 +0000 (20:34 +0100)]
Add method to look up Lua script by name

4 years agoreduce another race condition risk
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

4 years agoremove debug output
Paul Davis [Thu, 12 Dec 2019 19:08:48 +0000 (12:08 -0700)]
remove debug output

4 years agoremove useless lock
Paul Davis [Thu, 12 Dec 2019 18:31:43 +0000 (11:31 -0700)]
remove useless lock

rbuf allocation/use is protected by process_lock

4 years agofix playback of newly added/modified MIDI data
Paul Davis [Thu, 12 Dec 2019 18:24:56 +0000 (11:24 -0700)]
fix playback of newly added/modified MIDI data

4 years agoexpand DEBUG_TRACE() statement
Paul Davis [Thu, 12 Dec 2019 18:24:32 +0000 (11:24 -0700)]
expand DEBUG_TRACE() statement

4 years agoBOOST_SP_NOEXCEPT is n/a in boost 1.62
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)

4 years agouse process lock to lock out process() during playback buffer resizing
Paul Davis [Thu, 12 Dec 2019 03:36:00 +0000 (20:36 -0700)]
use process lock to lock out process() during playback buffer resizing

4 years agoremove MIDI readahead parameter
Paul Davis [Thu, 12 Dec 2019 01:08:01 +0000 (18:08 -0700)]
remove MIDI readahead parameter

We just don't do this anymore

4 years agovariable renaming in Butler for various buffer sizes
Paul Davis [Thu, 12 Dec 2019 01:00:56 +0000 (18:00 -0700)]
variable renaming in Butler for various buffer sizes

4 years agoFix stackoverflow, endless recursion on ComparableSharedPtr assignment
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.