おそらく最も簡単かつ簡潔な方法を紹介しておきます。
※遅延とか細かいことを気にする人は,他のやり方を調べてください。
本当はBGM・SE両方ともwavの方が楽なのですが,
BGMはwavだと容量が大きくなりがちなので,mp3にします。
※wavでいいならwavでも下記方法で問題ないです。
逆にSEは1秒前後のものが多いので,wavで。
使うのはsndPlaySoundとmciSendStringの2つです。
sndPlaySoundでmp3を扱うためには,特殊な処理が必要なので,
こちらをSE(wav)にして,mciSendStringでBGM(mp3)を
扱うことにします。
両方mp3にしたければ,両方mciSendStringにすれば出来ると思いますが,
コードが少し面倒なので今回は避けます。
以下,コード例です。
ループ素材を使った音楽だとMIDIで出力できないので,
複数のWAVEを同時に流すようにプログラムしています。
方法に関しては後日まとめます。