13
0

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.)
This commit is contained in:
Albert Graef 2018-09-24 09:31:16 +02:00 committed by Paul Davis
parent 936f6814ac
commit 38bccabeca

View File

@ -218,7 +218,7 @@ void
MackieControlProtocol::next_track()
{
Sorted sorted = get_sorted_stripables();
if (_current_initial_bank + n_strips() < sorted.size()) {
if (_current_initial_bank + 1 < sorted.size()) {
switch_banks (_current_initial_bank + 1);
}
}