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

4 years agoFix catch of polymorphic type by value
David Robillard [Mon, 9 Dec 2019 21:58:08 +0000 (22:58 +0100)]
Fix catch of polymorphic type by value

4 years agoRemove unused variable
David Robillard [Mon, 9 Dec 2019 21:56:14 +0000 (22:56 +0100)]
Remove unused variable

4 years agoFix incorrect parameter type
David Robillard [Mon, 9 Dec 2019 21:50:37 +0000 (22:50 +0100)]
Fix incorrect parameter type

This takes a bool.

4 years agoFix automation alignment for latent plugins
Robin Gareus [Mon, 9 Dec 2019 17:23:17 +0000 (18:23 +0100)]
Fix automation alignment for latent plugins

This also solves bi-stable automation for plugins where latency
can change due to automation. e.g.

cycle 1: run (t): automation (t) = on: -> increase latency
cycle 2: run (t-latency): automation (t-latency) = off -> decrease latency
repeat.

4 years agoWhen a marker is selected, change the marker color in addition to the line color.
Ben Loftis [Mon, 9 Dec 2019 13:49:16 +0000 (07:49 -0600)]
When a marker is selected, change the marker color in addition to the line color.

4 years agofix error when continuing to refill audio playback buffers after a buffer switch
Paul Davis [Mon, 9 Dec 2019 05:37:07 +0000 (22:37 -0700)]
fix error when continuing to refill audio playback buffers after a buffer switch

The file_sample[AUDIO] member was not updated to reflect the last-read sample in the
switched-to buffer.

Also move several methods and members from DiskIO to DiskReader where they belong.

4 years agoFix two compiler warnings
Robin Gareus [Mon, 9 Dec 2019 00:10:50 +0000 (01:10 +0100)]
Fix two compiler warnings

4 years agomore debug output
Paul Davis [Mon, 9 Dec 2019 00:01:05 +0000 (17:01 -0700)]
more debug output

4 years agoavoid a locate-to-loop-start from cancelling looping
Paul Davis [Mon, 9 Dec 2019 00:00:30 +0000 (17:00 -0700)]
avoid a locate-to-loop-start from cancelling looping

4 years agocorrect logic errors related to roll-after-locate in TransportFSM
Paul Davis [Mon, 9 Dec 2019 00:00:08 +0000 (17:00 -0700)]
correct logic errors related to roll-after-locate in TransportFSM

This might have broken some other subtle behavior, but testing hasn't shown it thus far

4 years agofix missing SessionEvent when **all** tracks need a buffer overwrite
Paul Davis [Sun, 8 Dec 2019 23:56:11 +0000 (16:56 -0700)]
fix missing SessionEvent when **all** tracks need a buffer overwrite

4 years agoBetter, more consistent fix for d0dcca109
Robin Gareus [Sun, 8 Dec 2019 23:07:33 +0000 (00:07 +0100)]
Better, more consistent fix for d0dcca109

4 years agoFix Pan automation when using "Touch"
Robin Gareus [Sun, 8 Dec 2019 22:52:48 +0000 (23:52 +0100)]
Fix Pan automation when using "Touch"

Pan->touching was left uninitialized, and usually non-zero.
So pan automation was assumed to be currently touched,
and hence never interpolated.

4 years agoUpdate lua script to current playlist API
Daniel Appelt [Sun, 8 Dec 2019 16:40:38 +0000 (17:40 +0100)]
Update lua script to current playlist API

4 years agoMSVC project changes needed to support the new 'mp3 import' stuff
John Emmas [Sun, 8 Dec 2019 15:04:02 +0000 (15:04 +0000)]
MSVC project changes needed to support the new 'mp3 import' stuff

4 years agoMinor changes needed to make the 'mp3 import' sources build with MSVC
John Emmas [Sun, 8 Dec 2019 15:01:59 +0000 (15:01 +0000)]
Minor changes needed to make the 'mp3 import' sources build with MSVC

(MSVC project changes to follow...)

4 years agoAdd support for LV2 state:freePath feature
Robin Gareus [Sun, 8 Dec 2019 14:21:30 +0000 (15:21 +0100)]
Add support for LV2 state:freePath feature

This fixes a memory-leak issue for Windows builds.
see also https://github.com/drobilla/lilv/issues/14

4 years agoNO-OP: whitespace
Robin Gareus [Sun, 8 Dec 2019 14:20:26 +0000 (15:20 +0100)]
NO-OP: whitespace

4 years agofix behavior when pressing l to loop (not in loop-is-mode) and the required stop...
Paul Davis [Sat, 7 Dec 2019 17:30:27 +0000 (10:30 -0700)]
fix behavior when pressing l to loop (not in loop-is-mode) and the required stop-during locate cancels looping

4 years ago"revert" back to previous loop rect in editor color
Paul Davis [Sat, 7 Dec 2019 17:28:56 +0000 (10:28 -0700)]
"revert" back to previous loop rect in editor color

4 years agofunctional double buffering when using DiskReader::overwrite_existing_buffers
Paul Davis [Fri, 6 Dec 2019 21:21:40 +0000 (14:21 -0700)]
functional double buffering when using DiskReader::overwrite_existing_buffers

4 years agoa few parameter changes, and flesh out code to switch rbufs in DiskReader
Paul Davis [Thu, 5 Dec 2019 22:34:51 +0000 (15:34 -0700)]
a few parameter changes, and flesh out code to switch rbufs in DiskReader

