ardour.git
4 years agoheadless: Use direct x-thread wakeup instead of sleep/spin
Robin Gareus [Thu, 4 Jul 2019 20:02:52 +0000 (22:02 +0200)]
headless: Use direct x-thread wakeup instead of sleep/spin

4 years agoMixbus uses K14 (not K20) master meter by default (see also 297ed001d)
Robin Gareus [Tue, 2 Jul 2019 18:18:26 +0000 (20:18 +0200)]
Mixbus uses K14 (not K20) master meter by default (see also 297ed001d)

4 years agoRemove unused API -- there is no default backend.
Robin Gareus [Tue, 2 Jul 2019 18:15:03 +0000 (20:15 +0200)]
Remove unused API -- there is no default backend.

4 years agoImprove headless Ardour somewhat
Robin Gareus [Tue, 2 Jul 2019 18:14:27 +0000 (20:14 +0200)]
Improve headless Ardour somewhat

* Allow to exit cleanly (using access-action)
* Terminate when the backend is halted
* Handle various commandline arguments as advertised
  - print version
  - disable hardware optimization
  - set client-name
  - prevent port-connections
* Use JACK -- previously hardour only worked if
  Ardour was compiled with JACK as *only* backend.
  Other backends are listed before JACK, set_default_backend()
  never picks JACK unless it's the only one.
  Other backends need configuration, or EngineState from config.
  This is currently handled in the GUI's engine-dialog..

4 years agoConsolidate headless startup scripts and make hardev work again
Robin Gareus [Tue, 2 Jul 2019 15:33:56 +0000 (17:33 +0200)]
Consolidate headless startup scripts and make hardev work again

This fixes an issue with inconsistent startup scripts.
LD_LIBRARY_PATH was incomplete since at least 5.0 (5.12 is broken, too)
likewise ctrl surface path were outdated, etc.

Prefer to use `gtk2_ardour/ardev_common.sh.in` as the central
point to define environment variables for running Ardour from
the source-tree.
Other start scripts e.g. `vst/ardevst` already did this.

4 years agoRemove non-existent backend-paths from start-script
Robin Gareus [Tue, 2 Jul 2019 14:48:07 +0000 (16:48 +0200)]
Remove non-existent backend-paths from start-script

4 years agoMixbus/master is always using K20 by default
Robin Gareus [Tue, 2 Jul 2019 14:12:06 +0000 (16:12 +0200)]
Mixbus/master is always using K20 by default

This only affects the meter-bridge, toolbar and editor track-header
(Mixbus' mixer is always using DPM, which is always enabled).

4 years agoLV2 support is not optional since 04ccd328dc
Robin Gareus [Mon, 24 Jun 2019 19:52:27 +0000 (21:52 +0200)]
LV2 support is not optional since 04ccd328dc

4 years agoNO-OP: documentation/comments
Robin Gareus [Mon, 24 Jun 2019 13:09:34 +0000 (15:09 +0200)]
NO-OP: documentation/comments

4 years agoUpdate to upstream ptformat 777686b (remove strndup && cleanup)
Damien Zammit [Mon, 24 Jun 2019 12:54:45 +0000 (22:54 +1000)]
Update to upstream ptformat 777686b (remove strndup && cleanup)

4 years agoRevert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"
Damien Zammit [Mon, 24 Jun 2019 12:52:46 +0000 (22:52 +1000)]
Revert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"

This reverts commit 1a7a23a5cea844431a85fa49933b5ea345bf3896.

4 years agoHuh?? I can't believe that MSVC doesn't support strndup() !!!
John Emmas [Sun, 23 Jun 2019 14:52:59 +0000 (15:52 +0100)]
Huh?? I can't believe that MSVC doesn't support strndup() !!!

4 years agoUpdate references to ptfformat -> ptformat && fix api calls
Damien Zammit [Fri, 21 Jun 2019 12:09:04 +0000 (22:09 +1000)]
Update references to ptfformat -> ptformat && fix api calls

4 years agoptformat: Update lib from legacy parser to new parser 6240b87
Damien Zammit [Fri, 21 Jun 2019 11:51:43 +0000 (21:51 +1000)]
ptformat: Update lib from legacy parser to new parser 6240b87

4 years agoNO-OP: whitespace
Robin Gareus [Thu, 20 Jun 2019 22:46:23 +0000 (00:46 +0200)]
NO-OP: whitespace

4 years agoShow some Lua script buttons by default
Robin Gareus [Thu, 20 Jun 2019 22:44:22 +0000 (00:44 +0200)]
Show some Lua script buttons by default

This improves discoverability of edior action scripts

4 years agoAdd Lua script to sort tracks by name
Robin Gareus [Thu, 20 Jun 2019 22:43:29 +0000 (00:43 +0200)]
Add Lua script to sort tracks by name

4 years agoHonor the current start position when exporting chapter marks
Johannes Mueller [Sat, 15 Jun 2019 23:30:55 +0000 (01:30 +0200)]
Honor the current start position when exporting chapter marks

4 years agoSome more frame -> sample changes (in scripts)
Johannes Mueller [Sat, 15 Jun 2019 23:30:34 +0000 (01:30 +0200)]
Some more frame -> sample changes (in scripts)

4 years agoSome more frame -> sample changes (luabindings.cc)
Johannes Mueller [Sat, 15 Jun 2019 23:14:17 +0000 (01:14 +0200)]
Some more frame -> sample changes (luabindings.cc)

4 years agoAdd a device for X-touch + two X-touch compact devices.
Todd Naugle [Fri, 14 Jun 2019 18:36:56 +0000 (13:36 -0500)]
Add a device for X-touch + two X-touch compact devices.

This also works for X-Touch with x-Touch extenders.

4 years agoAdd mackie device for X-Touch + X-Touch Compact
Todd Naugle [Thu, 13 Jun 2019 19:20:02 +0000 (14:20 -0500)]
Add mackie device for X-Touch + X-Touch Compact

4 years agoAdd Yamaha NP-V80 midnam -- thanks to Rob v.d. Berg
Robin Gareus [Thu, 13 Jun 2019 18:51:04 +0000 (20:51 +0200)]
Add Yamaha NP-V80 midnam -- thanks to Rob v.d. Berg

upstream original:
https://github.com/rghvdberg/yamaha_np-v80.midnam

4 years agoWindows does in theory support hard-links
Robin Gareus [Wed, 12 Jun 2019 19:34:39 +0000 (21:34 +0200)]
Windows does in theory support hard-links

NB. this is just as unused as the POSIX link() test. Aardour
doesn't create hardlinks since version 3.0. At least it's now
consistently wrong on all platforms :)

