Hi guys. I am reasonably new to Supercollider so go easy.

I created this piece of code earlier (modified from help file) and I can see what it is doing but can not understand why the argument is working as it does.
When the code is played it plays a sine 5 times in the sequence 2000hz, 2200,2400,2600,2800. As you can see the frequency on the Synth is set to 2000 + (a*200). Does this mean that the first time the routine happens 1 gets fed into the argument a? Then 2,3,4,5? Is the argument only working like this as it is part of a .do routine?
Any help appreciated.
(
SynthDef(\test,{arg freq = 10000;
Out.ar(1,SinOsc.ar(freq)) * (EnvGen.kr(Env.perc(0.01,0.04),doneAction:2))}).load(s);
)
(
{5.do{ arg a;
Synth(\test,[\freq, 2000 + (a*200)]);
1.0.wait
};d
}.fork;
)