the way the stereo inversion thing works is to invert the exact same signal to cancel itself out
let's say noise is a bunch of random numbers:
-3 -2 7 8 -4 6 2 3 -8 -9 1 0 -3 4
if you take that exact sequence and add it to the inverted version of itself, you get silence:
-3 -2 7 8 -4 6 2 3 -8 -9 1 0 -3 4
+ + + + + + + + + + + + + +
3 2 -7 -8 4 -6 -2 -3 8 9 -1 0 3 -4
= = = = = = = = = = = = = =
0 0 0 0 0 0 0 0 0 0 0 0 0 0
however, if you take some pre-recorded noise, or noise from a different source, that'll be a different set of random numbers:
8 -2 6 -4 1 -2 -1 4 -5 8 -3 7 -7 3
add them together and you just get even louder noise
-3 -2 7 8 -4 6 2 3 -8 -9 1 0 -3 4
+ + + + + + + + + + + + + +
8 -2 6 -4 1 -2 -1 4 -5 8 -3 7 -7 3
= = = = = = = = = = = = = =
5 -4 13 4 -3 4 1 7 -13 1 -2 7 -10 7
this means it has to be done in realtime using the same device - you can't use recorded noise, you can't use noise from a different gba, basically if you can't get one channel with your song on it and a second channel with just noise, you're out of luck
software noise reduction is done with fft / eq / gating / expansion and is necessarily imperfect, depending on the quality of the software you use to do it, it can either sound good or terrible
the stereo inversion method doesn't work the same way at all and in theory itshould perfectly remove any noise without affecting your recording negatively in any way