Commit Graph

2523 Commits

Author SHA1 Message Date
Paul Davis 1d6c2a946d second attempt at fixing the launchpad pro port name mess
It turns out that slightly older versions of ALSA create different "pretty"
port names for USB MIDI devices than slightly newer ones. The new versions
use names that match those seen on other platforms.

This means that to do port matching on Linux now requires a regexp
to match the possible alternatives. This matters much more for the LPP,
which has 3 input ports and 3 output ports, than it does for most devices
that have a single input and single output, and we can "find" the ports
just using simple string searching
2023-10-13 21:16:27 -06:00
Paul Davis da4d16b1f2 launchpad pro: remember to destroy GUI to avoid use-after-free in its connection handler 2023-10-13 09:47:22 -06:00
Paul Davis e61c1f6993 launchpad pro: use regexes more extensively to find ports to connect to
Hopefully this works for ALSA, Windows and macOS, whereas the previous version worked only
for JACK1
2023-10-12 21:19:21 -06:00
Paul Davis bebe6587a2 tweak launchpad pro port name for probe to be x-platform 2023-10-07 11:43:07 -06:00
Paul Davis 8c2bf116f5 fix crash when using OSC in a session with no master bus and no stripables selected 2023-09-22 15:18:27 -06:00
Robin Gareus f715640aeb
Initialize uninitialized variable
Fixes crash when mapping files cannot be found of read.
2023-09-19 18:28:00 +02:00
Holger Dehnhardt 6bcf0c2d74 Make it C++11 compatible 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt 0e759d5523 Console1 - refine channel selection 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt 827f61ad58 Console1: add shift operations for plugins 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt e22a0eb1db add options to swap mute and solo and to create mapping stops 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt 7634c4936c Store mappings as XML 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt ac00b4a0bb fix plugin selection 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt 4dd58961d2 Enable controlling of plugin 2023-09-17 11:29:47 -06:00
Hoger Dehnhardt 835598c802 Console1: Add plugin interface 2023-09-17 11:29:47 -06:00
Mads Kiilerich d220f477ed wscript: drop unused "mandatory variables" 'top' and 'out' in libs
Variables by these names are only used from the local wscript and when
running "waf configure", which already for other reasons only can run at
the top-level.

These variables are thus not mandatory and not used.
2023-09-17 07:34:55 -06:00
Mads Kiilerich a0916ef368 wscript: drop unused APPNAME assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in
  the top-level project file

- and waf code inspection confirms that waf itself only will use the top
level APPNAME.

Also, the 'waf dist' comment doesn't seem relevant - especially after
this change - and is removed too.

(Note: libs/evoral/wscript and libs/temporal/wscript still use APPNAME
for other purposes.)
2023-09-17 07:34:55 -06:00
Mads Kiilerich 3b4cf9191c wscript: drop unused VERSION assignment in libs
https://waf.io/book/ says
  By default, the project name and version are set to noname and 1.0. To
  change them, it is necessary to provide two additional variables in the
  top-level project file

- and waf code inspection confirms that waf itself only will use the top
  level VERSION.

Some wscripts will use
  bld.env['VERSION']
