HomeBakery

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

曲データの作り方(まとめ)

2022-03-14 08:56:36 | How to FMP7

FMP7データを再生して、自分も曲を作ってみたい!と思った方は、是非挑戦してみて欲しいです。
FMP7ではMML(Music Macro Language)という言語を使って、プログラミング感覚で入力していく作成スタイルとなっています。
このブログでは、「曲データの作り方」と題して、実際に入力したものを鳴らしながら学んでいく形で不定期で連載しています。
あまりに不定期なので紹介している記事が分散しがちなので、リンクとしてまとめました。
このページをブックマークして、上から順に、実際に試しながら読み進めてみてくださいね。

■How To FMP7
FMP7でデータを再生してみよう!
FMP7のダウンロードとインストール。曲の再生の仕方
https://blog.goo.ne.jp/wanispro/e/4656d28d90692e1ec4796b69126ef100

FMDSP7を使ってみよう!
再生するだけじゃもったいない。データの演奏状態を見てみよう!
https://blog.goo.ne.jp/wanispro/e/f69c5c30a8ad99f780ec96d0dd178262


■曲データの作り方(基本編)
FMP7で曲データを作ってみよう!(基本編その1)
FM音源の鳴らし方(まずは鳴らしてみよう!)
https://blog.goo.ne.jp/wanispro/e/63cbddce2287fe269eb14ff8a42bb25d

FMP7で曲データを作ってみよう!(基本編その2)
FM音源の鳴らし方(MMLの中身を説明)
https://blog.goo.ne.jp/wanispro/e/5fa7d14b1e531644a28bc6d7d40f128b

FMP7で曲データを作ってみよう!(補足編:MMLの基本って?)
上の基本編1と2がよく分からない人はこちらをご覧下さい(わかった人は次へ進みましょう!)
https://blog.goo.ne.jp/wanispro/e/2505d1ac1630e9778876c6921ca9da06

FMP7で曲データを作ってみよう!(基本編その3)
FM音源の鳴らし方(ベースパートを追加しよう!)
https://blog.goo.ne.jp/wanispro/e/91b4aed24953921f5beb598935b592e6

FMP7で曲データを作ってみよう!(基本編その4)
FM音源の鳴らし方(ブラスパートを追加しよう!)
https://blog.goo.ne.jp/wanispro/e/eb36f314071c890547adf114555dac7b

FMP7で曲データを作ってみよう!(基本編その5)
FM音源の鳴らし方(ドラムパートを追加しよう!)
https://blog.goo.ne.jp/wanispro/e/5a95efa242fc99d0a2b410eedd6a7c84

FMP7で曲データを作ってみよう!(SSG音源の鳴らし方)
SSG音源の鳴らし方(MMLの中身を説明)
https://blog.goo.ne.jp/wanispro/e/1bc43181fd649f6f1d65b8b652a7d4ef

FMP7で曲データを作ってみよう!(SSG音源で波形を変えてみよう)
SSG音源の鳴らし方(波形を変えて音の特色を知ろう)
https://blog.goo.ne.jp/wanispro/e/c6411a5209957f78d00775746f48ab88

FMP7で曲データを作ってみよう!(PCM音源を使ってみよう)
PCM音源の鳴らし方(サンプリング素材の扱い方とMMLの中身を説明)
https://blog.goo.ne.jp/wanispro/e/c1b66a321046ec589401380486eb3c24


■曲データの作り方(応用編)
応用編1:ディチューンって何?
音に厚みを与えるディチューンの使い方
https://blog.goo.ne.jp/wanispro/e/a98d5ea897fe8e6a3ff98712f7fc5781

応用編2:パンポット(パン)を活用しよう!
音の広がりを表現できるパンの活用法
https://blog.goo.ne.jp/wanispro/e/ffd1c86878c23016e229cf8bfec8712a

応用編3:ディレイとその使い分け
ディレイを使ったエコーの表現方法とその使い分け
https://blog.goo.ne.jp/wanispro/e/6b4fbe02078bdfc700ab3dd82089b774

応用編4:ここまでのまとめ
ディチューン、パン、ディレイを使ってデータをちょっと豪華に変身!
https://blog.goo.ne.jp/wanispro/e/3525d817f0e1a24ed04e4ffdd082e8b2

応用編5:LFOで表現力アップ!(ビブラート編)
LFOによるビブラート表現について
https://blog.goo.ne.jp/wanispro/e/bc35795d4d50408babbcfb180c813ba7

