Paul Davis
a130041547
use MIDISurface in original Faderport support, plus required changes in MIDISurface & Push 2
2022-11-16 08:37:57 -07:00
Paul Davis
e5bbccef28
various changes to get Push 2 surface support functional after inheriting from MIDISurface
2022-11-16 08:37:57 -07:00
Paul Davis
99712e7585
surfaces; convert push2 to inherit from MIDISurface
2022-11-16 08:37:57 -07:00
Paul Davis
2d4042abd7
push2: fix handling of pads-as-note-entry during selection changes
2022-09-03 16:46:41 -06:00
Paul Davis
96a9c1df7f
push2: bug fixes for pad color mgmt and other fixes/improvements
2022-09-02 17:57:46 -06:00
Paul Davis
cbbc6f9b84
push2: use vector of pads rather than map when shutting down
2022-08-31 10:23:12 -06:00
Paul Davis
253dac007d
push2: fully init and de-init buttons and pads at startup and shutdown
2022-08-31 10:22:24 -06:00
Paul Davis
678ed40bd3
push2: fix pad colors etc. after layout switches
2022-08-30 21:37:16 -06:00
Paul Davis
b98ec59ed8
push2: another bunch of Live-chasing functionality for trigger control
2022-08-28 18:58:50 -06:00
Paul Davis
06abdb4c4e
push2: vector, not map
2022-08-27 16:03:01 -06:00
Paul Davis
6627d24c2b
push2: add an (x,y) map for pads and use it
2022-08-27 15:53:03 -06:00
Paul Davis
8ed8895439
push2: launch clips with pads
2022-08-27 08:15:40 -06:00
Paul Davis
1ecdeb25a7
push2: an ever-growing array of cue-related support
2022-08-26 19:23:43 -06:00
Paul Davis
f835fb279a
push2: don't like the clip button since it does nothing
2022-08-26 17:40:41 -06:00
Paul Davis
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
Paul Davis
17b0764639
push2: clip view actually visible via button on surface
2022-08-26 16:39:36 -06:00
David Robillard
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
David Robillard
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
David Robillard
e4e874bed0
Push2: Add "fixed" and "rooted" note grid option
2022-08-26 14:10:40 -06:00
David Robillard
380a24b837
Push2: Remove debug printing
2022-08-26 14:10:40 -06:00
David Robillard
e93b7e2507
Push2: Add UI for changing the vertical interval
2022-08-26 14:10:40 -06:00
David Robillard
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
David Robillard
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
David Robillard
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
David Robillard
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
David Robillard
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
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
Paul Davis
7bf89ce109
Constification: make Stateful::get_state() const, with all other required const-ness added (libs)
2022-04-06 21:56:59 -06:00
Paul Davis
3475350d7c
push2: session button should be lit
2021-10-09 11:46:53 -06:00
Paul Davis
086e48796c
surfaces: first round of conversion to use timeline types
2021-08-13 12:51:29 -06:00
Robin Gareus
e0a6aba28d
Ignore saved port-name when loading ctrl-surface state
...
In some cases old and/or conflicting port names were saved
with the session (e.g. "Faderport" for FP1,8). Loading old sessions
then merges this state into the config, which could lead to
port-registration failure when the surfaces was enabled.
2021-04-17 02:07:09 +02:00
Robin Gareus
acfa04d700
Update Ctrl-surface MIDI port list when ports change
...
This is a better variant of bbb6851468 , directly using
the GUI context without indirection.
2021-02-04 06:19:37 +01:00
Robin Gareus
bbb6851468
Subscribe to pretty-port name changes (surfaces)
2021-01-18 03:18:20 +01:00
Robin Gareus
365f6d6337
Update plugins/addons GPL boilerplate and (C) from git log
2019-08-03 15:53:18 +02:00
Paul Davis
6e419a961e
use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code
2018-09-02 13:23:57 -04:00
Robin Gareus
9f30d14906
P2: Fix check if ports exist
2018-08-30 22:28:31 +02:00
Paul Davis
b9c6ffac21
fix header order and space alignment
2017-09-24 12:57:27 -04:00
Paul Davis
7db12f6b12
convert codebase to use Temporal for various time types
2017-09-24 12:03:54 -04:00
Paul Davis
30b087ab3d
globally change all use of "frame" to refer to audio into "sample".
...
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis
483ad807ce
fix crashing thinko in push2 code
2017-09-08 18:36:26 -04:00
Robin Gareus
2d60a69c2d
Consolidate ctrl surface code
2017-08-05 01:28:11 +02:00
Robin Gareus
b5e0b5b09f
PortManager::unregister_port() must be called with process lock
...
This fixes "Failed to register <surface> port" when re-loading a session.
2017-07-28 20:15:15 +02:00
Robin Gareus
fde0e293a3
Remove unused "mark" parameter from stop_touch() API
2017-07-24 01:59:18 +02:00
Robin Gareus
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
Paul Davis
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
Tim Mayberry
bd3965e278
Use XMLNode::get/set_property in Push2 surface
...
Fix push2 property names to use hyphen word separator.
2017-04-19 09:36:54 +10:00
Paul Davis
8d30580450
attempt to fix windows failed build by including pthread.h to get DEBUG_THREAD_SELF correctly defined
2016-09-30 12:52:07 -04:00
Paul Davis
7701207123
push2:small logic fix for destructor, mostly to ensure that the track_mix layout is destroyed
...
Otherwise it is still connected to the ControlProtocol::StripableSelectionChanged signal, even though the
event loop specified in the connection has been destroyed.
2016-09-30 11:07:05 -05:00
Paul Davis
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
Paul Davis
1aab360b7d
remove unnecessary method
2016-09-28 17:23:52 -04:00