FIR band pass

I’m trying to improve the efficiency of my FIR filters. I have code that can generate the high and low pass Type I and II coefficients and a Type I bandpass (which requires an odd number of samples in delay line). Is it possible to multiply out the HP and LP to create a set of coefficients to create a BP filter (I’m assuming not but!) or do I stick with chaining. (subtracting one LPF from another seems to cause artifacts for me)

My goal is to create a BPF with even num of samples

Not sure if I got you right, but from a theoretical point of view, your FIR coefficients equal the filters’ impulse response. To obtain the overall impulse response of two Systems chained in series (—> which would equal the coefficients for the overall bandpass), you need to convolute both impulse responses. However the result of a convolution of two impulse responses of an even lenght will again be of an odd length.

Now why do you actually need an impulse response of an even length?