Is there free software for recognizing a song when it plays?

I'm not sure if you have a smartphone, but Shazam and SoundHound work well by using the phone's mic to identify songs while they're playing. And I know you said you don't want to use MusicBrainz, but have you tried the scan feature? It scans the song and tries to identify it based on a musical "fingerprint", not just by metadata.