曲のデータはMMLではなく、画面に出ている通りのものをDATA文として持っています。単純に「O」のところで音が出る、というだけの仕様(...だったのですが、「F#」を出す必要があったので、代わりに「#」と書いたら半音上の音が出るようにしました)。
プログラムは、そのデータを見ながら、1音ずつのMMLとして8個のチャンネルを順番に使って演奏しています。ユーザー定義の曲データは128個登録できるので、あらかじめ、すべての音階ごとのMMLを作ってBGMSETしてあります。
一度に複数の音を出すときは、わざと1フレーム待ってから1音ずつ鳴らすようにしています。こうすると微妙にタイミングがずれてオルゴールっぽく聞こえます。
↓プログラム部分のQRコードです。(曲のデータ部分は入っていません。)

0 件のコメント:
コメントを投稿