BGMPLAY命令には待ち合わせ機能がありません、そして、同じトラックに対するBGMPLAYは、前のBGMPLAYを停止して後のBGMPLAYを実行します。したがって、BGMPLAYを繰り返しているためにうまくいかないようです。それを避けるには、BGMCHK関数(これも待ち合わせ機能はありません)で、終わったかどうかを確認してからBGMPLAYを実行する必要があります。 しかし、かっちんさんの言うようにMMLの中で繰り返しを指定して、止めたくなったら、BGMSTOPで止める方法の方が、他の事を平行してやるときには便利な場合が多いような気がします。