Multiple different length Windows for high resolution realtime FFT I am looking at trying to achieve a 'realtime' (as quick as possible to acquire, process and present data) FFT application to analyse audio.  

I have setup my app to acquire a set of samples, apply a 50% overlap window function, zero pad, compute FFT, extract magnitude and phase and display these.  Currently I can do this with no issues, and minimal latency to the incoming signal.  

However, as I have chosen a small sampling window (2048 samples) to achieve a fast time, I realise that this hinders resolution.  I am also aware that there is only so much zero padding can achieve, if the acquired data is not there to begin with.  

So my question is to do with how to achieve a better resolution for lower frequencies.  It is my understanding that for accuracy, the time window should contain at least one cycle of the lowest frequency.  

Is there a way that I can perform multiple FFTs on a signal with varying lengths and 'glue' the resultant FFT together. ie, a longer FFT will do the lower frequency range, and a shorter for the higher range.  And if I can do this, will this retain phase information, or will I lose this completely?
You can, and you don't need to zero pad, but a little overlapping does come into play.

Skipping the gnarly details and hitting this with a conceptual approach.  Applies to two or more "levels".

Start with a longer frame for your low tones.  The key is you need to smooth your signal fairly heavily.  Lots of ways to do this.  Then do a DFT (what a FFT really is) on the long interval.  The reason for the smoothing is to eliminate alias frequencies at this level.  The effects of your smoothing will be frequency dependent, so there are formulas for the different smoothing techniques.  Do the inverse of the FFT of the smoothed signal with attenuation compensation applied.  Subtract this from your original signal.  You have now documented and removed your lower frequencies.  Divide the interval into smaller chunks, and do DFTs as normal at the top level.

"Pasting" them together can also be done in different ways.  Easiest is just to display one spectogram above the other as "display bands".  You can also rescale the output from being linear in frequency to exponential if you want to put your results on an octave scale.