First of all, if you can, you should use one song and multiple Subsongs, so that you can share their instruments/arpeggio/pitchs and thus save memories (and no, there is no merge yet...).
But if you use multiple songs:
- the stop method only cuts the PSG channels, but if you switch directly from one song to another, you don't need to call it.
- simply call the init method with the address of the next song, and play it normally.
So there is no need to stop/init with empty song/init second song like you're doing. Simply call the init second song.
If there is an infinite loop, please send me your song and I'll check what is happening.