Low-Pass FIR that keeps all values positive Let's say, that I want to low-pass the norm (hence positive values)  of an analytic signal (related to Hilbert transform). This allows me to perform experiments with the envelope of audio.

For low-passing, I apply a Gaussian blur. It's technically the same as applying multiple time a moving average.
The advantages of a Gaussian blur are:


easy to implement, and enough fast.
good attenuation in the "stop band" (I just have to iterate more moving average to improve this).
all values remain positives. This is important, because  I use the low-passed norm to perform divisions. 


But I'd like to test a low-pass with a narrower transition band.

Could you suggest me a simple solution, for a low-pass FIR (or something "linear phase" anyways) , with a narrower transition band than a straightforward Gaussian blur, and that allows to keep all values positive. For instance, with a sinc based FIR, there are oscillations around the zero line, and I want to avoid that. Adding an offset is out of question, as I want a result that is representative of the amplitude of the audio.
You can't, at least not strictly. Low pass filters with an all positive impulse response will always have a very wide transition band.

However, if you want to do audio envelope detection both Hilbert Transform and low pass filters are the wrong tools for the job: Hilbert Transformers don't work well on broad band signals and low pass filters mess up your transients and onsets.