n3xta (Mumu Li)

Timer → Canvas Patcher

  • 2 minutes

My idea was to use Max for some visual effects, with the timer basically acting like a brush. I tried using paintoval (ref: ) to draw onto an lcd node, each time it drops a small circle. If you noticed the slider, I o…

Course
Fall 2025
Kind
Project
Updated
25 September 2025

Presentation Mode

Patcher

Sub Patcher

Video

Notes

My idea was to use Max for some visual effects, with the timer basically acting like a brush. I tried using paintoval (ref: A question about paintoval message to the lcd object - MaxMSP Forum | Cycling ’74) to draw onto an lcd node, each time it drops a small circle. If you noticed the slider, I originally wanted to split its range evenly with some math, but Max’s handling of integers vs floats wasn’t great. Eventually I realized I could just use the lcd canvas to get the effect I wanted.

At the core of this patch is really just the counter.

The counter object is somewhat unusual in that it can accept a variable number of arguments:

  • If you have one argument, it sets the maximum value of the counter.
  • If you have two arguments, they set the minimum and maximum values of the counter.
  • If you have three arguments, they set the direction, minimum and maximum values of the counter.

Four different counter objects are used in this patch; one to set the drawing location and size, and three others to change the color. Understanding the leftmost counter is the most important: it counts from 0 to 767, giving us 768 steps total. The drawing X/Y location is calculated with the modulo and division objects, breaking up our lcd object into a 32 x 32 grid. If we look at the output of the counter and the % and / objects, we can see that the system works by creating two loops from 0 to 31, one going quickly (from the % object) and the other incrementing each time the first loop has repeated (the / object). The values are multiplied by 10 (to get the pixel location for the top-left corner of the shape), then have 10 added (to get the pixel location for the bottom-right). This sets up a lcd-filling grid of circles for our program to draw.