応用編6:LFOで表現力アップ!(トレモロ編)
LFOによるトレモロ表現について
https://blog.goo.ne.jp/wanispro/e/9b08e9ee3ac7b078f081be61e9841552

応用編7:LFOで表現力アップ!(オートパン編)
LFOによるオートパン表現について
https://blog.goo.ne.jp/wanispro/e/ee683df8591833f28658c7bdb039be60

応用編8:ノイズも立派な楽器なのです
ノイズによる効果音の作り方
https://blog.goo.ne.jp/wanispro/e/000e28b2ccf502f231e6dce9f75f4a2c

応用編9:いろいろなFM音源音色を使ってみよう
FM音源音色のパラメータを扱ってみる
https://blog.goo.ne.jp/wanispro/e/11af00a1e1dd230fbd2faf6643df18fc

応用編10:FM音源でパーカッション系音色を使う
FM音源でパーカッション系の音色をより本物っぽく鳴らす
https://blog.goo.ne.jp/wanispro/e/2659f45ef1b1977fe1792bff85030de0


■曲データの作り方(補足編)
FMP7で曲データを作ってみよう!(補足編:MMLの音長ズレを無くしたい!)
効率的なMMLの打ち込み方を教えます!
https://blog.goo.ne.jp/wanispro/e/79f9e9e7916bc5c08fc1f017e4b1059b

FMP7で曲データを作ってみよう!(補足編:連符について)
入力が少し面倒でMMLにおいて質問も多い連符について教えます!
https://blog.goo.ne.jp/wanispro/e/d739c1d4f2f6e287adb818d85d059603

FMP7で曲データを作ってみよう!(補足編:カウント数による音長指定)
カウント数による音長指定方法と、効果的な使い方を教えます!
https://blog.goo.ne.jp/wanispro/e/a9ead30d5649377451b88b04646aeb84

FMP7で曲データを作ってみよう!(補足編:バランス調整について)
曲全体のバランス調整(つまりミックス)について、その手段を教えます!
https://blog.goo.ne.jp/wanispro/e/eeba12b060b2da0452b2ca302eae9fdb

FMP7で曲データを作ってみよう!(補足編:ディレイを使わないエコー表現の効率的な入力方法)
あの難解なMMLを効率良く打ち込みたい人は必見です!
https://blog.goo.ne.jp/wanispro/e/833a5bd90535d1c2481d8dd733ea05bb


【ツインビー・ヤッホー!】FM音源版「Twin Flight」

2022-03-14 08:54:36 | FMPデータ

昔作ったFM音源アレンジデータです。
ツインビー・ヤッホー!から1面BGM「Twin Flight」です。
サントラCDのブックレットに掲載してた楽譜から作ったものですね。

FM6音+SSG3音(内SSGPCM1音)+リズム5音+ADPCM1音

再生は、SoundCloudで。


【ツインビーPARADISE】FM音源版「Twin memories」

2021-12-18 22:07:56 | FMP7データ

【ツインビーPARADISE】FM音源版「Twin memories」

25年以上も前にFMPv4(OPNA)でカバーした國府田マリ子さんのTwin memories。
四半世紀の時が経ち、この度FMP7版として完全リメイクしました。
本当に作りたかったTwin memoriesがここにある!w

Windows上で動作する音楽ドライバ「FMP7」を使用しています。
FM24音+SSG23音+PCM7音で構成されています。

パート割りを紹介しておきます。

【FM部】
・ベース 1音
・ボーカル 3音
・ピアノ / パッド 6音
・コーラス / ピチカート 6音
・ギター / ストリング / シンセリード(間奏) 8音

【SSG部】
・ピアノ 8音
・ボーカル 3音
・効果音/汎用 6音
・コーラス 6音

【PCM部】
・ハイハット 1音
・シンバル 1音
・バスドラム 1音
・スネアドラム 2音
・タンバリン 1音
・コンガ/タム 1音

----ここからはTwin memoriesにまつわる小話----

25年以上も前に作ったFMPv4版はデータ作成活動を始めた初期の頃に作った作品なので、今聴き直してみるとお恥ずかしい所もありますが
当時はOPNAでTwin memoriesが聴けるなんて。とお言葉をもらったりしてとても嬉しかった思い出があります。

