surge-synthesizer/surge-rack

Extended left to right neighbor connectivity

Opened this issue · 4 comments

in 2.2.2 we have three types of RMB connects

  1. Expander neighbor
  2. "this row" per your selection
  3. MixMaster / AuxMaster

Talking to @ContemporaryInsanity though we didn't meet their original goal of a full-sequence-hookup

So imagine this module set.

Screenshot from 2024-01-14 10-09-17

To connect that the neighbor connector takes you from 10 connection gestures to 5. but it would be great if you go from 5 to 1

so right mouse on classic, choose "This Row / Fully Connect Left to Right" and you get the 10 cables you expect

A few caveats

  1. Stop at the first left to right item which doesn't have an input or neighbor connector
  2. If an item has multiple inputs, choose the first non-connected one
  3. If an item has multiple outputs, choose the first one
  4. A gap in the row is fine. A module is not.

Oh also I added an "XT 2.2.n" milestone to collect some other issues I should have put in 2.2.1/2.2.2 and this is in it.

lemme know what you think of above and if it is what you had in mind. If you meant "kiss-to-connect" we can do that also, just lets add a separate issue for it, mostly because i need to think about where to put that preference since it is cross-plugin.

"kiss-to-connect"

Very much so, to create and patch that row of modules then requires six lots of right click, select & drag and one more right click to patch the outputs of the rightmost module, rapid workflow heaven!

Ok I will open a second issue for that

Before this change creating that wired row was 17 clicks (7 create plus 10 connect) and with 2.2.2 you are down to 12 (7+5)

In this proposal you could do entire wired set in 8 clicks (one for each module, one to connect the row)

But adding an extra module is 2 (make and connect) and kiss to connect would make it 7/1 rather than 8/2

Like I said I just need to figure out how to have that preference span modules.... or maybe have it be surge only and if you want to kiss airwindows oh well.

Ahh there's a really nasty technical problem with kiss-to-connect

onExpanderChanged gets called whenever it changes, including at startup. So if you saved a patch with a pair of adjacent modules with kiss to connect on and loaded it, the naive implementation would connect them.

I am not sure if there is a non-naive implementation but my idea for how to do it just got a bit blown up.

I'll definitely try and get the full-row-connect (so 8 click version) into a 2.2.n but kiss to connect may require a bit more hacking.