13
0
Commit Graph

14779 Commits

Author SHA1 Message Date
57c3eaacf6
Fix process-thread naming 2019-07-10 20:20:44 +02:00
e85c10256b
Add Lua binding to set/create track playlists 2019-07-06 18:09:27 +02:00
e76e18af96
Use exit-status macros for compatibility 2/3 2019-07-04 22:21:35 +02:00
9cfcb0bd92
Mixbus uses K14 (not K20) master meter by default (see also 297ed001d) 2019-07-02 20:18:26 +02:00
db2ed6ade5
Remove unused API -- there is no default backend. 2019-07-02 20:16:56 +02:00
297ed001d0
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).
2019-07-02 16:12:06 +02:00
3630113414
LV2 support is not optional since 04ccd328dc 2019-06-24 21:52:27 +02:00
a3f8449595 Update to upstream ptformat 777686b (remove strndup && cleanup) 2019-06-24 22:54:45 +10:00
0a62d70a43 Revert "Huh?? I can't believe that MSVC doesn't support strndup() !!!"
This reverts commit 1a7a23a5ce.
2019-06-24 22:52:46 +10:00
1a7a23a5ce Huh?? I can't believe that MSVC doesn't support strndup() !!! 2019-06-23 15:52:59 +01:00
675759c167 Update references to ptfformat -> ptformat && fix api calls 2019-06-22 17:26:05 +10:00
f5524ddf37 ptformat: Update lib from legacy parser to new parser 6240b87 2019-06-22 17:26:05 +10:00
Johannes Mueller
9ddc47204a Some more frame -> sample changes (luabindings.cc) 2019-06-16 01:28:38 +02:00
43fe5c0487
Update Push2 level-meter display (use new API)
The meter-type is now implicit set by route/meter-processor, common
to all UIs.
2019-06-09 19:56:33 +02:00
cd5b0819bf
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.
2019-06-09 19:56:15 +02:00
fb2e65fd35 do not set MIDI CC values on locate if control/parameter is set to "Off" 2019-06-05 10:02:39 -06:00
2c88055ef4 NOOP: whitespace/newline tweak 2019-06-05 10:02:39 -06:00
34b671911c
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).
2019-06-04 19:20:26 +02:00
3e4f2d0f7a
Fix async peak-meter reset 2019-06-04 14:48:47 +02:00
dba3ff5236
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)
2019-06-03 16:28:10 +02:00
f777d8389d
List available ALSA sub-devices
Previously Ardour only listed the first audio sub-device in the
for ALSA and JACK backend device selection dialog.
2019-06-01 15:49:46 +02:00
Johannes Mueller
af875e0edc Potential fix for a race.
Do proper bounds checks and force the use of operator[] () const
2019-05-30 17:33:36 +02:00
Johannes Mueller
16d6791566 Make ContourdesignControlProtocol::_button_actions private again ...
... and add proper bounds checks.
2019-05-30 17:09:33 +02:00
8cce89664c
Fix a -Wmaybe-uninitialized (disk-reader, no audio) 2019-05-26 12:56:10 +02:00
203b249135
Shuttle Surface: fix linking .dll
For .dll, all references need to be defined at compile/link time
(not runtime). ie. `ld -zdefs`
2019-05-26 12:46:37 +02:00
d28dc9ee08
Shuttle Surface: request_factory and MSVC compatible struct 2019-05-25 16:49:19 +02:00
3546a7291b
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)
2019-05-25 16:49:15 +02:00
c97884d257
Add preference to hide LADSPA plugin if LV2 exists 2019-05-25 01:56:23 +02:00
02c698ed85
NO-OP: whitespace 2019-05-25 01:20:17 +02:00
ce8740cf5e
Fix LADSPA author name (remove padding) 2019-05-24 23:58:00 +02:00
Johannes Mueller
e61c4b692b Use ActionModel also in ContourDesign surface 2019-05-19 16:43:48 +02:00
Johannes Mueller
0c3112aed1 Some frame -> sample changes in UCS2400 2019-05-18 16:36:49 +02:00
Johannes Mueller
b8349069f1 Add support for contourdesign ShuttlePRO v2 and ShuttleXpress 2019-05-18 14:04:38 +02:00
Johannes Mueller
89f39d14f2 Add some options for surfaces to jump in the timeline
* ::jump_by_beats()
* request transport to keep rolling after jump
2019-05-18 13:27:49 +02:00
344feccc31
Prefer dedicated c-pointer bindings (can be const) 2019-05-17 12:09:07 +02:00
bed2eb2e33
Fix std::list<hared_ptr<>> front/back methods
Shared pointer reference accessors can't be const
2019-05-17 12:09:07 +02:00
3e7e89db8f Fix some actions that moved from Common to Editor. 2019-05-13 09:20:17 -05:00
a4474e95a4 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.
2019-05-12 22:32:10 +02:00
fe4d0f67e4 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.
2019-05-12 22:32:10 +02:00
3bff40b5b3 Enable overriding the configuration penalty
This relieves exact matches of the need to duplicate the bookeeping done
by FOUNDCFG()
2019-05-12 22:32:10 +02:00
7a6daab642 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.
2019-05-12 22:32:10 +02:00
b5218fa38b Introduce a macro for imprecise configurations
It enables only setting the imprecise audio channel count if the
configuration is indeed selected.
2019-05-12 22:32:10 +02:00
0e0c55c6b5 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
2019-05-12 22:32:10 +02:00
baef462cf4 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.
2019-05-12 22:32:10 +02:00
4d0e122976 Remove never-matching assert
Since previous line just asserted that possible_in > 0, it is
necessarily non-null and the test is always true.
2019-05-12 22:32:10 +02:00
e9f02e28d3 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.
2019-05-12 22:32:10 +02:00
Johannes Mueller
12808c7bd2 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.
2019-05-12 21:27:37 +02:00
7e56812c55
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.
2019-05-10 13:21:22 +02:00
9ac18a8e0f
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
2019-05-09 16:06:00 +02:00
48b960fdef
Notify custom UIs when designated LV2 BPM port changes 2019-05-08 22:04:43 +02:00
f08e2b7eb1
Hide designated [lv2] BPM port from GUI 2019-05-08 21:59:22 +02:00
4185ad80a6
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...
2019-05-08 19:58:53 +02:00
ba41ac3cec
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.
2019-05-08 19:51:20 +02:00
ef283ed29c
NO-OP: Unclutter -DGraph 2019-05-08 19:49:01 +02:00
00e226e3c6
Fix ALSA MIDI latency update call (playback/capture direction mismatch) 2019-05-06 00:14:27 +02:00
ddd1cda260
Remove outdated comment 2019-05-05 18:07:21 +02:00
c5346f5c15
Fix add/remove ALSA-MIDI ports bug 2019-05-05 18:06:37 +02:00
5bde8f4456
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.
2019-05-05 02:49:53 +02:00
0f24316c3c
Ignore MIDNAM NRPN Controls for the time being
This fixes an issue with Novation_BassStationII.midnam
duplicate assignments CC + NRPN.
2019-05-04 00:07:26 +02:00
8329f55e5f
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)
2019-05-03 20:02:26 +02:00
a156d4f446
NO-OP: whitespace 2019-04-28 21:16:50 +02:00
2fcd19581a Add/remove source(s) in our MSVC project (gtkmm2ext) 2019-04-21 19:21:17 +01:00
Johannes Mueller
ce47ec411a Make use of ActionModel::build_custom_action_combo() 2019-04-20 22:36:51 +02:00
Johannes Mueller
822f55f4af Provide ActionModel::build_custom_action_combo() for Control Protcols
to consolidate code that's identical in several control protocols.
2019-04-20 22:12:52 +02:00
Johannes Mueller
73f8b8d982 Use ActionModel::build_action_combo() for Control Surfaces that need it 2019-04-20 15:25:32 +02:00
Johannes Mueller
de876acc8b Provide a function to fill a Gtk::ComboBox with all available actions 2019-04-20 15:25:32 +02:00
Johannes Mueller
5b7bcec529 Use ActionModel API in the Control Surfaces that can make use of it 2019-04-20 15:25:32 +02:00
Johannes Mueller
b141d17274 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.
2019-04-20 15:25:32 +02:00
Johannes Mueller
8cbbd3dd00 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.
2019-04-20 00:15:20 +02:00
Johannes Mueller
23b196952b Fix restoring of CC121 configuration
The button ids are in the children of the cc121 protocol node, not in the
protocol node itself.
2019-04-20 00:12:59 +02:00
1f982b532d
Update Fluidsynth to v2.0.5 2019-04-19 15:44:14 +02:00
bcd33a2381
Remove cruft 2019-04-19 15:03:50 +02:00
5553979511
NO-OP: whitespace 2019-04-19 15:03:37 +02:00
Johannes Mueller
6d4d4ccc78 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.
2019-04-17 13:53:45 +02:00
Johannes Mueller
ca05f03e72 Align port layout and code of a-exp with the one of a-comp 2019-04-15 18:40:27 +02:00
Johannes Mueller
beaaa80d42 Remove switch for different inline displays from a-comp.
Reverts a0a4db47a7