4 years agomixbus should always copy imported files
Nikolaus Gullotta [Wed, 12 Jun 2019 16:31:55 +0000 (11:31 -0500)]
mixbus should always copy imported files

4 years agoDo not copy unneeded files to bundle /etc
Robin Gareus [Mon, 10 Jun 2019 20:47:01 +0000 (22:47 +0200)]
Do not copy unneeded files to bundle /etc

Previously (Ardour3 buildstack) this was needed for fontconfing, gtk and
pango modules. these days we just compile --with-included-modules=yes.

4 years agoInitialize some uninitialized vars
Robin Gareus [Sun, 9 Jun 2019 22:34:31 +0000 (00:34 +0200)]
Initialize some uninitialized vars

This fixes meterbridge type changes, due to uninitialized
_suspend_menu_callbacks.

4 years agoNO-OP: rename variable
Robin Gareus [Sun, 9 Jun 2019 17:44:29 +0000 (19:44 +0200)]
NO-OP: rename variable

4 years agoNO-OP: whitespace and comments
Robin Gareus [Sun, 9 Jun 2019 17:41:23 +0000 (19:41 +0200)]
NO-OP: whitespace and comments

4 years agoUpdate Push2 level-meter display (use new API)
Robin Gareus [Sun, 9 Jun 2019 17:41:47 +0000 (19:41 +0200)]
Update Push2 level-meter display (use new API)

The meter-type is now implicit set by route/meter-processor, common
to all UIs.

4 years agoUpdate GUI: meter-type API and meter-type state changes
Robin Gareus [Sun, 9 Jun 2019 17:41:07 +0000 (19:41 +0200)]
Update GUI: meter-type API and meter-type state changes

This removes all additional GUI side meter-type state.
The route's meter-processors is now responsible for providing
the type.

meter-type is now implicit for GainMeter, LevelMeter used by
meter-strips and mixer-strips.

4 years agoConsolidate meter-type state and API
Robin Gareus [Sun, 9 Jun 2019 15:47:21 +0000 (17:47 +0200)]
Consolidate meter-type state and API

In theory different UIs can show different meter-types, so it
can make sense to maintain the type in different places.
MeterType is a bit-set and PeakMeter implementation provides for this.

However, this is not being used, and the current implementation
was rather fragmented, cross-connected signals to keep types in sync,
allowed inconsistent meter-types in GUI and backend.

MeterType is now kept by meter itself, however it is still
saved/restored as part of the Route state.

N.B. This change breaks the API, various methods have been renamed
for consistency.

4 years agoRemove toolbar meter (meter type) context-menu
Robin Gareus [Sun, 9 Jun 2019 15:53:18 +0000 (17:53 +0200)]
Remove toolbar meter (meter type) context-menu

This meter is follows in sync the master-bus meter. The type should
be set directly on the master-bus.

