My suggestion is to let users set custom BPM values on maps (edit: just for sorting, not change the map in any way).
Some maps like http://osu.ppy.sh/b/133476 have 110 BPM, and mostly 1/4 notes. I myself prefer to single tap these notes, so the map for me effectively is 220 BPM. However, when sorting by BPM it is near true 110 BPM maps, and not 220 BPM maps, so it gets left out.
On the other hand there are maps like http://osu.ppy.sh/b/43582 which have only 1/1 and 1/2 notes, so effectively the map is half the BPM (130 in this case). However, since it's listed as 260 BPM map, it gets sorted near very fast maps, so again it's not where it should be and gets left out from slower maps.
The BPM value doesn't absolutely have to be user input. There could be toggles for each map like 2x BPM, 0.5x BPM, 1.5x BPM etc. This should be client-side.
edit2: dismissed my suggestions that are not relevant anymore (collections work nicely for those), also one suggestion has it's own thread now t/122614
Some maps like http://osu.ppy.sh/b/133476 have 110 BPM, and mostly 1/4 notes. I myself prefer to single tap these notes, so the map for me effectively is 220 BPM. However, when sorting by BPM it is near true 110 BPM maps, and not 220 BPM maps, so it gets left out.
On the other hand there are maps like http://osu.ppy.sh/b/43582 which have only 1/1 and 1/2 notes, so effectively the map is half the BPM (130 in this case). However, since it's listed as 260 BPM map, it gets sorted near very fast maps, so again it's not where it should be and gets left out from slower maps.
The BPM value doesn't absolutely have to be user input. There could be toggles for each map like 2x BPM, 0.5x BPM, 1.5x BPM etc. This should be client-side.
edit2: dismissed my suggestions that are not relevant anymore (collections work nicely for those), also one suggestion has it's own thread now t/122614