Improving Your Patching Workflow

    In addition to the smoother look and feel of Max 5, there have been a number of enhancements to the user interface that will help you to maximize your creative productivity and minimize the time spent performing repetitive and annoying tasks. In this article, I'll talk about a couple of the features that have really improved my patching workflow.

    The Setup

    The first step in getting your streamlined new patching lifestyle in order will be to set up your working environment in a way that compliments your personal habits. Because Max 5 remembers where your windows are, and gives you the control to set numerous preferences, you will only need to spend a few minutes tweaking things to get things rolling.
    To get started with this, open up the Preferences window. You will probably want to take a moment to set the colors of the Clue window to match your personal taste. Now switch over to the Patching tab, which is where you will find several options to configure your working style. I personally prefer having "Typing Automatically Edits Selected Box" enabled, to minimize the time it takes to quickly alter the contents of an object box.
    With Max 5 came the introduction of a customizable patcher grid that allows for snapping of objects and interface elements to ease layout tasks. I used to spend hours shifting object boxes one or two pixels this way or that, all to create a reasonably well-ordered layout. Now, try turning on the Snap to Grid feature. You will find that you can sprinkle objects wherever you like and things just naturally snap to the nearest gridline. If you find the default grid too coarse for your fine-tuned aesthetic, you can change the grid-size here in the Preferences window. Note: there is no law that says your grid has to be square...

    Speed Patching

    One of the simplest, but most surprisingly helpful features of the new patcher is the ability to quickly and painlessly add objects using keyboard shortcuts ('n' for an object box, 't' for a toggle, etc.). For example, you can type 'n' to create a new object and start typing, and auto-completion will kick in and offer some guesses as to what you are thinking of. If you have a clue window open try mousing over the options in the autocompletion menu. The clue window will give you a brief description of the object that is selected. If you then select something and mouse over the object box, the clue window will display a quick overview of the arguments expected by that object. Anyone familiar with previous versions of Max will remember how troublesome it was to create create a new object and then have to open a help file to remember what arguments to use.
    If you aren't sure what object you're looking for, try mousing over the left edge of the new object box and click the "=" button that appears. This will bring up a categorized menu of available objects that you can use to select what you need.
    Not every UI object in Max has its own keyboard shortcut. However, with a simple double-click (or press 'p') you can bring up the new enhanced object palette. Gone is the day of tiny pixel-graphic icons that you have to squint at to navigate. The new object palette features easy to recognize, scalable vector-graphic icons that display the name of the object when you mouse over them. The palette also features a tabbed interface that allows you to browse by categories.
    You may also notice a number that pops up on some object icons in the palette. Clicking on this number reveals a palette that shows prototypes of this object that can be browsed quickly and selected. For some reason, I never bothered to use prototypes in Max 4, but with this handy interface, I have begun to really take advantage of this feature. One common use of prototypes is to save custom UI widgets created with bpatchers.
    Speaking of bpatchers, a new feature introduced in Max 5.0.2 allows you to work with embedded bpatchers as if they are normal subpatches. Try creating a new bpatcher object from the object palette and turn on Embed Patcher in Parent in the inspector. Now go to your empty bpatcher and choose Object->New View of "none". This will open up a blank patcher that you can edit, and will update the bpatcher contents as you go. This is a great way to hack together quick GUI components without having to go through all the trouble of saving abstractions to host in bpatcher.
    In addition to object creation, Max 5 has streamlined the process of making patches that interface with your objects. For example, create a new object and click on the left inlet. This brings up the quickref menu for that object. Selecting an item from this menu automatically creates a message box with the name of the attribute/message you selected, already attached to the object.

    Media at Your Fingertips

    One of the most useful patching features in Max 5 is the new File Browser window. This window is your interface to the Max 5 database, which includes all of the files included with MaxMSP and anything you have added to your search path. When setting up a new install of MaxMSP, one of the first things I do is open up the File Preferences window and make sure my media library folders are set as search paths. Note: adding really large folders to your search path will probably take awhile as Max updates its database.
    Once you have all your media files added to the database, you can use the File Browser to access them using a variety of different search queries (file type, size, date, etc.). Once you have found an audio file you are looking for, you can option-drag the file to your patch and automatically create a buffer~ or sfplay~ object with your file already loaded. You can also drag and drop this file on an existing buffer~ or sfplay~ (even waveform~) to update its contents. This greatly reduces the time it takes to audition your patch with different audio samples as you make changes. The same functionality also works with video and image files!

    Breaking Old Habits

    As I talk to more Max 5 users, there is an overwhelming feeling of optimism as people look forward to breaking old patching habits. A lot of care has been taken to minimize the amount of repetitive tasks you have to perform to get through your patching experience, and it is just going to keep getting better. Now, we all just have to take some time to build some new, more effective patching habits to replace the old ones.