HomeBakery

FM音源ドライバ「FMP」で作成した曲を公開しています。
FMP7の使い方からMMLによる曲データ作成の方法も掲載!

FMP7で曲データを作ってみよう!(補足編:カウント数による音長指定)

2018-08-18 09:26:29 | 曲データの作り方(補足編)
前提:FMP7で曲データを作ってみよう!(補足編:連符について)を読んでいること
 
前回の補足編では、連符の説明の中で「音長」のお話をしました。
音長は下の図のように、音符に対応した数値を音階の後ろにくっつけることで指定できます。

ただ、この指定方法だと、音長「6」「12」「24」「48」といった中間値までの指定が限界で、それ以上細かい音長指定はできません。
ギターソロでのグリッサンド、ボーカルのしゃくりといった絶妙な部分を表現しようとするために、もっと細かい音長指定が欲しくなりますよね。
そういった場合、クロックカウント数で音長を指定する方法があります。
 
 
■クロックカウント数で音長を指定する方法
まずここで言う「クロックカウント」とは、全音符の分解能を定義することをいいます。
MMLの冒頭で「おまじない」のように指定している

ClockCount=192

この指定で、全音符(つまり音長「1」)=クロックカウント数「192」と定義しています。
あとは音階の隣に「c#192」といった感じで「#」をつけることでカウント数として音長を指定することができます。
この例だと全音符のド「c1」と同じになりますね。
そのほかの音長も、192から割り算してあげれば、おのずとカウント数が算出できます。(下図、参照)

上の数値を参考にしてあとは、ちょっと長くする、ちょっと短くするといった細かい音長指定が可能になります。
 
ただ、全音符を192カウントと定義している以上、「1小節内の合計カウント数を192」で納めないといけません。
あまり多用しすぎると計算ミスなどで、192カウントに足りなかったり、オーバーしたりして音ズレが発生しやすくなります。
さらに通常の音長指定とカウント数指定を混ぜて使用してしまうと、更に計算がややこしくなってきます。
 
ですので、カウント数指定は「音階+音長」の「音長指定側」で使うよりも、ピッチベンドやLFOの「開始タイミング(遅延)」といった「オプション側」で使うほうが、音ズレの発生をさせずに細かい調整ができます。
 
例えば、大本が「c4」だったギターパートのMMLを後半、グリッサンドにしたい場合
(音ズレしやすい使用例)c#34 & c#14_<c
(メンテしやすい使用例)c4_<c#34
 
