336f51e1f0
Push2: implement MIDI port probing, auto-enable
2023-05-04 00:57:16 +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
8629aea237
push2: shift held while using touch strip sends modulation, not pitch bend
2023-04-21 17:20:17 -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
a130041547
use MIDISurface in original Faderport support, plus required changes in MIDISurface & Push 2
2022-11-16 08:37:57 -07:00
99712e7585
surfaces; convert push2 to inherit from MIDISurface
2022-11-16 08:37:57 -07:00
678ed40bd3
push2: fix pad colors etc. after layout switches
2022-08-30 21:37:16 -06:00
b98ec59ed8
push2: another bunch of Live-chasing functionality for trigger control
2022-08-28 18:58:50 -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
1ecdeb25a7
push2: an ever-growing array of cue-related support
2022-08-26 19:23:43 -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
e4e874bed0
Push2: Add "fixed" and "rooted" note grid option
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
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
9758e6280f
use new event loop callback to ensure that all surface/control protocol threads have tempo map ptr set
2022-05-16 15:24:52 -06:00
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
b58dfc7f0f
Resolve microseconds_t ambiguity 1/2
...
This resolves a PBD vs ARDOUR namespace error for some compilers:
```
error: reference to 'microseconds_t' is ambiguous
libs/pbd/pbd/microseconds.h:29:19: error: candidates are: typedef uint64_t PBD::microseconds_t
libs/ardour/ardour/types.h:81:29: error: typedef PBD::microseconds_t ARDOUR::microseconds_t
```
2021-06-27 17:33:05 +02:00
e7466bddbc
Push2: Clean up forward declarations
2021-06-18 13:53:53 -04:00
bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
6e419a961e
use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code
2018-09-02 13:23:57 -04:00
601c317d70
Clean up library inheritance (colors.h, utils.h)
...
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
eb3f50e15c
change the way ControlProtocols (control surfaces) are notified and handle Stripable selection changes
...
The Editor continues to notify them, but via a direct call to ControlProtocolManager, not a signal.
The CP Manager calls the ControlProtocol static method to set up static data structures holding
selection info for all surfaces and then notifies each surface/protocol that selection has changed.
2017-05-12 14:51:39 +01:00
687ac2d294
remove unused variable
2016-10-17 15:58:39 -04:00
1b830f2604
reorganize push 2 code and logic to better handle device arrival after program startup
...
Note: we do not handle device departure correctly yet, mostly because the shadow (pad) port has a retained
reference somewhere
2016-09-30 11:23:01 -04:00
67e415e14c
make Ben's cool range select hack work with Push 2
2016-09-28 11:28:45 -05:00
b6e62c6654
move mode/scale/key definitions out of push2 code and into libardour; Aeolian is the same as Minor
2016-09-28 10:47:17 -05:00
ae01ac2384
update pad colors when selected track colors chane
2016-09-27 14:59:32 -05:00
69a789c513
push2: make quantize and duplicate buttons do something useful
2016-09-27 14:59:31 -05:00
f35c5fd5a6
push2: master button now does something useful
2016-09-27 14:59:31 -05:00
f12150a1ed
push2: always use a contrasting color when flashing played pads
2016-09-27 14:59:31 -05:00
cb340bf190
push2: when playing pads, flash all pad LEDs for the same note number for the pressed pad
2016-09-27 14:59:31 -05:00
13295cf060
use ArdourCanvas::Color not uint32_t for push2 color decls
2016-09-27 14:59:31 -05:00
6f2ac5d6ad
push2: various changes in support of menus and scale mode
2016-09-27 14:59:31 -05:00
216ce7bcb8
a slew of unconnected mostly minor tweaks to get Push2 support back to where it was...
...
... prior to using the canvas for the video screen
2016-09-27 14:59:31 -05:00
b835486170
tweaks and so forth to get first canvas-based rendering to Push2 display
2016-09-27 14:59:31 -05:00
7c9f3acc60
first compiling and theoretically correct version of Push2 canvas display.
...
Not tested with device at this point
2016-09-27 14:59:31 -05:00
b822d8be36
basic code to get/set pressure mode to/from the push2
2016-09-27 14:59:31 -05:00
11843e00ba
continuing work on refining push2 mix layout
2016-09-27 14:59:31 -05:00
b830965288
push2: steps toward a more ableton-like layout in mix mode
2016-09-27 14:59:31 -05:00
4cc71d2966
push2: parameterize and centralize colors
2016-09-27 14:59:31 -05:00
ccbe1797d6
push2: color palette management, and responding to 2 track properties in TrackMix layout
2016-09-27 14:59:31 -05:00
a4324d79a7
push2: add a little meat to the bones of the TrackMix layout (just a name, for now)
2016-09-27 14:59:31 -05:00
2689458500
push2: rearrange and separate header file material
2016-09-27 14:59:31 -05:00
64d390ff13
push2: remove unneeded maps from Push2 object
2016-09-27 14:59:30 -05:00