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