Bandpass with large group delay I read that a simple delay filter that delays all frequencies requires at least $\frac {N-1} {2f_s}$ taps. In my case this would result in way too many taps (20000).
Can I achieve this with significantly fewer taps (maybe around 1000, smaller by factor 20) if I either:

only want to distortionless-free delay a bandwidth of $f_s/100$ and don't care about the filter response outside of that band

or is there a way to have the center 18000 taps zero (only 1000 taps on the left and right have coefficients)?


Do you have any tips or could point me to the correction literature for this very specific case? Or are there even python functions that allow me to specifiy these requirements?
This depends a lot on whether your constraints on the number of taps is computation or memory.
If you have a enough memory, you can simply use an FIR with all taps zero except for the last one (Which is $1$). That's equivalent to using a ring buffer and no filter at all.
If you don't have enough memeory, things are more tricky. YOu can get delays that are constant with frequency with parallel/cascaded alpass filters and you can use &quot;schroeder allpass&quot; filters to crank up the group delay effificently. The best way to do this depends a lot on your specific constraints: how much memory do you have, how wide is your frequency range and how &quot;constant&quot; does that delay needs to be.