Its my birthday...Share a Tip
Hey all,
Its my bday today, so if you guys feel like sharing. Share your number 1 tip for MaxMSP/Jitter/Gen. Im crowdsourcing my bday gifts:D
Cheers
Ha ha. Nice idea and happy birthday. My favourite "tip" is the concept of [trigger]. It has prevented me from hassling this forum on so many occasions. Event and data structures. Important concept
Happy birthday !
Do you know about max toolbox https://cycling74.com/tools/max-toolbox/ ? If no, try it. If yes, a tip : you can connect two boxes with several inlet/outlets between them, by selecting the two boxes, typing
shift+n [number of connections to make] shift+c
and voilà.
My tip of the day: Go install stretta's BEAP library for max.
... that's it.
Great tips guys...My birthday is done...thanks for the wishes...but KEEP THE TIPS COMIN...It started off as just a fun way to get some conversation goin...but these tips are great!!!
Or go create a custom clipping libary!
Since not many are familiar with graphic data flow languages:
Gotta underline @NOOB_MEISTER's trigger recommendation: use it to enforce correct program flow!
Remember: MAX/MSP does *try* to figure out the correct order of execution, but you *know* the correct order of execution, and MAX/MSP just uses display based clues to determine it's execution order, UNLESS you enforce it by explicitly ordering the actions from a result, with trigger...
It will save you much debugging heartache.
Using #1 - #9 inside abstractions for values that normally stay constant for each use of the abstraction.
Great time and patchcord saver, and makes your patches easier to read!
Lately I came across this tip: resize textual objects (plain objects, number boxes, comments etc.) with shift key pressed to change font size.
Sto lat!
zl reg will help keep a patcher tidy and yield better control of the timing in your messages
I love BEAP!
I gotta back up the zl reg recommendation here, and just say "zl all the things!", really.
[zl sub 1.] helps me suss keypresses all the time, for one, and I'm just now getting into using [zl lookup] for some of the stuff that I'd normally use multislider for.
This is proving to be a great post!
here's another one I like: hold down shift if you're wiring one in or outlet to multiple other inlets/outlets (just try it and it will make sense)
THe toolbox is useful too but I can never remember 1 letter shortcuts
did you know that if you have say a unpack object with two patchchords going away from it, you can select both (alt drag) and pull them both at the same time to another object with two outlets?
did you know
did you know
did you know
did you know that I can no longer read those words without an accent?
use [route] to handle input in your custom abstractions.. it's a great way to reduce the number of inlets and to create custom args and control messages. there is nothing like sending the message [badonk 1] to add more low end.
hey Wetterberg - huge thanks for that BEAP tip. Been playing with it for a few minutes now and it is absolutely fantastic. Great work by Stretta
not quite a tip, but this useful bpatcher i made is littered all over most of my patches.
it triggers a bang when you press spacebar but prints a line to the max window first. helps to visually separate messages. the toggle disables all other instances of the bpatcher if you have a lot of them in a patch.
Here is a simple one I just found to easily copy the color of one object to another:
Open the Inspector for the "source" object (the one that has the color you are trying to copy).
Drag the color you want out of the Inspector onto the target object.
You get a contextual menu asking which attribute should receive the color - select one and you're good!
You need to drag the color itself, if you drag by the attribute name, you get the standard behavior (as discussed in "Dragging Attributes" in the documentation) where you get a new attrui object for the target object for that attribute or a new pre-formatted message that shortcuts changing that attribute. Those are cool in their own right but more widely used, I think.
Here is a simple one I just found to easily copy a color used by one max object to another:
Open the Inspector for the "source" object (the one that has the color you are trying to copy).
Drag the color you want out of the Inspector onto the target object.
You get a contextual menu asking which attribute should receive the color - select one and you're good!
You need to drag the color itself, if you drag by the attribute name, you get the standard behavior (as discussed in "Dragging Attributes" in the documentation) where you get a new attrui object for the target object for that attribute or a new pre-formatted message that shortcuts changing that attribute. Those are cool in their own right but more widely used, I think.
Dont expect max to always behave logically. Max can be like an old car - sometimes you just need to bang it and it works ;)
Sorry. Its true though !
Download Raja's lil sampling tutorial from here:
I've found it invaluable in learning the different methods of sample playback
@Augustine : i, for one, have found on countless times how much Mas was logical, but in its own logic, to which he sticks... the more you understand that logic, the less you observe unexpected behaviour ;)
If you don't use Presentation Mode, you can easily hide all patchcords:
Hide Foreground
Hide Background (if you have any objects in background)
Select All (selects all patchcords)
Hide on Lock
Show Foreground
Show Background
just a few seconds, and you KNOW they are all hidden. Also you can right-click when they're selected and change color etc...
@seejayjames : to select all patchcords and only the patchcords, you can also Select All, then shift + left click + drag all your patch to unselect the object boxes ; which doesn't unselect the patchcords. Then you can hide/change color/etc.
Though it's quite a fun view to hide all your patch except for patchcords :D
Great Thread!
Here's a simple thing I find myself using all the time, it's a technique for filling a buffer using function. Good for waveshaping and drawing custom LFO shapes. Enjoy!
@Augustine/@Vuchug : RE: MAx logic: I echo recommendation that you get to know trigger/t ... it is as critical to Max/Msp as the PROG command is to Lisp or DO is to Clojure.
Bonus almost tip : *use* send and receive to clean up large patchers, and learn how to use the dynamic naming to use them in abstractions...the tutorials are actually your friend!
These tips are great, literally saves hours!!! Keep em comin folks:)
I wish I had more time in a day
Also.. I don't think it's been stated explicitly.. the zl objects are absolutely indispensable. That entire set of objects significantly changes the functionality of Max. I actually thought about creating a thread recently to ask the old timers what life with Max was like before Zicarelli's list objects. Go through the help file and get familiar with all of them.
It's not a hidden function or anything but I would recommend creating new projects rather than simple max patches for pretty much anything. They really are great. I used to find it very difficult to keep track of everything and I didn't even know I had a need for something like projects but since I started using them my patches come together more quickly, it is easier to keep track of versions, sketch patches, re-use patches, media files and code from other projects. Max is a lot tidier now. Max patches used to sprawl across my computer - bits of things and idea's, and versions - it was ugly.
This is a really good, and dare I say, IMPORTANT thread if you want a reduced frustration level and learning curve. I was happy to see that I know (and use) several of these, have at least tried some others, and some downright raised my eyebrows ! Some of course I am not interested in at my level. I've been working with Max for about 3 years now.
I think we should have a keyword in all such posts to find them all. Something like :
KEYWORD : BESTPRACTICES!!
or something like that. We should also have a periodic and celebratory BESTPRACTICES!! Day, to keep things fresh, alive and growing.
Invaluable stuff. :-)
Here's another one - if you have a bunch of objects you can re-size them all at once, ie changing the object size AND the font size. Either hold option (mac) or control (pc) and then select a bunch of objects with the mouse. You should get a box around them all to adjust. It's really useful for re-sizing large sections of a UI, or increasing the size of old patches from the days before high resolution screens.
Use max toolbox to instantly connect multiple outlets to multiple inlets, 100 different outlets to one inlet etc