Max Objects


A large and growing repository of Max abstractions, javascripts, shaders, etc I’ve made over the years. Some will be generically useful to people, others are esoteric or specific to the way I use max. Some are well documented, others are not so much. I hope some of these will be useful to people.


  • a number of dict abstractions that make it easy to use dictionaries to manage the state of a patch (get items, set item, create subdicts, dict item based gate, etc)
  • use LEDs on KMI QuNeo pads as audio meters
  • a standard audio output bpatcher for patches
  • javascripts for converting between hex, binary and int
  • a javascript that quantizes to musical scales
  • time/datestamping
  • Apple multitouch trackpad input conditioning – tries to map finger data intelligently to one parameter per finger
  • td.rota shader with offset values absolute rather than relative to rotation
  • an example multitrack recorder bpatcher for all channels of a MOTU Ultralite
  • javascripts to scroll within a patch or send a patch window to the back
  • ~equal loudness pan and balance objects
  • various path operations:
    • get parent folder of patch
    • check if a file exists anywhere in max’s searchpath
    • return the path of the current patch so saved files dont go willy-nilly to the last place used in Max’s searchpath
    • remove file extensions
  • operate on value objects
  • quick data recorder/looper bpatcher
  • bpatchers for managing preset slots and JSON files for pattrstorage
  • tcpClient mxj (see below)

Check out the repository

atp.abstractions github repo


Get atp.abstractions

tcpClient mxj

tcpClient ScreenshotA Max object written in java to communicate over a single persistent TCP/IP socket with a TCP/IP server. Opens a socket, then sends and receives info without closing it. Closes the socket only when you tell it to, or when the server disconnects (ie from inactivity). Useful for connecting to hardware network devices like EZ Web Lynx and other microcontrollers/DSPs that don’t easily support something nicer like OSC.

Tested on MaxOS X 10.5 and Windows XP, Max/MSP 5.1.x


  1. Put this folder in your java classes folder

    On Mac that would be /Applications/Max5/Cycling ‘74/java/classes

    On Windows that would probably be C:\Program Files\Cycling ‘74\MaxMSP\Cycling ‘74\java\classes (I think)

  2. In Max/MSP create a new object with the text “mxj tcpClient” (careful - this is case sensitive)

  3. Check out the help patch to see how it works.

developed by Arvid Tomayko-Peters for Your Heaven, LLC

No warranty, no gurantees, etc. I don’t even really know java! So if you can improve this code, please do so and let me know.

Thanks to David Reilly for his TimedSocket class on JavaWorld.


The latest version of tcpClient is included with atp.abstractions