4 years agoinitial conversion to double buffering inside DiskReader
Paul Davis [Thu, 5 Dec 2019 22:01:41 +0000 (15:01 -0700)]
initial conversion to double buffering inside DiskReader

Second buffer is not used (or allocated) yet.

4 years agoFix 64bit OSX/MacOS builds
Robin Gareus [Sat, 7 Dec 2019 14:46:20 +0000 (15:46 +0100)]
Fix 64bit OSX/MacOS builds

4 years agoDo not allow to embed ogg/vorbis files, require import
Robin Gareus [Sat, 7 Dec 2019 14:38:09 +0000 (15:38 +0100)]
Do not allow to embed ogg/vorbis files, require import

4 years agoRemove #ifdef'ed format-specific error-log messages
Robin Gareus [Sat, 7 Dec 2019 14:09:20 +0000 (15:09 +0100)]
Remove #ifdef'ed format-specific error-log messages

With inclusion of Mp3FileSource, this would get tricky.
On MacOS, the SndFileSource's sf_error_str message is never displayed,
anyway, also calling methods all handle failed-constructor.
So error-log is less important.

4 years agoFlatten nested try/catch clauses
Robin Gareus [Sat, 7 Dec 2019 10:39:09 +0000 (11:39 +0100)]
Flatten nested try/catch clauses

This also consistently throws a failed_constructor() when instantiating
a CoreAudioSource fails, regardless of the actual exception

4 years agoRemove unused API, reduce sndfile/coreaudio specialization
Robin Gareus [Sat, 7 Dec 2019 10:32:07 +0000 (11:32 +0100)]
Remove unused API, reduce sndfile/coreaudio specialization

4 years agoFix nested comments
Robin Gareus [Sat, 7 Dec 2019 00:13:38 +0000 (01:13 +0100)]
Fix nested comments

4 years agoAdd tsan option to trace data-races
Robin Gareus [Fri, 6 Dec 2019 23:46:33 +0000 (00:46 +0100)]
Add tsan option to trace data-races

4 years agoSpeed up seeking in mp3s
Robin Gareus [Fri, 6 Dec 2019 22:13:20 +0000 (23:13 +0100)]
Speed up seeking in mp3s

4 years agoFix issues with VBR mp3s, detect duration by decoding
Robin Gareus [Fri, 6 Dec 2019 20:53:03 +0000 (21:53 +0100)]
Fix issues with VBR mp3s, detect duration by decoding

4 years agoClear TransportAbort flag after stop
Robin Gareus [Fri, 6 Dec 2019 20:28:48 +0000 (21:28 +0100)]
Clear TransportAbort flag after stop

This fixes an issue with unresponsive transport controls after
an abort (e.g. post-export).

4 years agoFix Windows build
Robin Gareus [Fri, 6 Dec 2019 19:22:00 +0000 (20:22 +0100)]
Fix Windows build

4 years agoMark .mp2 and .mp3 as valid file-extensions
Robin Gareus [Fri, 6 Dec 2019 17:30:53 +0000 (18:30 +0100)]
Mark .mp2 and .mp3 as valid file-extensions

4 years agoUI limitations for mp3 import
Robin Gareus [Fri, 6 Dec 2019 17:11:19 +0000 (18:11 +0100)]
UI limitations for mp3 import

4 years agoImplement mp3 import, using minimp3
Robin Gareus [Fri, 6 Dec 2019 17:18:33 +0000 (18:18 +0100)]
Implement mp3 import, using minimp3

4 years agoAdd "seekable" SoundFile info (in prep for mp3 import)
Robin Gareus [Fri, 6 Dec 2019 17:08:38 +0000 (18:08 +0100)]
Add "seekable" SoundFile info (in prep for mp3 import)

4 years agoFlatten nested try/catch clauses
Robin Gareus [Fri, 6 Dec 2019 17:06:13 +0000 (18:06 +0100)]
Flatten nested try/catch clauses

This also consistently throws a failed_constructor() when instantiating
SoundFile fails, regardless of the actual exception

4 years agoVKeybd: Set default MIDI port flags
Robin Gareus [Thu, 5 Dec 2019 22:40:29 +0000 (23:40 +0100)]
VKeybd: Set default MIDI port flags

4 years agoUndo habits of a Serif font lover
Robin Gareus [Thu, 5 Dec 2019 22:33:27 +0000 (23:33 +0100)]
Undo habits of a Serif font lover

4 years agoVKeybd: grab and ignore some keys
Robin Gareus [Thu, 5 Dec 2019 21:12:49 +0000 (22:12 +0100)]
VKeybd: grab and ignore some keys

With default QWERTY and QWERTZ layout some keys that are easily
accidentally pressed. Those triggered editor actions,
(e.g. "a" (audition), or "1" (edit-tool)) and are now ignored.

4 years agoremove mistakenly left in session event enum
Paul Davis [Thu, 5 Dec 2019 20:12:58 +0000 (13:12 -0700)]
remove mistakenly left in session event enum

4 years agochanges to use overwrite-buffers when loop is disabled or loop range changed
Paul Davis [Thu, 5 Dec 2019 20:00:24 +0000 (13:00 -0700)]
changes to use overwrite-buffers when loop is disabled or loop range changed

4 years agoFix for-loop condition (comma has no effect)
Robin Gareus [Thu, 5 Dec 2019 17:23:49 +0000 (18:23 +0100)]
Fix for-loop condition (comma has no effect)

4 years agoFix well-known control LPF/HPF order.
Robin Gareus [Thu, 5 Dec 2019 15:43:20 +0000 (16:43 +0100)]
Fix well-known control LPF/HPF order.