13
0
Commit Graph

1842 Commits

Author SHA1 Message Date
b6b353d452 Handle generic-midi bindings per session.
This allows to special-cases session-specific control-surface state.
e.g. midi-learn.

Only restore midi-learned, session-specific, bindings when loading a
session with generic-midi enabled.

Also dis/re-enable generic-midi resets midi-learned, but no other
session-independent settings.

This also handles the edge case:
 1) load global config, generic-midi = ON, w/ bindings.
    state is remembered as cpi->state
 2) load session-condig, generic-midi = OFF, cpi->state is retained
 3) user enables the surface, cpi->state from (1) is applied.
 -> invalid bindings applied -> fail
2018-10-04 02:30:21 +02:00
b519434744 Adapt our remaining MSVC projects for 'boost::atomic' (in case it later gets extended to the other libs)
Stage 2 of 3 (more to follow)
2018-09-30 09:06:25 +01:00
d76589d90f FP8/16: include makeup gain control 2018-09-28 16:19:40 +02:00
Albert Graef
65693a72a2 MCP: Fix up the feedback for the view selection buttons. 2018-09-27 11:31:13 -04:00
Albert Graef
38bccabeca MCP: Allow the current bank to move right one channel even if this results in a partial bank.
Rationale: This change is trivial, but Ardour's behavior of refusing to move right one channel unless a full bank remains has been there for a long time, and there are probably good reasons for it. This design was likely conceived when all MCP-compatible devices had banks of 8 faders anyway. However, with the advent of affordable single-strip devices like the X-Touch ONE it becomes a real issue.

Single-strip devices can only access the first channel in the current bank, so relaxing this restriction is the easiest way to enable such devices to access all strips, while still maintaining the usual bank size of 8. Note that maintaining a bank size of 8 is beneficial even with single-strip devices for several reasons:

- It allows use of the bank switch buttons to flip through a large number of strips more quickly.

- It maintains compatibility with existing device descriptions. E.g., the X-Touch ONE can be used with the existing X-Touch device description without any ado.

