designing FIR narrowband pass filter using windowing technique
At 44.1 kHz sampling frequency, an FIR (and possibly also linear phase) digital filter with a pass band of 20 Hz would require very large number of taps. If this is not an issue for you then the design is straight forward by the windowing method. You can use Kaiser window design principle to find the minimum length of a Kaiser window that meets your design criteria (namely the maximum pass and stop band ripples, and the transition band width).

The following OCTAVE / MATLAB commands design a very narrow band bandpass FIR filter,specified by its parameters according to your only given cirteria.
The filter length is not unique, you can play with it to find the minimum
that meets your other criteria (if there are any).

Fs = 44100;        % Sampling Frequency
fc1 = 490;         % cutoff frequency 1
fc2 = 510;         % cutoff frequency 2

L = 20000;         % length of the FIR filter
h = fir1(L , 2*[fc1,fc2]/Fs ,'bandpass');    % bandpass FIR filter.

figure,freqz(h,1,L);
title('Frequency response of the FIR filter');


and the result is: (I've zoomed into the pass band frequency region to observe it clearly...)