Mid2BMSでBMSを作る


前回のMid2BMS話では解説らしい解説をまともに触れていませんでしたが、
今回の記事では実際に既存のMIDIからbmsを作っていきつつ解説を加えたいと思います。
とにかく時間をかけずに作りたいため、既存のMIDIから適当に拾って作りたいと思いましたが、さすがに他人が作ったMIDIを無断で使うのもいささか問題があるという事で、今回は今日のIRC廃人でお馴染みfether氏のサイト下部にある「やばいほど大昔のMIDI集」から本人がヤバいと自負していたtwinklestarのMIDIデータを元にBMSを作っていきます、勝手に。ほら「ご自由に」って書いてあるし。1

fether氏のtwinklestarを選んだ理由はとりあえず今回もblue modeで完結させたいのでコントローラ命令が全く使用されていないmidでかつbms化したら面白そうな物を選びました。

思いっきり長くなりそうなので「続きを読む」で。

とりあえずまずはmidiデータをDAWで開いてみることにします。ちなみに使用DAWはcakewalk SONAR 8.5です。

イメージ009

音楽ゲームの平均演奏時間は1曲につき大体2分前後。BMSの平均演奏時間も大体その辺りに併せられます。
twinklestarの演奏時間は3分近くで、このままBMS化するには少し長い気がするのでカットしていきましょう。

SONARに限った話ですが全トラック削除しようとすると選択範囲内に何も入ってないトラックが混じってると希にずれる場合があります。
ずれる場合は適当にカットツールで分けていきましょう。

cap_2014531114048

カットが終わって大体2分ぐらいになりました。
この編集データをBMS版の元データとして制作を進めていこうと思います。

cap_2014531114127

今回使用しているmidデータはGM音源です。GM機能を持つシンセなら演奏するシンセを変更するだけで楽器はそのまま使用することができます。2 一応ハードMIDIシンセとしてSC-88Proを所持してはいますが録音は手動で行わないといけなくなり、いちいちやっているのが面倒なので今回はSONAR付属のソフトウェアシンセ「TTS-1」に頑張って貰おうと思います。一応SD互換を持っているため、GSに近い音は出してくれます。

WS000006

TTS-1は16パートのMIDIチャンネルを所持しておりますが、オーディオアウトのチャンネルは4つしか持っていません。
一応1音源で完結させることは可能ですが、パラアウト出力を使用する場合はオーディオアウト分の音声データしか作れない事を考えるとこれまた面倒なことになるので事実上この音源で使えるのは事実上4トラックのみです。

WS000007

しかしそこはDAW、TTS-1はソフトシンセの為、CPUが許す限りいくらでも追加することができます。つまり今回は11トラックあるのでTTS-1を3つ挿入して個別に対象の音源を設定していきます。

WS000009

音源をセッティングするとアウトプットフォルダを設定後、一応各パート別にちゃんと音が鳴っているか確認しておきましょう。
あと、後々のことを考えオーディオアウトのトラック名はMIDIチャンネルのトラック名と同一にしておいた方がいいかもしれません。
WS000011

音声のセッティングをしたところでいよいよMid2BMSの登場です。プロジェクトデータを保存後、別途プロジェクトをmidに保存しておきましょう。midのフォーマットは必ず1に設定すること。0だとエラーはいて終わります。そして、midに保存した後再度そのファイルを開きます。

WS000013

SONARはピアノロールデータを持たないトラックは自動的にミュートになります。これを全部ばっさりと削除します。
SONARの仕様上オーディオアウトを一つのトラックとして扱うため、空のトラックが大量に増えるのは致し方のないことです。

編集が終わったらMid2BMSを起動しましょう。起動後編集したmidデータをD&Dし、録音用のmidデータを出力しましょう。
今回は前途の通りblue modeしか使わないのとBPM変化が無いため、特に設定する必要もなさそうなのでそのままStartボタンを押します。

WS000014

midの出力の段階でmid内に下記のような不具合があるとコンバート途中にエラーダイアログが出現します。

  •  MIDIフォーマット0で保存している
  • 同じトラック・音階・場所に音が重なってる

mid2bms_error

一応続行は可能ですが、不具合が出てもそれはそれで困るのでこの辺は編集しなおして可能な限り潰していきましょう。
数が多いとかでない限り音を切るためのmid編集データを作るよりは遙かに簡単です。

変換完了前にトラック名の確認ウィンドウが出てきます。重複が無いかトラック名にファイル名で使用禁止されている文字が無いか確認してください。ちなみにトラック名はそのまま音切り時に使用するファイル名になるので要注意です。(一応変換後でもファイル名の編集は可能ですが)

WS000021

