I'm really really new to sound processing, so maybe my question would be trivial. I want to do in order to extract a certain frequency range (say, 150-400 Hz) from a wav file using R. In other words, I want to create another wave file (wave2) that contains only the frequency component that I specify (from 150 up to 400 Hz or whatever).
I read something on the net, and I found that this can be done using FFT analysis, and there are problems here.
Suppose I have this code:
library(sound) s1 <- Sine(440, 1) s2 <- Sine(880, 1) s3 <- s1 + s2 s3.s <- as.vector(s3$sound)
We get the following:

Well, there are two peaks. If we want to know at what frequency they correspond, just find:
order(Mod(x)[1:22050], decreasing=T)[1:10] [1] 441 881 882 880 883 442 440 879 884 878
The first two values are really close to the frequency that I used to create my sound:
real computed Freq1: 440 | 441 Freq2: 880 | 881
So now the problem is: how to continue if I want to remove frequencies from my sound in the range of, say, (1, 500) ? And how to select (and save) only the range (1, 500) ? What I visit is that my new sound (with removed frequencies) will be something close to a simple Sine(freq=880, duration=1) (I know it can't be exactly like that!). Is it possible?
I'm sure fft(DATA, inverse = TRUE) is what I need. But I’m not sure, but I don’t know how to act.