Ways to Quicken Patching?
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?
cool, thanks, ill check that out.
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.
> 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…
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
— Stefan Tiedje
> 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…
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.
----------begin_max5_patcher---------- 601.3oc2WtsiaBCDF9Z3ovhqSir4XnuFUp2Tspx.SIdEXGAN6lsq128BFHIa ZH.IFTUuIHO9.i+9+yXy6lFVQhCPoE5qnefLLd2zvPEpNfQaaCqb5g3LZoZX Vb3UQzyVqZ5RBGjpvRTDB2E8WBtjSyAUOeGJRnb548Ux9spOBYMtMLKQM3pk 9K1gcikuOmwy.o5MSNETrW1E0tM5NpLdKim9yBHV1rebvdUKOx1V8vwW0.uF idpcNMKi7scPyDrhn7TqUHKFuZIdpdPeXZV+ypQBmbnrjlB+EcHZhL9WkL1W kLj9Iiq8mHi8ZuUHxlaQl6CGRQZZ1QZb9FwdBR7M1HND0Nf360ItCIw2sz1i uOAhYIfljWrdjWRiwm3nd35OiTIVjmCUS9RrTBRjbKfdgVvnQYZBPjoTY.eC .0X763DlbhP2ACh1KkB9Ub4j.83xOlmi1kqJjoSa9Kn7291qrpTSSJ4F8hll B.AdCiF85yAdBZKTnK+sud72tdMdj.0CuvGxdmAIWya6oGAr6nn.7rWAuOML UfN822GT.c0i.53bNUbseHAru8sDJmkhzNZkAydQZhltJBdpFYsWjtDxPZ5l lgS3lHCeEbRX6ERBG+cvszqL6nUU9+pih0KYbtyShUiyJiwu7yQUuq53eFUk h8EwcKU2mMhHGecIUU2XbpjUYGNMn5isPmxosrjDfedgnbVxNQ0QLsIQOB2j xI7P4DYQyowjRWj2yNl7GCl7VbLMja5h7dtSIxXTN6kU4viQ41rrXJXLbBun 4jyXvz+bloGoJPUiOL+COQ7p2B -----------end_max5_patcher-----------
Quote: Chris Muir wrote on Tue, 24 June 2008 01:59
> You might want to look into the Max Toolbox:
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)
there’s a new version out for max 5. check the above link. im in m5 right now and using it. faaantastic.
> 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.
----------begin_max5_patcher---------- 516.3ocyV00SCBCE8Y3WQswGzHagV5XfOXh+NLFCaT0ZXEBzEmt3+cgaAcSE sfBtW3Ft8i64bte.assvKR2vKvnyQWgrr1ZaYAtpbXU+tEdUzlkIQEv1vR9i oKd.6nWRw2n.27MY4He1jnEEmTZNVPNsYOoqUIbk5oLtNNXL555ktMUpjQqf EvWlKhRZNTVjZ48B4c2jyWpzmi5xl55fBfmDxrJC0cp6a2lb8JgrLT.PI0NE wvkWh4IDJdm3VHdFhKgVdQucAZvpugJmuXaW8vwP0oHQDyyMf4Y47BtTEoDo xc3nWXXEs7bAia8i2OUqpRsgvHfwuKxhK9Pi+jYdcj+rfdSexeG8ao43nIkU YAspJBopmsD08B9.40bu8NB5m4d3f2PzhhbFhL.xgOTvPnfwiNcVGkifC94C zY5t84LS6OzMF+hwC9Cd6gBIPhusbv42TUnUf4TSJJ9B9y5TQAcPKJZib8e5 m2fmcu.46MX85g9PVk04Iez+qIe2Eo3HZ6Iamd++Q0S+X5uG1cIgz6BcHD3D g7i+JIfxJ+6qSEoqyW1v3luAidGow7BkPBy91cSz81z8h3XNrdC.WIhyRKqn pAA55uLqYLlnlfI2wESkQi7CPJbTQTnAhj+nhHSRaAiJhXFj0nidczgUVKvj lsQEQdFfH1nWGYhFQ5IhJe4E6WA4+dpo -----------end_max5_patcher-----------
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
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
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:
----------begin_max5_patcher---------- 826.3ocyW00bhBCE8Y7WQFd10gDDQ2eH6Kc53DfTa5BILPnqc6z+6a9.PhBJ Xst8kLRRtI2y4duma78YNtQ78jRWvOAO.bbdeliidJ0DN0e63lg2GmhK0ayM lmkQXB24l0Dj8B87j8wjbAkyZVIGKhelx1ssfDKL2P3xEdyAA9pwUqTiHuEd fGqsfUkQYoDg9hf0SRSzGOO5ke.W1b1OwYBFNinW5WjhDLC6d3T3UhliwqiE kz+ps.BW3ol8iYyTCy+jHmwKxvo.xqxEABNHufGSj1LLO.CPGHBXf2zYBz+U lHpRHNafF4EpvT35FjMU740OFZ1pYJwa4Dy84FgY6bAO9UfkMAZnr4Jgx5uO HAFB0teXvUhkUe2hJWOTBtaPgQ9i7BOQ0HGHHEEznz2.Rgk7TZLVPRNV7Hkx Hw7Jl1F+KFZgFUUCqrLbB7g+zETtDWMfdSWPPJpItZlStaZpTHsnT0H4vc33 d.pF4xM5VIqVp+X45NgdY7XWJO92jjNpdNtIjmlxYvyIrC6WuCqA6cRY4EjR o9OVT63cuWbUpXa+zf85OgiICZ7.AEG2cEzDNS4FV1plt4BUsbL8Z5545cvv 48XrfySivEuRKkYnDqHgLaGynYxrUA03QHuV6nY4ETS1Z6bYDANAKvFGoSXp 6SO5jCXUQYM+QUVlDuFdXnVQPixMznQDzL15GCUcbbEBx01fSaspWo4UBJyb alVKYX9w7qDrZ+abXstW0HfpW+PENLT6RNmuveTrwgrAkR2.YCZjpVueZpjW UD23B0tOvFzIjRAk0Vb9PaD8n88LMIwtRPGGnI4bYVcYSFbu.YVc70HuUhek jrUdKxfyVrPHU5qDF.ZI2c1B6TdDNsVnrcWt2NkidsbLBUG+9wZl31zYT.ff H.5hM+gHs9MLb5c+uhmO6OT2Nkb275b+4lOGr22sij1I0eAH.7xOQxWyRaBN OIg54Q3SmjPCQRJlYTzhdO1hAFV5XQfZt5jheqh5AJ7sDHNsnu+B9ShaSwiP 2VOBEDrHPdpH8+iD5sr8qOou5OR1Cd2XO3H7nf6Z7zF+86Qqtudj2HHI+6pK sdDdD5tWFB+B4H4GeL6e4tLX1B -----------end_max5_patcher-----------
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.