Robin Gareus [Fri, 12 Apr 2019 16:30:52 +0000 (18:30 +0200)]
Mixbus likes hyperthreading on Mac
Robin Gareus [Fri, 12 Apr 2019 16:29:23 +0000 (18:29 +0200)]
Update Mixbus Mon-section #ifdef
Robin Gareus [Fri, 12 Apr 2019 02:12:22 +0000 (04:12 +0200)]
Special case Lua copy-construction of trackable instances
This fixes an crashing issue with ArdourUI.SelectionList a bug
introduced in
6dc3bdf252c and
35dcd46d7d.
Since removal of the special cases in
35dcd46d7d, when using
a C-pointer in a std::list<>,
std::list<class*>::push_back(TypeListValue)
TypeListValues<>'s Head was expanded to "class*& const"
implied by void ::push_back(const T& value);
This resulted in lifetime issues with a classes that derive
from sigc::trackable (e.g. Ardour's Selection).
The reference leaves scope and isn't duplicated when it is pushed back
to the std::list<>.
The script scripts/select_every_2nd_region.lua crashed because entries
in the SelectionList were no longer valid.
Previously (before
6dc3bdf252c) TypeListValues explicitly
copy-constructed the value to work around the lifetime issue.
This new solution bypasses the issue by directly using the c-pointer
without dereferencing it.
Robin Gareus [Fri, 12 Apr 2019 00:44:23 +0000 (02:44 +0200)]
Revert another sample/frame confusion
Robin Gareus [Thu, 11 Apr 2019 00:32:45 +0000 (02:32 +0200)]
NO-OP: whitespace
Robin Gareus [Thu, 11 Apr 2019 00:08:36 +0000 (02:08 +0200)]
Skip Subgroup menu-options when not available (no MIDI subgroups)
Robin Gareus [Thu, 11 Apr 2019 00:06:32 +0000 (02:06 +0200)]
Add API to render a reflection
This is to be used sparingly because the pattern is dynamically
created every time. Mainly for the benefit of some Mixbus
widgets -- compared to ArdourButton::convex_pattern
Robin Gareus [Thu, 11 Apr 2019 00:05:01 +0000 (02:05 +0200)]
Ardour/Mixbus codebase unification - ui config
Robin Gareus [Wed, 10 Apr 2019 19:03:08 +0000 (21:03 +0200)]
Add option to leave vertical gap below audio regions
This is a backport from Mixbus, to leave are 4 "open" pixels
at the bottom of the track so one can see the grid-lines between tracks.
This is useful with low region-transparency. grid-lines behind
opaque regions are not visible.
David Robillard [Sun, 31 Mar 2019 17:25:24 +0000 (19:25 +0200)]
Cleanup: Simplify conditionals
David Robillard [Sun, 31 Mar 2019 17:19:21 +0000 (19:19 +0200)]
Remove support for building against LV2 older than 1.2.0
LV2 1.2.0 was released in 2012, over 6 years ago now.
Robin Gareus [Tue, 9 Apr 2019 22:22:39 +0000 (00:22 +0200)]
Clarify default template description
Robin Gareus [Tue, 9 Apr 2019 22:19:39 +0000 (00:19 +0200)]
LV2: check required feature and options
When discovering LV2 plugins, verify if a plugin's required features
and required options can be be satisfied.
This replaces a previous blacklist with a whitelist of supported
features/options.
Robin Gareus [Tue, 9 Apr 2019 12:36:56 +0000 (14:36 +0200)]
Disable auto-input by default for new installs
This prevents audible feedback on laptops when adding new tracks
with default settings.
Robin Gareus [Tue, 9 Apr 2019 12:33:27 +0000 (14:33 +0200)]
Backport Mixbus delivery patch
Robin Gareus [Tue, 9 Apr 2019 11:17:15 +0000 (13:17 +0200)]
Unify build-system customization (Ardour/Mixbus)
Robin Gareus [Tue, 9 Apr 2019 01:28:23 +0000 (03:28 +0200)]
Fix session-export util (timecode: frames, not samples)
Robin Gareus [Tue, 9 Apr 2019 01:16:09 +0000 (03:16 +0200)]
Backport Mixbus toolbutton layout
Robin Gareus [Tue, 9 Apr 2019 01:15:38 +0000 (03:15 +0200)]
Update Lua Script to use new MusicSample API
Robin Gareus [Tue, 9 Apr 2019 01:00:31 +0000 (03:00 +0200)]
NO-OP: fix another comment
Robin Gareus [Tue, 9 Apr 2019 00:23:17 +0000 (02:23 +0200)]
Remove cruft: unused typedef
Robin Gareus [Tue, 9 Apr 2019 00:20:06 +0000 (02:20 +0200)]
NO-OP: whitespace
Robin Gareus [Tue, 9 Apr 2019 00:19:51 +0000 (02:19 +0200)]
NO-OP: fix comment
Robin Gareus [Mon, 8 Apr 2019 22:31:29 +0000 (00:31 +0200)]
Replace some more "samples" with "frames" (rectangles)
Robin Gareus [Mon, 8 Apr 2019 22:27:05 +0000 (00:27 +0200)]
Another round of whitespace fixes
Robin Gareus [Mon, 8 Apr 2019 20:56:50 +0000 (22:56 +0200)]
Robin Gareus [Mon, 8 Apr 2019 20:24:10 +0000 (22:24 +0200)]
Fix Timecode fps
Robin Gareus [Mon, 8 Apr 2019 20:14:09 +0000 (22:14 +0200)]
Clarify API name (I/O-selector frame)
Robin Gareus [Mon, 8 Apr 2019 19:40:33 +0000 (21:40 +0200)]
Revert more "frame/sample" replacements
- Coverage concerns rectangles (frames, not sample)
- frame-handles are rectangles
- layout container boxes are frames
- inline display boxes are display_frame
Robin Gareus [Mon, 8 Apr 2019 19:37:02 +0000 (21:37 +0200)]
NO-OP: whitespace, alignment
Robin Gareus [Mon, 8 Apr 2019 19:36:27 +0000 (21:36 +0200)]
Remove hardcoded project-name from Actions
Robin Gareus [Mon, 8 Apr 2019 18:59:23 +0000 (20:59 +0200)]
Remove cruft (commented code)
Robin Gareus [Mon, 8 Apr 2019 17:53:33 +0000 (19:53 +0200)]
NO-OP: whitespace, indent
Robin Gareus [Mon, 8 Apr 2019 18:25:05 +0000 (20:25 +0200)]
Yet another "Rect frame" (not a sample)
Robin Gareus [Mon, 8 Apr 2019 18:00:02 +0000 (20:00 +0200)]
Frame as in "picture frame", not sample
Robin Gareus [Mon, 8 Apr 2019 17:36:22 +0000 (19:36 +0200)]
NO-OP: more libardour whitespace tweaks
Robin Gareus [Mon, 8 Apr 2019 16:32:09 +0000 (18:32 +0200)]
Undo yet more frame/sample replacements
Robin Gareus [Mon, 8 Apr 2019 16:29:04 +0000 (18:29 +0200)]
NO-OP: whitespace, comments
Robin Gareus [Mon, 8 Apr 2019 14:12:19 +0000 (16:12 +0200)]
Cleaup meter-tap: reduce nesting and remove code-dup
Robin Gareus [Mon, 8 Apr 2019 14:11:38 +0000 (16:11 +0200)]
Fix OMFtool; sample_rate vs frame_rate
Robin Gareus [Mon, 8 Apr 2019 13:01:26 +0000 (15:01 +0200)]
Remove duplicate patchfiles
The previous commit also unified the naming schama to prefer underscores.
Robin Gareus [Mon, 8 Apr 2019 12:48:26 +0000 (14:48 +0200)]
Import MIDNAM collection from Harrison Mixbus
Kudos to Nik and Ben at Harrisonconsoles. You Rock!
Robin Gareus [Mon, 8 Apr 2019 12:44:22 +0000 (14:44 +0200)]
NO-OP name change: CD-frames (not samples)
Robin Gareus [Mon, 8 Apr 2019 03:16:33 +0000 (05:16 +0200)]
NO-OP: whitespace
Fix space-alignment, mostly due to "frame" -> "sample" changes.
Robin Gareus [Mon, 8 Apr 2019 02:03:21 +0000 (04:03 +0200)]
Undo incorrect sample/frame replacements in clearlooks
Robin Gareus [Mon, 8 Apr 2019 01:46:02 +0000 (03:46 +0200)]
Undo more incorrect sample/frame replacements
Robin Gareus [Mon, 8 Apr 2019 01:45:12 +0000 (03:45 +0200)]
NO-OP: whitespace
Robin Gareus [Mon, 8 Apr 2019 00:05:36 +0000 (02:05 +0200)]
Indicate automation-latch as "touch" on the CC121
Without a dedicated "Latch" control, this does at least consistently
indicate "Touch", rather than show some arbitrary LED state.
Robin Gareus [Sun, 7 Apr 2019 23:56:52 +0000 (01:56 +0200)]
NO-OP: whitespace
Robin Gareus [Sun, 7 Apr 2019 22:35:00 +0000 (00:35 +0200)]
NO-OP: whitespace & revert samples -> [stack]frames
Robin Gareus [Sun, 7 Apr 2019 22:29:13 +0000 (00:29 +0200)]
NO-OP: indent
Robin Gareus [Sun, 7 Apr 2019 22:22:13 +0000 (00:22 +0200)]
Add missing semicolon (Mixbus)
Robin Gareus [Sun, 7 Apr 2019 22:18:08 +0000 (00:18 +0200)]
Revert some incorrect frames -> samples replacements
Mirko Kunze [Sun, 7 Apr 2019 20:48:56 +0000 (22:48 +0200)]
fix copypaste bug
Robin Gareus [Sun, 7 Apr 2019 17:51:08 +0000 (19:51 +0200)]
Enable midi-to-audio bounce when processing w/synth
Robin Gareus [Sun, 7 Apr 2019 17:18:28 +0000 (19:18 +0200)]
Prepare midi-export for midi-to-audio bouncing.
* shift event time into process cycle before calling processors
* reset note-trackers when exporting, don't allow any pending
events into the queue
Robin Gareus [Sun, 7 Apr 2019 17:36:35 +0000 (19:36 +0200)]
Fix bounce-process: skip all processors before disk-reader
Robin Gareus [Sun, 7 Apr 2019 17:35:45 +0000 (19:35 +0200)]
Bounce process always uses speed 1.0
Robin Gareus [Sun, 7 Apr 2019 17:34:37 +0000 (19:34 +0200)]
NO-OP/Optimize Bounce: Lookup data-type only once
This is to prepare for midi-to-audio bounce: allow to change the
data-type to be used as output.
Robin Gareus [Sun, 7 Apr 2019 17:30:23 +0000 (19:30 +0200)]
Verify Freeze/Export/Bounce polarity invert buffers
When using bounce w/process, the initial bufferset can [wrongly] be
buffers.set_count (track.max_processor_streams())
Since the polarity-processor is first in the chain, iterations
over all buffer that don't have a matching _current_gain[]
or _control[] leads to memory-corruption or segfault.
Robin Gareus [Sun, 7 Apr 2019 16:51:50 +0000 (18:51 +0200)]
Cleanup "Clean-up", hide dialog before starting cleanup
Robin Gareus [Wed, 3 Apr 2019 01:35:40 +0000 (03:35 +0200)]
Backport a Mixbus special-case for plugin-tags
Robin Gareus [Wed, 3 Apr 2019 01:35:13 +0000 (03:35 +0200)]
Fix OSC crash when there's no master bus
Robin Gareus [Tue, 2 Apr 2019 13:35:57 +0000 (15:35 +0200)]
Fix MIDI Aftertouch (import, record and play) in the backend
Robin Gareus [Mon, 1 Apr 2019 23:51:36 +0000 (01:51 +0200)]
Downgrade LADSPA scan errors to warnings
There's nothing that a casual user can about failure to scan
LADSPA plugins. So just inform the user.
It's not an error to worry about.
Robin Gareus [Mon, 1 Apr 2019 20:30:16 +0000 (22:30 +0200)]
Indicate automation-latch as "touch" on the FP1
The FP1 does not have a dedicated "Latch" control, but this does
at least consistently indicate that Touch, rather than show some
arbitrary LED state.
Robin Gareus [Mon, 1 Apr 2019 20:28:07 +0000 (22:28 +0200)]
Expose Latch automation mode to MCUs
Robin Gareus [Sun, 31 Mar 2019 20:25:40 +0000 (22:25 +0200)]
Clarify documentation
Robin Gareus [Sun, 31 Mar 2019 20:25:29 +0000 (22:25 +0200)]
Remove a hack of using flags to emit a signal-change from the GUI
The GUI should not be calling `manager.PluginListChanged();`
It's up to the plugin-manager to emit relevant signals.
This fixes an issue when adding/removing plugin-favorites using the
mixer's sidebar or via remote-control/surfaces or script.
Robin Gareus [Sun, 31 Mar 2019 14:08:35 +0000 (16:08 +0200)]
NO-OP: Whitespace
Robin Gareus [Sat, 30 Mar 2019 00:19:47 +0000 (01:19 +0100)]
AutomationRangeDrag tweaks for stacked layer view
Use y-pos and height of given TAV *layer* where the drag was initiated.
Robin Gareus [Sat, 30 Mar 2019 00:15:17 +0000 (01:15 +0100)]
Remove unused variable
Robin Gareus [Fri, 29 Mar 2019 23:14:26 +0000 (00:14 +0100)]
cont'd AutomationRangeDrag update
Properly adding guard-points for all lanes, not just the first found
for each range.
Robin Gareus [Fri, 29 Mar 2019 14:57:07 +0000 (15:57 +0100)]
cont'd AutomationRangeDrag updates -- safety commit
This is work in progress towards fixing stacked region's region-gain
and multiple discontinuous regions spanning multiple tracks.
AutomationRangeDrag::setup() still does not collect all AutomationLine
points for certain overlap scenarios. There's more to come...
Robin Gareus [Fri, 29 Mar 2019 13:53:07 +0000 (14:53 +0100)]
Fix Mixbus special case
Robin Gareus [Fri, 29 Mar 2019 13:52:25 +0000 (14:52 +0100)]
Fix action-name
Robin Gareus [Fri, 29 Mar 2019 13:33:31 +0000 (14:33 +0100)]
NO-OP: remove unused variable
John Emmas [Thu, 28 Mar 2019 11:39:30 +0000 (11:39 +0000)]
Add a missing namespace qualifier
(is needed now, following commit #
94271ee862)
Robin Gareus [Thu, 28 Mar 2019 02:01:53 +0000 (03:01 +0100)]
Fix route-templates with external sends
Robin Gareus [Thu, 28 Mar 2019 00:51:50 +0000 (01:51 +0100)]
Don't allow to cut/copy inserts via Drag/Drop
It was already verboten via ctrl-x/c/v since copying inserts using
the same I/O makes no sense, nor does moving them.
Robin Gareus [Wed, 27 Mar 2019 22:24:58 +0000 (23:24 +0100)]
Re-layout ctrl surface enable button: align left
Since the Preferences window can be rather wide, and the table expands,
a button on the left is preferred.
Robin Gareus [Wed, 27 Mar 2019 22:23:33 +0000 (23:23 +0100)]
Implement multi-region AutomationRange drag/drop
David Robillard [Tue, 19 Feb 2019 19:14:41 +0000 (20:14 +0100)]
Cleanup: Remove unnecessary using namespace declarations
David Robillard [Tue, 19 Feb 2019 19:12:42 +0000 (20:12 +0100)]
Cleanup: Fix inconsistent TransformDialog code style
Robin Gareus [Tue, 26 Mar 2019 21:25:20 +0000 (22:25 +0100)]
NO-OP: add comment for cross-reference
Robin Gareus [Tue, 26 Mar 2019 21:12:48 +0000 (22:12 +0100)]
Remove extra quotes from meta-data
Arguments are passed as argp[] array to execve() and don't need to be
enclosed by quotes.
Robin Gareus [Tue, 26 Mar 2019 20:05:52 +0000 (21:05 +0100)]
Credit where credit is due.
Robin Gareus [Tue, 26 Mar 2019 17:18:49 +0000 (18:18 +0100)]
Add a note to self
Robin Gareus [Tue, 26 Mar 2019 14:35:36 +0000 (15:35 +0100)]
Fix mingw compile (declare int64_t and int32_t)
Robin Gareus [Mon, 25 Mar 2019 16:05:19 +0000 (17:05 +0100)]
Do not create automation when shifting (insert/remove time)
This fixes a bug when shift() creates automation for parameters that
can not have any automation (hidden parameters, Mixbus PRE).
The GUI (RTAV) aborts() when it finds an automation lane for
a hidden parameter.
This also cleans up shift() operations in general. Empty automation
lanes should be left alone, no guard-point at zero should be added.
Robin Gareus [Sat, 23 Mar 2019 16:35:26 +0000 (17:35 +0100)]
NO-OP: whitespac
Robin Gareus [Sat, 23 Mar 2019 16:20:28 +0000 (17:20 +0100)]
NO-OP: whitespace
Robin Gareus [Sat, 23 Mar 2019 15:32:48 +0000 (16:32 +0100)]
Fix generic-midi controllable race-condition
Continued work after
e9b36f2bea. Prefer a shared_ptr<>.
MIDIControllable::write_feedback() runs in realtime context, directly
from the main process-thread. Synchronizing weak-pointers and deletion
across threads does not work reliably. Retaining a shared_ptr<> for
controllables that are in use can solve this.
Robin Gareus [Sat, 23 Mar 2019 15:14:15 +0000 (16:14 +0100)]
Clean up MonitorProcessorControls
As opposed to regular AutomationControls these PBD:::Controllables
are not SessionObjects and don't emit a signal when the session
goes away.
Robin Gareus [Sat, 23 Mar 2019 14:52:36 +0000 (15:52 +0100)]
Clean out session-global controllables
This isn't strictly speaking needed, there are only a handful of
users (most notably generic-midi ctrl surface, and Selection)
Robin Gareus [Sat, 23 Mar 2019 13:32:00 +0000 (14:32 +0100)]
Remove static Destroyed(*), prefer StatefulDestructable API
This also add a debug-dump method to show remaining registered
Controllables.
Robin Gareus [Sat, 23 Mar 2019 13:28:12 +0000 (14:28 +0100)]
Remove chicken/egg d'tor
Session::Controllables is a shared_ptr<> list. As long
as the session exists the Controllables will be around. Destroyed(*)
can only be called after the session is destroyed and releases the
shared_ptr<>
NB. this code had a nice hack to construct a "shared_from_this"
workaround. For future reference:
struct null_deleter { void operator()(void const *) const {} };
boost::shared_ptr<Controllable>(c, null_deleter())
Robin Gareus [Sat, 23 Mar 2019 02:11:54 +0000 (03:11 +0100)]
Re-add global lookup for generic-midi ctrl state
Robin Gareus [Sat, 23 Mar 2019 02:10:49 +0000 (03:10 +0100)]
Re-add Controllable registry
To facilitate a central registry with weak/shared pointer lookup,
enable_shared_from_this<ARDOUR::AutomationControl>
was migrated to
enable_shared_from_this<PBD::Controllable>
The main (and only) user is generic-midi surface's state interface :(
Robin Gareus [Sat, 23 Mar 2019 01:09:39 +0000 (02:09 +0100)]
Update GenericMidiControlProtocol to use shared/weak Controllable pointers
This fixes a race-condition when a controllable is deleted
while sending feedback to the device.
Previously there was a race-condition MIDIControllable::write_feedback()
triggered from rt-thread, processed in Surface-thread and deleting
a route or processor.
This is a first step, currently state-restore is not fully functional
session->controllable_by_id() does not cover all Controllables.