Max executes right-to-left so cold inlets are initialized before the hot inlet fires, avoiding stale-value bugs
Max executes messages arriving at a single object from the rightmost path first and the leftmost (hot) path last. This rule exists so that cold inlets — which store values without triggering output — are always set before the hot inlet causes computation. When multiple messages originate from a single upstream event (e.g., a kslider keypress fanning out to two inlets of makenote), the cold inlet receives its value in time. Violating this ordering (by reversing object position, or not using the trigger object to serialize) causes stale-value bugs where the object computes with the old cold-inlet value. The bug is non-obvious because the patch looks correctly wired.
Examples
In a makenote-based MIDI patch, velocity from kslider goes to makenote’s cold inlet (setting velocity) and pitch to its hot left inlet (triggering the note); right-to-left order sets velocity before the note fires. Use the trigger (t) object to force explicit ordering.
Assessment
Draw or describe a patch where a single bang triggers a calculation that gives wrong results because of evaluation order, and explain the fix using the trigger object.