13
0
Commit Graph

1836 Commits

Author SHA1 Message Date
5a23719da3 FP8/16: Ignore "black" a strip color, always light select-button 2017-12-21 02:30:01 +01:00
1deb6525b8 FP8/16 fix meter + no-pan display mode 2017-12-21 02:30:01 +01:00
c0d333ba9c FP8/16 subscribe to panner changes (add/remove channel) 2017-12-21 02:30:01 +01:00
0d72f37318 OSC: Add /surface/list option to setting GUI 2017-12-20 07:48:35 -08:00
e921088ee8 Fix fp16 encoder (misleading doc on fp8) 2017-12-19 17:56:57 +01:00
3cb952d7fb Revert "Prototype to allow embedding sysex in midi-map"
This reverts commit 561c8eea0c.
It is rare that a device needs sysex-initialization every time it is
connected, besides a single simple "Sysex" entry without options
is not very flexible.
2017-12-19 17:45:03 +01:00
f9d7a3720d Fix faderport-16 touch on/off (fixes faders 9..16) 2017-12-19 03:50:07 +01:00
22939488e7 OSC: Move /surface/list output to PBD::info 2017-12-16 12:42:32 -08:00
847b71e12d OSC: make custom strip lists work on linked surfaces too 2017-12-16 08:24:41 -08:00
886244feea OSC: Add Sorted or not to custom strip list
fix bug where processor_changed sometimes gets null address
2017-12-15 09:43:48 -08:00
559344d99d OSC: in custom strip list check all strips exist 2017-12-15 09:43:48 -08:00
d6eea08021 OSC: initialize parameter correctly 2017-12-15 09:43:48 -08:00
d34ae43931 Fix FP8/16 port-names 2017-12-13 23:44:39 +01:00
26a59261fe Fix FP16 fader-touch release for faders 9..16 2017-12-13 23:11:37 +01:00
ae0dd7c209 Fix FP16 select button 10..16 2017-12-13 21:59:22 +01:00
bac627d0be Add FP16 control-surface 2017-12-12 14:10:07 +01:00
7671a0f675 Namespace FP8, FP16 to avoid symbol conflicts 2017-12-12 14:09:40 +01:00
e3340cdf01 Prepare for FaderPort16 (ctrl-protocol) 2017-12-12 14:08:45 +01:00
b117910c29 Fix a -Wreorder 2017-12-12 00:24:00 +01:00
16a9878f22 more NO-OP, comment and whitespace 2017-12-12 00:19:36 +01:00
23a4030159 US-2400: ignore joystick moves until the user clicks the joystick NULL button. 2017-12-11 10:51:33 -06:00
561c8eea0c Prototype to allow embedding sysex in midi-map 2017-12-06 16:33:58 +01:00
2c4a8d2d25 OSC: Add custom bank creation and use 2017-12-02 08:18:53 -08:00
06ea56a2ce OSC: add /select/plugin/activate cause some add deactivated
And clean up plugin code as well
2017-11-28 12:33:20 -08:00
da467cf39b OSC: Only send new select send values
no clear first, no double send
2017-11-23 12:04:54 -08:00
155156cfb2 OSC personal monitor fix off by one bug. 2017-11-23 12:04:54 -08:00
18306f3d37 OSC: only reset cue sends that do not have a new send 2017-11-13 17:19:09 -08:00
a6205cef40 OSC: /cue/previous_aux should always refresh 2017-11-13 17:19:09 -08:00
2d85eceb0e OSC: cue buttons can accept float or int 2017-11-13 17:19:09 -08:00
69603bb76e OSC link: make whole link set follow strip_types
strip should not run periodic when blank - crash fix
2017-11-10 08:38:08 -08:00
634c620b07 OSC: set_surface sets linkset, linkid
/set_surface/* deals with linked surfaces
2017-11-08 09:36:32 -08:00
3a2c481b96 OSC: catch bad commands on /cue/* created crash on exit 2017-11-07 20:18:59 -08:00
ba383b4726 OSC link: Clean up link not ready and surface refresh 2017-11-07 09:31:14 -08:00
bb8d65c528 OSC link: make selection work correctly 2017-11-06 13:38:18 -08:00
3eee4fe8a5 OSC link: first working commit for linking two surfaces as one 2017-11-03 14:04:52 -07:00
eeb148bb61 NO-OP: whitespace cleanup 2017-10-26 15:46:00 -04:00
155f48fc7c move mixbus-only variable declaration 2017-10-26 15:45:16 -04:00
3161ccee43 remove unused variable 2017-10-26 15:44:32 -04:00
33c9772fda OSC: fix mixed types keeps from building on server 2017-10-25 23:00:41 -07:00
27c8c82076 OSC: Provide click level control 2017-10-25 21:56:29 -07:00
a2965f585a OSC: add feedback for punch in/out, click and click level 2017-10-25 21:56:29 -07:00
aba52ad8a2 OSC: add feedback for toggle_roll 2017-10-25 21:56:29 -07:00
8f13a0a13b OSC: fix monitor input/disk buttons so both can be on 2017-10-25 08:34:02 -07:00
ea1f0ba825 OSC: fix /strip/receives to have the original ssid like /strip/sends 2017-10-24 20:50:22 -07:00
e28a080651 OSC: fix refresh surface 2017-10-24 20:34:40 -07:00
da4454751d OSC: remove duplicate code. 2017-10-24 17:28:35 -07:00
a546003457 OSC: cleaned up select 2017-10-24 13:30:55 -07:00
7aacd5d71a OSC: fix add and remove tracks to update without bank change. 2017-10-24 12:44:09 -07:00
de9ae19d8c OSC: fix various crash points 2017-10-22 21:25:30 -07:00
2a310e5f79 US2400: Mark controls dirty and send them from the periodic update thread. 2017-10-19 11:54:36 -05:00
ee09ae1c6b US2400: allow selecting the master bus. LED does not respond, though :( 2017-10-19 11:53:55 -05:00
48c520a4ef US2400: explicitly toggle switch state in some cases where everything should reset. 2017-10-19 11:53:55 -05:00
23c2b751aa US2400: map knobs for mixbus strips, when selected. 2017-10-19 11:53:55 -05:00
618020424e OSC: Cue observer simplified. 2017-10-19 08:48:25 -07:00
dabe7474b3 OSC: remove unused function. 2017-10-19 08:48:25 -07:00
f87e996013 FP8: unhardcode IDs and strip-count 2017-10-19 16:57:26 +02:00
4c1feac16e OSC: Move observers to surface based for less traffic. 2017-10-17 14:57:47 -07:00
f0f822feff OSC: fix crash for wrong number of parameters in set_surface 2017-10-12 13:18:21 -07:00
514c43278b OSC clean up route observer 2017-10-07 20:23:48 -07:00
2107d09454 US2400: add us2400 files to repository. 2017-10-05 10:55:45 -05:00
0e12c967ea US2400: add us2400 to surfaces. 2017-10-05 10:03:09 -05:00
b9c6ffac21 fix header order and space alignment 2017-09-24 12:57:27 -04:00
7db12f6b12 convert codebase to use Temporal for various time types 2017-09-24 12:03:54 -04:00
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
de7963941d Don't build ni-maschine support by default
While the pads work, overall integration is still not present, mainly
because the device does not lend itself for editing & mixing in a
DAW environment.
2017-09-18 11:40:53 -04:00
a71171786f Maschine2 UI: basic widgets 2017-09-18 11:40:53 -04:00
0a6d1ab06e Skeleton for NI Maschine2 Surface 2017-09-18 11:40:53 -04:00
03e99e9866 fix longstanding compiler warning 2017-09-18 11:40:53 -04:00
c4a5ad33a5 Initial support of Latch for some ctrl-surfaces 2017-09-18 11:40:52 -04:00
766113a024 FP8: call directly into session. 2017-09-18 17:24:57 +02:00
057fd9259e FP8: add mode to reset gain to unity
Re-selecting the most recently selected (blinkig select button) strip
returns gain to unity (0dB)
2017-09-09 21:46:26 +02:00
483ad807ce fix crashing thinko in push2 code 2017-09-08 18:36:26 -04:00
e07bb07899 OSC: Change jog mode should not stop transport
unless started by scrub or shuttle.
2017-08-27 14:15:34 -07:00
dbab25f537 OSC: same fix for /select/* 2017-08-25 10:22:42 -07:00
d7fcdbfe1d OSC: account for user sending the wrong number of paramters gracefully 2017-08-25 09:45:06 -07:00
ca2d254fdb OSC cue button up events should not be errors, fixed 2017-08-21 20:08:19 -07:00
ab621b550d OSC: /cue/enable feedback not changing fixed 2017-08-21 12:10:27 -07:00
6b810b67d9 OSC: aux bus detection fixed for mixbus 2017-08-21 08:40:22 -07:00
Paul Hedderly
18060e597e prh: Small fix to /cue/send/enable feedback string 2017-08-21 16:23:23 +02:00
6ad4379b4d OSC: fix issue #7444 send fader position/gain even when 0. 2017-08-10 08:50:46 -07:00
fff9a3cc7f Allow FaderPort to select VCAs 2017-08-06 22:18:01 +02:00
2d60a69c2d Consolidate ctrl surface code 2017-08-05 01:28:11 +02:00
81f12f602b OSC: Fix to make sure buses created with Ardour 4.7 sessions show up 2017-08-03 09:09:02 -07:00
d1558dcab5 OSC: Add command to select Master 2017-08-02 10:43:13 -07:00
ab02284fc2 OSC: expand plugin_descriptor to split into smaller OSC messages (issue #0007433) 2017-08-01 07:23:27 -07:00
e4925a90cb OSC: add param to plugin_list response which indicates plugin enable state (OnkelDead) 2017-08-01 07:04:59 -07:00
f51fab35b1 OSC: Make stripname refresh in automation play mode as well. 2017-07-31 07:55:09 -07:00
e94771a58f OSC: fix VCAs try to connect to controls it does not have. 2017-07-30 18:35:38 -07:00
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
2fa34614d0 Remove unnecessary tests for touch-state 2017-07-25 20:16:04 +02:00
b694ee9e53 OSC: only use gain change signals if value changes 2017-07-24 10:21:31 -07:00
3ab4a1d147 OSC: add use groups to GUI 2017-07-24 10:21:31 -07:00
f3e0fcbb7e OSC: port mode by default should be manual 2017-07-24 10:21:31 -07:00
f1632fcfd2 OSC: make sure initialization is complete before we allow periodic to run 2017-07-23 20:08:02 -07:00
07e869fda8 OSC: simplify route observer 2017-07-23 20:08:02 -07:00
fde0e293a3 Remove unused "mark" parameter from stop_touch() API 2017-07-24 01:59:18 +02:00
1508838bde OSC: add /use_group 1/0 command 2017-07-22 12:12:41 -07:00
8af27a7a2e OSC make all group dispositions the same 2017-07-21 08:22:02 -07:00
b1c73b11fc FP8: use separate bank offsets per MixMode 2017-07-19 03:04:58 +02:00
601604972c FP8: Fix Mixbus solo-state and indicate implicit solo (blink) 2017-07-19 01:52:14 +02:00
4922d9f941 FP8: save/restore "two line text" option 2017-07-17 22:59:12 +02: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
b732aa2ca1 fix void return with value (amend d5d297c4) 2017-07-06 18:01:49 +02:00
d5d297c407 Fix FP8 shutdown sequence (amend d421e56fc) 2017-07-06 16:55:02 +02:00
2a809dcf70 OSC: add delta controls to master, monitor and select as well 2017-07-05 08:08:57 -07:00
b11c64ea5b OSC: GUI tweaking 2017-07-03 13:22:56 -07:00
b87bec3200 FP8: "Link" mode works with AutomationControl only. 2017-07-03 19:56:16 +02:00
ebc8e352bf FP8: toggle editor/mixer (now that "link" button is used)
..and some TODO notes.
2017-07-03 01:42:36 +02:00
b942c76df9 FP8: properly control enum+integer parameters. 2017-07-02 21:05:42 +02:00
0310f89971 FP8: Implement "Control-Link" 2017-07-02 18:19:13 +02:00
ec76d7ce03 OSC: GUI indicate invalid port and set to old port on defocus if not valid 2017-07-02 08:28:34 -07:00
34c0e3f1c8 FP8: plugin GUI display options 2017-07-02 02:06:48 +02:00
d1d6e696aa FP8: fix 2-line text 2017-07-02 01:57:21 +02:00
c42db10044 OSC: issue 7176 patch applied. shows plugin descriptors. 2017-07-01 13:13:04 -07:00
2219021389 OSC: add feedback for solo isolate and solo safe to strips (issue 7161) 2017-07-01 11:49:08 -07:00
8bc25fb971 OSC: add strip type flag for master and monitor to strip list 2017-07-01 11:14:55 -07:00
58beb02024 FP8: Use Mixer-Order 2017-07-01 17:11:55 +02:00
a967a942d2 OSC: include all of select in feedback[13] 2017-06-30 20:47:42 -07:00
296c9ae03e OSC: try to prevent race when clearing devices 2017-06-30 20:13:18 -07:00
41bc5bc116 OSC: test param type in a way that works when optimized too. 2017-06-30 19:05:30 -07:00
d421e56fc0 FP8: Clear input port on close. Fixes crash when switching snapshots
The midi_input_handler for the AsyncMIDIPort is connected to the
main event-loop. Events may still be delivered after the surface was
destroyed.

That by itself is not harmful, unless a given message produces a reply:
The _output_port is already gone, FaderPort8::tx_midi crashes.
2017-07-01 02:55:47 +02:00
Johannes Mueller
f7452c2a3a Addressing #7371: don't trigger session->undo() from non-GUI-thread
When triggering Session::undo() or Session::redo() from a
non-GUI-thread (e.g. from a surface protocol) Ardour crashes if setting a
CairoWidget dirty due to a ENSURE_GUI_THREAD assertion. (see #7371)

By triggering undo by BasicUI::access_action() rather than by Session::undo()
we ensure that the GUI thread will finally call Session::undo().

So more like a workaround ... but better than crashing :)
2017-07-01 01:04:44 +02:00
389d2cab36 FP8: Scribble-strip display preferences 2017-06-30 19:55:03 +02:00
cd728fdd73 FP8: Allow to select Plugin Presets 2017-06-30 19:13:55 +02:00
1fe1d17ef8 FP8: don't allow to toggle Channelstrip bypass/enable 2017-06-30 02:31:36 +02:00
773c31afc0 FaderPort8 updates
* use 2 lines for Plugin Parameter Names
* Expose Plugin Bypass/Enable per plugin
 - Shift + Select in Plugin Select Mode
 - Bypass Button in Plugin Parameter Edit Mode
2017-06-30 01:59:12 +02:00
86ee4de7a9 OSC: simplify GUI and make less error-prone 2017-06-24 13:13:53 -07:00
33bfe681c9 OSC: Allow /bank_up to accept -1 as well as 1 so encoder can work. 2017-06-23 18:08:04 -07:00
01e75da96b OSC: make sed_fader work with banking too. 2017-06-23 17:34:22 -07:00
0b21143234 OSC: Add master_send_enable for MB 2017-06-23 17:09:54 -07:00
1fad162256 OSC: redo math for redux control with fewer calls. 2017-06-23 17:09:54 -07:00
2ea14c25ec OSC: Messages too fast at bank_change/refresh slowed down. 2017-06-23 17:09:54 -07:00
2a08746437 OSC: Fix math error in send fader feedback 2017-06-23 14:26:29 -07:00
1138b62fb8 amend 5e5f7a55; re-add wrongly removed variable 2017-06-23 18:15:50 +02:00
66a3dd7ded MCU: Remove use of AutomationType as ID, part two.
This may need some small tweaks for MB channelstrip to set
print-format (like LV2 plugins would) for cases where the default
value_as_string() differs.
2017-06-23 17:39:20 +02:00
5e5f7a55ee MCU: Remove use of AutomationType as ID, part one. 2017-06-23 17:39:20 +02:00
5aad9d9a33 OSC: only show visible plugins (not MB channel strip PI) 2017-06-22 22:40:06 -07:00
7af5de2074 OSC: Add increment fader. 2017-06-22 12:54:03 -07:00
57e7531b1f OSC: allow mixbuses to show 2017-06-22 10:20:48 -07:00
3baf360733 OSC: use internal_to_interface or reverse 2017-06-22 09:21:51 -07:00
3b718c60de OSC: Accept mixed parameter types for touch 2017-06-21 15:18:56 -07:00
55df5b39bc Prepare removal of redundant get_user/set_user API. 2017-06-21 18:13:41 +02:00
cb48bb0e1c remove min/max unbound -- LADSPA special case.
This explicit case should never have existed in the first place.

Plugins can always implicitly exceed the range and are expected to
cope with out-of-range values (e.g. meters when fed with a peaking signal
may return an out-of-bounds value)
2017-06-21 18:12:20 +02:00
567c0a8f53 Switch to PBD control-math and prefer Controllable API
Note: Control-surfaces should always use interface_to_internal()
and internal_to_interface().
2017-06-21 18:12:04 +02:00
fd3bd35203 OSC: value not initialized soon enough 2017-06-20 13:11:59 -07:00
10db824461 Use Stripable::Sorter in libs 2017-06-17 04:36:28 +02:00
0331a9a233 OSC: plugin feedback mathfix - 0 param (meter) checked for. 2017-06-16 11:33:02 -07:00
7c84deb2c4 OSC: Add send/plugin page values to GUI 2017-06-14 10:28:45 -07:00
d76e6d84c7 OSC: save and restore send/plugin page size. 2017-06-14 08:18:43 -07:00
9c0f6ea948 OSC: Allow set_surface to set send and plugin page sizes. 2017-06-13 16:56:10 -07:00
23554fd185 FP8: use proper API to detect automation-playback
The custom code didn't take touch + touching into account when
another surface was touching automation.
2017-06-13 18:09:53 +02:00
9441e8d484 OSC: select channel plugin support with paging. 2017-06-12 12:31:04 -07:00
c69049a853 Fix a compiler warning (optimized builds) 2017-06-12 17:20:41 +02:00
8b8f47430a OSC: add option to send /reply instead of #reply (OSC1.0 compat) 2017-06-10 09:43:46 -07:00
c4a4857b87 OSC: add optional paging to sends in select. 2017-06-06 09:08:35 -07:00
d35dfa9c93 OSC: Some surfaces may use float for ssid. Accept this too. 2017-05-31 08:39:55 -07:00
b343108756 OSC: check controllable exists before using 2017-05-31 08:39:55 -07:00
640d9d355f Use correct property name in generic MIDI surface
Fixes restoring the feedback interval property, but as the mutator/setter
method doesn't seem to be used this change should have no affect.
2017-05-26 08:48:04 +10:00
2c40b46ca9 OSC: fix return value for successful touch 2017-05-24 13:58:49 -07:00
1e95ccf07d OSC: Added lpf and hpf controls for freq,enable and slope 2017-05-24 07:37:21 -07:00
f493b24e3e OSC add feedback for extra comp and eq controls 2017-05-23 17:16:42 -07:00
2f1ad4d9a2 OSC - make /strip/list accept a parameter like everything else 2017-05-23 15:14:31 -07:00
4d927c6bd4 Use braces in BasicUI::jump_by_bars() 2017-05-23 09:13:27 +10:00
7fe188ec92 Use braces in BasicUI::jump_by_seconds() 2017-05-23 09:13:27 +10:00
df185e575e Use correct variable in BasicUI::jump_by_seconds 2017-05-23 09:13:27 +10:00
b3fb75fead OSC: Further fixes so multiple controls can touch at once. 2017-05-20 10:17:31 -07:00
ab069b1372 OSC: fix c++98 mistake 2017-05-20 09:09:01 -07:00
6926b7eb75 OSC: Catch case of surface sending fader move before touch 2017-05-19 15:48:36 -07:00
84e1a216bc OSC: Add fake timeout based touch 2017-05-18 15:32:12 -07:00
d3738b087e MCP: Fix issue with strip "select" buttons that stayed stuck on.
* Depending on individual strips to watch the selection property is prone to failure.
  * Stripable_selection_changed() is called when a selection operation is completed.
2017-05-17 15:55:43 -05:00
60cc2823f3 MCP: map the well-known EQ knobs more explicitly, not heuristically. 2017-05-17 15:53:14 -05:00
f2aac0bcae OSC: Add /strip/fader/touch 2017-05-15 19:38:41 -07:00
f3f1816899 remove unused variable 2017-05-15 19:38:41 -07:00
7e791981f0 OSC: added automation name feedback 2017-05-15 07:43:59 -07:00
fee4b7b3ea OSC: combine two identical if() statements 2017-05-15 07:43:59 -07:00
b9bbea7174 It might not be obvious why... but 'ARDOUR::ControlProtocol::name()' needs to be a virtual function
Basically, libardour is calling functions from libardour_cp and vice versa. For example, libardour needs 'ARDOUR::ControlProtocol::name()' whereas ardour_cp needs 'ARDOUR::Route::soloed()' and various others. Ordinarily, this would require each library to get built before the other one! :-(

To get around this (in MSVC at least) one of the libraries must be forced to use late binding (e.g. by declaring its functions as 'virtual'). It looks like this is already being done for most of the other functions from 'ARDOUR::ControlProtocol', so let's do it for this function too...
2017-05-15 14:46:34 +01:00
3d26a29e8a Sanitize "well-known" ctrl API 2017-05-14 00:17:11 +02:00
3e2004aa73 OSC: make /*/automation more generic so other controls can be easily added 2017-05-13 14:18:29 -07:00
82e6de3a3f The #end should be #endif 2017-05-13 08:43:33 -07:00
6a28e02799 More tweaks to FP8 layout for 32C 2017-05-13 07:54:08 -05:00
3efe5bde5f Update FP8: new controllables, clarify 32C bell-shape labels 2017-05-13 02:02:54 +02:00
7021d02782 don't actually use a method from libardourcp inside libardour; use a PBD::Signal to avoid linker issues 2017-05-12 17:49:09 +01:00
32c3db5c59 OSC: GUI label change 2017-05-12 07:29:29 -07:00
774ebc42e3 OSC: Create new surface struct for ALL incoming messages 2017-05-12 07:29:29 -07: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
efc2660fec MCP: Mixbus32C: Restore missing filter controls to the Dyn page. 2017-05-12 15:44:01 +02:00
8ba868e933 MCU: F-keys are reserved only for user-defined actions; no need for explicit handling. 2017-05-12 15:43:55 +02:00
e6e2b6800e MCP: Momentarily light buttons when they are used to trigger a defined action.
*This is mainly for F-keys
*If a button is not assigned an action, it will not light,
   hopefully indicating to the user that it is unmapped.
