Turns out Geanymotion was using Alsa instead of PulseAudio. To fix this:
- Open VirtualBox. Yes not Geanymotion.
- You'll see list of all the Android devices you've created from Geanymotion here.
- Click on the Android device you want to fix and click settings.
- Go to Audio tab in settings.
- In Host Audio Driver change from Alsa to PulseAudio.
- Press OK to close the settings.
- Repeat this process for all Android devices.
- Now run your Android device normally from Geanymotion and you should hear problem free perfect audio.