Loop over all tracks

Goal: Run the same steps on every track in your Set (for example rename, mute, or collect devices).

Time: ~20 minutes


Steps

  1. Add Song context and use a Song: tracks node to produce an array of tracks.
  2. Add For Each (bounded) (or Repeat (bounded)) from the Logic category — loops must have a fixed limit; use the track list length, not an infinite loop.
  3. Wire Song into the node that supplies the track array.
  4. Inside the loop body, wire the Current Item output into setters or getters that need a track.
  5. Wire Run: trigger Run → For Each Run; wire loop body Run → your per-track actions.
  6. Avoid merging If/Else branches back into one Run wire — duplicate the final step on each branch if both paths need it.
  7. Use Progress Dialog for many tracks (see Show progress for long operations) and keep it outside Transaction.
  8. Build & Run and test on a Set with several tracks.

Expected result

Each track in the Set receives the same logic (rename prefix, toggle, device check, etc.). Progress UI appears if you added a progress node for long runs.


If something goes wrong

Problem What to do
Only first track changes Check For Each body Run chain; wire current item into track inputs
Build forbids loop Use For Each or Repeat with a bounded count — no unbounded loops
Branch merge error Then and Else cannot share one downstream Run input — duplicate steps
Song unwired Song context must feed Song: tracks
Slow on large Sets Add Progress Dialog outside Transaction

See also