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
- Add Song context and use a Song: tracks node to produce an array of tracks.
- 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.
- Wire Song into the node that supplies the track array.
- Inside the loop body, wire the Current Item output into setters or getters that need a track.
- Wire Run: trigger Run → For Each Run; wire loop body Run → your per-track actions.
- Avoid merging If/Else branches back into one Run wire — duplicate the final step on each branch if both paths need it.
- Use Progress Dialog for many tracks (see Show progress for long operations) and keep it outside Transaction.
- 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 |