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
8209cb0ab5
launchpad pro: remove color map; implement note/x,y mapping
2023-08-30 16:06:13 -06:00
860f354e98
continuing to try to debug LPP initialization in DAW mode
2023-08-30 16:06:13 -06:00
054a09b567
launchpad pro: full communication and note/pad mapping functional
2023-08-30 16:06:13 -06:00
36ada549b2
lppro: scroll text method (doesn't seem to work) and new sysex header vector
2023-08-30 16:06:13 -06:00
7e0315bc5e
lppro: working mode setting and control
2023-08-30 16:06:13 -06:00
13508efef3
lpp: successfully enter programmer mode
2023-08-30 16:06:13 -06:00
b93385e9ae
lppro: steps to an ecology of ... no wait, just some stuff
2023-08-30 16:06:13 -06:00
9d153af72d
image for launchpad pro "gui"
2023-08-30 16:06:13 -06:00
c4529f4654
NO-OP: variable name tweak
2023-08-30 16:06:13 -06:00
3fa15d9162
skeleton for launchpad pro support
2023-08-30 16:06:13 -06:00
8fd8eaa01d
UF8: parameterize the device name and pass to MackieControlProtocol
2023-08-26 17:34:04 -05:00
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
4f7bd872be
MCU/UF8: use dedicated ctrl-protocol
2023-08-25 18:12:35 +02:00
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
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
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
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
6640a4afb3
fix Faderport2 port name = FP2
2023-06-01 16:20:48 -05:00
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
b1a771d36b
Fix windows builds (type mismatch/error)
2023-05-08 22:05:56 +02:00
1940dfbb28
NO-OP: cleanup includes
2023-05-08 22:02:37 +02:00
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
baf307838c
push2: change ordering within destructor to avoid event loop thread drawing-after-delete
2023-05-04 12:34:37 -06:00
336f51e1f0
Push2: implement MIDI port probing, auto-enable
2023-05-04 00:57:16 +02:00
da9ed129e3
Contourdesign: Implement USB probe/match
2023-05-04 00:20:45 +02:00
a8f5f5636f
FP8: implement MIDI port probing, auto-enable
2023-05-04 00:20:38 +02:00
97272481b8
CPM: Activate hotplugged libusb ctrl-surface
2023-05-04 00:20:31 +02:00
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
847f1e54c1
Clean up ctrl surface API
...
Remove unused fields, no mandatory surfaces
2023-05-01 02:22:45 +02:00
8629aea237
push2: shift held while using touch strip sends modulation, not pitch bend
2023-04-21 17:20:17 -06:00
f718279949
surfaces & event loops: i really mean no more request buffer factories
2023-04-21 13:55:58 -06:00
ba66381ab0
push2: remove unused member
2023-04-21 12:16:37 -06:00
295dbd8e1e
Make RCU reader return a const pointer (omnibus commit)
2023-04-08 00:15:37 +02:00
2713c40b7d
extend midi-controllable params with new well-known-controls
2023-04-06 14:52:09 -05:00
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
c1d6456d58
FP8: fix duplicate makeup control
2023-03-29 16:39:32 +02:00
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
9ef6ee21de
FP8: show value as formatted by the plugin
2023-03-28 00:31:45 +02:00
dad40f960d
fixup various mistakes when rebasing boost->std shared_ptr changes
2023-03-24 14:19:16 -06:00
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
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
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
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
7e9f29e888
FP8: directly cancel solo (do not rely on GUI)
2022-12-26 13:33:19 +01:00
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
bd091906ac
Fix OSC/liblo zeroconf, properly query server URL
2022-12-13 17:15:54 +01:00
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
9403b116ad
Mackie: make AudioInstruments button work correctly
...
Also toggle Global View LED appropriately
2022-12-10 10:32:47 -07:00
716501defa
potential fix for "/bus/... master ..." target in MIDI binding maps failing
2022-12-06 11:11:08 -07:00
7d928bf265
Announce OSC via mDNS
2022-12-02 17:34:10 +01:00
aae15e3c90
Fix Wreorder, initialize variables
2022-12-02 13:13:13 +01:00
d903bcff17
Disambiguate "types.h" (see also 705386842b
)
2022-11-20 00:32:55 +01:00
3f3d0c7e49
Surfaces and panners should not export headers
...
Those are not shared libraries but only dynamically loaded
plugin objects. Their headers are their own.
2022-11-19 01:11:53 +01:00
a6f8f2dd9e
Consolidate search/file-system paths (fixes vst builds)
...
Keep file-system paths and PBD::Searchpath mostly separate.
This amends 58c2b0a848
libs/fst directly includes relevant
ardour C++ code, so lib/fst must not link against libardour.
The problem was that 58c2b0a848
introduced additional
dependencies on other libardour functions.
2022-11-19 00:48:11 +01:00
d521c2ede6
src-tree cleanup: separate surfaces from libraries
...
libardourcp and now libardour_midisurface are not control
surfaces, but helper libraries for those.
They need to be deployed to the library folder (shared between
ctrl surfaces) and not scanned as ctrl surfaces at runtime.
2022-11-19 00:09:17 +01:00
58c2b0a848
move midi maps folders and file extension out of control surfaces library
2022-11-18 14:04:59 -07:00
Gon Solo
85a45b2645
Fix missing glib include path
2022-11-17 03:21:25 +01:00
a130041547
use MIDISurface in original Faderport support, plus required changes in MIDISurface & Push 2
2022-11-16 08:37:57 -07:00
e5bbccef28
various changes to get Push 2 surface support functional after inheriting from MIDISurface
2022-11-16 08:37:57 -07:00
99712e7585
surfaces; convert push2 to inherit from MIDISurface
2022-11-16 08:37:57 -07:00
4fbf3028aa
basic skeleton for new MIDISurface base class
2022-11-16 08:37:57 -07:00
7038e586d0
OSC: add support for Mixer Scenes: save, recall, and state feedback
2022-11-07 10:28:30 -06:00
0bda71b40b
BasicUI: Add simple functions to store and recall Mixer Scenes
2022-11-07 10:28:30 -06:00
6813884857
Restore custom generic midi settings #9062
...
DeviceInfo (bindings file) can include explicit motorized
and threshold settings. These values, when specified, are
used during load_bindings() during set_state and overwrote
any user customization.
Furthermore showing the GUI invalidated any prior setting
by explicitly calling binding_changed, which re-applies.
2022-11-02 17:44:00 +01:00
c6dade9484
OSC: implement controls and feedback for a banked trigger grid controller
...
(first iteration ... API may change)
2022-11-01 13:52:54 -05:00
bdf9cedb0e
triggers: implement grid banking in BasicUI so it can be shared (?)
2022-11-01 13:52:54 -05:00
0851d230cd
basic_ui: add convenience functions to access an NxM bank of triggers
2022-11-01 13:52:54 -05:00
c23210aae8
various fixes to prevent BasicUI diverging from GUI behaviors
2022-11-01 13:52:54 -05:00
bdacfb8724
Fix invalid use of Doxygen "@param" command
...
This is never for inline references to parameters, only for starting parameter
documentation blocks. The "@p" command is for this, although unfortunately
Doxygen doesn't actually do anything with it and it's just an alias for code
text.
2022-10-30 20:44:28 -04:00
2939ed3164
Add dedicated InsertReturnLevel type
...
This is preparation for PortInsert Send and Return
level control.
2022-10-14 02:21:49 +02:00
f3423b8a77
Consolidate send/delivery gain control
...
This moves the _amp from send to delivery (which already
applies gain for the master-bus normalization). This generalizes
the use of a gain stage for use in port-inserts.
2022-10-14 02:21:49 +02:00
3c0820e36e
move default_triggers_per_box into a namespace ; change value for Ardour to 16
2022-10-04 19:55:05 -06:00
a0c93328ea
push2: fix intended behavior of push2 "lower buttons"
2022-10-03 15:41:50 -06:00
42a4216f22
osc: publish session-provided trigger functions: bang/unbang
2022-10-01 09:13:14 -05:00
7fe7adb83c
push2: adapt to new unbang and 'stop' semantics (needs testing)
2022-10-01 09:13:14 -05:00
6c292a83da
basic_ui: use session-provided bang/unbang functions
2022-10-01 09:13:14 -05:00
1e283adb22
disambiguate trigger functions: stop_all_triggers -> trigger_stop_all
2022-10-01 09:13:14 -05:00
75ae0fd4b1
disambiguate trigger functions: cue_bang -> trigger_cue_row
2022-10-01 09:13:14 -05:00
be28c9ff88
osc: add functions to trigger cue rows, and stop all triggers
2022-10-01 09:13:14 -05:00
9a34d15b3c
Fix crash when disabling generic MIDI surface
...
The event-loop has to be stopped before unregistering ports
and deleting the instance.
2022-09-30 01:58:24 +02:00
0cd87a917c
push2: apply concept in 0af0e3a8e8
to push2 code (unused follow action icon)
2022-09-22 09:20:01 -06:00
af28394bfd
push2: fix an apparent bug in cairo when drawing follow action icons
...
It seems that using ::move_to() followed by Pango::Layout::show_in_cairo_context() leaves
the context in a state that is not correctly restored when using ::restore(). Therefore,
clear the path to avoid leaving any dangling current point
2022-09-22 00:43:38 -06:00
10ac1901dd
push2: temporarily comment display of jump loop actions due to cairo oddity
2022-09-07 17:03:08 -06:00
1eab84b7da
push2: remove unconditional setting of canvas item names
2022-09-03 17:48:03 -06:00
4863e6b45e
Fix mac and windows builds (resolve namespace ambiguities)
2022-09-04 01:37:48 +02:00
97540dafde
push2: update cue layout when tracks are added
2022-09-03 16:46:41 -06:00
2d4042abd7
push2: fix handling of pads-as-note-entry during selection changes
2022-09-03 16:46:41 -06:00
b3b6e94297
push2: fix canvas level meter object so that it draws
2022-09-03 16:46:41 -06:00
b7d86cb118
push2: track mix layout needs to be setup even if not currently visible
2022-09-03 16:46:41 -06:00
96a9c1df7f
push2: bug fixes for pad color mgmt and other fixes/improvements
2022-09-02 17:57:46 -06:00
49e6066306
Fix mac and windows builds (resolve namespace ambiguities)
2022-09-02 12:44:44 +02:00
f8312cacc4
add back Rect -> ArdourCanvas::Rect define
2022-09-01 22:03:11 -06:00
55ff73a2ad
fix clang/macos compilation
2022-09-01 16:23:12 -06:00
cbbc6f9b84
push2: use vector of pads rather than map when shutting down
2022-08-31 10:23:12 -06:00
253dac007d
push2: fully init and de-init buttons and pads at startup and shutdown
2022-08-31 10:22:24 -06:00
681ca38848
push2: fix a couple of potential crashes
2022-08-31 10:11:02 -06:00
678ed40bd3
push2: fix pad colors etc. after layout switches
2022-08-30 21:37:16 -06:00
748fbf6fb1
push2: add follow action icons to display
2022-08-30 16:51:34 -06:00
6986c18163
push2: add clip names to display and slightly shift progress circle
2022-08-28 22:37:31 -06:00
b98ec59ed8
push2: another bunch of Live-chasing functionality for trigger control
2022-08-28 18:58:50 -06:00
a06ed85269
push2: prep for triggerbox property changes
2022-08-27 21:21:22 -06:00
f6cfa3c3e1
push2: let's not crash
2022-08-27 16:25:09 -06:00
741ff552a0
push2: start tracking route properties in cue layout
2022-08-27 16:22:07 -06:00
06abdb4c4e
push2: vector, not map
2022-08-27 16:03:01 -06:00
6627d24c2b
push2: add an (x,y) map for pads and use it
2022-08-27 15:53:03 -06:00
a5dd6c1128
push2: lots more clip control functionality and display
2022-08-27 12:55:16 -06:00
b10a99dcad
push2: clip stop ala Live
2022-08-27 08:32:15 -06:00
19db8f9c68
control protocols: fix design of trigger unbang method
2022-08-27 08:32:03 -06:00
3cffca9178
control protocols: add trigger unbang method
2022-08-27 08:26:08 -06:00
8ed8895439
push2: launch clips with pads
2022-08-27 08:15:40 -06:00
26c48aae1b
control protocols: add trigger bang method to BasicUI
2022-08-27 08:15:17 -06:00
092fdb5b46
push2: turn off scene buttons when appropriate
2022-08-26 19:31:15 -06:00
1ecdeb25a7
push2: an ever-growing array of cue-related support
2022-08-26 19:23:43 -06:00
f835fb279a
push2: don't like the clip button since it does nothing
2022-08-26 17:40:41 -06:00
f57669fbde
push2: rename things to match the rest of ardour, and use Session button not Clip
...
the clip button is intended to "look at" a single clip and edit it
2022-08-26 17:40:04 -06:00
17b0764639
push2: clip view actually visible via button on surface
2022-08-26 16:39:36 -06:00
dd2442b0c2
push2: skeleton for new clip view layout
2022-08-26 16:15:32 -06:00
58d262384b
fix error during rebase fixup
2022-08-26 14:49:29 -06:00
7670f87d0a
Push2: Use condensed font to avoid overlap in scale menu
2022-08-26 14:10:40 -06:00
7883695ba9
Push2: Implement special "sequential" mode for in-key note grids
...
This makes "sequential" more or less mean an octave vertical interval,
but only for in-key mode. For chromatic mode, "sequential" is still just a
naive wrap-around layout for every note.
2022-08-26 14:10:40 -06:00
a6cd0a3f6e
Push2: Ensure every pad is set up once when the grid layout changes
...
This juggles the implementation slightly in a way that's more resilient to
mistakes: the representation of pads in the surfaces is always fully reset
before setting up the grid, and a state message is sent for every single pad
once after the scale algorithm sets things up.
This means that scale algorithms don't need to deal with hairy edge cases like
running off the end of the scale or the valid range of MIDI notes.
2022-08-26 14:10:40 -06:00
b6389bf274
Push2: Show both row and column interval explicitly in the same way
...
This hopefully makes the layout clearer to people who aren't familiar with what
all the settings mean.
2022-08-26 14:10:40 -06:00
e4e874bed0
Push2: Add "fixed" and "rooted" note grid option
2022-08-26 14:10:40 -06:00
ecd1a9660b
Push2: Fix Db root button
2022-08-26 14:10:40 -06:00
380a24b837
Push2: Remove debug printing
2022-08-26 14:10:40 -06:00
e93b7e2507
Push2: Add UI for changing the vertical interval
2022-08-26 14:10:40 -06:00
d5ca05edff
Push2: Implement a vertical interval for "tuning" the pads
...
The implementation is generic, but the actual call is hardcoded to 4ths here.
UI to follow.
2022-08-26 14:10:40 -06:00
b35796af75
Push2: Factor out set_pad_note_kind()
...
Factors button details out of the scale algorithm, to make it more clear.
2022-08-26 14:10:40 -06:00
2af9c2180a
Push2: Mostly fix scale menu text rendering ( #8599 )
...
"Mostly" because there are still some issues with horizontal overlap between
entries, but I think that's something that needs to be addressed separately.
Like earlier issues, this was caused by using a screen-derived or default
cairo/pango context. I also tinkered with some constants to make things look
sensible to me, and hopefully everywhere since it should always look the same
with the context fix.
2022-08-26 14:10:40 -06:00
2a31e0721d
Push2: Invert splash screen
...
This looked janky and out of place to me, since everything else is on black and
the LCD doesn't seem to do light backgrounds very well in general.
2022-08-26 14:10:40 -06:00
c4632da2e7
Push2: Drop "using namespace std"
...
No functional changes, just makes some more context explicit like the previous
commit.
2022-08-26 14:10:40 -06:00
61088a1a01
Push2: Use consistent naming convention for private member variables
...
No functional changes, just makes code easier to read.
2022-08-26 14:10:36 -06:00
Mads Kiilerich
3fa64af624
osc: fix warning message
...
Apparently just a missing update from copy-paste.
2022-08-19 10:58:41 -06:00
Mads Kiilerich
1f1565e08b
surface faderport: drop old debug print
...
This showed up in test output, and was introduced 5 years ago in
ecc2348ecc
.
2022-08-19 10:56:55 -06:00
db8262bd7b
Mackie Control: Use view names from Mackie spec and define them all
2022-08-05 00:50:27 +02:00
de0893cc8d
backport to Ardour: Don't set the MCU Click led state from the button
...
Allow the update process to get the correct state and update the LED.
2022-08-05 00:43:02 +02:00
luz paz
47c525315d
Fix various typos
...
Found via `codespell -q 3 -S *.po,./.git,./share/patchfiles,./libs,./msvc_extra_headers,./share/web_surfaces,*.patch -L ba,buss,busses,discreet,doubleclick,hsi,ontop,ro,scrollin,seh,siz,sord,sur,te,trough,ue`
2022-08-03 12:10:01 -06:00
1f65c66727
MCU: fix mixer-strip buttons (see also 0d9656ef82
)
2022-07-15 23:46:28 +02:00
c6566f3933
mackie protocol: add more null checks; remove some debug msgs
2022-06-30 16:47:17 -05:00
198df78cfe
mackie debugging: ugly printouts
2022-06-30 14:04:51 -05:00
66bd195030
mackie protocol: potential crash-fix
2022-06-30 11:30:07 -05:00
0d9656ef82
use new macros to cleanup #ifndef NDEBUG as much as possible (libs edition)
2022-06-22 13:31:08 -06:00
41948821e2
fix optimized unused variable warning
2022-06-22 13:31:08 -06:00
ebb9d3d4dc
fix optimized unused variable warning
2022-06-22 13:31:08 -06:00