Max/MSP/Jitter is a great programming environment for media applications out of the box, but often your applications require add-on “externals” developed in C, java or javascript. You may be porting existing code, interfacing to an API not exposed already in Max/MSP/Jitter, or you may be simply looking for higher performance. Perhaps you prefer to keep some ideas under wraps and only distribute them in binary form. Or, you may have found source code for an existing external that does most of what you need but you want to add your own special features.

CNMAT’s Developers Workshop for Max/MSP/Jitter Externals offers a supportive, hands-on environment for you to learn the basics of writing Max C externals and sharpening your skills. This practical course covers the basics and also provides time for deeper explorations of specialized topics according to your interests. We'll share our experience with externals (CNMAT developed some of the earliest externals such as multislider, sinusoids~), plus we will cover the special libraries and tools we use at CNMAT to maintain and develop our extensive MMJ depot.

Workshop participants will master basic principles of Max object development and design. You will also learn defensive programming and debugging techniques to avoid the many challenges and pitfalls the new object programmer faces.

Teacher Bios:
John MacCallum maintains and extends CNMAT’s significant library of externals that is part of the MMJ depot. He has developed randdist, migrator, midifile (java), and others.
Adrian Freed is CNMAT's Research Director. He designed the multislider, lcd and matrix~ objects (now part of Max/MSP/Jitter) and implemented the sinusoids~, resonators~ and oscillators~ MSP externals. His current focus is on interactive interface objects using JSUI.
Andy Schmeder is a Research Programmer at CNMAT and has written numerous Max objects, including accumulate~, firbank~, thread.fork / thread.join, OSC-schedule, OSC-timetag, slipOSC, OpenSoundControl, sphY, uosc.io.usb-serial, waveguide~.