無事に変換が完了したら「text3_tanon_smf_blue.mid」というのができているので、これを再びDAWへD&Dします。

WS000018

 

midファイルは単音が一定間隔で切り離されたデータが出てきます、これを先ほど作ったプロジェクトファイルを開き、プロジェクトファイルのデータを一旦全て削除した後、コピペするかD&Dして行きます。なお、このファイル自体は完全に演奏できるような代物になっていないのでプロジェクトファイルに移した際は必ず別名で保存してください。哀しみが生まれます。

なお、プロジェクトファイル側のBPMは100に変更しておきましょう。3
訂正:特にBPMを変更する必要はなさそうです

WS000023

さてここまで来ればあとは出力のみです。メニューからファイル→エクスポート→オーディオで書き出ししていきましょう。
今回のパートは11パート、音切り用のwavは当然1トラックのみ出力した物を用意しないといけないので当然11ファイル必要になります。
ソロトラックを設定した後にエクスポートしていくのはいちいち面倒です。

SONARにはマスタリング用途の目的等で各トラックを自動で出力する機能(パラアウト)を設けているのでこれを利用して音切り用のwavを出力します。バウンスの設定を「すべてミックス」から「トラック」に変更後、適当にファイル名を入力します。ちなみに出力されるファイル名の形式は「(ファイル名)-(トラック名)-(番号).wav」で出力されます。

WS000026

確認のダイアログが出てくるのでこのまま続行。ちなみにファイルが上書きされる場合はファイル名横に(!)が付きます。

WS000027

 

ファイルが出力されたら「text5_renamer_array.txt」を開き、各パートのファイル名を修正していきましょう。逆にテキストに記載されているファイル名を変更する手法もやりますが、ミックスの再調整によるDAW側の再出力作業を考慮し、可能な限りDAW側で出力されたファイル名に合わせた方がやり直しする際にとても楽です。

あと、SONARでは仕様上なのか必ず空のパートが出力されるので(スクリーンショットで言う)最初の4行はまるっと削除しておくことをお勧めします。

WS000029

準備が整ったところでいよいよ出力です。「WaveSplitter」のタブを選び「text5_renamer_array.txt」をD&Dした後パラアウトしたWaveBasePatchのフォルダ設定をしましょう。今回は同じフォルダにwavを出力しているのでフォルダ名を合わせます。

設定が完了したらSplitボタンを押してwaveを出力してみましょう。

WS000030

進行ゲージバーが1000%に突破すると結果のダイアログが表示されます。
書き出さなければいけない数と書き出した数が合致していれば成功です。

WS000031

完成後、mid出力フォルダに生成されていた「text6_bms_blue.txt」の拡張子をbmsに変更した後、renamedフォルダにコピーしてBMSE等で実際に開いてみましょう。

今回はblue modeのみ使用する形で進めてきたので、ubmplay等の再生プレイヤーで原曲と同じ形で再現していれば成功です。

WS000035

あとはお好みに合わせて音圧を上げるなりなんなりしていきましょう。前途の手順通り変換時のファイル名をDAW側に合わせておけば再ミックス時の出力が楽になります。前回の記事でも触れたとおり、パラアウト出力時はbusを経由しないため、各パートの音を上げたい場合は個別でリミッターやコンプレッサをかけていく必要があります。つまり11トラックなら11個分だけプラグインが必要になります。
これはこれで面倒な作業ですがこれでも手動で切り取らない事を考えるとまだ楽なほうです。

WS000033

作業開始から大体1時間。完成したBMSがこちらになります。 (ogg・3MBぐらい)
ただし譜面の配置はしていませんので中身は空です。このままでは遊べませんのであくまでubmplay等での試聴用になります。

今回の「twinklestar」のBMS版はこのツールを使用したBMS生成の目的の為だけに用意したので譜面を作る予定は今のところありません。多分音の構成が大幅に変わることはないはずなので譜面の生成はご自由に。

支離滅裂な状態で説明してきましたが参考になりましたでしょうか。多分これ参考にするよりかは実際に触れた方がわかりやすいと思います。
これが普通に音を切っていくと恐らく1日はかかるであろう作業工程が1時間に短縮できた辺りMid2BMSはかなり使えるツールになるんじゃないかと思います。ただ、オートメーションやピッチベンドの音は出力できない関係でred modeやpurple modeを使用したりするともっとかかるかもしれませんが、音を自動で切ってくれるという利点はBMS作者にとってかなり大きな要素になるのではないかと。

  1. 一応完成後に本人に押しつけた後、許可は貰っています多分 []
  2. 音はハードによって全然違いますが []
  3. これはred mode以外ではBPM変化に対応しない関係で、変換時に生成されたBPMが100に固定されるため []