4 years agoChange ClipLevelOptions to inherit from a HSliderOption
Paul Davis [Fri, 7 Jun 2019 00:31:28 +0000 (18:31 -0600)]
Change ClipLevelOptions to inherit from a HSliderOption

4 years agowidth of sliders in the option editor is now a fixed text-relative width
Paul Davis [Fri, 7 Jun 2019 00:30:38 +0000 (18:30 -0600)]
width of sliders in the option editor is now a fixed text-relative width

4 years agoRcActionButton is now always its natural width
Paul Davis [Fri, 7 Jun 2019 00:30:12 +0000 (18:30 -0600)]
RcActionButton is now always its natural width

4 years agochange OptionEditComponent to avoid ever expanding the RHS widget horizontally
Paul Davis [Fri, 7 Jun 2019 00:29:48 +0000 (18:29 -0600)]
change OptionEditComponent to avoid ever expanding the RHS widget horizontally

4 years agoNOOP: remove whitespace
Paul Davis [Fri, 7 Jun 2019 00:28:58 +0000 (18:28 -0600)]
NOOP: remove whitespace

4 years agoadjust h-size of color theme manager "Reset to Defaults" button
Paul Davis [Fri, 7 Jun 2019 00:28:45 +0000 (18:28 -0600)]
adjust h-size of color theme manager "Reset to Defaults" button

4 years agolimit width of color theme manager theme dropdown
Paul Davis [Fri, 7 Jun 2019 00:28:16 +0000 (18:28 -0600)]
limit width of color theme manager theme dropdown

4 years agoFix rpath permission issue for linux packages
Robin Gareus [Thu, 6 Jun 2019 23:38:40 +0000 (01:38 +0200)]
Fix rpath permission issue for linux packages

4 years agodo not set MIDI CC values on locate if control/parameter is set to "Off"
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"

4 years agoNOOP: whitespace/newline tweak
Paul Davis [Wed, 5 Jun 2019 15:56:34 +0000 (09:56 -0600)]
NOOP: whitespace/newline tweak

4 years agoFix mac package - libreadline was r-x, changing install_name failed
Robin Gareus [Wed, 5 Jun 2019 13:36:29 +0000 (15:36 +0200)]
Fix mac package - libreadline was r-x, changing install_name failed

4 years agoNO-OP: whitespace
Robin Gareus [Wed, 5 Jun 2019 13:34:58 +0000 (15:34 +0200)]
NO-OP: whitespace

4 years agoClarify MIDI CC menu ambiguity
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.

4 years agoSkip name-suffix for first ALSA sub-device
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).

4 years agoFix windows-packaging (luasession)
Robin Gareus [Tue, 4 Jun 2019 14:30:25 +0000 (16:30 +0200)]
Fix windows-packaging (luasession)

`waf install` is not used for binaries :(

4 years agoPackage commandline Lua-session tool
Robin Gareus [Tue, 4 Jun 2019 13:15:21 +0000 (15:15 +0200)]
Package commandline Lua-session tool

4 years agoTweak toolbar meter reset button to unconditionally apply to all DPM
Robin Gareus [Tue, 4 Jun 2019 12:56:50 +0000 (14:56 +0200)]
Tweak toolbar meter reset button to unconditionally apply to all DPM

4 years agoFix async peak-meter reset
Robin Gareus [Tue, 4 Jun 2019 12:48:47 +0000 (14:48 +0200)]
Fix async peak-meter reset

4 years agoTransfer Fn: skip phase calculation for silence and small signal levels
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..

4 years agoAssume default plugin bussing is stereo
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)

4 years agoList available ALSA sub-devices
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.

4 years agochange name of action from "Smart Object Mode" to "Smart Mode" for consistency
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

4 years agoPotential fix for a race.
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

4 years agoMake ContourdesignControlProtocol::_button_actions private again ...
Johannes Mueller [Sat, 25 May 2019 19:25:16 +0000 (21:25 +0200)]
Make ContourdesignControlProtocol::_button_actions private again ...

... and add proper bounds checks.

4 years agofixups for rebase of show-region-name option
Paul Davis [Wed, 29 May 2019 23:37:48 +0000 (17:37 -0600)]
fixups for rebase of show-region-name option

4 years agoremove debug output
Paul Davis [Wed, 29 May 2019 21:20:16 +0000 (15:20 -0600)]
remove debug output

4 years agoadd option to show/hide region names
Paul Davis [Wed, 29 May 2019 21:16:00 +0000 (15:16 -0600)]
add option to show/hide region names

4 years agoFix crash when deleting selected region-view in ripple mode #7764
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.

4 years agoFix a -Wmaybe-uninitialized (disk-reader, no audio)
Robin Gareus [Sun, 26 May 2019 10:56:10 +0000 (12:56 +0200)]
Fix a -Wmaybe-uninitialized (disk-reader, no audio)

