If I run the parts of my sample code separately, I get different results – I get 1sec, as expected.

First:

```
(setf snd (noise 1234))
(rms snd (/ *sound-srate* 10))
```

then

```
(extract-abs 0 1 *track*)
```

result: 1sec

Your solution with force-srate would not work because it would up-sample (linear interpolation) the 0.1 sec long signal. But I need the actual 1st second of the RMS-ed 123.4sec long (if Hz=sound-srate/10) signal.

I still have some workarounds in mind but just wanted to find out if there is a proper solution

To illustrate the problem, lets take a 20 sec faded white noise:

If I do it in two steps (first RMS, then in another prompt, EXTRACT-ABS), I get first RMS-ed 2 sec signal:

then 1sec with EXTRACT-ABS (the expected result):

If I would just stretch the 0.1 sec (produced by (extract-abs 0 1 (rms snd (/ *sound-srate* 10)))) with the force-srate (as Steve suggested), I would get a different (incorrect) result:

As Steve has explained above, the RMS function passes to the following functions the new sample rate of the signal (as I suspected in my first post). Therefore, it seems, the only way to fix it would be to take into consideration this behavior when EXTRACT-ABS comes after the RMS:

Because I need the actual first second (based on the project sample rate, not based on RMS-ed signal sample rate) of the RMS-ed signal, one option would be to write it in this way:

```
(setf snd (noise 1234)) ; "random" length
(setf rmsRatio 10)
(setf actualSecondsNeeded 1)
(setf secondsWeNeedToPassToExtractAbs (* rmsRatio actualSecondsNeeded ))
(extract-abs 0 secondsWeNeedToPassToExtractAbs (rms snd (/ *sound-srate* rmsRatio )))
```