name ONE indispensable Max/MSP/Jitter object; lines are now open
Hi
haven't posted for a while, kinda miss you guys so I came up with this oft asked question:
What is the ONE Max/MSP/Jitter object you could simply not do without; regardless of preferred medium, externals blah blah etc. Which native object do you use regularly and why?
ahem...
object:
[trigger] or [t]
reason:
control flow; I can impose structuring as I need; without it, my patches would be a mess, or would simply not work as I require.
At first glance, perhaps a frivolous post, but my hope is that this thread will give newcomers the gift of prescience.........a valuable skill.
Brendan
[gate]
routing a stream in different directions, or more often, just to turn a stream on and off. I use it a lot when using [print], this way I can control when things are printed using a toggle in a locked patch rather than deleting/recreating the patch cord (not possible in a locked patch without scripting). If you have a ton of things printing very rapidly for a test, you only want a couple sets to print to see what's going on.
It also lets you narrow down processing bottlenecks by routing streams in and out of processes/FX, you can track your CPU with audio or your FPS for matrices when you allow/restrict the input, like a bypass in a vst. Besides, you probably want the capability to turn a given effect on and off anyway...
though [t] is probably tops :)
[sfrecord~]
So useful to capture the output when a patcher I am working on suddenly produces a 'Hey-what-an-interesting-sound'.
[int] [float] [zl reg]
store ints, floats and lists for later use. very useful, specially for recursive things and to ensure order of operations in more complicated structures...
+1 for [t] though!
matrix~. You can combine lots of signals in any number of arbitrary ways and it provides a very fast building block for mixers in combination with vexpr. It was even better in the old G4 days since (thanks to Altivec) it was screaming fast in comparison to the alternatives.
I use it for mixers, linked coefficients (e.g. for freqs for an additive synth), midside, controlling the timing and volume of delay arrays with tapout~, feedback matrices, switchable filters (onepole~ plus matrix~ 2 1 0. = lowpass & highpass!) and more. It's also a great way of doing multiply and add, so I use it in my PM.Scale~ object.
My only gripe is that there's no setrow or setcolumn message, so a lot of people don't make full use of this object. I think a lot of people only use it with matrixctrl, and that's unfortunate, because there's so much more that this object can do.
Does [ezdac] or [loadbang] count as an object one cannot live without??! I've been stretching the [counter]+[preset] object combo out a lot lately as it's pretty useful for pattern sequencers when tied with [matrix] or [itable].
I'm with you on [trigger] although when dealing with audio it's pretty much always [*~].
[pak] not [pack] - I used to use pack all the time with triggers but then I found the [pak] and life was easier. Peter I never use [matrix~], I don't think I've used it once! Must start looking into it.
[line~] - A great way of fading between values at audio rate :)
+1 for [line~]
also love [pak] and [coll]
[coll] Every patch I've made has one at minimum!
[scale] or [zmap] - I use at least 1 of these in every patch. Completely indispensable.
There's also f0.auto_scale which can come in very handy sometimes.
My answer must be obvious before I even post it…
[funbuff]
[trigger]/[t] - as Brendan says ... definitely an essential
[comment ] - quite often, if I leave something unfinished and come back to it ... I don't understand how it works anymore without reading my little explanatory comments :)
@peter -- mine is probably obvious, too. :-)
(although 'bang' is a teeny bit useful...)
scale~ and objects similar to it.
r and s combos are also indispensable.
Hmmm
not the consensus I expected.....but that's good; keep them coming.
I would've also gone for [scale]/[zmap]/[expr]/[zl], which are all one type of object/function, but I'm learning to do all my scaling outside of Max first (Arduino), simply so that Max/CPU has less work to do...
Peter and Brad may have to be a little less reserved :)
Brendan
I would guess that Brad is referring to [rtcmix~] :)
Speaking of scaling, don't forget function; it's great for multisegment mappings.
[route] hands down
gets rid of symbol prefix, invaluable for making an abstraction that follows the left index schema, and allows a more advanced use of all jitter object attributes.
And for some reason I still waffle on it's pronunciation... :P
...by which, you naturally mean "root"?
:)
While it is true that we can scale outside of Max - and I'll leave aside the arguments pro and con of this - the real fun with the scale family of objets is that you can take one input stream and scale it in multiple ways for use in the same patch (0-100 for one thing, 100-0 for another, etc....).
[grab] kind of blew my mind. I look at my pre-grab patches and shudder.
[drunk] is one of the funniest to demonstrate !
New suggestion: any object abbreviated to a single letter.
[s]
[r]
[t] !!
[b]
and, my all time favorite of these:
[p]