4 years agoShuttle Surface: fix linking .dll
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`

4 years agoShuttle Surface: request_factory and MSVC compatible struct
Robin Gareus [Sat, 25 May 2019 14:48:48 +0000 (16:48 +0200)]
Shuttle Surface: request_factory and MSVC compatible struct

4 years agoShuttle Surface: Fix C++ style: use accessor/setter methods
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)

4 years agoUI integration to conceal LV1 plugins
Robin Gareus [Fri, 24 May 2019 23:56:54 +0000 (01:56 +0200)]
UI integration to conceal LV1 plugins

4 years agoAdd preference to hide LADSPA plugin if LV2 exists
Robin Gareus [Fri, 24 May 2019 23:56:23 +0000 (01:56 +0200)]
Add preference to hide LADSPA plugin if LV2 exists

4 years agoOptimize Plugin-Manager: minimize status query
Robin Gareus [Fri, 24 May 2019 23:23:39 +0000 (01:23 +0200)]
Optimize Plugin-Manager: minimize status query

4 years agoNO-OP: whitespace
Robin Gareus [Fri, 24 May 2019 23:20:17 +0000 (01:20 +0200)]
NO-OP: whitespace

4 years agoSpeed up Plugin status changes
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.

4 years agoRe-use the Mixer's PluginManager (singleton)
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).

4 years agoFix LADSPA author name (remove padding)
Robin Gareus [Fri, 24 May 2019 21:58:00 +0000 (23:58 +0200)]
Fix LADSPA author name (remove padding)

5 years agoUse ActionModel also in ContourDesign surface
Johannes Mueller [Sun, 19 May 2019 14:43:48 +0000 (16:43 +0200)]
Use ActionModel also in ContourDesign surface

5 years agoSome frame -> sample changes in UCS2400
Johannes Mueller [Sat, 18 May 2019 14:36:49 +0000 (16:36 +0200)]
Some frame -> sample changes in UCS2400

5 years agoAdd support for contourdesign ShuttlePRO v2 and ShuttleXpress
Johannes Mueller [Sat, 18 May 2019 11:31:24 +0000 (13:31 +0200)]
Add support for contourdesign ShuttlePRO v2 and ShuttleXpress

5 years agoAdd some options for surfaces to jump in the timeline
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

5 years agoPrefer dedicated c-pointer bindings (can be const)
Robin Gareus [Fri, 17 May 2019 10:08:21 +0000 (12:08 +0200)]
Prefer dedicated c-pointer bindings (can be const)

5 years agoPrefer 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)

5 years agoFix std::list<hared_ptr<>> front/back methods
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

5 years agoFix some actions that moved from Common to Editor.
Ben Loftis [Mon, 13 May 2019 14:11:58 +0000 (09:11 -0500)]
Fix some actions that moved from Common to Editor.

5 years agoPrefer to receive URI-lists for DnD
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

5 years agoFix a bug for drag and drop from nautilus/dolphin (more spectific format first in the
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)

5 years agoMake the configuration penalty subtler about 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.

5 years agoRemove ad-hoc handling of possible_in == 0
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.

5 years agoEnable overriding the configuration penalty
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()

5 years agoMerge input-imprecise pass into the main pass
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.

5 years agoIntroduce a macro for imprecise configurations
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.

5 years agoMerge some cases to avoid duplicated logic
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

5 years agoReplace the exact_match logic by a negative penalty
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.

5 years agoRemove never-matching assert
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.

5 years agoPrefer int32_t to int for channel counts
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.

5 years agoFix for #7755: initialize reverb and chorus of fluidsynth object
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.

5 years agoFix ALSA MIDI device naming
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.

5 years agoGeneric-MIDI ctrl: tweak pitch-bend message behavior
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

5 years agoNotify custom UIs when designated LV2 BPM port changes
Robin Gareus [Wed, 8 May 2019 20:01:07 +0000 (22:01 +0200)]
Notify custom UIs when designated LV2 BPM port changes

5 years agoHide designated [lv2] BPM port from GUI
Robin Gareus [Wed, 8 May 2019 19:59:22 +0000 (21:59 +0200)]
Hide designated [lv2] BPM port from GUI

5 years agoPrepare for Ardour/ALSA multiple identical MIDI devices
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...

5 years agoFix solo logic, connection/feed-information
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.

5 years agoNO-OP: Unclutter -DGraph
Robin Gareus [Wed, 8 May 2019 17:49:01 +0000 (19:49 +0200)]
NO-OP: Unclutter -DGraph

5 years agoEngine Dialog: update MIDI devices, merge settings with state
Robin Gareus [Sun, 5 May 2019 23:29:18 +0000 (01:29 +0200)]
Engine Dialog: update MIDI devices, merge settings with state