ardour.git
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.

4 years agoFix automation dropdown menu-item active state
Robin Gareus [Thu, 12 Dec 2019 02:01:31 +0000 (03:01 +0100)]
Fix automation dropdown menu-item active state

Extra XML/GUI has not been in use since ages.
Automation Lane visibility is saved as GUIObjectState.

This properly marks DropDown Menu items as active when a
Plugin Automation Lane is displayed

4 years agowhen loading a session into a running instance, if the SR doesn't match the engine...
Paul Davis [Wed, 11 Dec 2019 21:52:46 +0000 (14:52 -0700)]
when loading a session into a running instance, if the SR doesn't match the engine, stop engine and show dialog

4 years agoNOOP: line merge
Paul Davis [Wed, 11 Dec 2019 21:36:30 +0000 (14:36 -0700)]
NOOP: line merge

4 years agoFix loading plugin state from sessions
Robin Gareus [Wed, 11 Dec 2019 15:21:23 +0000 (16:21 +0100)]
Fix loading plugin state from sessions

While loading a session XML state, set_state must use
`Stateful::loading_state_version`.

When later copying processor state,
`Stateful::current_state_version` is correct.

4 years agoRemove hardcoded session-state versions
Robin Gareus [Wed, 11 Dec 2019 12:55:51 +0000 (13:55 +0100)]
Remove hardcoded session-state versions

4 years agoshould probably resolve MIDI notes when loop bounds change
Paul Davis [Wed, 11 Dec 2019 04:27:10 +0000 (21:27 -0700)]
should probably resolve MIDI notes when loop bounds change

We don't really need to do this if the bounds have moved "outwards", but
at present we don't know if that is the case, so be safe and resolve in
case the loop bounds moved "inwards" and we would otherwise get stuck notes
caused by the now-missing noteOffs

4 years agofix unnecssary disruption of MIDI stream when disabling loop
Paul Davis [Wed, 11 Dec 2019 02:30:28 +0000 (19:30 -0700)]
fix unnecssary disruption of MIDI stream when disabling loop

4 years agoMonitor Section: Add a spacer so the topmost buttons are not visually grouped with...
Ben Loftis [Tue, 10 Dec 2019 20:35:03 +0000 (14:35 -0600)]
Monitor Section: Add a spacer so the topmost buttons are not visually grouped with buttons in the editor toolbar.

4 years agoSource List nomenclature: Whole files get imported to the SOURCE list.
Ben Loftis [Tue, 10 Dec 2019 20:10:11 +0000 (14:10 -0600)]
Source List nomenclature: Whole files get imported to the SOURCE list.

4 years agouse PlayistChanged appropriately to fix MIDI output
Paul Davis [Tue, 10 Dec 2019 19:22:05 +0000 (12:22 -0700)]
use PlayistChanged appropriately to fix MIDI output

We didn't render the MIDI data when a playlist was set, only when modified.

4 years agouse bitmask values for OverwriteReason, as was intended
Paul Davis [Tue, 10 Dec 2019 19:21:28 +0000 (12:21 -0700)]
use bitmask values for OverwriteReason, as was intended

4 years agorevert to single buffer for disk playback, and 5.x-style overwrite
Paul Davis [Tue, 10 Dec 2019 16:28:41 +0000 (09:28 -0700)]
revert to single buffer for disk playback, and 5.x-style overwrite

Also address issues with MIDI and also atomicity of _pending_overwrite

4 years agoAutostart must {try to} use the session sample-rate. There is no ambiguity here.
Ben Loftis [Fri, 6 Dec 2019 19:25:44 +0000 (13:25 -0600)]
Autostart must {try to} use the session sample-rate.  There is no ambiguity here.

4 years agoFix font size on Push2
David Robillard [Mon, 9 Dec 2019 22:38:10 +0000 (23:38 +0100)]
Fix font size on Push2

At least on my machine, the fonts on the Push display were ridiculously large,
making everything overlapping and unusable.  I suspect this is because
pango_cairo_font_map_get_default() inherits DPI from the system, so the
monitor scaling factor got applied to the Push display as well.

This commit instead creates a new plain font map, and sets the resolution to
96, which looks like what the UI was designed for.  Some more tweaking of the
Pango context might make things more optimal on the Push, but just setting the
resolution makes things look reasonable to me anyway.

4 years agoSuppress warnings in Gtk headers
David Robillard [Mon, 9 Dec 2019 22:27:04 +0000 (23:27 +0100)]
Suppress warnings in Gtk headers

4 years agoFix deprecated-copy warnings
David Robillard [Mon, 9 Dec 2019 21:59:40 +0000 (22:59 +0100)]
Fix deprecated-copy warnings

It's long been a guideline (and IIRC a Weff-c++ warning) that either all, or
none, of the copy methods should be defined, but this became a standard warning
in GCC9.  Presumably to account for a later language change though I'm not sure
which.

I don't remember why the ChanMapping copy constructor can't just be a simple
copy (it's just a map of POD), but figure it's safer to just copy what that
does.

4 years agoUse labs() for long instead of abs()
David Robillard [Mon, 9 Dec 2019 21:58:40 +0000 (22:58 +0100)]
Use labs() for long instead of abs()