$Page Looper $TargetName Looper *Making a musical looper* Recording sound to a buffer and playing it back is fun, but to make this musical, we need to sync the record and play events to Live's timeline. Luckily Max allows to specify durations and event quantizations with a special notation that tells the objects to stay in sync. Have a look at the Quantize subpatch to see how this transport-synced notation is used in this device. Looper.png -> In the Quantize subpatch, notice the use of [timer] to measure the time between starting and stopping the recording. If the parameters don't change, the amount of samples it outputs is always the same. In reality, events don't travel through a patch with the same timing. However, timing objects, just like MIDI input objects, output their messages in the scheduler thread. [timer] sees this and uses the scheduler system to output the /intended/ time of the events rather than the wall-clock time at which they arrive. There are situations in which it is important to understand how Max works with threads. It uses a DSP thread for signals, a scheduler thread for timing-sensitive events like MIDI notes that are used to influence audio signals, and a main thread for all other events. You can $Link learn more about threading in Max here.