- Most importantly, it maintains compatibility with other MCP-compatible controllers which do have 8 strips and may be connected to Ardour at the same time. E.g., one might want to use an X-Touch Mini, or even a full-size X-Touch along with the X-Touch ONE in some use cases. Changing the bank size to 1 affects all connected MCP devices, so you'd rather keep the bank size to 8 in such scenarios. (Ardour should preferably have separate bank size settings for each connected MCP device, but that isn't possible right now since only one MCP device description can be active at the same time.)
2018-09-27 11:31:13 -04:00
Albert Graef
936f6814ac MCP: Fix up the feedback for the bank left/right buttons. 2018-09-27 11:31:13 -04:00
Jan Lentfer
e52c8e376a LCXL: fix off by one cause by fader8master 2018-09-22 15:12:26 +02:00
Jan Lentfer
7d6c9c3085 LCXL: Fix a crash on exit 2018-09-22 15:12:26 +02:00
357361c89d Fix --no-nls (4/5), i18n include order in libs/*
"i18n.h" needs to be included last (after any includes that may indirectly
pull in getext or libintl etc)
2018-09-21 19:05:39 +02:00
7390b88c2b OSC: Allow personal monitor to change output connection 2018-09-18 15:39:14 -07:00
a96aa4e1fd OSC: Personal monitoring can add a new aux 2018-09-10 09:58:15 -07:00
79f01bc889 Initial changes needed for building Mixbus (with MSVC) as version 5
(Mixbus itself will probably need extra changes)
2018-09-10 07:14:59 +01:00
2172337306 Add missing cast (NoteButton to TrackButton) 2018-09-06 23:03:55 +02:00
e1c58aad60 Fix an invalid conversion from 'int' to non-scalar. 2018-09-06 19:28:45 +02:00
Jan Lentfer
eff7a51de1 LCXL: Refactor code to use boost::shared_ptr 2018-09-04 18:55:49 +02:00
ed678aa2f9 Fix shared_ptr initialization
error: no matching function for call to
 'boost::shared_ptr<ArdourSurface::Push2::Button>::shared_ptr(int)'
2018-09-03 13:38:37 +02:00
6e419a961e use boost::shared_ptr<> to manage Button/Pad lifetimes in Push2 code 2018-09-02 13:23:57 -04:00
Térence Clastres
2a78f0a852 LCXL: Fix check if ports exist 2018-08-30 22:39:24 +02:00
9f30d14906 P2: Fix check if ports exist 2018-08-30 22:28:31 +02:00
Jan Lentfer
c3d0c80f68 LCXL: Fix two crashes
* fix a crash when accessing VCAs
    * fix a crash when being at the end
      of available stripables
    * unify for-loop constructs
2018-08-29 23:40:26 +02:00
Jan Lentfer
fdbce2e8c8 LCXL: add visual feedback for sec button functions
also add some little fixes in regard
    to fixing master fader on controller
    fader no 8
2018-08-25 22:51:31 +02:00
3136b20847 Cleanup various design patterns.
* do not use implicit bool-to-int-cast
* avoid C++11 member initialization in header
* always use set and access methods, remove public variable
2018-08-24 16:55:00 +02:00
510a0314cf move select-all-tracks,deselect-all,invert-selection to be global actions (and bindings) 2018-08-24 10:08:08 -04:00
Térence Clastres
6bd81ee3c7 Revert "LCXL: Fast skip to first/last stripable with left/right long press"
This reverts commit 27b05f4d8d.
2018-08-22 22:40:57 +02:00
Térence Clastres
65cadf2cb6 LCXL: Make knobs' leds' color constant when controlling master bus 2018-08-22 22:33:00 +02:00
Térence Clastres
3f77c1245c LCXL: track select: change from 1 strip at a time to whole bank 2018-08-22 22:33:00 +02:00
Jan Lentfer
266c5fbc16 LCXL: Mixbus secondary function for Ctrl buttons
In Mixbus holding Device and pressing
    one (or many) of the Track Control buttons
    will toggle the Master Assignment for the
    corresponding track
2018-08-22 19:56:10 +02:00
Jan Lentfer
fa7c8f6013 LCXL: Add some Mixbus functionality
in the mixer mode secondary functions
    (Device/Hold) of knobs per track
    will map as follows:

    Send A - trim (same as for Ardour)
    Send B - HPF Freq
    PAN    - Compressor threshold
2018-08-22 19:56:10 +02:00
Jan Lentfer
d17b6c5eea LCXL: save assignment of 8th fader in config 2018-08-22 19:52:09 +02:00
Jan Lentfer
b80e079353 LCXL: fix some more typos 2018-08-22 19:50:51 +02:00
Térence Clastres
27b05f4d8d LCXL: Fast skip to first/last stripable with left/right long press 2018-08-19 01:37:35 +02:00
Térence Clastres
3da024b4b7 LCXL: fix crash when disabling the surface while having the GUI open 2018-08-19 00:27:12 +02:00
Jan Lentfer
74ad41f8d9 LCXL: Add configuration option for handling master
In the Controller's settings you can now
    choose between two operation modes:
    1)  8 track mode
    2)  7 track plus master mode

    In case 2) fader 8 is fixed on the master
2018-08-18 23:06:32 +02:00
Térence Clastres
51b5c01b8b Add knob leds and refine colors 2018-08-18 20:49:17 +02:00
Jan Lentfer
c2b4f19612 LCXL: fix typos in function names 2018-08-18 18:12:18 +02:00
Jan Lentfer
5e67630b23 LCXL: add isolate solo as secondary function
Holding the Device button and press one
    of the Track Focus button will toggle
    solo isolation on the correspongind track
2018-08-18 18:12:18 +02:00
Jan Lentfer
4789147482 LCXL: split track focus button and led code 2018-08-18 18:12:18 +02:00
Térence Clastres
4122ff891c Code styling: remove whitespaces between parenthesis 2018-08-15 18:48:32 -04:00
Térence Clastres
7c6c8ac270 Attempt to make some function's names more explicit 2018-08-15 18:48:32 -04:00
Térence Clastres
928a6ef4be Fix track select right led wrong behaviour 2018-08-15 18:48:32 -04:00
Térence Clastres
cb0ae63fe2 Fix track buttons not working when selecting the last stripable 2018-08-15 18:48:32 -04:00
f88b557ce7 Remove some unused includes 2018-08-16 00:23:05 +02:00
Jan Lentfer
6434bf9dd3 LCXL: Reorganize knobs functions
Make the knobs work as printed on the controller

    Holding the Device button will enable extra functionality:
    Send A -> Trim Control
    Pan -> Stereo Width
2018-08-13 22:10:47 +02:00
Jan Lentfer
d3e7fa0ebf LCXL: implement mute, solo and record arm toggles
Holding the Device button and pressing one
    of mute, solo and record arm will toggle
    selected tracks (use Track Focus buttons)
    accordingly.
2018-08-13 14:53:43 -04:00
Térence Clastres
dab2513d9f Add pick-up mode and use it for knobs and faders
The pick up mode ignores new controller values until they match with the current setting of the stripable's ac
2018-08-13 13:57:06 -04:00
Térence Clastres
0d01a2abe9 Add Launch Control XL icon 2018-08-09 22:42:44 +02:00
Térence Clastres
740e075803 Turn off button led if it doesn't control a stripable 2018-08-09 22:13:14 +02:00
Térence Clastres
5276a9941b Call switch_bank() and use button_track_mode() within it to init required LEDs 2018-08-09 21:38:56 +02:00
Térence Clastres
a9958840b0 Add reset method and use it during start-up/shutdown 2018-08-09 21:05:55 +02:00
Térence Clastres
2c460135c5 Add missing set_color(Off) in else statement 2018-08-09 21:05:55 +02:00