Max Objects

This page serves as a collection of useful and quasi-useful objects I've written for the Max/MSP programming language-cum-authoring environment.

Everything is free, provided you don't tell other people you wrote it, and you don't sue me if it doesn't work the way you want it to (in other words, play nice!). Bugreports & suggestions are always welcome.

A word about operating systems: All of my objects either work as-is or have been recompiled to work on both Mac OS 9 and Mac OS X - the OS 9/X status is noted for each object, and a separate OS X version, where applicable, is included in the download (with the parenthetical designation "for X" which should be removed when you install it).

Max has just been released for Windows XP - none of my objects are currently available for Windows, as it will require recompilation and testing on a WinXP machine, which I do not have and have no other incentive to get. However, if the lack of any of my objects for Windows opens a hole in your heart, please do let me know. Also, if you are a developer and would be willing to attempt to recompile some or all of them, please also let me know (most should be trivial to recompile).

Currently, the objects are as follows:

instanceof - is actually an abstraction, but a very useful one! Use it to load the correct version of a third party object that has separate OS9/X versions. See the readme for more info. Uses my objects numlets and argv - they are included in the download for convenience, but you can download them separately, with their all-important helpfiles, below.

numlets - gives the number of inlets and outlets of any object, upon being sent the object's scripting name. Its name is super cute too. Gravy optional.
OS X Status: numlets does not require a separate OS X object. The existing object can be used in both 9 and X.

argv - gives the name and all arguments of its containing patch upon being sent a bang.
OS X Status: argv does not require a separate OS X object. The existing object can be used in both 9 and X.

movie++ - A replacement for the standard movie object in Max. It does everything movie does, and: reports length and dimensions of the current movie or any movie file (without loading in a window); allows the window size/position and autofit & border status to be set with arguments or via messages to the object, and can remember them as new movies are loaded; plus other minor tweaks. (If anyone in the Pittsburgh area has a firewire camera they can lend me for a week, firewire output can happen.....or just buy jitter.....)
OS X Status: movie++ has been updated for OS X, and both 9 and X versions are now included in the download.

filesize - reports the size of any file in bytes.
OS X Status: filesize has been updated for OS X, and both 9 and X versions are now included in the download.

64bit - allows one to (with filein) read 64-bit floating point values into Max (they are truncated by Max to 32-bit - use if you want the data, not the precision).
OS X Status: 64bit does not require a separate OS X object. The existing object can be used in both 9 and X.

argh - passes any message/data through it, *except* #1 - #9, i.e. un-filled-in arguments.
OS X Status: argh does not require a separate OS X object. The existing object will work in both 9 and X.

frame~ - An MSP object that takes in output from fft~, and spits out successive fft frames as lists, to be processed with objects such as vexpr, zl, Peter Elsea's Lobjects, and James McCartney's ListOps (OS 9 OS X).
OS X Status: frame~ does not require a separate OS X object. The existing object will work in both 9 and X.

slicen - Slices a list into N sub-lists, specified by size (e.g. [slicen 1 2 3] would have four outlets, and a list sent it would have its first member sent out the left, its next two out the next, its next three out the next and any remainder out the right outlet). (Hint: this may be helpful in combination with frame~...)
OS X Status: slicen does not require a separate OS X object. The existing object will work in both 9 and X.

masterpatcher - has been retired, since it does not work in OS X at all, and does not work in applications or collectives. Hopefully a new way will be found - in the meantime it's not as useful as I thought.

Hope you find them helpful - email me with any questions, or just to let me know what you're using them for, at mrjester@fledge.watson.org.

- J. Jester