This feature never was in a release.
2019-04-15 12:11:38 +02:00
94036cc7c0 Correct a typo that crept in somewhere 2019-04-14 19:34:37 +01:00
2f91bdfa53
NO-OP: <tab> after <space> fixes in libs 2019-04-13 19:19:29 +02:00
bf3e91e5cf
NO-OP: whitespace 2019-04-13 17:06:29 +02:00
ff3b59fb4f
NO-OP: whitespace 2019-04-12 21:38:06 +02:00
4199156263
More Ardour/Mixbus codebase unification
Note Presentation-Info bits used by Mixbus to prevent conflicts
when sharing sessions.
2019-04-12 21:37:51 +02:00
5c94bd00b5
NO-OP: mixbus codebase unification 2019-04-12 19:22:59 +02:00
c218b65d24
Fix the URI handling (for sfdb) for Windows
This forward ports Mixbus' 4eca3dea47 without additional code to correct
for old (Ardour2) URIs.

A2, used path2uri() which accumulated and left duplicate slashes in place,
eg. "file:////". Mixbus3 auto-corrected this on load in
AudioLibrary::search_members_and().
However sfdb libraries are not shared between major versions, so this
code does no need to be forward ported.
2019-04-12 18:38:49 +02:00
6cfb164d7c
Backport backup folder creation
Other parts for auto-backup is already in ardour-git.
2019-04-12 18:32:34 +02:00
6631d97ac0
Mixbus likes hyperthreading on Mac 2019-04-12 18:30:52 +02:00
3da07e6736
Special case Lua copy-construction of trackable instances
This fixes an crashing issue with ArdourUI.SelectionList a bug
introduced in 6dc3bdf252 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 6dc3bdf252) 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.
2019-04-12 05:45:27 +02:00
2a8bda01b1
NO-OP: whitespace 2019-04-11 02:32:45 +02:00
01024e2b4c
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
2019-04-11 02:06:32 +02:00
d465a2b012 Cleanup: Simplify conditionals 2019-04-10 10:24:33 +02:00
30d59c8f6e Remove support for building against LV2 older than 1.2.0
LV2 1.2.0 was released in 2012, over 6 years ago now.
2019-04-10 10:24:33 +02:00
7fc7c18a07
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.
2019-04-10 00:22:20 +02:00
59b1193b56
Disable auto-input by default for new installs
This prevents audible feedback on laptops when adding new tracks
with default settings.
2019-04-09 14:36:56 +02:00
1780cbe179
Backport Mixbus delivery patch 2019-04-09 14:33:27 +02:00
57ebb5c1ba
Remove cruft: unused typedef 2019-04-09 02:23:17 +02:00
b840feb721
NO-OP: whitespace 2019-04-09 02:20:06 +02:00
9f77a6f7fe
NO-OP: more libardour whitespace tweaks 2019-04-08 19:36:22 +02:00
2f727a6a32
Undo yet more frame/sample replacements 2019-04-08 18:32:09 +02:00
aef75f87b7
NO-OP: whitespace, comments 2019-04-08 18:32:03 +02:00
0a329ffe73
NO-OP name change: CD-frames (not samples) 2019-04-08 14:44:22 +02:00
84272b4e27
NO-OP: whitespace
Fix space-alignment, mostly due to "frame" -> "sample" changes.
2019-04-08 05:16:33 +02:00