ep-341 Max/MSP – Spring 2015 week 3



(under construction)

review of Max tutorials

  • messages
  • message types
  • message order (right to left, top to bottom)
  • messages and attributes
  • inlets: passive and active
  • numbers (int/float)
  • subpatches
  • send/receive
tutorial 1
  • debugging with print and message objects
  • set, append, prepend (changing contents without sending out data)
tutorial 2: bang
  • loadbang, loadmess
  • a random thought: musicians should learn to program computers
  • Max is object oriented: objects respond to messages with methods or actions based on type of input
tutorial 3: numbers and lists
  • pack vs. oak
  • $ gets used alot
tutorial 4: toggle metro
  • time formats and the transport
  • When to use Ableton Live instead of Max
  • snippets
  • overiding arguments using the right inlet
  • hide on lock
tutorial 5:
  • debugging… watchpoints / breakpoints (in the patch cords) when debugging make sure to have auto-step off!!!!
  • trigger / bangbang (trigger video link)
tutorial 6:
  • math operations: feedback loop to make accumulator
  • how would you make a backwards keyboard?

review of Max 7 lessons


user Interface

Look at UI’s you have build

  • backwards violin?
  • piano with different arrangement of black/white or monochrome
  • what would you change to improve UI of your instrument?

connecting things:

rube goldberg machines: Ok go

Using Max to connect external hardware:

  • midi,
  • osc,
  • serial (Arduino)
  • web
  • hi
  • externals
  • camera (cv)
  • microphone (pitch tracking)
  • mechanical linkage?


  • Playing notes on another computer using udpsend/udpreceive and midi
  • ad hoc networks, wifi routers
  • feedback delay case study
  • how would you make a patch that conformed everything to a pentatonic scale but kept rhythm and synchronized?

Here is a screenshot of the OSC experiment we did in class


Screen Shot 2015-02-23 at 8.37.39 PM


Here is a screenshot of the reverse Midi keyboard patch

Screen Shot 2015-02-23 at 8.40.30 PM


Reverse engineer Plink. Build a prototype that allows two or more people to jam.

Design a project that will be due at the mid-term. Send me an email next week describing the project.

Write a patch to connect external hardware to Max (input or output)


There will be no class next week, February 10th.


Andy Farnell, “Designing Sound” https://reactivemusic.net/?p=2480

useful skills
  • Read and understand patches (like reading musical scores)
  • Learn how to discover and research other people’s work (USB example, beatDetektor)
  • Make quick prototypes
  • Use externals and abstractions instead of writing everything yourself
  • Get your work noticed

ep-426 Interactive video – Spring 2015 week 3

The matrix

(under construction)


Review of Jitter tutorials:

tutorial 1: play a Quicktime movie
  • bang sends a matrix (once)
  • jit.fpsgui for debugging
  • How would you play a movie play backwards?
tutorial 2: build a single plane matrix
  • Anything can be transformed into a matrix
  • Create a matrix, row by row, using math (p fillmatrix)
  • How to get and set individual cells in a matrix
  • jit.matrix
  • How would you make pixel art? a drawing program? a spectrum display?
  • A lot of specialized Jitter objects are abstractions that do what this tutorial demonstrates – i.e.., building or transforming the planes of a matrix
tutorial 3:  math operations on entire matrix/plane
  • @op (is an attribute) : was it good design in Max to have both messages and attributes?
  • scalar, vector
  • pass
  • integer/float
  • What happens in a jit.pwindow with display size smaller than the matrix?
  • upsampling/downsampling
tutorial 4:  movie playback.
  • jit.qt.movie will play back URL’s (audio and images) – but you can’t work with the sound in Max without Soundflower
  • scrubbing and looping produces interesting fx
  • hardware controllers
tutorial 5: ARGBI
  • Rearranging planes
  • 8 bit char data type 0-255
  • line object (grain size)
tutorial 6 : color
  • scalebias:  normalized 0.->1. values, not with 0-255 values (look at the subpatcher)
  • planemap attribute for jit.matrix
tutorial 7: hue and BRCOSA
  • 2 very different ways of transforming (i.e., filtering) color and light
  • Why do we seen green with emphasis and detail?
  • hue angle is a way of gradually shifting around the color wheel.
tutorial 8: simple mixing
  • jit.xfade
  • line object
tutorial 9 – more mixing
  • Using various operators to transition, with jit.op, and using jit.scalebias to scale the input values to prevent clipping
tutorial 10 – chromakey
  • doesn’t need to be green.
  • Could you do a performance where you paste yourself into a band video.
  • napoleon dynamite
  • actual green screen


Max 7 lessons review

  • fantastic sounds
  • RGB music
  • geometric dreams

State of the art:



Design a project that will be due at the mid-term. Send me an email next week describing the project.

Continue working through the Jitter tutorials 4-12

Design a prototype of a synthesizer that generates accompaniment for animated GIF’s


There will be no class next week February 10th


Andrew Benson’s Jitter recipes: https://cycling74.com/search-results/#gsc.tab=0&gsc.q=jitter%20recipes

Screen Shot 2015-02-02 at 12.47.05 AM

Screen Shot 2015-02-02 at 12.47.30 AM

Mac OS frequency control for Softrock SDR devices


By VK6JBL (Andrew Nilsson)

Available for download at https://groups.yahoo.com/neo/groups/softrock40/files/VK6JBL/

Note: You need to join the Yahoo softrock40 group to access the link

More information about Softrock using Mac OS here: http://blog.marxy.org/2012/02/softrock-ensemble-rxtx-with-dsp-radio.html

By Peter B Marks

Note: On Mavericks you may need to unload the kext for the USB device before plugging in the Softrock:

sudo kextunload -bundle com.apple.driver.AppleUSBFTDI

Screen Shot 2015-02-01 at 1.56.18 AM

 update 3-2016

Using the method above gives error messages, similar to:

(kernel) Kext /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI not found for unload request.
Failed to unload /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI – (libkern/kext) not found.

Various suggestions:

Reboot the computer. Run the command again. Ignore the error message. And then try plugging in the softrock again.

Tried some variations of the command…

sudo kextunload -b /System/Library/Extensions/AppleUSBFTDI.kext/Contents/MacOS/AppleUSBFTDI

But the following one seemed to do the trick (at least for now) even though it still gives an error:

sudo kextunload -bundle-id com.FTDI.driver.FTDIUSBSerialDriver

For a more practical solution, check the FTDI manual, if it makes any sense to you.




A linux command line utility to control softrock, also  by Andrew Nilsson

Local source is in tkzic/softrock/usbsoftrock

Online repo: https://code.google.com/p/usbsoftrock/ (last updated 2/2011)

It appears that this may have the code needed to build a Max external.