OPNAという制約の中で歌モノをカバーすると大体何かしらのパートを落とさざるを得ないのですが
この曲場合、特徴とも言えるコーラス隊を再現するためのチャンネルを確保することができませんでした。

しかも原曲では、サビからその他のパートも一斉に同時発音するので圧倒的なチャンネル不足に陥りました。
当時は本当に特徴的な音だけを何とか摘まみ食いしてパズルのように空きチャンネルに埋め込んでいた記憶があります。

今回FMP7版としてリメイクとは言っていますが、FMPv4版のMMLはほとんど流用せず、イチから作り直しました。
当時、嗚呼あと2チャンネル。。いや、1チャンネルでもあれば!と思っていたものですが
時代の進化は凄いモノで、FMP7の多チャンネル構成の実現により、この想いは無事、昇華されたのでありました。


【ソーサリアン追加シナリオVol.1】FM音源版「魔性の島 arrange version」

2021-08-29 15:32:06 | FMP7データ

【ソーサリアン追加シナリオVol.1】FM音源版「魔性の島 arrange version」

2018年の正月に時間があったので作ってTwitterに上げたものです。
リクエストでサクッと作った割に、なかなか良い感じに仕上がりました。

音数に制限なければこんな風になっていたんだろうな。的な。

Windows上で動作する音楽ドライバ「FMP7」を使用しています。
FM23音+SSG12音で構成されています。

FMP7データをダウンロードできるようにしました!こちらからどうぞ!


FMP7で曲データを作ってみよう!(補足編:ディレイを使わないエコー表現の効率的な入力方法)

2021-02-21 20:40:43 | 曲データの作り方(補足編)

【対象者】
・「応用編3:ディレイとその使い分け」において、後半のディレイを使わない表現方法において、MMLの入力方法がわからなかった方

応用編3:ディレイとその使い分け」で、学校のチャイムを例にしてディレイの表現方法を学びました。

「メインのメロディーチャンネルとは別に、音量を下げて少し遅らせて同じメロディーを流すチャンネルを作る」
というやり方でした。MMLとしては下のようになります。

'{
 Title=ディレイsample(After)

 PartSSG=A1-A3
 PartMixLevel=100
 ClockCount=192
}

'A1 T80

'A1 v120 o5 l8 D0 P128
'A2 v 60 o5 l8 D2 P108 r
'A3 v 30 o5 l8 D4 P148 r4

★SSGエンベロープ
'@ E 1, 255,255,255,255,004,001

'A123 @1,1 E1

'A123 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

これとは別に、ディレイを使わない方法でエコーを表現するやり方も学びました。
鉄琴の音板をイメージして、1チャンネル1音にする方法ですね。
MMLとして以下のようになります。

'{
 Title=ディレイを使わずに表現する

 PartSSG=A1-A4
 PartMixLevel=100
 ClockCount=192
}

'A1 T80

'A1 v120 o5 l8 D0 P128
'A2 v120 o5 l8 D0 P128
'A3 v120 o5 l8 D0 P128
'A4 v120 o5 l8 D0 P128

★SSGエンベロープ
'@ E 1, 255,255,255,255,004,001

'A1234 @1,1 E1

'A1 r4 r4 r4< g2. &g4&g4&g4&g2. &g4&g4&g4 g2. g4 &g4&g4&g2.
'A2 c4&c4&c4 &c2.  c4&c4&c4 c2. &c4c4& c4&c2.&c4 &c4&c4 c2.
'A3 r4 r4 d4 &d2. &d4 d4&d4&d2. &d4&d4 d4&d2.&d4  d4&d4&d2.
'A4 r4 e4&e4 &e2. &e4&e4 e4&e2.  e4&e4&e4&e2.&e4 &e4 e4&e2.

上記のMMLは、考えながらダイレクトに入力しようとするととても難しいです。
混乱しますし、入力をミスした時に修正箇所が見つけにくいです。

そこで自分が入力する時のコツを教えます。
ちょっと遠回りですが、慣れれば入力ミスを減らし、結果効率よく入力できると思います。


(1)まずは普通に入力する
まず1チャンネルで普通にMML入力しましょう。
ここで、意図したとおり入力できているか、再生して確認しておきましょう。

'{
 Title=ディレイを使わずに表現する

 PartSSG=A1-A4
 PartMixLevel=100
 ClockCount=192
}

'A1 T80

'A1 v120 o5 l8 D0 P128
'A2 v120 o5 l8 D0 P128
'A3 v120 o5 l8 D0 P128
'A4 v120 o5 l8 D0 P128

