Ways to Quicken Patching?

ComfortableInClouds's icon

ive been doing an unhealthy amount of patching recently and have found some parts to be quite tedious. ive learned some crucial hotkeys, but haven't found a way around the actual act of patching, inparticular - connecting lots of objects to one object. I know with one object there's the "hold shift while patching" trick, which is quite nice, but is there something that works in the opposite direction? say, select a large number of objects, hold a key while you click another object and, voila, all left outlets go into that objects left inlet?

Chris Muir's icon

You might want to look into the Max Toolbox:
http://code.google.com/p/maxtoolbox/

Chris Muir
cbm@well.com    
http://www.xfade.com

ComfortableInClouds's icon

cool, thanks, ill check that out.

jvkr's icon

Another solution lies an a different programming approach. Patch chords allow any fool to program, a point that is proven by me, but as you describe, creating them can be quite a nuisance. But there are techniques to reduce the use of patch chords. Oftentimes there are replacements for objects that have a costly inlet-to-functionality ratio. For example, there are more ways to pack things twenty things then [pack i i i i i i i i i ... i]. Also, using simple abstractions, it is possible to create connections dynamically using send and receive. The main issue is to let go of a model (that max easily suggests) which dictates that certain information travels to a specific place. The culmination of this model is the gate object. My private rule of thumb is that using a gate is a violation of good programming practice: it's dirty.

_
johan

Stefan Tiedje's icon

jvkr schrieb:
> My private rule of thumb is that using a gate is a violation of good
> programming practice: it's dirty.

Though I usually love to be dirty, I'd be interested in examples of that
approach, say an example that usually would be done with a gate, and an
alternative how you would do it instead...

Stefan

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

roger.carruthers's icon

I too suffer from gate shame, and would love to know
how to avoid it.
Isn't it good that we can talk openly about these
things? ;-)
cheers
Roger

--- Stefan Tiedje wrote:

> jvkr schrieb:
> > My private rule of thumb is that using a gate is a
> violation of good
> > programming practice: it's dirty.
>
> Though I usually love to be dirty, I'd be interested
> in examples of that
> approach, say an example that usually would be done
> with a gate, and an
> alternative how you would do it instead...
>
> Stefan
>

arne's icon

I avoid the use of the gate with toggles (which invariably end up with multiple connections to the toggle). Is the gate open or closed? What process controlled the actual toggle?

The concept of a gate is a logical necessity, however. So I use value objects to test a variable, which can be set elsewhere. Since value objects can be traced back by double clicking on them, it is more straight-forward to find out what is controlling the state of the switch.

Max Patch
Copy patch and select New From Clipboard in Max.

thezer0ist@gmail.com's icon

Quote: Chris Muir wrote on Tue, 24 June 2008 01:59
----------------------------------------------------
> You might want to look into the Max Toolbox:
> http://code.google.com/p/maxtoolbox/
----------------------------------------------------

does the max toolbox work in max 5?
i used it heavily in 4.x but for some reason, i figured that it wouldn't work properly in 5 (though i never got around to trying it)

ComfortableInClouds's icon

there's a new version out for max 5. check the above link. im in m5 right now and using it. faaantastic.

jvkr's icon

> Though I usually love to be dirty, I'd be interested in examples of that
> approach, say an example that usually would be done with a gate, and an
> alternative how you would do it instead...

This is an example of something I see rather often. In this specific case it is an expression that serves as replacement. It is an example of the thought "when the value is such it has to go here in order to be treated like this, otherwise it has to go there in order to be treated like that." Once I became aware of this way of thinking in my own approach to programming with max, I realized it's inefficiency.

_
johan

Max Patch
Copy patch and select New From Clipboard in Max.

Stefan Tiedje's icon

Arne Eigenfeldt schrieb:
> I avoid the use of the gate with toggles (which invariably end up
> with multiple connections to the toggle). Is the gate open or closed?
> What process controlled the actual toggle?
>
> The concept of a gate is a logical necessity, however. So I use value
> objects to test a variable, which can be set elsewhere. Since value
> objects can be traced back by double clicking on them, it is more
> straight-forward to find out what is controlling the state of the
> switch.

that is testing a variable (I hate polling I must say), it's a "state
way of thinking". If you think in terms of events, gates might still be
valuable...
A good way to avoid gates for me is grab, but that's even more of a hack...

I guess this use of a gate is pure Max porn:

Max Patch
Copy patch and select New From Clipboard in Max.

--
Stefan Tiedje------------x-------
--_____-----------|--------------
--(_|_ ----|-----|-----()-------
-- _|_)----|-----()--------------
----------()--------www.ccmix.com

arne's icon

2008/6/24 Stefan Tiedje :

> I guess this use of a gate is pure Max porn:

Nice. It guarantees that the gate is always in one state (did I just
say a bad word?), even at loadtime. The exception handles itself, and
leaves no after effect.