but that will also just use the value set in the top wscript.
2023-09-17 07:34:55 -06:00
Paul Davis 09b919bb85 faderport (classic): fix a variety of SNAFUs since switch to MidiSurface (#9439) 2023-09-14 12:15:19 -06:00
Paul Davis 4352f89ff0 align launchpad pro surface protocol name 2023-09-11 17:02:46 -06:00
Robin Gareus 81939faa1a
UF8 surface is currently only for Mixbus 2023-09-11 17:13:22 +02:00
Paul Davis 2f25592702 push2: add velocity sensitivity 2023-09-08 14:57:28 -06:00
Paul Davis b440488295 launchpad pro: provide velocity info when launching clips/triggers 2023-09-08 14:41:21 -06:00
Paul Davis 3675f8f444 launchpad pro: remove debug output 2023-09-06 14:46:24 -06:00
Paul Davis 6d9c47c920 launchpad pro: only light Sends button if the selected stripable has 1+ sends 2023-09-06 14:46:24 -06:00
Paul Davis 1ec966d964 launchpad pro: allow clear+cue buttons to ... clear a cue 2023-09-06 14:46:24 -06:00
Paul Davis 5223d05854 launchpad pro: various improvements and fixes 2023-09-04 19:41:25 -06:00
Paul Davis 864b660abe lppro: working send faders, some work on color & pulse for select buttons 2023-08-30 16:06:14 -06:00
Paul Davis e664acc16e lppro: working pan fader controls 2023-08-30 16:06:14 -06:00
Paul Davis 75802cc47b lppro: momentary mode for all fader layouts 2023-08-30 16:06:14 -06:00
Paul Davis ee0d5cfc40 lppro: working gain faders 2023-08-30 16:06:14 -06:00
Paul Davis f5f48b421e lppro: get long press working, add undo/redo/metronome 2023-08-30 16:06:14 -06:00
Paul Davis 9ee7c33737 lppro: solo, mute, rec-enable basics 2023-08-30 16:06:14 -06:00
Paul Davis a6e9d6ecd1 lppro: fix selection button color when "off" 2023-08-30 16:06:14 -06:00
Paul Davis 784fa82081 lppro: selection enabled and displayed 2023-08-30 16:06:13 -06:00
Paul Davis a49c961189 lppro: handle new slots and new routes and improve color display 2023-08-30 16:06:13 -06:00
Paul Davis f3861a79b6 lppro: more work on displaying triggers, including return of the color map 2023-08-30 16:06:13 -06:00
Paul Davis 1ea104eac1 lppro: fix invalidators 2023-08-30 16:06:13 -06:00
Paul Davis 5cfa881fa9 lppro: more state tracking, stop clip handling etc. 2023-08-30 16:06:13 -06:00
Paul Davis 9fa2fccb5c lppro: track trigger state changes 2023-08-30 16:06:13 -06:00
Paul Davis fef1cfa83b lppro: pads launch clips 2023-08-30 16:06:13 -06:00
Paul Davis 2f9fd8e288 launchpad pro: basics of pad/button handling, complete with cue launch and transport control 2023-08-30 16:06:13 -06:00
Paul Davis 7406ad01bd lppro: continuing adventures with shadow ports and pad maps 2023-08-30 16:06:13 -06:00
Paul Davis 1d1ba186b9 lppro: reorder x,y <-> note to put upper left at 0,0
This seems like more work than it should be
2023-08-30 16:06:13 -06:00
Paul Davis 8209cb0ab5 launchpad pro: remove color map; implement note/x,y mapping 2023-08-30 16:06:13 -06:00
Paul Davis 860f354e98 continuing to try to debug LPP initialization in DAW mode 2023-08-30 16:06:13 -06:00
Paul Davis 054a09b567 launchpad pro: full communication and note/pad mapping functional 2023-08-30 16:06:13 -06:00
Paul Davis 36ada549b2 lppro: scroll text method (doesn't seem to work) and new sysex header vector 2023-08-30 16:06:13 -06:00
Paul Davis 7e0315bc5e lppro: working mode setting and control 2023-08-30 16:06:13 -06:00
Paul Davis 13508efef3 lpp: successfully enter programmer mode 2023-08-30 16:06:13 -06:00
Paul Davis b93385e9ae lppro: steps to an ecology of ... no wait, just some stuff 2023-08-30 16:06:13 -06:00
Paul Davis 9d153af72d image for launchpad pro "gui" 2023-08-30 16:06:13 -06:00
Paul Davis c4529f4654 NO-OP: variable name tweak 2023-08-30 16:06:13 -06:00
Paul Davis 3fa15d9162 skeleton for launchpad pro support 2023-08-30 16:06:13 -06:00
Ben Loftis 8fd8eaa01d UF8: parameterize the device name and pass to MackieControlProtocol 2023-08-26 17:34:04 -05:00
Robin Gareus 848f74d803
MCU/UF8: Fix issue with windows build
Enable Surface, show GUI, disable surface. repeat.
Previously this cased a crash in glibmm:

The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE'
has been registered already.
2023-08-25 21:08:14 +02:00
Robin Gareus 4f7bd872be
MCU/UF8: use dedicated ctrl-protocol 2023-08-25 18:12:35 +02:00
Robin Gareus c0366a5f13
MCU/UF8: Continued work to special case Mackie surface
* Use dedicated port-names for UFx
* Do not show SSL-UFx device-info files in MCU
* Fix Window namespacing/missing symbols
* Address Windows ambiguous symbols (Button, Surface)
  Those used to have a Mackie:: prefix, now they need
  MACKIE_NAMESPACE

When re-opening the GUI, there is still a somewha mysterious warning:
```
glibmm-WARNING **: file value_custom.cc: (Glib::custom_boxed_type_register): The type name `glibmm__CustomBoxed_N13ArdourSurface6NS_UF86Button2IDE' has been registered already.
```
2023-08-25 18:09:27 +02:00
Ben Loftis ec365820d8
MCU/UF8: reuse and special-case Mackie ctrl surface for SSL-UF8
This adds a unique namespace to the MCU source code, so it can be
compiled multiple times resulting in different ctrl surfaces.
2023-08-24 19:19:10 +02:00
Paul Davis 2bbf06c8cc class name change to clearly disambiguate Evoral::ControlList (a list of time/value pairs) from lists of Controls in libardour 2023-08-02 15:22:45 -06:00
Paul Davis 50232a23a7 temporal: hide superclock_t variant of TempoMap::metric_at()
This fixes several callsites that were passing samplepos_t to get a TempoMetric,
some of them somewhat significant (e.g. VST plugins that want tempo information).

Bad API design on my part, apologies.

This commit combines libs/ and gtk2_ardour because the new private status
of the ::metric_at() call would be a blocking point for git bisect
2023-06-12 12:36:16 -06:00
Ben Loftis 6640a4afb3 fix Faderport2 port name = FP2 2023-06-01 16:20:48 -05:00
Robin Gareus 84e38b4c65
Fix PF16 auto-connect 2023-05-24 23:01:34 +02:00
Hoger Dehnhardt f958b7b0e0
With larger projects, the session was not initialised at this time 2023-05-14 22:50:35 +02:00
Robin Gareus b1a771d36b
Fix windows builds (type mismatch/error) 2023-05-08 22:05:56 +02:00
Robin Gareus 1940dfbb28
NO-OP: cleanup includes 2023-05-08 22:02:37 +02:00
Robin Gareus ee2bae5aa8
Fix std::optional -> boost::optional API 2023-05-08 22:02:21 +02:00
Hoger Dehnhardt 1dc879eb8d
Softube Console1 add surface (libs) 2023-05-07 18:19:40 +02:00
Paul Davis baf307838c push2: change ordering within destructor to avoid event loop thread drawing-after-delete 2023-05-04 12:34:37 -06:00
Robin Gareus 336f51e1f0
Push2: implement MIDI port probing, auto-enable 2023-05-04 00:57:16 +02:00
Robin Gareus da9ed129e3
Contourdesign: Implement USB probe/match 2023-05-04 00:20:45 +02:00
Robin Gareus a8f5f5636f
FP8: implement MIDI port probing, auto-enable 2023-05-04 00:20:38 +02:00
Robin Gareus 97272481b8
CPM: Activate hotplugged libusb ctrl-surface 2023-05-04 00:20:31 +02:00
Robin Gareus 65346496f5
Refactor Ctrl Surface API
* reserve "probe" to actually probe for devices
* use separate probe for libusb and MIDI port devices
* use "available" to check if surface can be used
* allow both methods to be NULL
* remove unused ControlProtocolDescriptor* argument

Most surface just return `true` for available.
2023-05-03 15:38:42 +02:00
Robin Gareus 847f1e54c1
Clean up ctrl surface API
Remove unused fields, no mandatory surfaces
2023-05-01 02:22:45 +02:00
Paul Davis 8629aea237 push2: shift held while using touch strip sends modulation, not pitch bend 2023-04-21 17:20:17 -06:00
Paul Davis f718279949 surfaces & event loops: i really mean no more request buffer factories 2023-04-21 13:55:58 -06:00
Paul Davis ba66381ab0 push2: remove unused member 2023-04-21 12:16:37 -06:00
Robin Gareus 295dbd8e1e
Make RCU reader return a const pointer (omnibus commit) 2023-04-08 00:15:37 +02:00
Ben Loftis 2713c40b7d extend midi-controllable params with new well-known-controls 2023-04-06 14:52:09 -05:00
Robin Gareus 8c2454238e
Remove explicit well-known ctrl enum string functions
This is better provided by Plugin::print_parameter, which
is called by PluginControl::get_user_string(). This removes
special cases for the mode enums.
2023-03-29 17:32:22 +02:00
Robin Gareus c1d6456d58
FP8: fix duplicate makeup control 2023-03-29 16:39:32 +02:00
Robin Gareus 886d7b9069
FP8: update for Mixbus v9
* add expander/gate
* show/hide mixer-strip controls
* add plugin-presets for channelstrip (if any)
2023-03-28 00:32:02 +02:00
Robin Gareus 9ef6ee21de
FP8: show value as formatted by the plugin 2023-03-28 00:31:45 +02:00
Paul Davis dad40f960d fixup various mistakes when rebasing boost->std shared_ptr changes 2023-03-24 14:19:16 -06:00
Paul Davis b35518e212 switch from boost::{shared,weak}_ptr to std::{shared,weak}_ptr
This is mostly a simple lexical search+replace but the absence of operator< for
std::weak_ptr<T> leads to some complications, particularly with Evoral::Sequence
and ExportPortChannel.
2023-03-24 14:19:15 -06:00
Paul Davis 39ed528e25 std-ize: convert all boost shared/weak ptr includes to <memory>
Also fix stdint.h -> cstdint and alphabetically order std includes
2023-03-24 14:19:15 -06:00
Todd Naugle 0b50bec6f4 MCU: Update view modes for Cue, Foldback, and VCA
This changes the function of the Inputs, Instruments, and Outputs
buttons as follows:

Inputs = Cue Tracks
Instruments = VCA
Outputs = Foldback Busses
2023-03-13 12:21:49 -05:00
alex 4ca947f078 changed parantheses and lines 2023-03-06 00:43:34 +01:00
alex 777c7c6c03 added trackcolors to X-Touch, added _is_xtouch to device info as condition for trackcolors 2023-03-06 00:08:38 +01:00
Robin Gareus 2c7f8eeb97
Indicate UTF8 literals - fixes glyph rendering with MSVC (1/2) 2023-01-16 21:41:09 +01:00
Marijn Kruisselbrink bf7f6386d5
Re-enable lib/ardour/test/session_test.
This test seems to be compiling and passing just fine (when run in
isolation), so turning it back on seems like a good idea. To make it
pass when run as part of the full ardour test suite, this does remove
the WebSockets control surface from the control surfaces test though, as
that control surface messes up the event loop of the main thread, which
would otherwise cause use-after-free crashes in the session test.
2023-01-02 20:31:12 +01:00
Robin Gareus 7e9f29e888
FP8: directly cancel solo (do not rely on GUI) 2022-12-26 13:33:19 +01:00
Robin Gareus eb1373404a
FP8: do not reset fader to unity on re-selecting
This disables the feature added in 057fd9259e.
The idea was to use double-click to reset the fader (like
Harrison consoles). Simply re-select can lead to accidents.
2022-12-13 18:01:27 +01:00
Robin Gareus bd091906ac
Fix OSC/liblo zeroconf, properly query server URL 2022-12-13 17:15:54 +01:00
Robin Gareus d704572ed5
FP8: fix monitor control
monitor_active() is the wrong API (it checks if any
monitor-bus settings are enabled or used).
2022-12-13 17:14:52 +01:00
Paul Davis 9403b116ad Mackie: make AudioInstruments button work correctly
Also toggle Global View LED appropriately
2022-12-10 10:32:47 -07:00
Paul Davis 716501defa potential fix for "/bus/... master ..." target in MIDI binding maps failing 2022-12-06 11:11:08 -07:00
Robin Gareus 7d928bf265
Announce OSC via mDNS 2022-12-02 17:34:10 +01:00
Robin Gareus aae15e3c90
Fix Wreorder, initialize variables 2022-12-02 13:13:13 +01:00
Robin Gareus d903bcff17
Disambiguate "types.h" (see also 705386842b) 2022-11-20 00:32:55 +01:00