metro

Conditional timepoint

The timepoint object automatically and reliably sends out a bang when the specified point in time is reached. How would you specify a point in time, and also make the notification “conditional”, such that it only occurs if a certain condition is met?

Stack overflow

Recursion, feedback loops, and unlimited untimed (as fast as possible) loops are not feasible in Max. In effect, you’d be asking Max to do an unlimited number of things all at the same time. Its scheduler (its internal “to-do” list) would get filled and it would be unable to do anything more. In computer lingo, its “stack” (its inbox of tasks to do) would overflow.

Arpeggiate the harmonic series

This example repeatedly arpgeggiates the first 16 notes of the harmonic series based on the frequency 65.406395 Hz, which is the fundamental frequency of the open C string on a cello. The note rate can be adjusted anywhere from 1 note per second to 100 notes per second. The default initial rate is 8 notes per second.

Tap to teach tempo to Max

This patch implements tap tempo using a "simple moving average" (SMA) calculation of time between taps. The patch alters the transport tempo based on the rate at which you tap the 't' key. The method takes the average of the most recent three time intervals between the most recent four taps. So, once you tap four times, it will set the transport tempo to your tempo, and if you keep tapping it responds to your changes but takes a couple beats to move gradually to your new tempo.

Metronome using General MIDI sounds

When you’re trying to synchronize musical events to a timeline, it’s sometimes useful to have a metronome that tells you where the computer thinks the beat is. The metronome makes a percussive sound on each beat, and ideally makes a unique sound on the first beat of each measure. Most DAW and MIDI sequencing programs have such a feature.