Subtracting Audio Signal from Ambient Noise Signal
What you're doing is known as "echo cancelling" (also here) and it's a common problem in the implementation of speakerphones. The gist of the problem is that the version of the music that you're getting from the microphone has been heavily modified (relative to the "clean" version you're getting directly from the radio) by the reverberation of the space it's playing in. A direct subtraction of the two signals will not achieve anything useful.

Instead, an adaptive FIR filter is used to build up an electronic copy or model of the acoustic reverberation, and the output of this filter can then be subtracted from the microphone signal to get a useful amount of cancellation.

The real trick is the algorithm that's used to "train" the filter, which needs to use heuristics to decide what's reverberation and what's actual background noise or conversation. These algorithms are far from trivial.