★SSGエンベロープ
'@ E 1, 255,255,255,255,004,001

'A1234 @1,1 E1

'A1 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

 

(2)作った1チャンネルのMMLを複数チャンネルコピーする
分割したい分だけチャンネルをコピーして増やします。
今回は1音1チャンネルなので、4チャンネルに増やします。
ここで必ず再生して、全てのチャンネルが同じオクターブで再生されているか確認しておきましょう。

'{
 Title=ディレイを使わずに表現する

 PartSSG=A1-A4
 PartMixLevel=100
 ClockCount=192
}

'A1 T80

'A1 v120 o5 l8 D0 P128
'A2 v120 o5 l8 D0 P128
'A3 v120 o5 l8 D0 P128
'A4 v120 o5 l8 D0 P128

★SSGエンベロープ
'@ E 1, 255,255,255,255,004,001

'A1234 @1,1 E1

'A1 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

 

(3)前後の音階を見ながら、適用するチャンネルを1つ決めて、残りを休符にする
ここからが一番、勘所が必要になってくる所ですが、1小節分くらいの音階の流れを見つつ、
A1がオクターブが一番低い音階。A4が逆に一番高い音階になるように、適用するチャンネルを1音ずつ決めて行きます。

'A1 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

たとえば、上記の最初の約1小節分「c4e4d4<g2.」の流れを見ると
「g2.」が一番低いオクターブなので、A1チャンネルに。
「e4」が逆に一番高いオクターブなので、A4チャンネルに割り充てます。

下のように「g2.」はA1チャンネルだけ残し、残りのA2からA4の「g2.」は休符「r2.」に置き換えます。
'A1 c4e4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4e4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 c4e4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 c4e4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

一番高い音階の「e4」もA4チャンネルだけ残し、残りのA1からA3の「e4」は休符「r4」に置き換えます。
'A1 c4r4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4r4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 c4r4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 c4e4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

こうすると最初の1音目の「c4」が音階的にA2チャンネルに決められます。同じように書き換えます。
'A1 r4r4d4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4r4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 r4r4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 r4e4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

3音目の「d4」は残ったA3チャンネルに割り当てましょう。同じように書き換えます。
'A1 r4r4r4<g2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A2 c4r4r4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A3 r4r4d4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.
'A4 r4e4r4<r2.> c4d4e4c2. e4c4d4<g2. g4>d4e4c2.

慣れてくると、1音目から横へ順に書き換えができるようになってきます。
前後の音階を見ながら、割り当てるチャンネルが読めるようになってきますので。
全部書き換えると以下になります。
'A1 r4r4r4<g2.> r4r4r4r2. r4r4r4<g2. g4>r4r4r2.
'A2 c4r4r4<r2.> c4r4r4c2. r4c4r4<r2. r4>r4r4c2.
'A3 r4r4d4<r2.> r4d4r4r2. r4r4d4<r2. r4>d4r4r2.
'A4 r4e4r4<r2.> r4r4e4r2. e4r4r4<r2. r4>r4e4r2.

上記のように、1音1音がどこかのチャンネルに1つだけ残る形になればOKです。

 

(4)一度再生し、(3)が正しいか確認します。

これまでの作業をしても音が外れたりしていないはずです。
FMDSP7で再生確認し、同じ音が複数チャンネルで鳴っていないか。を確認しましょう。

 

(5)相対指定のオクターブを最適化をする
'A1 r4r4r4<g2.> r4r4r4r2. r4r4r4<g2. g4>r4r4r2.
'A2 c4r4r4<r2.> c4r4r4c2. r4c4r4<r2. r4>r4r4c2.
'A3 r4r4d4<r2.> r4d4r4r2. r4r4d4<r2. r4>d4r4r2.
'A4 r4e4r4<r2.> r4r4e4r2. e4r4r4<r2. r4>r4e4r2.

あとは上記の休符(赤字)部分を、その前の音階と同じ音階に書き換えて、タイ(&)で繋げていけばいいのですが、
ただ、相対指定のオクターブ「>」「<」がタイで繋げる時に邪魔になる場合があります。
先にそこを最適化しておきましょう。

オクターブの最適化方法として気をつけることは2つ
・1つのチャンネルに着目し、音階指定がしてあるところから、次の音階が指定されているまでの間は休符になっているので
 この間にある、相対指定のオクターブは、相殺する。

