Timing is very important in music. The fundamental way to ensure precise timing of events is to use a scheduler. A schedule is a list of time-tagged events to be executed at specific times in the future. That schedule must be consulted constantly at regular intervals (as often as possible, e.g., every millisecond) to see if any item on the list has a time tag that is less than or equal to the current time; if so, that event should be enacted.
What's the best way to detect lack of activity?
Let's say you want to Max to notify you if it has received no input for ten seconds. You could use a metro or a clocker to monitor activity constantly, and use a >= object to check when a time period 10,000 ms has been reached. However, by doing that, you're going to do lots of tests, only the last of which will give the looked-for result. There's an easier way.
In Max there are many ways to schedule an event to occur at a certain time in the future, using delay, pipe, or timepoint, for example. What if you want to schedule a whole collection of triggers or messages to occur at different specific points in time? Here are a few approaches.