Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More Advanced Auto-Hookup Options (was Expanders are Implicit Connections) #829

Closed
vcvrackideas opened this issue Feb 1, 2023 · 30 comments
Labels
Infrastructure New Feature New feature or request

Comments

@vcvrackideas
Copy link

Hi, I've just got an idea I described in title. The nice example of that connection is Lomas Gate Sequencer, although it pass no audio - cv only but works very flawlessly and that expanding very handy while patching. Regarding SurgeXT effects this can be useful to find fx route 4x time faster than with cables.

Cheers!

@ContemporaryInsanity
Copy link

This would be handy.

My suggestion would be, when two Surge modules touch, and the left one has stereo out and the right stereo in, the cables are patched automatically. I think this is possible but not 100% sure?

@baconpaul
Copy link
Contributor

It’s probably possible but isn’t it a bit antisocial? I thought folks used expanders for things like extra knobs or ports not for skipping wiring?

@baconpaul
Copy link
Contributor

(I had had the same idea and rejected it for this reason - it’s really unidiomatic)

@ContemporaryInsanity
Copy link

ContemporaryInsanity commented Feb 2, 2023

It sure would speed up patching, I'd love it. In this case it wouldn't be an 'expander' as such, just a bit of code that checks if a new rightExpander is Surge with stereo in, if so then auto-patch.

It would't be skipping wiring, just programmatically wired.

Could have a global 'Auto-patch' on / off option on the right click menu.

@baconpaul
Copy link
Contributor

Yeah the reason I thought about it is you can share blocks also to avoid compounded latency

lemme think about this for a bit. I want to find the right idiom

@baconpaul baconpaul added this to the Not Currently Scheduled milestone Feb 2, 2023
@baconpaul baconpaul added New Feature New feature or request Infrastructure labels Feb 2, 2023
@ContemporaryInsanity
Copy link

I agree that using expander module functionality to accomplish this without cables is a bad idea for all sorts of reasons.

SURGE XT AUTO-PATCH

How I see this working:

If a module sees a new rightExpander ID it checks to see if it's a Surge module with stereo inputs, if so then the module outputs are programatically patched to the right module inputs. As Surge modules are mostly of uniform width this would also facilitate rapid swapping of modules, just delete existing module, drag new one into place, module to the left of new module sees a new rightExpander ID so auto-patches, new module also sees new rightExpander ID (assuming there is one) so auto-patches, no further clicking & dragging required. This would obviously not work for the rightmost module in a voice when the next module is not a Surge module, but could work with a new Surge utility module that is just a stereo pass through, I consider this a might be nice to have feature for a later version.

This would make the creation of full Surge based voices so much quicker. Select VCO, select filter, select envelope, select delay, select reverb etc etc & done, all automagically patched from left to right with FAR fewer mouse clicks & drags.

Consideration needs to be given to what happens with a module that sees a new rightExpander that already has inputs patched, and what happens with a module that already has outputs patched when it sees a new rightExpander. One option is do nothing, the other, delete the existing cables, then auto-patch. I think I'd prefer the latter.

As a side note, I'm autistic and one of my autistic super powers is sometimes my mind works so fast that once I've patched a voice up manually, by the time I've finished wiring I may've forgotten the idea that inspired the voice module choice in the first place along with much of what I intended to do next, this would help immensely with that.

@baconpaul
Copy link
Contributor

That’s an interesting idea. If you put a filter next to a vco and a vca next to a filter and nothing is connected make the cables (opt in)

heck I could even detect if you have an auxmaster in patch and add a right mouse gesture to patch into an unconnected aux

ha ha that’s way better than hidden implicit cables yeah - love it

Im head down in a different project right now but I won’t forget this idea. Good one

@ContemporaryInsanity
Copy link

auxmaster ???

@baconpaul
Copy link
Contributor

The aux send receive expander from mixmaster

@baconpaul
Copy link
Contributor

Basically imagine if you had a mixmaster with aux in your patch and drag out a surge or airwin and there’s a right mouse button “wire in as aux effect n”

@ContemporaryInsanity
Copy link

Stupid me, auxmaster lives in my template patch - doh! Great idea.

@Andreya-Autumn
Copy link
Collaborator

I like this idea a lot. Only thing I'm skeptical of is letting it delete/replace already patched cables. That could easily become a nuisance, I'm definitely inclined to say that should be opt-outable if so. Otherwise great idea!

@baconpaul
Copy link
Contributor

baconpaul commented Feb 3, 2023

Yeah delete nothing ever opt in for auto and in non auto mode have rmbs

I thought of an RMB “hook up left to right” where you stack 5 modules then rmb thst on 1 and it adds the 10 cables for instance

@ContemporaryInsanity
Copy link

ContemporaryInsanity commented Feb 3, 2023

"I thought of an RMB “hook up left to right” where you stack 5 modules then rmb thst on 1 and it adds the 10 cables for instance"

