Paul Davis [Wed, 25 Sep 2019 18:16:13 +0000 (12:16 -0600)]
goodbye USE_TRACKS_CODE_FEATURES and is_tracks_build
Robin Gareus [Wed, 25 Sep 2019 14:31:52 +0000 (16:31 +0200)]
Remove ui-config mixbus ifdef's
Robin Gareus [Wed, 25 Sep 2019 13:27:02 +0000 (15:27 +0200)]
Some reasonable default config changes
Robin Gareus [Wed, 25 Sep 2019 13:16:34 +0000 (15:16 +0200)]
Print LADSPA ID with debug message
Robin Gareus [Wed, 25 Sep 2019 12:13:51 +0000 (14:13 +0200)]
Cleanup configuration stage
* use print() only for errors
* use write_config_text() for normal operation
* fail if lld was requested, but not found
Robin Gareus [Wed, 25 Sep 2019 12:00:34 +0000 (14:00 +0200)]
Consolidate and extend "well-known" controls:
* Add new common strip controls (inspired from Mixbus)
* Remove duplicate documentation, document virtual API only.
* "azimuth" not "azi"
Robin Gareus [Wed, 25 Sep 2019 10:03:06 +0000 (12:03 +0200)]
Faderport: use well-known-controls API
Paul Davis [Tue, 24 Sep 2019 23:36:22 +0000 (17:36 -0600)]
add configure-time option to use lld as the linker (on linux)
this cuts about 15 seconds off the total linker time on a 16 core ryzen threadripper
Robin Gareus [Tue, 24 Sep 2019 20:10:02 +0000 (22:10 +0200)]
Mixbus backports -- part one of many
Changes that are not explicitly #ifdef'ed should go to ardour-git.
Robin Gareus [Tue, 24 Sep 2019 17:48:31 +0000 (19:48 +0200)]
Prepare for plugin-control groups
This is in preparation to allow groups of "well known" controls,
the parameter ID of which is not known a-priori.
John Emmas [Tue, 24 Sep 2019 09:20:23 +0000 (10:20 +0100)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
John Emmas [Tue, 24 Sep 2019 09:19:38 +0000 (10:19 +0100)]
Add/remove source(s) in our MSVC project (libardour)
John Emmas [Tue, 24 Sep 2019 09:17:32 +0000 (10:17 +0100)]
Include a header file needed for Windows VST support
Paul Davis [Mon, 23 Sep 2019 20:49:06 +0000 (14:49 -0600)]
split apart ardour_ui.cc into a series of distinct source modules.
Should be a 100% no-op - no code was altered, just moved
Paul Davis [Mon, 23 Sep 2019 03:45:30 +0000 (21:45 -0600)]
fix problem with ArdourDialog::on_delete_event() not being called when appropriate during app startup
The dialog is run using gtk_dialog_run() which uses on_response() to deal with delete/close events unlike a regular
top level event loop.
Probably even better would be run run the dialog from the top level event loop, but this is a bit complex
Paul Davis [Mon, 23 Sep 2019 01:21:18 +0000 (19:21 -0600)]
remove empty methods and signal connections
Paul Davis [Sun, 22 Sep 2019 18:19:28 +0000 (12:19 -0600)]
various changes to transportFSM, mostly to try to keep track of whether to roll-after-locate (more) accurately
Paul Davis [Sun, 22 Sep 2019 18:18:36 +0000 (12:18 -0600)]
change the way we clear post transport work as the butler and post-butler methods get things done
This avoids the blanket "set_post_transport_work (PostTransportWork(0));" that never really looked right
Paul Davis [Sun, 22 Sep 2019 17:50:51 +0000 (11:50 -0600)]
improve debug output
Paul Davis [Sun, 22 Sep 2019 17:50:44 +0000 (11:50 -0600)]
move all bundle-related session methods into their own file
Paul Davis [Sun, 22 Sep 2019 17:49:59 +0000 (11:49 -0600)]
add direct access API for transportFSM and session transport speed
Paul Davis [Sun, 22 Sep 2019 17:49:19 +0000 (11:49 -0600)]
remove unused PostTransportDuration and enumeration-writing for Adjust(Playback|Capture)Buffering
Paul Davis [Sun, 22 Sep 2019 17:44:06 +0000 (11:44 -0600)]
UI goto_start() action no longer forces roll-after-locate
Paul Davis [Fri, 20 Sep 2019 22:52:13 +0000 (16:52 -0600)]
correct problem with some locates that would keep rolling after they are finished
Paul Davis [Fri, 20 Sep 2019 20:31:19 +0000 (14:31 -0600)]
split session-bundled-related methods to their own file
Paul Davis [Fri, 20 Sep 2019 20:12:08 +0000 (14:12 -0600)]
add const and tweak variable name
Paul Davis [Fri, 20 Sep 2019 20:11:53 +0000 (14:11 -0600)]
transport master deletion is no longer in parallel with process()
Paul Davis [Fri, 20 Sep 2019 20:11:07 +0000 (14:11 -0600)]
use internal seek to implement DiskReader::seek() when possible.
This still needs a check that the amount of readable data left in the buffe is adequate.
Robin Gareus [Sun, 22 Sep 2019 02:58:32 +0000 (04:58 +0200)]
NO-OP: whitespace
Robin Gareus [Sun, 22 Sep 2019 02:54:28 +0000 (04:54 +0200)]
Optimize Audio-buffer summing
* skip silent buffers
* use vectorized copy
* prefer memset for zero-gain
Robin Gareus [Sun, 22 Sep 2019 02:52:26 +0000 (04:52 +0200)]
Remove unused method
Robin Gareus [Sun, 22 Sep 2019 02:15:36 +0000 (04:15 +0200)]
Properly initialize BusSendEnable min/max
Robin Gareus [Sun, 22 Sep 2019 02:15:01 +0000 (04:15 +0200)]
NO-OP: cleanup code
Robin Gareus [Fri, 20 Sep 2019 21:30:05 +0000 (23:30 +0200)]
Fix latency-measurement port-name display
In case there are no pretty-names, a blank text was displayed
Robin Gareus [Fri, 20 Sep 2019 18:25:04 +0000 (20:25 +0200)]
Add abstract API for latency compensated sends
This is in preparation for MixbusSends that are not derived from
Delivery : IOProcessor.
Paul Davis [Fri, 20 Sep 2019 19:02:46 +0000 (13:02 -0600)]
do not abort in the event that we cannot internal-seek to align with the playhead.
There are no good options here, but treating it like a regular underrun seems as good as anything
Paul Davis [Fri, 20 Sep 2019 18:36:23 +0000 (12:36 -0600)]
better initial value
Paul Davis [Fri, 20 Sep 2019 18:19:25 +0000 (12:19 -0600)]
remove debug output
Paul Davis [Fri, 20 Sep 2019 18:18:49 +0000 (12:18 -0600)]
fix crash when doing rapid (ongoing-locate-interrupting) locates
Paul Davis [Fri, 20 Sep 2019 18:17:22 +0000 (12:17 -0600)]
move TransportFSM::enqueue() into .cc file
Paul Davis [Fri, 20 Sep 2019 18:16:50 +0000 (12:16 -0600)]
at transport stop, reset FSM's idea of the last locate target (also removes const from method)
Paul Davis [Fri, 20 Sep 2019 18:11:33 +0000 (12:11 -0600)]
fix commented out decision on whether or not to hide/show sysexes in MIDI regions
Robin Gareus [Fri, 20 Sep 2019 17:40:29 +0000 (19:40 +0200)]
Handle an unused edge-case
In practice PanControllable::owner cannot be NULL, but in theory it
could be (and might be for Mixbus6 internal panning).
Robin Gareus [Fri, 20 Sep 2019 17:38:34 +0000 (19:38 +0200)]
Fix Latency Measurement without device re-start
This handles a case when the engine was started normally
(not for latency measurement), and measurement is performed later.
This resulted in a duplicate backend start
Paul Davis [Fri, 20 Sep 2019 15:44:15 +0000 (09:44 -0600)]
const-ify TransportFSM
Paul Davis [Fri, 20 Sep 2019 15:38:09 +0000 (09:38 -0600)]
rename TransportFSM::FSMEvent to TransportFSM::Event (c/o the Department of Redundancy Department)
Paul Davis [Fri, 20 Sep 2019 15:35:08 +0000 (09:35 -0600)]
add an important comment about transportFSM being single-thread and synchronous
Paul Davis [Fri, 20 Sep 2019 15:33:24 +0000 (09:33 -0600)]
use boost::intrusive to manage FSM events (this is all RT code)
Paul Davis [Fri, 20 Sep 2019 14:21:14 +0000 (08:21 -0600)]
expand comment
John Emmas [Fri, 20 Sep 2019 10:32:58 +0000 (11:32 +0100)]
Remove my BOOST_MPL declarations (as BOOST_MPL seems to have been removed more generally)
Paul Davis [Fri, 20 Sep 2019 04:34:02 +0000 (22:34 -0600)]
remove compiler flags required only by boost::msm and a large transition table
Paul Davis [Fri, 20 Sep 2019 04:33:43 +0000 (22:33 -0600)]
replace boost::msm - based FSM for transport with one written in "plain C++"
Still need to use boost::intrusive to managed qeued/deferred containers
Robin Gareus [Wed, 18 Sep 2019 16:40:02 +0000 (18:40 +0200)]
Fix LV2 state:loadDefaultState
lilv_state_restore() needs to be called unconditionally (regardless
if a plugin actually has a state-interface) to set port and properties.
It has to be called after ports are enumerated and supported
properties are loaded.
Paul Davis [Wed, 18 Sep 2019 16:08:32 +0000 (10:08 -0600)]
don't bother following playhead priority during session loading
Paul Davis [Wed, 18 Sep 2019 16:08:20 +0000 (10:08 -0600)]
deepen stack trace when checking non-RT RT calls
Robin Gareus [Wed, 18 Sep 2019 15:28:35 +0000 (17:28 +0200)]
Add missing break (VST-key forwarding)
Robin Gareus [Wed, 18 Sep 2019 15:27:56 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough, see prev commit
Robin Gareus [Wed, 18 Sep 2019 15:27:09 +0000 (17:27 +0200)]
NO-OP: fix some Wimplicit-fallthrough
gcc can recognize various regexps in comments. Since C++17 provides
[[fallthrough]], using /* fallthrough */ consistently seems
appropriate until we switch to C++17.
see also https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
John Emmas [Wed, 18 Sep 2019 14:08:26 +0000 (15:08 +0100)]
Introduce the BOOST_MPL stuff (though it all seems a bit flaky with MSVC...)
John Emmas [Wed, 18 Sep 2019 14:05:16 +0000 (15:05 +0100)]
Remove a (no longer needed) source file from our MSVC project (evoral)
John Emmas [Wed, 18 Sep 2019 14:03:51 +0000 (15:03 +0100)]
Add/remove source(s) in our MSVC project (libardour)
Robin Gareus [Wed, 18 Sep 2019 04:23:40 +0000 (06:23 +0200)]
Fix OSX builds: undef Apples's odd nil macro
Robin Gareus [Wed, 18 Sep 2019 03:57:26 +0000 (05:57 +0200)]
Consistent use of abort() /* NOTREACHED */
This fixes some static analysis warnings:
PBD::fatal transmitter needs to be connected to a function
that aborts. This is usually the case with GUI
Robin Gareus [Wed, 18 Sep 2019 02:43:09 +0000 (04:43 +0200)]
Fix Wdeprecated, dynamic exception
Dynamic exception specifications are deprecated in C++11,
and were removed in C++17.
Robin Gareus [Wed, 18 Sep 2019 02:37:12 +0000 (04:37 +0200)]
Remove old unused source file
Robin Gareus [Wed, 18 Sep 2019 02:32:51 +0000 (04:32 +0200)]
Add missing i18n include (after
7f3f2018334)
Robin Gareus [Wed, 18 Sep 2019 02:14:31 +0000 (04:14 +0200)]
Re-order includes
* external, system-wide first <>
* next "pbd/*"
...
Robin Gareus [Wed, 18 Sep 2019 02:09:26 +0000 (04:09 +0200)]
Remove "i18n.h" include from header - fix builds
i18n alsways needs to be included last. This fixes an ambiguity of "_"
boost/function_types/detail/class_transform.hpp:23:26:
error: ‘boost::mpl::placeholders::_’ has not been declared
using mpl::placeholders::_;
Paul Davis [Wed, 18 Sep 2019 01:16:53 +0000 (19:16 -0600)]
deepen stacktrace to show where non-process calls to supposedly process-stack-only methods are called
Paul Davis [Wed, 18 Sep 2019 00:26:03 +0000 (18:26 -0600)]
add finite state machine to control/manage transport state
Paul Davis [Wed, 18 Sep 2019 00:20:51 +0000 (18:20 -0600)]
correct mistakenly left-in debugging condition that removed parallelism for PortManager::cycle_start()
Paul Davis [Wed, 27 Mar 2019 16:58:12 +0000 (09:58 -0700)]
minor tweaks to use initialization rather than assignment
Paul Davis [Mon, 8 Jul 2019 15:59:14 +0000 (09:59 -0600)]
remove unused local variable
Paul Davis [Thu, 5 Sep 2019 20:04:20 +0000 (14:04 -0600)]
fix thinko when testing for internal seek with negative distance
Paul Davis [Thu, 11 Jul 2019 15:15:42 +0000 (09:15 -0600)]
use const int rather than macro
Paul Davis [Thu, 11 Jul 2019 05:32:14 +0000 (23:32 -0600)]
parametize the maximum transport speed.
No GUI to adjust this at this, nor is any planned. This just makes it easier if
we ever feel we can change this.
Paul Davis [Thu, 11 Jul 2019 05:39:02 +0000 (23:39 -0600)]
resize audio port _data buffer based on current buffer size
Paul Davis [Mon, 8 Jul 2019 16:01:25 +0000 (10:01 -0600)]
manually correct cherry-pick of
cdbabe40ed4e
Paul Davis [Mon, 8 Jul 2019 15:58:01 +0000 (09:58 -0600)]
add new port flag to identify those owned by a transport master
These ports are handled without SRC
Paul Davis [Mon, 16 Sep 2019 19:46:06 +0000 (13:46 -0600)]
add ::usable() method to TransportMaster objects to allow GUI to show their usability after backend/engine changes
Robin Gareus [Tue, 17 Sep 2019 14:56:15 +0000 (16:56 +0200)]
Correctly handle Zoom > Edit-point > Mouse
Previously this failed if the event was initiated outside
of the canvas (e.g. Zoom buttons).
This also fixes a special case of Zooming to an edit-point at zero.
Len Ovens [Mon, 16 Sep 2019 23:23:01 +0000 (16:23 -0700)]
foldback gui: removed mute, solo button hide in SIP
Mute removed, Solo renamed to listen only shows when
not in SIP mode.
Robin Gareus [Mon, 16 Sep 2019 20:56:54 +0000 (22:56 +0200)]
Clarify splash-screen boot messages
Parsing MIDNAM is what takes the most time.
"Reset Remote Controls" message is misleading (it means MMC), not
control-surfaces, which a user may have none.
Len Ovens [Sun, 15 Sep 2019 21:48:09 +0000 (14:48 -0700)]
Foldback gui: desensitize solo button when in SIP mode
Because foldback by design goes to physical outputs
rather than master or monitor, SIP solo does not work
or make sense. PFL/AFL allow a foldback to be rough
adjusted using the control room monitoring.
A soloed Foldback bus will be released when the foldback
strip is switched to a different foldback bus
Len Ovens [Sun, 15 Sep 2019 14:00:11 +0000 (07:00 -0700)]
Foldback gui:Removed unused calls and parameters
Len Ovens [Sat, 14 Sep 2019 17:19:01 +0000 (10:19 -0700)]
Set Foldback strip width and ellipsize to work
Len Ovens [Fri, 13 Sep 2019 15:18:35 +0000 (08:18 -0700)]
desensitize foldback show unless there is a foldback bus
The view menu should not show the foldback item
if there is no foldback bus available.
Robin Gareus [Thu, 12 Sep 2019 21:35:57 +0000 (23:35 +0200)]
Use new icons in mixer window
Robin Gareus [Thu, 12 Sep 2019 21:30:48 +0000 (23:30 +0200)]
Add new icons: hide, prev/next
Len Ovens [Thu, 12 Sep 2019 19:44:38 +0000 (12:44 -0700)]
foldback gui: simplify foldback strip menus
This uses less code and fixes the odd crash as well
(there was sometimes a crash when using the send
display context menu)
Len Ovens [Thu, 12 Sep 2019 16:39:38 +0000 (09:39 -0700)]
foldback gui: simplify button code where possible
use signal_clicked rather than signal_button_press_event
for cases where a menu is not launched.
Len Ovens [Wed, 11 Sep 2019 23:36:05 +0000 (16:36 -0700)]
Foldback gui: Added hide and show
- New menu item in view menu
- Foldback strip has hide button
- Adding a new foldback bus sets show
- setting is saved and restored
Len Ovens [Wed, 11 Sep 2019 04:40:39 +0000 (21:40 -0700)]
foldback gui: added tool tips for previous and next
Len Ovens [Wed, 11 Sep 2019 04:09:54 +0000 (21:09 -0700)]
Foldback gui: previous and next buttons don't wrap around
I had set the previous next buttons to wrap around
but Robin felt dead ending was better. The previous
button becomes insensitive when the first foldback bus
is displayed and next is insensitive when the last is
displayed.
Len Ovens [Wed, 11 Sep 2019 02:26:00 +0000 (19:26 -0700)]
Foldback GUI: sort send controls by mixer order
also found send button name did not follow sending
route name after change and tool tip was wrong. Fixed
both.
Robin Gareus [Wed, 11 Sep 2019 01:00:26 +0000 (03:00 +0200)]
Who needs semicolons?
Robin Gareus [Wed, 11 Sep 2019 00:40:57 +0000 (02:40 +0200)]
AU: fix optional buffers
The spec [1] says:
"If the mData pointers are null, the audio unit can
provide pointers to its own buffers. In this case,
the audio unit must keep those buffers valid for
the duration of the calling thread’s I/O cycle."
A plugin *can* do this, but it does not need to. An extra
NULL test is required.
furthermore [2] specifies
"mDataByteSize - The number of bytes in the buffer pointed
at by the mData field."
In case the host does not provide any buffers, this is obviously zero.
[1] https://developer.apple.com/documentation/audiotoolbox/
1438430-audiounitrender?language=objc
[2] https://developer.apple.com/documentation/coreaudiotypes/audiobuffer?language=objc
Robin Gareus [Wed, 11 Sep 2019 00:31:19 +0000 (02:31 +0200)]
AU: don't consider in-place if there are no inputs
Len Ovens [Tue, 10 Sep 2019 23:08:24 +0000 (16:08 -0700)]
Foldback GUI: size and position tweaks
- Set width so added pan controls in send controls don't change size
- output button shows only ports applicable to foldback use
- Size text to leave widget width alone
- Center level control
-
Robin Gareus [Tue, 10 Sep 2019 15:03:16 +0000 (17:03 +0200)]
Add note about Denormal protection pref changes
Modifications to the MXCSR register are pre thread. Changing this
setting only directly affects the GUI thread.