2017-05-12 15:43:52 +02:00
6f298b1a83 Mackie control panel: display the profile name when any button action is changed. 2017-05-12 15:43:44 +02:00
471ed5af4e OSC: also init unsaved params on session load. 2017-05-11 13:58:25 -07:00
a51e82a29e OSC: Initialize all surface struct values on creation 2017-05-11 10:52:38 -07:00
d42da9046e OSC: Actually set feedback on first /strip/command 2017-05-11 08:21:40 -07:00
0124c2e99d OSC: fix manual port setting to take effect on first incoming message 2017-05-10 14:14:27 -07:00
a76ee7a4d8 OSC: bind should be boost::bind 2017-05-10 09:56:45 -07:00
c8f805ef7c OSC: Automation feedback should match command 2017-05-10 09:42:48 -07:00
6c97d70127 OSC: change function name to be better description 2017-05-10 09:21:19 -07:00
50e362ffd3 OSC: simplify code. 2017-05-10 08:02:03 -07:00
86149840a1 resolve ambiguity 2017-05-10 05:00:03 +02:00
e8387e101f Enums are not Classes in C++98 2017-05-10 04:29:41 +02:00
82fed14f41 OSC: Fix select fader automation play feedback as well fixes issue #7160 2017-05-09 14:10:49 -07:00