・相殺できず余った相対してオクターブ記号は、次の音階の前に集約させる

A1チャンネルを例にやってみましょう。
赤字になっている範囲の相対指定のオクターブ記号をみると「>」と「<」が1つずつあるので、ちょうと相殺できますね。
'A1 r4r4r4<g2.> r4r4r4r2. r4r4r4<g2. g4>r4r4r2.
         ↓
'A1 r4r4r4<g2. r4r4r4r2. r4r4r4 g2. g4>r4r4r2.

次に赤字になっている範囲の相対指定のオクターブ記号をみると「>」が1つだけなので相殺できません。
次の音階があるところに集約するのですが、この例だともう音階がないので、削除で構いません。
'A1 r4r4r4<g2. r4r4r4r2. r4r4r4 g2. g4>r4r4r2.
         ↓
'A1 r4r4r4<g2. r4r4r4r2. r4r4r4 g2. g4 r4r4r2.

※仮に音階があったらその直前に集約させます
'A1 r4r4r4<g2. r4r4r4r2. r4r4r4 g2. g4>r4r4r2. e4
         ↓
'A1 r4r4r4<g2. r4r4r4r2. r4r4r4 g2. g4 r4r4r2.>e4

他のチャンネルも同じように最適化しましょう。以下のようになります。
'A1 r4r4r4<g2.  r4r4r4r2. r4r4r4 g2. g4 r4r4r2.
'A2 c4r4r4 r2.  c4r4r4c2. r4c4r4 r2. r4 r4r4c2.
'A3 r4r4d4 r2.  r4d4r4r2. r4r4d4 r2. r4 d4r4r2.
'A4 r4e4r4 r2.  r4r4e4r2. e4r4r4 r2. r4 r4e4r2.

今回は、1音1チャンネルなので、綺麗に相殺できました。

 

(6)一度再生し、(5)が正しいか確認します。
これまでの作業をしても音は音が外れたりしていないはずです。
FMDSP7で再生確認し、オクターブの最適化が誤っていないか。を確認しておきましょう。


(7)休符を音階に置き換え、タイで繋ぐ

最後を休符を、音階とタイで繋いでいきます。
'A1 r4r4r4<g2.  r4r4r4r2. r4r4r4 g2. g4 r4r4r2.
      ↓
'A1 r4r4r4<g2.  &g4r4r4r2. r4r4r4 g2. g4 r4r4r2.
上記のように前の音階と同じ音階に置き換えて直前にタイ「&」を置きます。


A1チャンネルの休符を全て書き換えたのが下です。
'A1 r4r4r4<g2. &g4&g4&g4&g2. &g4&g4&g4 g2. g4 &g4&g4&g2.
'A2 c4r4r4 r2.  c4r4r4c2. r4c4r4 r2. r4 r4r4c2.
'A3 r4r4d4 r2.  r4d4r4r2. r4r4d4 r2. r4 d4r4r2.
'A4 r4e4r4 r2.  r4r4e4r2. e4r4r4 r2. r4 r4e4r2.

あとは同じようにして、全てのチャンネルを書き換えて完成です。

'{
 Title=ディレイを使わずに表現する

 PartSSG=A1-A4
 PartMixLevel=100
 ClockCount=192
}

'A1 T80

'A1 v120 o5 l8 D0 P128
'A2 v120 o5 l8 D0 P128
'A3 v120 o5 l8 D0 P128
'A4 v120 o5 l8 D0 P128

★SSGエンベロープ
'@ E 1, 255,255,255,255,004,001

'A1234 @1,1 E1

'A1 r4 r4 r4< g2. &g4&g4&g4&g2. &g4&g4&g4 g2. g4 &g4&g4&g2.
'A2 c4&c4&c4 &c2.  c4&c4&c4 c2. &c4c4& c4&c2.&c4 &c4&c4 c2.
'A3 r4 r4 d4 &d2. &d4 d4&d4&d2. &d4&d4 d4&d2.&d4  d4&d4&d2.
'A4 r4 e4&e4 &e2. &e4&e4 e4&e2.  e4&e4&e4&e2.&e4 &e4 e4&e2.


上記のように1小節くらいずつ空白で区切っておくと、万が一の時に修正箇所が見つけやすいです。

慣れるまでは、逆に時間が掛かるかもしれませんが、段階を踏んで確認しながら作業感覚で出来るので試してみて下さい。