feature image

2016年12月16日 | ブログ記事

FL StudioとMid2BMSを用いた音切り

(この記事は BMS制作について Advent Calendar 2016 16日目の記事です)
(2018/9/25追記: 情報が色々古かったり不正確な部分がありそうなので、竜。氏に追随して今年中を目処にリファイン版の記事を出せたらいいなぁ出す予定です)
(2019/9/25追記: 遅くなりました→ FL StudioとMid2BMSを用いた音切り(2019 update)

初めましての方は初めまして。(ありがたくも)そうでない方はおはようございます。CLKと申します。普段はTech-nation Recordsデジタル創作同好会traPで変な曲を作っています。
本日はBMS制作入門編といたしまして「FL StudioとMid2BMSを用いた音切り」についてお話したいと思います。
なにぶん私自身がBMS制作初心者であるため内容に誤りがある場合もあるかもしれませんし、拙い文章になってしまいますが、少しでもBMS製作者の卵たる皆様の手助けになれれば幸いです。

まえがき

BMS作者が皆音切りに苦しんでいたかつての時代、颯爽と登場したBMS音切り支援ツール「Mid2BMS」。これを使えばなんと曲のMIDIデータを元に自動で音切りをしてくれる! すごい!!!!!

しかし実はこのソフト、近年音ゲー系DTMerを始めダンストラック製作者に人気の「FL Studio」に対応してないのです!残念!!!
FLはMIDI周りの仕様が他のDAWとかなり違うので仕方ないかもしれません……

それでも諦めずに「FL Studio + Mid2BMS」に立ち向かった人物がいた!!!
私ではありません! Ryu0316 (月風 竜。)さんという方です!
その竜。さんが制作された動画がこちら!
FL Studio+Mid2BMSでBMSを作る by Ryu0316 a.k.a 竜。
できた!!すごい!!!!!!

というわけでせっかくのBMS AdCという機会、この動画の内容を布教しようと思いこの記事を書き始めた次第です。

記事を書こうと思った動機


概要

対象者

基本的に以下の全てを満たす人が対象です。

目的

いずれも先述の動画で既に達成されているが、エコノミー画質だと見づらいことや一覧性/保守性等を鑑みてブログ記事という形式でまとめさせて頂く。
最低限FLで曲が作れれば、BMS化についてはこの記事だけで完結するよう心がける。

内容

内容に含まないもの


用意するもの


BMS化しやすい「素朴な打ち込み」のコツ

気をつけるべき事

参考:
How to Use: Mid2BMS Tutorial
FL Studioを使った作曲+BMS制作入門 - bm-asahi.com

①チャンネル名・並び順をわかりやすくする

普段の曲作りでも気をつけるに越したことはないと思いますが、BMS化する場合は特に注意して下さい。欲しいキー音が行方不明になったりだとか色々面倒が起こる恐れがあります。
あと、音源を立ち上げただけで使っていないチャンネルがあったら 絶対に 消しておきましょう。後で死ぬほど面倒になります。(体験談)
あとチャンネル名がそのままキー音のファイル名になるので見られて恥ずかしくないように。

②なるべくノートの「長さ」「ベロシティ」を揃える

Mid2BMSではいずれか一方でも、少しでも違うと別の音として切り出されてしまいます。
無駄に音数が増えてしまうと容量もかさばりますし、何かの理由でキー音を差し替えたい場合などには、なにより自分が大変です。揃えるようにしましょう。
もちろん意図的に音に変化をつけたい場合は構いません。
(長さについては救済用の「Oneshot?」モードもありますが、手間やミスを減らすために打ち込み段階で気をつけるのが良いと思います。)

③ステップシーケンサーはあまり使わない

主にドラム類に使うやつ

理由は②とほぼ同じです。FLはステップシーケンサー(画像参照)で打ち込むと「Infinite」という特殊な長さのノートになってしまいます。MIDI書き出しの際に変な事が起こるので、ドラム類もピアノロールで打ち込みましょう。
最初はステップシーケンサーで打ち込んで後でピアノロール上で引き伸ばしても一応構いませんが、相当な確率で忘れたり漏らしたりするので最初からピアノロールで打ち込みましょう。

④適度にクオンタイズする

①の「ノートの長さ」の問題はもちろんですが、あまりに細かい微ズレがあるとMid2BMSやBMSEなど関連ツールがバグるらしいです。そしてなにより、曲全体を通して微ズレばかりだとやっててしんどいです。(※個人の感想)
基本はクオンタイズして、微ズレのノートを置きたい場合も一目でズレを認識できる程度の間隔を取りましょう。BPMにもよりますが、できるだけ96分程度でクオンタイズするのが良いかと。

⑤なるべくオートメーションを使わない

MIDIノートを完全にバラしてしまうblue modeで困るのはもちろんですが、FLがオートメーションをMIDI化できないためにred modeですら本来の方法で音切りすることはできません。しかもキー音一つ一つが別の音になるのでかさばります。「ここだ!」という決め所以外では控えるように努めましょう。
BGMにしてしまう場合や、オートメーションと同じ長さの一つのキー音に手切りする場合(ワブルベースやスウィープ等)なら問題ありませんが、同じトラックにblue,red,BGM,手切りが混在するとマズいので、同じ音色でもチャンネルを分けておくことをオススメします。

⑥コンプやリミッターに気をつける

これについてはBMS制作者は例外なく気をつけねばなりません。音切りの段階ではすべてのキー音が時間軸に対して単音ずつになるようバラされているため、普通にDAW上で再生する場合とコンプやリミッターの挙動が変わります。
マスターに挿すのは論外、各トラックに指す場合も和音やリリースタイム・ディレイ・リバーブによる音の重なりに気をつけましょう。
BGMトラックに限っては気にせずガンガン挿して大丈夫です。

実はあまり気をつけなくてもいいかもしれないこと

①チャンネル毎のパターン統一

BMHelperだと作曲段階から気にした方がいい(しないと上手くいかない?)らしいのですが、Mid2BMSの場合は特に気にしなくても大丈夫そうです。MIDIへ書き出すとパターンに関係なくチャンネル単位で一連のMIDIトラックにしてくれます。

②エフェクトのdry/wetを分ける・wetをBGMに送る

よっぽど音圧に拘りたい場合や容量を減らしたいは止めませんが、演奏感を重視するならやらなくてもいい、またはやらない方が良いと思います(竜。さんごめんなさい)。特にこの記事を読んでいるようなBMS製作初心者諸君は音圧や容量に拘りすぎず、のびのび作る事をお薦めしたいです。(自戒)
ディレイやリバーブが深すぎて上手く音切りできない場合はこの限りではありません。

(追記)
TranceやHouseのようなDub感を重視するジャンルでは多少考えた方がいいかもしれません。私の場合はガバが多いので今でもあまり気にしてません。


Mid2BMSで音切り(blue mode)

さて、無事に曲ができました。できたんです。できたことにしましょう。妥協しましょう!!
とりあえず完成した曲のプロジェクトデータを"hoge.flp"とします。
いよいよ音切りです!……が、その前に注意点を。

当たり前と言えば当たり前ですが、音切りに関しては本当に気をつけましょう。特に①②の操作なんかでうっかり上書きすると大惨事です。"\FL Stidio\Data\Backup"の中から自動バックアップを拾うことができるかもしれませんが、最初からそれだけをアテにしないように。
最低でも"hoge.flp"は別の場所にコピーしておきましょう。

①MIDIを書き出すための準備(モード切替)

なんとFLは音源の書き出しと同じように普通にMIDIを書き出すことができません!
できないというのは言い過ぎで本当はできるかもしれませんが、推奨されません!!

FLでMIDIを書き出すには、「MIDIを書き出すための謎のモード」を起動する必要があります。hoge.flpを開き、パターン再生をオフにした上でFLで画面上部の
TOOLS → Macros → Prepare for MIDI export
を選択しましょう。

すると変な確認ダイアログが出てきますのでOKを押しましょう。たぶん変なウィンドウが「ドゥルルルルルルル」って出てきて色々ヤバそうな雰囲気が出てると思いますが気にしなくて大丈夫です。Escキー長押しで全て閉じましょう。

こんな感じで合ってるので焦らないで

②MIDIの書き出し

FILE → Export → MIDI file
でも構いませんし、Ctrl+RでWAV書き出しを呼び出して詳細設定でさりげなくMIDIに変更しても構いません。
ここでは"hoge.mid"というMIDIファイルを書き出したとしましょう。

無事MIDIを書き出したら一旦 FILE → New で今の"hoge.flp"の編集内容(hoge.midじゃないよ!)を破棄して新規プロジェクトを立ち上げます。

(※注)ここまで"hoge.flp"の上書き保存をしないように。
(※注)一部分だけオートメーションでパラメーターが変わってるチャンネルは、該当箇所を一時的にパターン削除してから書き出します。見捨てた部分はred modeで切ります。

③MIDIトラックの整理

FILE → Open → hoge.mid でMIDIを開きます。
また変なウィンドウが「ドゥルルルルルルル」って出てくると思います。邪魔なのでEscキーで連打で全部閉じましょう。(出てこない場合もあるかもしれませんが、それならそれで大丈夫だと思うので「手間が省けた」と思って先に進んで下さい。)
ウィンドウをすべて閉じるとこんな感じの画面になっていると思います。そうしたらblue modeで音切りしないチャンネルを消していきましょう。

消せたら今度はパターン再生を「オン」にしてMIDIを書き出します。もうMIDIで書き出せるプロジェクトになっているのでTOOLS云々は必要ありません。そのまま書き出しましょう。ここでは"hoge2.mid"を書き出したことにします。

④hogeフォルダを作成

Mid2BMSは作成したファイルを元のMIDIファイルと同じディレクトリ階層(=フォルダ)にダバーしてしまうので、予め専用のフォルダを作り、MIDIファイルを格納しておきましょう。
ここでは"FL Stidio\Data\Projects"の中に"BMS_hoge"というフォルダを作成し、"hoge2.mid"をそこに移動します。私はついでに"hoge.flp"と"hoge.mid"も移動しましたが、この辺はお好みで大丈夫です。特にプロジェクトデータはディレクトリを移動するとHistoryから開けなくなるので注意。

(※注)もちろんですが①の前に予め"\BMS_hoge"を作成しておき、書き出すごとに保存場所を指定しても構いません。

⑤ノートを間引いたMIDIを作成

  1. Mid2BMSを起動し、[1]のタブを開いて"hoge2.mid"をD&Dする。
  2. 「処理開始」をクリック
  3. Chord?機能を使用したい場合や何か問題が合った場合は「変更するをクリック」
  1. 特に問題がなければ「Apply Changes(適用)」→「終了」をクリック。これでBMS_hogeフォルダ内に

の4つのファイルが生成されたと思います。確認できたら次へ進みましょう。

⑥間引いたMIDIを読み込む

"hoge.flp"を開き、新規パターンを作成。パターン名は「BMS」とでもしておきましょう。
そうしたら、そのパターンの各チャンネルに"text3_tanon_smf_blue.mid"をD&Dで読み込んでいきます。
全部読み込めたら、 パターン名の左の下三角をクリック**(またはパターン名を右クリック) → Split by channel** クリック。


パターンがチャンネル毎にバラバラになったと思います。できたらパターン再生をオンにして今生成した「BMS - (チャンネル名)」を全てWAV書き出ししましょう。その際、ファイル名は"(チャンネル名).wav"にしてください。保存場所は"\BMS_hoge"が良いと思います。

(※注)WAVのファイル名は正確には"(⑤の「終了」を押す段階で表示されてたトラック名).wav"です。基本的にチャンネル名のままで変更する必要はないと思いますが、もし変更してたら変更後の名前を適用してください。
(※注)パターンをバラさずとも書き出しの際の設定でバラせそうな機能がありますが、これは「チャンネル毎」ではなく「ミキサートラック毎」なので注意して下さい。どちらかというと使わないほうが無難だと思います。

⑦切る

Mid2BMSの[2]のタブを開き、「Base Path」に"text5_renamer_array.txt"、「Wave Base Path」に書き出した"(チャンネル名).wav"のいずれか一つをD&Dします(WAVはどれでも大丈夫です)。 下の「複数のwavファイルの~」のチェックボックスはオフにし、「音切り開始」をクリックします。
およそ数秒後に出てきたダイアログで、「n 個のwavを書き出さなければならないのに対し、m 個のwavを書き出しました。」と表示されると思います。n == mとなっていれば成功です。

書き出したWAVは"\BMS_hoge\renamed"に入っています。

⑧だいたい完成

"text6_bms_blue.txt"がBMS定義ファイルなので拡張子を変更します。また、見失わないように頭にアンダーバーをつけて"_text6_bms_blue.bms"にするといいと思います。
そうしたら"_text6_bms_blue.bms"と足りないWAV(BGMとか手切りしたキー音とか)を"\renamed"に入れます。この"\renamed"が最終的に完成したBMSの最上層フォルダになると思います。(ですので後でフォルダ名を変更すると思います。)

⑨仕上げ・確認・完成

BMSEに"_text6_bms_blue.bms"をD&Dし、プレイモードを適切なものに変更します。
その後、 ファイル → 変換ウィザードの表示 → 定義リストの整理 にチェックして実行します。私これたぶん前作ったとき忘れてた あとはBGMや残りのWAVを配置してuBMplayで再生確認しましょう。
問題がなければ上手く行ってます。あとは念のため重複定義もしておきましょう。

これで完成です、お疲れ様でした!


Mid2BMSで音切り(red mode)

オートメーションを使った一連のキー音はred modeという 神機能 を使って音切りしましょう。

①MIDI書き出し

オートメーションの該当箇所のみMIDI書き出しします。
一つのパターンにまとまっているなら ピアノロールの左上の下三角 → File → Export as MIDI file で書き出すと楽です(Prepare~の必要がない)。
まとまっていなければ、まとめたパターンを作業用に作成するかblue modeの①と同じ手順で頑張ってください。

②間引いたMIDIファイルを作成

基本はblue modeと同じですが、[1]タブでred modeに設定します。また、「開始wav定義番号」を現時点での最後尾の次の番号に変更しましょう。定義番号がよくわからなかったら適当に書き出して後で手動でみちみち定義しましょう。

③WAV書き出し

"hoge,flp"を開き、"text3_tanon_smf_red.mid"を読み込ませます。そうしたらプレイリストを一掃し、そのパターンと元のオートーメーションのみを配置します。パターンの方はとても長く、オートーメーションの長さとは比べ物にならないと思います。
そうしたらオートーメーションを「にょ~~~~~ん」と伸ばし、最初と最後をパターンの最初の音と最後の音に合わせます。

④だいたい完成

あとはblue modeとほぼ同じです。お疲れ様でした!


Edisonで音切り

これでもう一通りの音を切る事ができるようになったと思います。しかし、それでもMid2BMSがどうにも上手く使えない場合があるかもしれません。
(例えば拙作「Force your Fate」のオートメーションでカットオフが徐々に開いていくリフは、最初の方の音量が小さすぎてMid2BMSだけではどうにも上手く行きませんでした。)
そんなときは、FL標準搭載の波形編集プラグイン「Edison」を使って音切りしてみましょう。

……ってテーマでオマケ記事を書こうとしたんですけど、実はもう存在したんですね。ググって初めて気づきました。
BMS制作のすすめ - Edisonの使い方 #atwiki

先程の「Mid2BMSで音切り(red mode)」の②の後、Mid2BMSではなくEdisonに読み込ませます。あとは上の記事の通りです。
あとWoslicerIIのTIPSも場合によって応用できると思います。


最後に

漏らす所なく解説しようとした結果、かなり冗長な駄文になってしまいました。すみませんでした。
しかし、この記事が少しでもFL使いでBMS初心者な同士の手助けになれば幸いです。ここまでお読みいただきありがとうございました。

おまけは書く時間もアイデアも没しました。ので最近書いた別のAdC記事の宣伝でも載せておきます。

続・音ゲーが上手くなる方法(+おまけ)
音ゲーマーよりはDTMerにとって有意義な記事に仕上がっていると思います。

明日はxyzさんの「ギミックパターンの基礎」です。
良いクリスマスを!

clk icon
この記事を書いた人
clk

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2023年4月25日
【驚愕】作曲4年目だった男が大学3年間ゲームサウンドに関わった末路...【ゲームサウンドのお仕事について】
tenya icon tenya
2024年8月21日
【最新版 / 入門】JUCEを使ってVSTプラグインを作ろう!!!!【WebView UI】
kashiwade icon kashiwade
2024年3月17日
⑨でもわかる8bitアレンジ講習会
vPhos icon vPhos
2021年12月8日
C++ with JUCEでステレオパンを作ってみた【AdC2021 26日目】
liquid1224 icon liquid1224
2020年3月16日
【 #LogicProX 】#DrumKitDesigner から #UltraBeat に乗り換えよう 第2話
SolunaEureka icon SolunaEureka
2020年3月15日
【 #LogicProX 】#DrumKitDesigner から #UltraBeat に乗り換えよう 第1話
SolunaEureka icon SolunaEureka
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記