前回は3音を使って、複雑な曲を作りました。
今回は一般歌謡曲で落ち着いた感じの曲を作ってみようと思うのですが
作ってみると1度に鳴らす音の数が頻繁に変わる、違う意味で複雑な曲でした。
複数の音数を使い分けて曲を作る
音の数毎に関数を作る
今回作る曲は最大時4つの音を同時に出します
そこで、1音、2音、3音、4音の4つの関数を基本として
強調したい部分を別に作ります。
音を入力していく
今回作る曲は序盤は一見普通ですが、途中から
bwdqz1d(s,b,SIZ_FREQ,MI_FREQ,SOX_FREQ);
wait_ms(cc);
bwkaze(s,b,MIZ_FREQ,SOX_FREQ);
wait_ms(cc);
bwdqz1d(s,b,SIZ_FREQ,MI_FREQ,SOX_FREQ);
wait_ms(cc);
bwdqz0(s,b,MIZ_FREQ);
wait_ms(cc);
bwkaze(s,b,MIZ_FREQ,SOX_FREQ);
wait_ms(cc);
bwdqz1d(s,b,SIZ_FREQ,MI_FREQ,SOX_FREQ);
wait_ms(cc);
bwdqz0(s,b,MIZ_FREQ);
この様に3音、2音、1音が入り乱れる事になります。
疑似和音は一定時間の中で何種類かの音を鳴らすので
その種類が増える程1つ1つの音の長さ、音量も小さくなり音自体が埋もれます。
同じ音数の中でなら調整も出来ますが、音数が毎回変わると
同じ音を同じ長さ、音量で流す事が難しくなります。
上の例ではソの音が3連続で鳴っていますが、3音、2音、3音となっているので
完全に同じ長さ、音量でソが鳴り続けてはいません。
強引な解決策としては同じ3音関数に2音だけ音を入力して1音空白な無音状態にする事で
この場合ではソの音を同じ長さ、音量に保ちます。
どの様な曲かでもやり方に良し悪しがあると思うので、
極力違和感のない選択肢を選びたいですね。
今回の参考曲
今回の参考資料はこの動画になります。
前回の曲は入力するのにかなりの時間を要したので、
今回は如何に早く入力出来るかを試してみました。
その分全く音の長さ、音量の調整がされてませんが、ガンプラで言うところの素組みで
どんな感じになるか伝わればと思います。
では次回ですが、
どういう音が出せるかまだ調べたいので、また激しいものに挑戦しようかと思っています。
さらに将来的な目標としては走りながら曲が鳴らせたらと思います。