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
Paul Davis
67e415e14c
make Ben's cool range select hack work with Push 2
2016-09-28 11:28:45 -05:00
Paul Davis
6c4627b1b7
fix for push2 code on Windows (no random())
2016-09-28 10:51:01 -05:00
Paul Davis
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
Paul Davis
3a7cf72752
push2: tweak layout APIs etc.
2016-09-27 14:59:32 -05:00
Paul Davis
303358973f
push2: improve logic of ::set_current_layout() to allow reset of same layout
2016-09-27 14:59:32 -05:00
Paul Davis
0006f28511
push2: don't illuminate a button we do not use
2016-09-27 14:59:32 -05:00
Paul Davis
5e6249b7b1
push2: null handle on failed open
2016-09-27 14:59:32 -05:00
Paul Davis
33015a7173
push2: many improvements to track mix and mix layouts
...
Including meters and clocks
2016-09-27 14:59:32 -05:00
Paul Davis
7a0e2ceec0
first pass (incomplete) at canvas meters (in push2 context)
2016-09-27 14:59:32 -05:00
Paul Davis
879b09d920
stop crashes from out-of-range values
2016-09-27 14:59:32 -05:00
Paul Davis
7594e7644a
vpot above metronome button controls click gain; master gain knob now works correctly
2016-09-27 14:59:32 -05:00
Paul Davis
6d5878a926
leave a comment about port reconnection
2016-09-27 14:59:32 -05:00
Paul Davis
0aaf2d1f34
clear filtered note map when entered drum mode
2016-09-27 14:59:32 -05:00
Paul Davis
ae01ac2384
update pad colors when selected track colors chane
2016-09-27 14:59:32 -05:00
Paul Davis
a9a3b71807
change handling of MIDI sysex incoming to be a little more efficient
2016-09-27 14:59:32 -05:00
Paul Davis
44c0ea2095
fix assignment of palette colors by using white-balance = 126; also use ArdourCanvas color macros
2016-09-27 14:59:32 -05:00
Paul Davis
3aa0676f70
push2: substantial improvements to track mix mode, and a few other details
2016-09-27 14:59:31 -05:00