Interesting, but that's an extra couple of clicks over my solution and kinda breaks the option for rapid module replacement, i.e. you'd have to delete Reverb1, replace it with Reverb2, then (instead of it already being auto-patched, as Reverb2 saw a new rightExp id, as did the module to its left) you'd have to go to the first module in the stack & RMB again?

Edit: kinda missed 'opt in for auto' somehow, apologies...

@baconpaul
Copy link
Contributor

no worries. yeah make it auto-opt-in and then rmb if you don't would be the idea. really neat idea too.

so now all that's left is to see if i can actually code it :)

but i'm off in a separate project for a week or two ... will leave this one sit for a bit while i do that.

@baconpaul baconpaul changed the title Stacking effects in a row with no cables connected using expanding algorithm (left to right) Auto-Hookup Options (was Expanders are Implicit Connections) Feb 3, 2023
@baconpaul
Copy link
Contributor

RackAuto

So here's auto-connectors to mix-master as a proof of concept. Should be able to do auto-connectors to neighbors also if neighbors advertise the right API.

Just getting mixmaster right will improve my workflow!

But rack 2.2 won't be here until the fall so will be a while before this is in prod stable code.

@baconpaul
Copy link
Contributor

BeMyNeighbor

And here's one more in the spirit of the original ask

baconpaul added a commit to baconpaul/surge-rack that referenced this issue Jul 4, 2023
1. Connect to MixMaster/AuxSpander
2. Connect to your neighbor

Addresses surge-synthesizer#829
baconpaul added a commit that referenced this issue Jul 4, 2023
* Module Connecting RMB functions

1. Connect to MixMaster/AuxSpander
2. Connect to your neighbor

Addresses #829
@baconpaul
Copy link
Contributor

I think really the only thing to do left on this issue is make sure air windows implements it too in a way that works, and then what's in the codebase is in good shape.

@baconpaul
Copy link
Contributor

oh and probably a full aux insert for all 4 in one click.

@ContemporaryInsanity
Copy link

I think really the only thing to do left on this issue

Are you no longer planning to implement auto-patch where two modules placed adjacent to one another automatically link up?

@baconpaul
Copy link
Contributor

I am going to implement tone click to wire but not auto, phew thst was my plan.

I think I will do one click to wire a sequence too

@Andreya-Autumn
Copy link
Collaborator

That sounds great!

@ContemporaryInsanity
Copy link

but not auto

Must admit I'm disappointed as full auto would be fastest workflow, however this is still great, thanks so much for all of your work.

@baconpaul
Copy link
Contributor

well maybe i can add an option for when-they-kiss you wire in the onExpander but I think it would be annoying. definitely want it as an option.

Its not hard code to write now I have the connector stuff. I just am not sure it is a good feature!

I'll try it in the 2.2 cycle and decide.

@baconpaul
Copy link
Contributor

baconpaul commented Aug 31, 2023

Also @Andreya-Autumn indicates if you auto-hook with a connection there it crashes as opposes to forbids (now fixed)

@baconpaul
Copy link
Contributor

OK 2.2 is gonna have the neighbor-hookups on every item and also the mixmaster-hookups. (Or at least will with my next commit that will fix #945). But there's more ideas in this issue so I'm going to keep it open but bounce it out of the milestone so we can ship 2.2 this year.

@baconpaul baconpaul changed the title Auto-Hookup Options (was Expanders are Implicit Connections) More Advanced Auto-Hookup Options (was Expanders are Implicit Connections) Nov 22, 2023
baconpaul added a commit to baconpaul/surge-rack that referenced this issue Nov 22, 2023
This makes sure everyone has appropriate neighbor connectors,
mixmaster connectors, and that the UI is appropriate.

Closes surge-synthesizer#945
Addresses surge-synthesizer#829
baconpaul added a commit that referenced this issue Nov 22, 2023
This makes sure everyone has appropriate neighbor connectors,
mixmaster connectors, and that the UI is appropriate.

Closes #945
Addresses #829
@baconpaul
Copy link
Contributor

2.2.2 (about to get pushed to github and coming soon to library) will also contain the 'find any neighbor in this row' menu item which i find super handy. I've also upgraded airwin2rack and baconplugs to participate in this scheme, and may do mschack soon also.

So I think I'm going to close this issue and as we want to generally change the nature of autoconnectors, we could open separate issues for individual ideas, changes, or expansions.

Thanks so much for these ideas. They are good ones and are well recieved!

@ContemporaryInsanity
Copy link

Are we not having an option for full auto-patch now? Still think that would make for the ultimate workflow speed, at least for the way I work.

@baconpaul
Copy link
Contributor

Oh you mean full left to right along the chain. Yes that's still a good idea.

Yeah let's open a separate issue for that and I can add it. I have a couple of questions about some edge cases we should hash out

I just had too much in this issue to be bite sized. I really like "one issue a commit" mode once we get basics of a feature in place - workflow just works better for me!

@baconpaul
Copy link
Contributor

I'll open an issue now and tag you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Infrastructure New Feature New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants