Just for educational purposes… yes audio.play() will find a free channel but that might find a free “reserved” channel that you have set up for other purposes with different configuration.
For example, I reserve the first 5 channels for music but not all channels may be playing at the point I call audio.play() so therefore Corona might assign channel 3 when I don’t want it to.
I post code, not just for you, but for others too.
P.S. with a complicated audio setup it is always best practise to set your audio levels before loading sounds or streams.