GrandOrgue / grandorgue

GrandOrgue software
Other
150 stars 39 forks source link

Feature Request: Enable CoupleToSubsequent for Coupler Manuals #1657

Closed ahall41 closed 4 months ago

ahall41 commented 9 months ago

I recently tried out Coupler Manuals. The idea is that you can turn your 2 manual organ into a virtual 3 or more manual organ? One problem I noticed is that the Couplers for the manual don't appear to work - presumably because the relevant CoupleToSubsequent... option isn't set for the coupler?

oleg68 commented 9 months ago

@ahall41

Couplers for the manual don't appear to work

Could you explain what did you do and what doesn't work exactly?

ahall41 commented 9 months ago

Thank you for looking into this. This can be demonstrated on the demo organ

I'm surprised this feature has been missing for so long, as (I think I'm right) the whole point of the coupling manuals is to play (say) a 3 manual organ on a 2 manual console. Fine, so long as you don't use any couplers.

ahall41 commented 8 months ago

Having thought about it, I'm not sure how useful this might be, as you can use the built in couplers rather than the organ couplers when the need arises ...

oleg68 commented 8 months ago

Thank you for looking into this. This can be demonstrated on the demo organ

  • Select II/I coupler

Do you mean to press II/I button on the organ panel?

  • Create unison coupler for coupler manual 1 to first manual
  1. How to do this?
  2. What is the diference between manual 1 and the first manual?
ahall41 commented 8 months ago
  1. Start GrandOrgue and open the Demo organ
  2. On the main panel ("GrandOrgue Demo V1") select II/I coupler
  3. Open Panel -> Coupler -> Coupler Coupling Manual 2
  4. Select 8 under First Manual
  5. Open Panel -> Coupler Manuals and Volume
  6. Select a key on Coupling Manual 2
  7. The key is also selected on the main panel (manual I), but is not subsequently coupled to manual II8

I hope this is clear ... Coupler Manuals seem to be numbered 1, 2 ... whereas the "real" manuals are numbered Pedal, I, II ...

oleg68 commented 4 months ago

@larspalo @rousseldenis @ahall41 how may we fix this issue from the GUI point of view?

Now the coupler panel looks: CouplerPanel

One of possible solution is to add more buttons to the panel with CoupleToSubsequent. For example, each row will contain 16, 16+, 8, 8+, 4, 4+, BAS, BAS+, MEL, MEL+. But the panel size will be increased.

Do you agree this approach? Or we need some another way?

larspalo commented 4 months ago

Do you agree this approach? Or we need some another way?

Unless we take the long route and expand upon for instance the MIDI and keyboard connection dialog (right-click) to allow user modification/setting of different attributes for any button (or object really, changing also for instance font face, font size, colour, built-in bitmap etc) where also for a coupler the "CoupleToSubsequent" option could be added, I don't see any other way than to add some kind of selecting switch (button, checkbox or whatever) for that functionality (for each button). However, adding more buttons like that will clutter the UI in a very disturbing and non-aesthetic way, I think! Especially having both a coupler type and same type with an added + is a highly questionable approach.

All flexible user customizations of objects/elements could of course be added to a settings file and saved/loaded/exported. I'm in favour of such a development, but if extra buttons instead are to be added horizontally or vertically on the panels, I definitely think they should be labelled better than with just a +, for instance with the word "Subsequent", "Through" or something similar ("durchkoppeln" in German, "couple through" is similar to what we call it in Swedish).

ahall41 commented 4 months ago

For a Virtual Keyboard, you would only need a Unison coupler, with all subsequent options enabled. You also (ideally) need the to have a default coupling (so its still active when you hit GC). I have been experimenting by creating my own 'Virtual Keyboards' panel, which gets round some of these limitations. Couple Through is definitely better terminology than Subsequent.

oleg68 commented 4 months ago

@larspalo another possible approach: to add one row of "Through" buttons above the pedal row. Pressing "Through" enables CoupleToSubsequent for all buttons in the same column, ex. all 16, all 8 and so on.

ahall41 commented 4 months ago

Here's my 'two pennyworth'. The fundamental issue is that the coupler manuals don't act like a true virtual keyboard (which is, after all, the main reason you have them?).

I don't think that this needs to be over complicated. A + is OK so long as when setting it shows something helpful (rather than "Midi Settings for Coupler 8+") A default coupling could be configured by implementing #1658

oleg68 commented 4 months ago

@ahall41 There is same panel for both real manuals and virtual coupling manuals. So Iw we add 8+ then it will be available for all manuals.

@larspalo do you agree with adding only 8+ in each row?

larspalo commented 4 months ago

So Iw we add 8+ then it will be available for all manuals.

Which I think is a good thing.

adding only 8+ in each row?

What about implementing it as a switch that has a "Couple through" (CoupleToSubsequent) effect on all couplers for that division when activated (acting on all couplers in that row)? It's sort of what you hinted at in https://github.com/GrandOrgue/grandorgue/issues/1657#issuecomment-1942108302 but instead for the rows and not columns.

ahall41 commented 4 months ago

I'm not sure how useful that might be ... a Virtual Keyboard would only need the unison coupler?

larspalo commented 4 months ago

I'm not sure how useful that might be

@ahall41 We're not only thinking in terms of "Virtual Keyboard" with the coupler manuals. The user selection of having all the GO provided couplers for every manual couple through if so desired is another part of it. Also, all the manuals are treated the same in the coupler panels so it's a better implementation anyway.

oleg68 commented 4 months ago

Is it all right?

CouplerPanelThrough

larspalo commented 4 months ago

@oleg68 Yes I think so, except that perhaps "Couple Through" is a better label name.

ahall41 commented 4 months ago

"Couple Through" is a better label name

Yes, it is. Otherwise looks good to me, thank you.