Auch ein Effekt wäre eine gute Lösung.Du musst nur ein globale Funktion wie etwa:
global func LoopSound(string Sound,object Object,int intervall,int repeats){...}
machen in der du dann einen Effect dem Object anhängst der mit einem bestimmten intervall den Sound abspielt.
In der Funktion müsstes du dann nur noch 2 Effectvariablen erstellen eine wird auf die Maximale anzahl wiederholungen (repeats) gesetzt die andere wird in jedem Timer-Aufruf 1 hochgezählt und wenn sie so groß wie die andere ist wird der Effect beendet.