Paul Davis [Fri, 7 Jun 2019 00:28:45 +0000 (18:28 -0600)]
adjust h-size of color theme manager "Reset to Defaults" button
Paul Davis [Fri, 7 Jun 2019 00:28:16 +0000 (18:28 -0600)]
limit width of color theme manager theme dropdown
Robin Gareus [Thu, 6 Jun 2019 23:38:40 +0000 (01:38 +0200)]
Fix rpath permission issue for linux packages
Paul Davis [Wed, 5 Jun 2019 16:02:27 +0000 (10:02 -0600)]
do not set MIDI CC values on locate if control/parameter is set to "Off"
Paul Davis [Wed, 5 Jun 2019 15:56:34 +0000 (09:56 -0600)]
NOOP: whitespace/newline tweak
Robin Gareus [Wed, 5 Jun 2019 13:36:29 +0000 (15:36 +0200)]
Fix mac package - libreadline was r-x, changing install_name failed
Robin Gareus [Wed, 5 Jun 2019 13:34:58 +0000 (15:34 +0200)]
NO-OP: whitespace
Robin Gareus [Tue, 4 Jun 2019 21:51:50 +0000 (23:51 +0200)]
Clarify MIDI CC menu ambiguity
CCs use 0-based counting, however CC 0 and 32 (bank select) are skipped
in Ardour's CC menu. This lead to some misleading enumeration.
Now, group CCs by 32, skip sub-menu if there are fewer than 32 named
items, and otherwise actual CC min/max numbers per named list.
Robin Gareus [Tue, 4 Jun 2019 17:20:26 +0000 (19:20 +0200)]
Skip name-suffix for first ALSA sub-device
This fixes an issue when a device has more than one
playback sub-device, but only a single capture sub-device (or vice
versa).
Robin Gareus [Tue, 4 Jun 2019 14:30:25 +0000 (16:30 +0200)]
Fix windows-packaging (luasession)
`waf install` is not used for binaries :(
Robin Gareus [Tue, 4 Jun 2019 13:15:21 +0000 (15:15 +0200)]
Package commandline Lua-session tool
Robin Gareus [Tue, 4 Jun 2019 12:56:50 +0000 (14:56 +0200)]
Tweak toolbar meter reset button to unconditionally apply to all DPM
Robin Gareus [Tue, 4 Jun 2019 12:48:47 +0000 (14:48 +0200)]
Fix async peak-meter reset
Robin Gareus [Tue, 4 Jun 2019 12:41:50 +0000 (14:41 +0200)]
Transfer Fn: skip phase calculation for silence and small signal levels
This fixes some division by zero as well as rounding issues for
signals < -160dBFS, resulting in garbage being displayed..
Robin Gareus [Mon, 3 Jun 2019 14:28:10 +0000 (16:28 +0200)]
Assume default plugin bussing is stereo
This changes fan-out to prefer stereo tarcks unless specified otherwise
by a plugin (LV2 port-groups, or AU busses)
Robin Gareus [Sat, 1 Jun 2019 13:49:46 +0000 (15:49 +0200)]
List available ALSA sub-devices
Previously Ardour only listed the first audio sub-device in the
for ALSA and JACK backend device selection dialog.
Paul Davis [Thu, 30 May 2019 17:46:11 +0000 (11:46 -0600)]
change name of action from "Smart Object Mode" to "Smart Mode" for consistency
Johannes Mueller [Sat, 25 May 2019 19:55:45 +0000 (21:55 +0200)]
Potential fix for a race.
Do proper bounds checks and force the use of operator[] () const
Johannes Mueller [Sat, 25 May 2019 19:25:16 +0000 (21:25 +0200)]
Make ContourdesignControlProtocol::_button_actions private again ...
... and add proper bounds checks.
Paul Davis [Wed, 29 May 2019 23:37:48 +0000 (17:37 -0600)]
fixups for rebase of show-region-name option
Paul Davis [Wed, 29 May 2019 21:20:16 +0000 (15:20 -0600)]
remove debug output
Paul Davis [Wed, 29 May 2019 21:16:00 +0000 (15:16 -0600)]
add option to show/hide region names
Robin Gareus [Mon, 27 May 2019 12:10:59 +0000 (14:10 +0200)]
Fix crash when deleting selected region-view in ripple mode #7764
Changing the playlist (remove_region) invalidates selection and
unsets `clicked_regionview`. The region to operate on needs
to be stored for later use.
Robin Gareus [Sun, 26 May 2019 10:56:10 +0000 (12:56 +0200)]
Fix a -Wmaybe-uninitialized (disk-reader, no audio)
Robin Gareus [Sun, 26 May 2019 10:46:37 +0000 (12:46 +0200)]
Shuttle Surface: fix linking .dll
For .dll, all references need to be defined at compile/link time
(not runtime). ie. `ld -zdefs`
Robin Gareus [Sat, 25 May 2019 14:48:48 +0000 (16:48 +0200)]
Shuttle Surface: request_factory and MSVC compatible struct
Robin Gareus [Sat, 25 May 2019 14:45:53 +0000 (16:45 +0200)]
Shuttle Surface: Fix C++ style: use accessor/setter methods
This also fixes C++ compat: no forward declaration of friend classes
(OSX compilation) and C++98 compat (enums are not classes e.g. ActiveState)
Robin Gareus [Fri, 24 May 2019 23:56:54 +0000 (01:56 +0200)]
UI integration to conceal LV1 plugins
Robin Gareus [Fri, 24 May 2019 23:56:23 +0000 (01:56 +0200)]
Add preference to hide LADSPA plugin if LV2 exists
Robin Gareus [Fri, 24 May 2019 23:23:39 +0000 (01:23 +0200)]
Optimize Plugin-Manager: minimize status query
Robin Gareus [Fri, 24 May 2019 23:20:17 +0000 (01:20 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 24 May 2019 22:14:50 +0000 (00:14 +0200)]
Speed up Plugin status changes
Postpone menu rebuild when plugin status changes while the PluginManager
Dialog is visible.
Since the dialog is modal, the menus cannot be used while the dialog
is visible, so updating them once when the dialog is hidden is sufficient.
Robin Gareus [Fri, 24 May 2019 22:12:55 +0000 (00:12 +0200)]
Re-use the Mixer's PluginManager (singleton)
Previously there were three plugin-manager instances (two of which
were never destroyed).
There were also 3 sets of context-menus (favorites, by tag, by author..),
all of which were re-built when plugin stati changed.
Since the Plugin-manager is a modal dialog, it can be re-used in
all contexts (route-ui, monitor-section, mixer).
Robin Gareus [Fri, 24 May 2019 21:58:00 +0000 (23:58 +0200)]
Fix LADSPA author name (remove padding)
Johannes Mueller [Sun, 19 May 2019 14:43:48 +0000 (16:43 +0200)]
Use ActionModel also in ContourDesign surface
Johannes Mueller [Sat, 18 May 2019 14:36:49 +0000 (16:36 +0200)]
Some frame -> sample changes in UCS2400
Johannes Mueller [Sat, 18 May 2019 11:31:24 +0000 (13:31 +0200)]
Add support for contourdesign ShuttlePRO v2 and ShuttleXpress
Johannes Mueller [Sat, 18 May 2019 11:23:26 +0000 (13:23 +0200)]
Add some options for surfaces to jump in the timeline
* ::jump_by_beats()
* request transport to keep rolling after jump
Robin Gareus [Fri, 17 May 2019 10:08:21 +0000 (12:08 +0200)]
Prefer dedicated c-pointer bindings (can be const)
Robin Gareus [Fri, 17 May 2019 10:08:13 +0000 (12:08 +0200)]
Prefer dedicated c-pointer bindings (can be const)
Robin Gareus [Fri, 17 May 2019 10:07:45 +0000 (12:07 +0200)]
Fix std::list<hared_ptr<>> front/back methods
Shared pointer reference accessors can't be const
Ben Loftis [Mon, 13 May 2019 14:11:58 +0000 (09:11 -0500)]
Fix some actions that moved from Common to Editor.
Robin Gareus [Mon, 13 May 2019 13:43:58 +0000 (15:43 +0200)]
Prefer to receive URI-lists for DnD
This fixes an issue when embedding external files with ISO or some non
ASCII encodings (KDE/dolphin file-manager does not UTF-8 encode
filenames for plain/text DnD). But does so for URIs.
See also #7253 and previous commit
Jean-Marie Favreau [Mon, 13 May 2019 05:52:38 +0000 (07:52 +0200)]
Fix a bug for drag and drop from nautilus/dolphin (more spectific format first in the
list of possible inputs)
Julien "_FrnchFrgg_" RIVAUD [Wed, 1 Aug 2018 12:24:40 +0000 (14:24 +0200)]
Make the configuration penalty subtler about inputs
Instead of uniformly demote configurations with a non-matching audio
input count (using a penalty offset of 1000), also grade the
impreciseness of the configuration so that those with the nearest input
count are preferred. As for outputs, give a slightly higher handicap to
configuration with too many inputs with regard to the actual audio
inputs that can be fed to the plugin.
POLICY CHANGE: when only imprecise configurations are found the actually
selected one can be different (better) than before this commit.
Julien "_FrnchFrgg_" RIVAUD [Wed, 1 Aug 2018 09:40:52 +0000 (11:40 +0200)]
Remove ad-hoc handling of possible_in == 0
Just make the code responsible for possible_in > 0 also handle
possible_in == 0 since it nearly does the same thing.
The only difference is that the possible_in == 0 case, by using
FOUNDCFG(), acted as if possible_in was audio_in. The consolidated code
uses FOUNDCFG_IMPRECISE which will add some penalty to the
configurations where desired_in == possible_in != audio_in.
There is thus a small POLICY CHANGE, but the selected configuration will
stay the same unless a better matching configuration is available.
Julien "_FrnchFrgg_" RIVAUD [Wed, 1 Aug 2018 09:24:17 +0000 (11:24 +0200)]
Enable overriding the configuration penalty
This relieves exact matches of the need to duplicate the bookeeping done
by FOUNDCFG()
Julien "_FrnchFrgg_" RIVAUD [Wed, 1 Aug 2018 09:13:46 +0000 (11:13 +0200)]
Merge input-imprecise pass into the main pass
Still no policy change, since when a configuration is chosen that would
have belonged to the second pass, then its penalty will be increased by
1000 and it will be selected only as last recourse.
Julien "_FrnchFrgg_" RIVAUD [Tue, 31 Jul 2018 14:32:52 +0000 (16:32 +0200)]
Introduce a macro for imprecise configurations
It enables only setting the imprecise audio channel count if the
configuration is indeed selected.
Julien "_FrnchFrgg_" RIVAUD [Tue, 31 Jul 2018 11:18:16 +0000 (13:18 +0200)]
Merge some cases to avoid duplicated logic
Merge the cases in == -1 and in == -2 since those are both wildcards,
almost symmetric in the AU spec, and handled completely symmetrically by
the code here considering it accepts invalid or unspecified demands.
Also merge the cases in > 0 and in < -2 since they are handled exactly
the same as far as outputs are concerned.
No policy change
Julien "_FrnchFrgg_" RIVAUD [Tue, 31 Jul 2018 10:31:41 +0000 (12:31 +0200)]
Replace the exact_match logic by a negative penalty
Instead of doing an initial loop for detection of exact matches, then
letting the following loop set \audio_out yet ignore its value, merge
the two loops but give exact matches a negative penalty so that the
\audio_out value they set won't change afterwards.
No policy change.
Julien "_FrnchFrgg_" RIVAUD [Tue, 31 Jul 2018 10:03:30 +0000 (12:03 +0200)]
Remove never-matching assert
Since previous line just asserted that possible_in > 0, it is
necessarily non-null and the test is always true.
Julien "_FrnchFrgg_" RIVAUD [Tue, 31 Jul 2018 09:37:33 +0000 (11:37 +0200)]
Prefer int32_t to int for channel counts
To match the actual type used by ChanCount. Keep the int type in the
structure passed in by the Audio Unit, because we have no control over
it.
Johannes Mueller [Sun, 12 May 2019 19:27:37 +0000 (21:27 +0200)]
Fix for #7755: initialize reverb and chorus of fluidsynth object
The reverb and chorus states in the fluidsynth object need to be initialized to
0 (false) in accordance with the initial state of a-fluidsynth's
v_port[...]. Otherwise they are not updated in the first run() and remain to
fluidsynth's default state 1 (true) even though the plugin's state requires 0.
Robin Gareus [Fri, 10 May 2019 11:21:22 +0000 (13:21 +0200)]
Fix ALSA MIDI device naming
The backend will replace the information in the last bracket (IO)
of the name with (In/Out) when creating pretty port-names from the
device-name. -- see replace_name_io().
This fixes an issue with device-name number suffixes in brackets.
Robin Gareus [Thu, 9 May 2019 14:06:00 +0000 (16:06 +0200)]
Generic-MIDI ctrl: tweak pitch-bend message behavior
Add support for smoothing, ignore message when controllers are
not in sync to avoid discontinuous jumps.
This is mainly useful for Mackie-like devices that use pitch-bend
messages for faders.
see also https://discourse.ardour.org/t/feature-lazy-sliders/100961
Robin Gareus [Wed, 8 May 2019 20:01:07 +0000 (22:01 +0200)]
Notify custom UIs when designated LV2 BPM port changes
Robin Gareus [Wed, 8 May 2019 19:59:22 +0000 (21:59 +0200)]
Hide designated [lv2] BPM port from GUI
Robin Gareus [Wed, 8 May 2019 17:58:05 +0000 (19:58 +0200)]
Prepare for Ardour/ALSA multiple identical MIDI devices
The engine setup identifies devices by name (device list is a map<>
with the device-name as key). To support multiple devices with the
same name, the name needs to be unique.
So far this is achieved by simply adding a number suffix starting with
the 2nd device (this allows to re-use configurations).
Ideally we'd use UUIDs or unique device IDs to handle this, and also
somehow clarify which device is which...
Robin Gareus [Wed, 8 May 2019 17:51:20 +0000 (19:51 +0200)]
Fix solo logic, connection/feed-information
Assume the following connections
Audio -> Bus1 --aux-send--> Bus2
Prior to this commit, Audio -> Bus2 was marked as "direct feed",
even though the connection was only indirect via an aux-send.
This caused issues with implicit solo and could lead to stuck solo.
Robin Gareus [Wed, 8 May 2019 17:49:01 +0000 (19:49 +0200)]
NO-OP: Unclutter -DGraph
Robin Gareus [Sun, 5 May 2019 23:29:18 +0000 (01:29 +0200)]
Engine Dialog: update MIDI devices, merge settings with state
Robin Gareus [Sun, 5 May 2019 22:14:27 +0000 (00:14 +0200)]
Fix ALSA MIDI latency update call (playback/capture direction mismatch)
Robin Gareus [Sun, 5 May 2019 22:13:47 +0000 (00:13 +0200)]
Fix MIDI latency measurement
* Restore active state of devices after measurement
* Don't manually set latencies for measurement (backend handles this)
* remove superfluous call to stop measurement
Robin Gareus [Sun, 5 May 2019 16:15:18 +0000 (18:15 +0200)]
Use pretty-port-names in latency measurement dialog
Robin Gareus [Sun, 5 May 2019 16:07:21 +0000 (18:07 +0200)]
Remove outdated comment
Robin Gareus [Sun, 5 May 2019 16:06:37 +0000 (18:06 +0200)]
Fix add/remove ALSA-MIDI ports bug
Robin Gareus [Sat, 4 May 2019 21:33:27 +0000 (23:33 +0200)]
Tweak initial generic-midi sync/smoothing
"last_controllable_value" is using midi value range (0..127).
It is used to compare received midi-value with the actual controllable
for non-motorized surfaces, and this change allows the first
event to already be in_sync.
Previously the first MIDI-event was usually ignored (because
last_controllable_value was out of bounds or didn't match the 0..127
range.
Robin Gareus [Sat, 4 May 2019 18:54:18 +0000 (20:54 +0200)]
Fix midnam, duplicate note-names
Robin Gareus [Sat, 4 May 2019 15:17:59 +0000 (17:17 +0200)]
NO-OP: `xmllint --format` patchfiles
Robin Gareus [Sat, 4 May 2019 15:13:18 +0000 (17:13 +0200)]
Fix invalid MIDI Name Docs
Robin Gareus [Sat, 4 May 2019 14:43:21 +0000 (16:43 +0200)]
Update Midnam DTD URI, use midi.org
This also fixes some dos/unix line-ending issues along the way.
Robin Gareus [Sat, 4 May 2019 14:28:15 +0000 (16:28 +0200)]
Add .dtd to validate midnam
Robin Gareus [Fri, 3 May 2019 22:07:26 +0000 (00:07 +0200)]
Ignore MIDNAM NRPN Controls for the time being
This fixes an issue with Novation_BassStationII.midnam
duplicate assignments CC + NRPN.
Robin Gareus [Fri, 3 May 2019 21:57:16 +0000 (23:57 +0200)]
NO-OP: fix whitespace
Robin Gareus [Fri, 3 May 2019 18:02:46 +0000 (20:02 +0200)]
NO-OP: whitespace
Robin Gareus [Fri, 3 May 2019 18:02:26 +0000 (20:02 +0200)]
Extend list of supported LV2 features
* boundedBlockLength is given since ardour sets min/max blocksize
* add non-standard features (inline display, midnam,
MIDI bank/patch notify)
Robin Gareus [Fri, 3 May 2019 14:00:05 +0000 (16:00 +0200)]
Fix typo in midnam XML
Robin Gareus [Sun, 28 Apr 2019 19:16:50 +0000 (21:16 +0200)]
NO-OP: whitespace
Robin Gareus [Sun, 21 Apr 2019 20:33:28 +0000 (22:33 +0200)]
Allow analysis window to plot live pre/post signal analysis
John Emmas [Sun, 21 Apr 2019 18:21:17 +0000 (19:21 +0100)]
Add/remove source(s) in our MSVC project (gtkmm2ext)
Johannes Mueller [Sat, 20 Apr 2019 20:36:51 +0000 (22:36 +0200)]
Make use of ActionModel::build_custom_action_combo()
Johannes Mueller [Sat, 20 Apr 2019 20:12:52 +0000 (22:12 +0200)]
Provide ActionModel::build_custom_action_combo() for Control Protcols
to consolidate code that's identical in several control protocols.
Johannes Mueller [Sat, 20 Apr 2019 12:35:50 +0000 (14:35 +0200)]
Use ActionModel::build_action_combo() for Control Surfaces that need it
Johannes Mueller [Sat, 20 Apr 2019 12:12:24 +0000 (14:12 +0200)]
Provide a function to fill a Gtk::ComboBox with all available actions
Johannes Mueller [Sat, 20 Apr 2019 12:08:36 +0000 (14:08 +0200)]
Use ActionModel API in the Control Surfaces that can make use of it
Johannes Mueller [Sat, 20 Apr 2019 10:37:07 +0000 (12:37 +0200)]
Provide an API to get all available actions by one singleton class
The singleton ActionModel provides a Gtk::Treestore of all actions known to
ardour.
To be used for example by surface control editors to implement action bindings.
Johannes Mueller [Fri, 19 Apr 2019 18:35:40 +0000 (20:35 +0200)]
Fadeport: Fix User button state save and restore
Since we (since
ddfc37e4) set the UserDown flag for the User button actions, we
need to set it also when we lookup actions when saving the state.
Furthermore, we need also look for the UserDown flag, when we set the state
of the configuration combos for the User button.
Johannes Mueller [Fri, 19 Apr 2019 18:32:19 +0000 (20:32 +0200)]
Fix restoring of CC121 configuration
The button ids are in the children of the cc121 protocol node, not in the
protocol node itself.
Robin Gareus [Fri, 19 Apr 2019 13:25:47 +0000 (15:25 +0200)]
Update Fluidsynth to v2.0.5
Robin Gareus [Fri, 19 Apr 2019 13:03:50 +0000 (15:03 +0200)]
Remove cruft
Robin Gareus [Fri, 19 Apr 2019 13:03:37 +0000 (15:03 +0200)]
NO-OP: whitespace
Robin Gareus [Thu, 18 Apr 2019 14:46:44 +0000 (16:46 +0200)]
Follow up
f5bc64d00e - add gap to range-selection rect as well
Robin Gareus [Thu, 18 Apr 2019 12:11:52 +0000 (14:11 +0200)]
Release notch-bank filter
Robin Gareus [Wed, 17 Apr 2019 13:32:35 +0000 (15:32 +0200)]
Mixbus menu backport
Robin Gareus [Wed, 17 Apr 2019 13:28:37 +0000 (15:28 +0200)]
NO-OP: whitespace
Johannes Mueller [Wed, 17 Apr 2019 11:44:02 +0000 (13:44 +0200)]
Fix crash when destroying session while control protocol is selected in preferences
The GUI should be notified about the tearing down of the control
surfaces *before* the protocols are actually destroyed.
On ProtocolStatusChange ControlSurfacesOptions::selection_changed() might try
to access protocol->has_editor() of a protocol that happens to be selected in
the preferences GUI. I this protocol already has been destroyed, a crash will
occur.
Robin Gareus [Mon, 15 Apr 2019 22:05:33 +0000 (00:05 +0200)]
Add a DSP script to slowly fade in/out
Robin Gareus [Mon, 15 Apr 2019 19:42:42 +0000 (21:42 +0200)]
Split new route messages into re-usable pieces
This improves consistency for the various new-route descriptions
and allows to unify messages with Mixbus without re-doing complete
strings. It may also benefit translations.
Johannes Mueller [Mon, 15 Apr 2019 13:33:44 +0000 (15:33 +0200)]
Align port layout and code of a-exp with the one of a-comp