BMHelper(beta4')を使ったMIDI解析の手順




1.シーケンスをMIDIで書き出す

 方法はDAWによって変わるかもしれないので割愛します。必要なパートは全て書き出してください。FL StudioはMIDIとの連携がカスなので出来ませんが、Cubaseなどでは複数のトラックをまとめてMIDI出力できる機能もあるようです。
FLの場合はパートごとに、ピアノロールを開いてCtrl+Shift+MでMIDIで書きだすことができます。ピアノロールを使っているキー音パート全てに対してこれを行います。


2.BMHelperでMIDIを開く

 MIDIファイルをD&Dするか、右クリックして「プログラムから開く」から選択するなどしてください。
開くときにどのトラックを読み込むか問われるので、複数トラックがまとまっているMIDIの場合は解析したいトラックを選択してください。書き出す時点で各トラックには分かりやすい名前を付けておいたほうがよいでしょう。


3.解析


 MIDIの読み込みが終わると上のようなウィンドウが出てきます。「新規分割...」をクリックします。
すると右のようなウィンドウが出てきます。
分割名
そのままで結構です。
頭の余白
FL StudioなどWAVで書き出すと先頭が少し削られるような場合を防ぐなら1などの数値を入れておきます。単位はです。
最小間隔
あるノートの終端から次のノートまでの最小のインターバルを設定します。今回の例のように残響とDry成分を分ける場合は小さめ(4から6程度)で構いませんが、ディレイなどをキー音に含める場合には大きめに取ります。こちらも単位は拍です。
最小とあるのは、全てのノートの始端は必ず整数拍に置かれるからです。小節頭にある8分音符の終端からちょうど4拍後は次の小節の1/2拍目ですが、整数化のため半拍後ろにずれて2拍目に置かれます。この場合間隔は4.5拍です。
ソート
「なし」にすると読み込んだMIDIシーケンスに登場する順に並べられます。その他の選択は「nn」がノートナンバー(音高)、「gate」がゲート、「vel」がベロシティ、の昇順に、左ほど優先されて並べ替えられます。例えば「nn/gate/vel」ならまず音の低い順に、同じ高さの音は長さが短い順に、長さも同じ場合はベロシティの小さい順に、というふうに並びます。
値の差が(以下略)
表記のとおりです。両方とも0にするとわずかでも異なるノートは全て異なる音として処理されます。作曲の項でも書きましたが、これを設定するよりは、元のMIDIの時点である程度ベロシティとゲートをクオンタイズしておいたほうがよいでしょう。
ZZ定義を有効にする
何も考えずに放置。現状でZZ定義を使用しない(FF定義を使用する)メリットは特にありません。
多重定義を使用する
多重定義を有効にするオプションです。基本的には有効にしておいたほうがいいですが、音色によってはあえてクリックノイズを発生させたほうが打鍵感が良くなる可能性があります。
定義の開始番号
整理されたノートの最初の音が定義される番号です。残りの音は連番で配置され、どこまで埋まるかは実際に分割を行ってみないとわかりません。
多重定義の間隔
前述の多重定義オプションが有効な場合に設定する値です。あるノートの終端から設定値以下の間隔で同じノートが置かれた場合、それらに別々の定義番号を充てます。
このようなシーケンスの場合、間隔を0.5(拍)以上に設定すると多重定義され、0.5未満の場合多重定義は使われません。また、0.5のときは先頭から01→02→01→02と交互に使われますが、1.0にすると01→02→03→01といった具合に使われる定義数が1つ増えます。隙間なく隣接する場合のみ多重定義を有効にしたい場合は0にします。

ここでは最小間隔6、ソート無し、同一視無し(両方0)、多重定義無し、定義開始番号は、さきほどBGMで03まで埋めたので04から始めることにします。

こうなりました。下段の画面のうち、上にあるのが並べ替えられたMIDIシーケンス、下の数字のうち上が定義番号、下がファイル番号です。
定義番号の右側にある矢印とボタンで、定義開始番号を変更することができます。<で一つ前、>で一つ後にずらします。「始番号...」をクリックすると直接入力が可能です。
最下段のステータスバーには分割の名前:ファイル数/定義数が表示されます。多重定義を行った場合は、右の定義数が左のファイル数より多くなります。


4.出力

 まずはCtrl+Sで.bmhファイルを保存しておきましょう。
次にMIDIファイル出力をします。.bmhのファイル名と同じでよいでしょう。分割を行ったパート順に通し番号を付けておくと楽です。
出力されたMIDIをDAWで読み込みます。読み込むトラックに気を付けてください。
MIDIを読み込んだら、そのトラックをWAVで書き出します。

FLの場合、レンダリングモード(右図赤線)がPatternになっていることを確認してください。なっていない場合、一旦ウィンドウを閉じて、再生モードをPATにして(下図赤丸参照)から再度書き出しを行ってください。


5.スライス

 書き出したWAVファイルを分割します。この手順はBMHelperとは関係ないので各自なんとかするか、Edisonを使ってスライスするか、woslicerを使いましょう。上の画像にある切断位置をコピーは、このwoslicerのためのスライスマーカーをコピーするためのボタンです。当wikiではwoslicerの使い方は解説しませんので、使う場合は各自でBMHelperのヘルプを見るなどしてください。

スライス作業は単にWAVを分割するだけではありません。さきほど設定した最小間隔は冗長な無音地帯ですから、SoundEngineなどで削除しておきましょう。
分割したWAVはBMSフォルダーに入れておきます。


6.定義


 スライスが終わったら次はBMSファイルへの配置です。
まず保存しておいた.bmhファイルを開いて定義情報を押します。
ファイル名はデフォルトで.bmhのファイル名と同じになっていますが、必要に応じて変更しましょう。
その下にあるのが定義情報の一覧です。図ではファイル番号が0から始まっていますが、1から始まる場合もあるようで、原因がよく分からないので、分かる方いらっしゃいましたらご連絡いただけると幸いです。
Edisonから出力した場合これとは異なる命名規則となるため、別途リネームしておく必要があります。

左下のクリップボードにコピーを押すと定義情報がコピーされるのですが、beta4'時点で改行されない不具合があります。テキストエリアで右クリックして「すべて選択(A)」から普通にコピー(Ctrl+C)したほうが無難です。この不具合はいずれ直されるかもしれません。

コピーした定義情報は、BMSファイルをテキストエディタで開いて、#WAV定義が途切れた次の行を選択した状態で貼付け(Ctrl+V)ます。テキストを保存(Ctrl+S)して一旦閉じて、BMSEで開き直します。


7.配置

 BMSEを開いたら、BMHelperのBMSシーケンスをコピーを押します。BMSEをアクティブにして、Ctrl+Vを押すと、現在の小節を起点としてBGMレーンの左端からノートが配置されます。
BMSシーケンスを貼り付けるまで、BMHelperを閉じてはいけません。BMHelperが作ったクリップボード情報は閉じると消されるので、開き直す羽目になります。
 このとき最初の小節(#000)にはノートを置かないでください。BGMレーンにあるぶんには問題ありませんが、演奏レーンに持ってくるとプレイに支障が出ます。また、このままだと他のパートとノートが被ってしまうので、使われていない領域にずらします(Shiftを押しながらだと上下に移動しません)。



以上がBMHelperの役目です。あとは残りのパートでも同じことを繰り返していくだけです。定義開始番号には注意してください!
最終更新:2019年05月07日 23:12