signal = self.signal.usignal(self.up)
out = empty((num, self.numchannels))
// distances
rm = self.env.r(self.c, array(self.loc).reshape((3, 1)), self.mpos.mpos)
// emission time relative to start_t (in samples) for first sample
ind = (-rm/self.c-self.start_t+self.start)*self.sample_freq
i = 0
n = self.numsamples
while n:
n -= 1
try:
out[i] = signal[array(0.5+ind*self.up, dtype=long)]/rm
ind += 1.
i += 1
if i == num:
yield out