どちらの例も同じ再生結果になりますが、
前者の場合、グリッサンド部分の音長#14を変更したい場合、前半の#34も変更を余儀なくされます。
(合計で4分音符分のカウント#48にしなければいけないため)
後者の場合、音長指定は変えていないため、#34の数値だけ調整してあげれば、音ズレの心配なく、最適値の調整を細かくしていくことが簡単になります。
上記の例はギターのグリッサンドだけなく、ボーカルのフォールの時などにも有効ですね。
 
ボーカルのしゃくりの場合は、どうでしょう?

例えば、大本が「b4」だったボーカルパートの最初にしゃくりを入れたい場合、
(音ズレしやすい使用例)a24_b#7 & b&b12
(メンテしやすい使用例)a24_b#7 & b4~24

これもどちらも同じ再生結果になります。
今回の例では「しゃくり用の音長」+「残りのビブラート用の音長」に分割して入力しています。
前者の場合、単純に音長を分割しているので、カウント数指定ではないにしろ計算が面倒ですし、メンテするにも見にくいですよね。
後者の場合、しゃくり用に確保した分の音長「24」を大本の「b4」から減算させています。
音長の減算には「~(チルダ)」の記号を使います。この記号の後に指定した音長分マイナスするので、結果差し引き4分音符の音長とイコールになっています。
 
実際のMMLによる曲作りは、修正→コンパイル→試聴→修正→コンパイル→試聴の連続になります。
慣れるまで入力したパラメータに対して、コンパイル後の演奏イメージが直結しにくいためです。
なので、音長指定やカウント数指定、そして減算(~)を上手に使って、調整しやすいMMLにすることで、入力ミスなどを減らし、その分バランス調整に時間を費やせるようになります。
 
今回は少し難易度が高い補足編となってしまいましたが、是非このあたりを意識してみてください。
余計なミスでイライラすることがグッと減りますよ(笑)
 
 
■最後に
グリッサンドや、しゃくりといった具体的な手法を例として挙げていますが、今回示したMML表記方法が、必ずしもそれらの表現を限定しているものではありません。
手法に対するMMLの表現方法は自由であってよいので、あくまで個人的な例として捉えてください。

FMP7で曲データを作ってみよう!(補足編:連符について)

2018-08-17 13:54:14 | 曲データの作り方(補足編)
補足編の3回目は「連符」についてです。

連符とは、ある音符を何等分かに分割することを言うのですが、2分音符や4分音符、8分音符といった音長に対して、2等分、4等分、8等分することは簡単です。
 
例えば、4分音符を2等分するということは、8分音符2つ分といったように、キレイに分割できます。
でも、4分音符を3等分したい場合、用意されている音符ではキレイに分割することができません。(下図参照)
こういう場合、楽譜だと下のように表現されているのを見たことがあるかもしれません。この図の場合、3連符と言います。
これをMML上で入力する方法は2種類あります。
1つは、連符コマンドを使う方法。もう1つは直接、音長指定する方法です。
 
 
■連符コマンドを使う方法
MMLで連符を実現するためには、連符コマンド。というか表記方法があります。

上記のように中カッコ({ と })で音階を括って、最後に「分割前の大本の音長」を添えます。

中カッコの中の音階を増やせば、単純に何連符でも指定できますが、大本の音長より多く音階指定すると、理論上分割することはできませんので、コンパイルエラーとなります。
また、「{ [c]3 }4」のように、連符コマンド内では、繰り返し指定が使えないというのがデメリットです。
以上のように使い方に少しクセのある方法ですが、楽譜からの打ち込みとかなら迷わないので確実です。
 

■直接、音長を指定する方法
こちらは、MMLの基本となる「音階+音長」の入力スタイルを崩すことなく打ち込めるので、自分はこちらを使っています。
ただ、音長は、下の図のように音符ごとに数値が決まっているので、連符を入力する上でどんな音長を数値にすればよいのでしょう?
 
実際に入力する場合は以下のようになります。
上記の音長「12」という数値はどこから来るのでしょう?

8分音符だと2つ分、16分音符だと4つ分になるから、3つ分にするならその中間の数字にすれば良いというのは感覚的にわかると思います。
3連符や6連符であれば、この直接音長指定のほうが簡単ですね。
ちなみに、同じ考え方に則れば
・2分音符の3連符指定の時の音長は「6」
・8分音符の3連符指定の時の音長は「24」
・16分音符の3連符指定の場合の音長は「48」
となります。(3連符なら、大本の音調の3倍の数値という覚え方を自分はしています)
 
音長指定による分割のメリットはもう1つあります。
連符コマンドだと当たり前なことですが、音長は必ず等分されます。
でも、音長指定ならより柔軟な分割もできます。
例えば、4分音符が音調「12」の3つ分だとするなら、音長「6」や音長「24」を混ぜ込んで分割することもできます。
つまり「c12 c12 c24 c24」で4分割とか、「c12 c6」で2分割とか。
※連符のお話とはちょっと離れてしまいましたが、次回の補足編のフラグでもあるので、連符コマンドしか使わないという人も、この音長指定の数値の概念はちょこっと頭の隅に入れておいてくださいね
 
で、5連符とかになってくると流石に無理(音長直接指定では等分できない)なので、連符コマンドを素直に使いましょう。
強引に音長直接指定しようとすると、コンパイル時に「カウント数が整数値ではありません」というワーニングメッセージが表示されます。
メッセージだけだと意味がわかりにくいですが、「音長の指定が適切ではない」と理解してもらってよいです。実際、この部分で音ズレが発生しているはずです。
 
それでは、また次回。