John Emmas [Sun, 23 Dec 2018 13:29:36 +0000 (13:29 +0000)]
Add/remove source(s) in our MSVC project (gtk2_ardour)
Robin Gareus [Sun, 23 Dec 2018 03:50:58 +0000 (04:50 +0100)]
Fix dead-link to manual
Robin Gareus [Sun, 23 Dec 2018 00:57:38 +0000 (01:57 +0100)]
Fix cases where there's no MIDI buffer (e.g. audio audition)
Robin Gareus [Sun, 23 Dec 2018 00:57:16 +0000 (01:57 +0100)]
Increase pitch-shifting quality a bit
OptionPitchHighQuality - Use the highest quality
method for pitch shifting. This method has a CPU cost
approximately proportional to the required frequency shift
Paul Davis [Sat, 22 Dec 2018 21:48:16 +0000 (16:48 -0500)]
deal with end-of-step-editing in a better way
Paul Davis [Sat, 22 Dec 2018 20:11:52 +0000 (15:11 -0500)]
add explanatory comments
Paul Davis [Sat, 22 Dec 2018 19:45:28 +0000 (14:45 -0500)]
make StepEntry into a singleton.
More work to follow to clean up the details, and more comments to
explain the relationship between StepEntry and StepEditor.
Paul Davis [Sat, 22 Dec 2018 19:44:52 +0000 (14:44 -0500)]
remove unused declaration
Robin Gareus [Sat, 22 Dec 2018 01:04:17 +0000 (02:04 +0100)]
Add guard-points when shifting automation
Robin Gareus [Sat, 22 Dec 2018 00:09:24 +0000 (01:09 +0100)]
Properly remove-time automation
Previously "remove time" was able to produce overlapping, not
ordered automation.
Robin Gareus [Fri, 21 Dec 2018 23:34:31 +0000 (00:34 +0100)]
Cleanup LV2 file-dialog extension
<drobilla> "This function returns immediately"
Robin Gareus [Fri, 21 Dec 2018 23:32:49 +0000 (00:32 +0100)]
Fix plugin-preset description markup
Robin Gareus [Fri, 21 Dec 2018 16:15:38 +0000 (17:15 +0100)]
Fix insert/remove time duplicate automation move -- #7712
Editor::insert_time(), Editor::remove_time() handle automation
directly because time may be inserted to Routes without playlists
and combined undo-operation with marker, and tempo-changes.
However when the preference "automation_follows_regions" is enabled,
the playlist already moves the automation of region under any region
(possibly overriding future automation).
This resulted in possibly lossy, duplicate automation moves.
Robin Gareus [Fri, 21 Dec 2018 15:35:07 +0000 (16:35 +0100)]
NO-OP: whitespace
* Remove leading and trailing whitespace.
* use tabs to indent, space to align
/* prefer C-style comments like this,
* always use an asterisk on every line, this
* way small ASCII-graphics are always aligned
* using spaces after the asterisk.
*
* ^
* / \
* / \
* / \
* / \
* / \
* / /\ \
* /__/ \_/\_^__\
* A R D O U R
*
<< NO asterisk, there may be tabs :(
*
*/
Robin Gareus [Fri, 21 Dec 2018 16:32:46 +0000 (17:32 +0100)]
Remove duplicate automation shift
Amp, Trim are now processors, moving processor-automation takes care
of gain automation.
Robin Gareus [Thu, 20 Dec 2018 18:41:57 +0000 (19:41 +0100)]
Fix crash for external windows
eg. LV2 externalUI windows are not managed by ardour; Ardour cannot
intercept mapped() or delete_event() signals and hence also not
create a visibility-tracker.
First call to WindowProxy::toggle() creates the window, and the 2nd call
crashed since
6ca8ec5141c, due to missing vistracker.
e.g. externalUI plugin windows, the processor-box uses WindowProxy
for all plugin-UIs incl. externalUIs.
Robin Gareus [Thu, 20 Dec 2018 15:56:34 +0000 (16:56 +0100)]
Add a plugin-preset list/selector GUI
This is currently only used for "Preset only" plugins, generic UI.
And also depends on plugin-presets having a description.
Robin Gareus [Thu, 20 Dec 2018 13:13:03 +0000 (14:13 +0100)]
Amend
e4304f3bf, plugin-preset, preset-record
David Robillard [Thu, 20 Dec 2018 01:06:53 +0000 (20:06 -0500)]
Use lilv_world_get()
Leaves the now-trivial get_value() helper there since it keeps the call sites
shorter and nicer to read.
David Robillard [Thu, 20 Dec 2018 01:04:50 +0000 (20:04 -0500)]
Remove conditional support for ancient versions of Lilv
This updates the dependency to 0.24.2, which was released in January 2017 and
is the most recent version in Debian 9 (stretch).
Paul Davis [Wed, 19 Dec 2018 22:15:23 +0000 (17:15 -0500)]
make StepEntry actions be static.
Unfinished, because bindings are problematic.
Paul Davis [Wed, 19 Dec 2018 22:15:15 +0000 (17:15 -0500)]
explicitly clear ProcessorEntries from ProcessorBox when the latter's Route is destroyed
Paul Davis [Wed, 19 Dec 2018 21:44:35 +0000 (16:44 -0500)]
cast_dynamic<> => get_toggle_action()
Paul Davis [Wed, 19 Dec 2018 21:19:38 +0000 (16:19 -0500)]
adjustments for latest boost shared_ptr debug patch
Paul Davis [Wed, 19 Dec 2018 21:17:05 +0000 (16:17 -0500)]
move #include directive
Paul Davis [Sun, 16 Dec 2018 17:50:29 +0000 (12:50 -0500)]
more organized and coherent handling of route control connections in MonitorSection
Robin Gareus [Wed, 19 Dec 2018 21:28:40 +0000 (22:28 +0100)]
Compliant LV2 state path-mapping
lv2 state mandates that
> The plugin MUST use this function [ absolute_path] in order to
> actually open or otherwise use any paths loaded from plugin state.
Previously the plugin uses the value directly. Also
> The caller is responsible for freeing the returned value with free().
is now implemented on systems other than windows (where this is not
possible, since the memory must be free()ed in the same module where it
was allocated.
Carl Hetherington [Wed, 19 Dec 2018 20:02:15 +0000 (20:02 +0000)]
Copy-edit track type descriptions a little, improving consistency and removing some capital letters.
Robin Gareus [Tue, 18 Dec 2018 13:05:57 +0000 (14:05 +0100)]
Only show user-presets in favorite sidebar
Plugins can have hundreds of factory presets, or in case of VST
useless "default" program/presets. Those just clutter up the favorite
plugin-list.
Robin Gareus [Tue, 18 Dec 2018 12:35:39 +0000 (13:35 +0100)]
Wouldn't it be nice if plugin presets had a description/comment?
Robin Gareus [Tue, 18 Dec 2018 12:30:31 +0000 (13:30 +0100)]
Add LV2 option/extension for plugin thread sched priority
This allows plugins that need threads to process to configure their
thread priority to not interfere with the host's process threads.
John Emmas [Mon, 17 Dec 2018 09:32:19 +0000 (09:32 +0000)]
MSVC won't allow us to erase an item that's managed by 'const_iterator'
Damien Zammit [Sun, 16 Dec 2018 04:03:28 +0000 (15:03 +1100)]
ptformat: Update to
877fa28 - more endian resilient && pt5 fixes
Robin Gareus [Sun, 16 Dec 2018 03:15:49 +0000 (04:15 +0100)]
NO-OP: whitespace
Robin Gareus [Sun, 16 Dec 2018 03:14:31 +0000 (04:14 +0100)]
Remove cruft: previous set_value_unchecked optimization
Robin Gareus [Sun, 16 Dec 2018 03:07:55 +0000 (04:07 +0100)]
Optimize automation-event process splitting
Use RCU of automated parameter when looking for next automation event
to use for split processing. This speeds up PluginInsert processing
when rolling for plugins with many not-automated parameters.
Robin Gareus [Sun, 16 Dec 2018 03:01:42 +0000 (04:01 +0100)]
Optimize plugin-processing for non-automated params
Keep a dedicated list of automated parameters to evaluate in realtime.
This fixes a performance issue with plugins that have many controls
with only few of them being automated.
Paul Davis [Sat, 15 Dec 2018 16:58:37 +0000 (11:58 -0500)]
fix issue with ProcessorBox inside MonitorSection (session was not set correctly)
Robin Gareus [Thu, 13 Dec 2018 17:36:31 +0000 (18:36 +0100)]
Fix Mixbus action
fc83d044f8 &
65bda27d4 rebase ordering
Robin Gareus [Thu, 13 Dec 2018 16:44:58 +0000 (17:44 +0100)]
Video-Frame (not sample)
Robin Gareus [Thu, 13 Dec 2018 16:07:08 +0000 (17:07 +0100)]
Fix ExportFormatSpecification copy-c'tor
This initialize some otherwise uninitalized variables and may fix
cue/toc export oddities
Jan Lentfer [Wed, 12 Dec 2018 15:46:36 +0000 (16:46 +0100)]
LCXL: some more small tweaks
* assign Pan knob to Comp thresh as secondary function
* make cancel_all_solo and cancel_all_mute work in device mode, too
Paul Davis [Wed, 12 Dec 2018 16:22:38 +0000 (11:22 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 16:12:40 +0000 (11:12 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 16:00:43 +0000 (11:00 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 13:41:57 +0000 (08:41 -0500)]
replace ::cast_dynamic() with relevant ActionManager::get_*_action() calls
Paul Davis [Wed, 12 Dec 2018 04:43:22 +0000 (23:43 -0500)]
remove explicit use of ::cast_dynamic() from Gtk::Action to Gtk::ToggleAction
Paul Davis [Tue, 11 Dec 2018 17:25:31 +0000 (12:25 -0500)]
more changes flowing from a persistent MonitorSection object
Paul Davis [Tue, 11 Dec 2018 17:25:12 +0000 (12:25 -0500)]
use syntactic sugar
Paul Davis [Tue, 11 Dec 2018 17:24:49 +0000 (12:24 -0500)]
do not reset session for MonitorSection just because monitor out was removed
Paul Davis [Tue, 11 Dec 2018 17:23:23 +0000 (12:23 -0500)]
use correct path for various actions/bindings in monitor section
Paul Davis [Tue, 11 Dec 2018 17:22:51 +0000 (12:22 -0500)]
fix commentary
Paul Davis [Tue, 11 Dec 2018 17:22:28 +0000 (12:22 -0500)]
make session/Config now responsible for adding/removing a monitor section
Paul Davis [Tue, 11 Dec 2018 15:28:47 +0000 (10:28 -0500)]
full (?) set of changes required to make MonitorSection an "always-there" component of the MixerUI
Obviously, it is not always shown, but it always exists, which means that its actions are always accessible
Paul Davis [Tue, 11 Dec 2018 10:06:26 +0000 (05:06 -0500)]
change action group owner pointer to be the relevant keybindings; reorder setting keybindings value and defining actions
The reorder is required so that the value of "bindings" has been set and is meaningful
Paul Davis [Tue, 11 Dec 2018 10:05:09 +0000 (05:05 -0500)]
add ActionManager::get_actions() to fetch all actions created in ActionGroups with a given "owner" value
Paul Davis [Mon, 10 Dec 2018 23:44:05 +0000 (18:44 -0500)]
add nominal owners for all action groups
Note: this is not yet correct. The owner (pointer) values passed in are not yet usable
Paul Davis [Mon, 10 Dec 2018 23:43:35 +0000 (18:43 -0500)]
fix more Window/show-* to Common/show-* details
Paul Davis [Mon, 10 Dec 2018 23:42:35 +0000 (18:42 -0500)]
remove static from some members, after MonitorSection is now persistent
Paul Davis [Mon, 10 Dec 2018 23:41:59 +0000 (18:41 -0500)]
no longer delete and recreate MonitorSection when it is removed/added to a Session
Paul Davis [Mon, 10 Dec 2018 23:40:31 +0000 (18:40 -0500)]
add basic concept of an "owner" for an action group, to allow later grouping
Paul Davis [Mon, 10 Dec 2018 23:40:16 +0000 (18:40 -0500)]
fix Window->Common move for show-mixer
Paul Davis [Mon, 10 Dec 2018 23:40:00 +0000 (18:40 -0500)]
add ActionManager::set_sensitive() for Gtk::ActionGroup
Paul Davis [Mon, 10 Dec 2018 23:39:14 +0000 (18:39 -0500)]
show-editor and show-mixer actions are now part of Common, not Window or Mixer action groups
This is a bit arbitary but they are supposed to be invokable from anywhere, and since they control Tabbables and note
pure windows, they are not part of WM::Manager's purview (Window/* actions). Thus ... Common
Paul Davis [Mon, 10 Dec 2018 23:19:31 +0000 (18:19 -0500)]
reorder ARDOUR_UI action registration and adding tabbables to the main window, to avoid action-not-found in tabbable_state_change()
Paul Davis [Mon, 10 Dec 2018 21:24:27 +0000 (16:24 -0500)]
remove method and inline its contents. Nothing gained by wrapping this up
Paul Davis [Mon, 10 Dec 2018 21:19:54 +0000 (16:19 -0500)]
remove long-lived bug that tried to make a non-existent action insensitive
Paul Davis [Mon, 10 Dec 2018 13:33:31 +0000 (08:33 -0500)]
use ActionManager namespace, rather than ActionMap objects, and remove all per-context action maps
Paul Davis [Mon, 10 Dec 2018 13:32:56 +0000 (08:32 -0500)]
use ActionManager namespace, rather than ActionMap objects
Paul Davis [Mon, 10 Dec 2018 13:32:11 +0000 (08:32 -0500)]
change ActionManager::find_action() back to ActionManager::get_action()
This avoids dozens or hundreds of unnecessary changes in gtk2_ardour code
Paul Davis [Mon, 10 Dec 2018 13:22:10 +0000 (08:22 -0500)]
consolidate ActionMap and ActionManager APIs into a single namespace
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:07:13 +0000 (16:07 -0500)]
use new action map API instead of ActionManager::get_action
Paul Davis [Fri, 7 Dec 2018 21:05:56 +0000 (16:05 -0500)]
provide (Static)ActionMapOwner::action_map()
Robin Gareus [Sun, 9 Dec 2018 00:31:27 +0000 (01:31 +0100)]
Unhardode log-message domain when logging to stdout
Robin Gareus [Sun, 9 Dec 2018 00:27:55 +0000 (01:27 +0100)]
"only"
1048576 -- sounds like it's not sufficient
Robin Gareus [Sat, 8 Dec 2018 22:39:50 +0000 (23:39 +0100)]
Better version of
9ccc56e1625, implicit signal disconnect
Robin Gareus [Sat, 8 Dec 2018 21:38:03 +0000 (22:38 +0100)]
Properly keep track of Window Visibility, action state
This fixes inconsistent WM::Proxy state when a window is destroyed
Specifically "session-options-editor" when the session is unloaded;
previously "toggle-session-options-editor" was never unset.
Robin Gareus [Sat, 8 Dec 2018 20:18:54 +0000 (21:18 +0100)]
Fix CheckOption crash on session-reload
The ToggleAction has a lifetime of the UI, independent of the
CheckOption widget. The CheckOption needs to unsubscribe from the
signal_toggled() signal when it is deleted.
Also a CheckOption without a Action makes no sense. require _action
to be give at instantiation time.
Robin Gareus [Sat, 8 Dec 2018 19:17:01 +0000 (20:17 +0100)]
NO-OP: whitespace and some guaranteed assertion removal
Robin Gareus [Sat, 8 Dec 2018 19:15:53 +0000 (20:15 +0100)]
Fix crash when closing session, recursive mon-section removal
Robin Gareus [Sat, 8 Dec 2018 16:04:32 +0000 (17:04 +0100)]
Fix gmsynth detection
Previously this worked since gmsynth was sorted after reasonably synth
Ben Loftis [Tue, 4 Dec 2018 00:55:52 +0000 (18:55 -0600)]
Tweaks to Mixer and Monitor keybindings:
Add Mixer-specific view keybindings for list, vca, mon. (thanks to: the_CLA)
Move monitor keybindings (mute, dim, mono) to be globally-accessible.
Implement new mixer-specific actions to show/hide monitor,vcas,mixbuses (the_CLA)
Move monitor funcs (mute,dim,mono) to globally-accessible actions.
Make a new Monitor group insted of using Transport group.
Allow use-monitor-section to be controlled by both menu and session-options dialog.
Robin Gareus [Fri, 7 Dec 2018 03:41:22 +0000 (04:41 +0100)]
Fix progress report when resampling to fixed-point on import
Robin Gareus [Fri, 7 Dec 2018 03:15:55 +0000 (04:15 +0100)]
Fix importing to a fixed-point format with resampling
ResampledImportableSource::read() returns audio-frames;
multiplication by number of channels read beyond the buffer.
Paul Davis [Fri, 7 Dec 2018 03:12:27 +0000 (22:12 -0500)]
add syntactic sugar for fetching toggle and radio actions
Robin Gareus [Fri, 7 Dec 2018 02:46:58 +0000 (03:46 +0100)]
Remove redundant call (there's no session, nothing to save)
Robin Gareus [Fri, 7 Dec 2018 02:36:48 +0000 (03:36 +0100)]
Fix editor sizing issue introduced in
4dc65e66
Previously Editor::instant_save() returned if no session was loaded,
effectively Config->add_instant_xml(get_state()); was never called.
instant save() is called early on, in Editor's c'tor before the editor
is realized and saves invalid window-size and window-state, which
are used later.
Robin Gareus [Thu, 6 Dec 2018 01:23:53 +0000 (02:23 +0100)]
Prefer testing the session instead of using a global variable
Robin Gareus [Thu, 6 Dec 2018 01:23:09 +0000 (02:23 +0100)]
Fix inconsistent session-check
under some circumstances, e.g. session-exit it is possible to to have
inconsistent information
ARDOUR_UI::instance()->session_loaded == true
&& ARDOUR_UI::instance()->the_session() == NULL
This lead to a crash on MacOS/X. stopping the engine at exit may destory
an Aggregate Device, leading to DeviceListChanged which in turn updates
the engine-dialog..
else if (ARDOUR_UI::instance()->session_loaded) {
float active_sr = ARDOUR_UI::instance()->the_session()->nominal_sample_rate ();
Paul Davis [Wed, 5 Dec 2018 22:48:34 +0000 (17:48 -0500)]
another replacement of ActionManager::get_action() by ActionMap::find_action()
Paul Davis [Wed, 5 Dec 2018 22:32:35 +0000 (17:32 -0500)]
start using ActionMap in preference to ActionManager
Paul Davis [Wed, 5 Dec 2018 22:32:02 +0000 (17:32 -0500)]
some ActionMap infrastructure to start removing ActionManager
Paul Davis [Wed, 5 Dec 2018 20:22:48 +0000 (15:22 -0500)]
add new variant of ActionMap::find_action()
This is more useful when replacing ActionManager::get_action
Robin Gareus [Wed, 5 Dec 2018 19:18:56 +0000 (20:18 +0100)]
Fix generic plugin UI for plugins with only properties
e.g. reMID.lv2 has only a atom/file-property and no control-inputs.