Sample 2s of audio, store FFT profile / 0.1 s, reproduce a 'similar' sound later

Hi all,

I want to make a simple synthesizer using a Nano (2kb SRAM) with music keys. It should be able to sample live audio of about 2 sec max and on using the music keys reproduce a 'simiular' sound in the correct pitch.

Because of the memory limitation of the nano I was thinking of making a frequency spectrum (using FFT) every 0.1 sec. This should significantly reduce the memory usage of the sample. On playing a key it uses these spectrum samples to synthesize the sound.

The sound doesn't need to be 100% accurately (e.g. speech doesn't have to be recognizable) but you should be able the recognize the sound (e.g. that it was speech instead of a piano or a flute, carhorn etc)

Does anyone have experience with this approach? Is it feasible and will the samples be recognizable.

ps. I already have managed to construct a live spectrum analyzer. I know I could expand the nano with some external memory storage chip, but prefer to avoid this because the enclosure I have in mind has some space limitations

do your math:

how much samples?
how big are they?
how much vars does the FFT function need?
how much vars to store them?

does that fir into RAM?

Thx Rob, needed RAM size is not the problem: Each sample is 2 sec max, each 0.1 sec a fft is done, so this amounts to 20 ffts. Lets say we storen only the top 10 frequencies per fft. Each frequency needs 2 bytes to store freq, 1 bytes for magnitude., so 30 bytes needed per fft. 20 ffts x 30 bytes = 600 bytes....so this (depending on sketch size) should fit.

Do you have experience if using fft's profiles to store a sample, gives a somewhat recognizable playback?

You still haven't stated the most important piece of information - what sampling rate do you think you're going to use, or equivalently, what is the highest frequency you want to be able to reproduce?
A sampling rate of 8kHz would give you audio up to about 4kHz but 0.1sec sampled at 8kHz is 1600 bytes. Even if your estimate of 600 bytes for storing the results of each FFT is correct, you won't be able to store those results and the samples for 0.1sec in the available sram and still be able to do an FFT.

Pete