BMSツクール2

おいしくなって新登場!!
変更点は更新履歴を見てください。
  • アップデート(?)方法
    • ダウンロードしたzipファイルを解凍し、中身を今使っている「BMSツクール2」のフォルダ内に全て上書きしてください。
    • または、古いバージョンの「Save」フォルダ内「Common.rvdata2」を新しい「BMSツクール2」の「Save」フォルダにコピペしてください。(このほうが楽かも)



概要

 MIDIを読み込ませてなんやかんやしてBMSを自動的に生成するツールです。
使い方は下に載せますがわからないことがあればROKINA(https://twitter.com/lokina)まで直接問い合わせてください。

デモ動画


特長

  • MIDIを読み込んでBMS向けに音切りできる!
    • BMSファイルも出力できる!
  • テンポ変化、コントロールチェンジにも対応
    • しかしDAWが対応していないと意味がなかった。
  • 和音やグライドノーツを一つのノートとして扱える!←
  • サイドチェイン、キースイッチに対応!←神!!!!!!!!!!
  • new! シーケンス化機能によりオートメーションに擬似対応!!←ヤバい!!!!!!!!!!
詳しくは「使い方」を見てください。

α版(Ver1.xx)との違い

+...
  • 根本的に色々作り直しました。
    • 多分日本語フォルダを扱えるようになったと思いますが、念の為避けておくことをおすすめします。
    • BMSファイルの中身については、BMS関連ソフト(LR2やBMSEなど)がShift_JISにしか対応していないケースを考慮して、Shift_JIS(あるいはANSI)に制限されます。特に文字入力ダイアログにはSJIS準拠の文字列しか入力できません(äなどを入力しようとするとaなどに矯正されます)。
  • GUIを強化しました。
    • MIDIファイルを読み込んだとき、ピアノロールを描画するようになりました。
    • 「コードまとめ」などをトラック全体ではなく一部のノーツにだけ適用できるようになりました。
    • 「キースイッチ指定」が視覚的に分かりやすくなりました。
    • 「シーケンス化」により、元のMIDIの配列を崩さないまま音切りできる機能が追加されました。
  • WAV波形のビュワーを追加しました。
    • 波形を見ながらスライス位置を個別に調節できます。
    • 8bit/16bit/24bitのPCM(通常のWAV)であれば再生してスライス位置を確認することもできます。(32bit float はAPIが対応していなかったので再生できません)
  • WAVファイルの処理をDLL化したことで、WAVに関するもろもろの処理が高速化しました。
    • 特に「スライス」の待ち時間は長くても数秒程度に高速化されました。
    • 作者は気付いていなかった(は?)のですが、24bitのWAVを読み込むと落ちる不具合がα版にありましたが、WAV読み込みアルゴリズムを作り直したことで副次的に解決しました。
    • 地味に 32bit float とかでも読み込めます。(前述のとおり再生はできません)
    • 現時点で無圧縮の PCM(つまりRIFF WAVE)にしか対応していません。主なDAWは普通にPCM出力に対応していると思うので圧縮済みWAVに対応する予定はありません。

ありそうな質問(FAQ)

+...
  • 起動しようとするとOSがエラーを吐く
    • Game.exe及びRun.batの起動時、Windows Defenderなどセキュリティソフトにより実行が阻止(最悪削除)される場合があります。本ソフトにウイルスは無いはずなので起動を許可してください。
    • 非パッケージ版(バージョン名の末尾にaが付くもの)であればセキュリティソフトに怒られる可能性が低いので、こちらもご利用ください。
  • ピアノロールをスクロールするとガクガクする
    • 仕様です。メモリ節約のためピアノロールは一部だけ描画し、範囲外を表示しようとしたときに改めて描画するようになっています。
    • ピアノロールの描画にはRPGツクールの標準機能を使っていますが、これがあまり早くないためスクロールバーをぐりぐり動かすとFPSがガタ落ちします。
  • ドラッグ&ドロップや「プログラムから開く」から開きたい
    • 無理です。RGSS Playerがそれらを検出できないためです。お手数ですがソフト側の「開く」を使ってください。
  • WAVスライス画面を開くとき、コンソールに「(データのロード中) しばらくお待ち下さい...」と表示され、しばらく待たされた上で波形の一部しか描画されない
    • 仕様です。RGSS Playerはメモリ制限がかなりキツいため、メモリリークを防ぐための措置です*1。波形が描画されていない部分も、音声の再生やマーク/スライスは正常に行えます。
    • 波形を表示させたい場合、ソフト自体を一度終了して再度起動してください。編集状態は自動で保存されるので「ファイルの保存」はしなくても大丈夫です。
    • 細かくいうと、波形データは内部でdouble型の配列として保持しており、2ch/44100Hzの場合1秒につき約700kBのメモリを消費します。メモリ消費が概ね500MB(12分程度)以上になると、この表示が出やすくなるようです。
  • なんかエラーが出て落ちたんだけどどうすればいいの
    • エラーメッセージが表示されて落ちた場合、クリップボードにエラーの情報が格納されます。メモ帳などを開いて「貼り付け」るとバックトレースが出てきます。この内容をROKINAへの報告の際に添付するとなんかが楽になるかもしれませんので、お願いします。

既知の不具合/修正予定

Ver2.06時点
  • 基本画面で「Ctrl+J」によりJSON出力を行うと、しばらくフリーズする
    • 誤ってテスト用のコードが実行されています。Ver2.07で修正予定ですが、それまで通常画面からのJSON出力は使わないようにお願いします。
    • JSONファイル自体は正常に出力されるので、Ctrl+Jで保存→1秒ほど待ってからAlt+F4で強制終了することで暫時的な対応は可能です。
    • 「WAVスライス」画面におけるWAVのタグ情報のJSON出力に関しては問題なく行なえます。


使い方

起動

 ゲームフォルダ(ゲームではないけど)を開き、Run.batを開いて起動します。OSが警告を出す場合は起動を許可してください*2Game.exeから直接起動もできますが、コンソールウィンドウが表示されないためやや不便です。
 最初の起動時には左のような表記言語選択用のウィンドウが表示されます。自分が使いたいほうの言語を選んでください。
 起動に成功すると、左のような画面が表示されます。この画面をこのソフトの「基本画面」と呼ぶことにします。

+オートセーブについて
  • 「BMSツクール2」では、なにか作業をするたびに現在の作業状況を自動的に保存する機能が付いています。この作業データは「Save」フォルダ内の「Common.rvdata2」に保存され、次回の起動時に読み込まれて作業状態が再現されます。
  • 前回の「ファイルを開く」「ファイルに保存」からなにか作業をして(オートセーブが働いて)いた場合、「ファイルを開く」または「終了」ボタンを押すと内容が変更されている旨とそれを保存するかどうかを問うダイアログボックスが表示されます。このとき「はい」を選ぶと、現在開いているファイル内容が上書きされます。
  • この機能とは別に、基本画面の「ファイルに保存」によって作業状況を保存することもできます。このファイルは、上記の上書きを除いて勝手に変更されることはありません
  • 最後に「ファイルを開く」をしてからの作業内容を全てリセットしたい場合は、ソフトの終了ではなく同じファイルを改めて開いてください。(「元に戻す」を行い続けても同じ状態になります)

基本操作

 主にマウスを使って操作します。主な操作は以下の通りです。*3
+クリックで表示
左クリック/Enter/Zキー
決定ボタン:選択中の項目の決定、編集、実行などに使います。
右クリック/Esc/Xキー
キャンセルボタン:編集中項目のキャンセル、開いているウィンドウを閉じる、メニューの表示(基本画面)などに使います。
カーソルキー
移動:基本画面などでは左右キーで画面のスクロール、上下キーでトラックやマーカーを移動します。ウィンドウでは上下キーで項目を移動し、左右キーで値を変更したりします。
F1キー
ゲームのプロパティを開く:RPGツクール製ゲームに関する設定ウィンドウを開きます。カーソル移動や決定時のSEがうざったい場合は「BGS および SE を演奏する」のチェックを外すとよいです。
「ゲームパッド」「キーボード」については、このソフトは特にキーコンフィグを参照しないため触れなくて大丈夫です。
F2キー
FPS表示:このソフトは基本60FPSで動作します。ゲームではないのでフレームレートを気にする必要はありませんが、確認したければ表示しておくとよいです。
F5キー
ウィンドウサイズ変更:ソフト起動時には「(疑似)最大化」された状態で起動しますが、画面が大きすぎて邪魔な場合はF5を押すことで通常サイズ(640x480)になります。もう一度押すともとに戻ります。
F9キー
言語選択:初回起動以降は、F9を押すと言語選択ウィンドウが表示されます。右上の「あ」のアイコンをクリックしても表示されます。現在とは異なる言語を選ぶと画面が暗転し、ウィンドウなどの内容が書き直されます。
F12キー
ソフトリセット:RPGツクール製ゲームの標準機能で本来は「タイトルへ戻る」際に使われますが、このソフトでは編集状態は常に自動保存されるため、基本的にリセットする意味はありません。*4
Alt+Enter
フルスクリーン切り替え:RPGツクール製ゲームの標準機能でゲーム画面をフルスクリーンにする(あるいは戻す)のですが、コンソールが見えなくなりウィンドウフォーカスの移動も面倒になるなどデメリットしかないので非推奨です。
PrintScreen
スクリーンショット:ゲームフォルダ内ScreenShotsというフォルダに、現在の画面を保存します。本来のサイズ(640x480)で保存されます。編集画面を共有したいときなどにご利用ください。

 その他の操作については、画面最上部の「ヘルプウィンドウ」に現在可能な操作が表示されます(文字数の都合で全ての操作が出るわけではありません)。また、画面上部のアイコンにマウスカーソルを乗せると、その機能を表す名前とショートカットキーが表示されます。

基本画面の操作

  • ピアノロール上を左ボタンドラッグで範囲選択します。
    • Shiftキーを押しながら範囲選択すると、選択範囲の左端が最も近い「ノートの先端」に、右端が最も近い「ノートの後端」にフィットします。
  • ピアノロール上を右ボタンドラッグ、またはホイール回転で画面をスクロールします。
    • Shiftキーを押しながらホイールを回転すると、別のトラックに移動します。
    • Ctrlキーを押しながらホイールを回転すると、横方向の拡大率を変更します。
    • 画面のスクロールは、画面下部にマウスを移動させると出現するスクロールバー(下図)をクリック/ドラッグすることでもできます。
  • ピアノロール上で右ボタンを押して、マウスを動かさずに離すとシーケンス化に関するメニューを集めたウィンドウが開きます。
  • 上部アイコン
    • 「ヘルプウィンドウ」の下には、マウスクリックで機能を呼び出せる各種のアイコンが並んでいます。
+個別解説
「ファイルを開く」(Ctrl+O)
新たにファイルを開きます。対象となるのはSMF(.mid)または独自データ形式(.btkdata)のいずれかです。後者はこのソフトの「ファイルの保存」によって作成されます。
「ファイルの保存」(Ctrl+S)
編集中のデータを保存します。デフォルトではマーカー、ノーツまとめ、シーケンスなど全ての情報を含む独自データ形式(.btkdata)が選択されていますが、SMF(.mid)形式での出力もできます(編集内容は失われます)。
「元に戻す」(Ctrl+Z)
直前の操作を取り消します。「直前の操作」とは、キースイッチの変更ノーツまとめシーケンス化/解除マーカー編集自動シーケンス化整理/BMS化オプション/BMS書き出しウィンドウの開閉*5、を指します。「元に戻す」用のデータはメモリ上に無制限に溜まっていきます*6
「やり直し」(Ctrl+Y)
直前の「元に戻す」を取り消し(操作をやりなおし)ます。「元に戻す」を連続で行った回数だけ使えます。「元に戻す」以外になんらかの操作を行った時点で「やり直し」のデータは初期化されます。
「前のトラック」(↑) / 「次のトラック」(↓)
「現在のトラック」を切り替えます。ピアノロールには「現在のトラック」の情報が表示されます。このとき画面左にトラックのリストが表示されますが、マウスを画面左端にもっていくことでいつでも表示できます。
「トラック名の変更」(Ctrl+N)
「現在のトラック」の名前を変更します。クリックすると文字入力ウィンドウを表示します。トラックリストに (Conductor) と書かれているトラックの名前*7は、その曲自体のタイトルを表します。
「ピアノロール」(1)
クリックするたびに、ピアノロール背景(縦方向のグリッド)の表示状態を切り替えます。
「小節線」(2)
クリックするたびに、小節線(横方向のグリッド)の表示状態を切り替えます。
「オニオンスキン」(3)
クリックするたびに、オニオンスキン(「現在のトラック」以外のトラック内容を描画する機能)の表示状態を切り替えます。
「ベロシティ」(4)
クリックするたびに、ピアノロール上に「現在のトラック」の各ノートのベロシティを表示するかどうかを切り替えます。
「キースイッチ」(K)
キースイッチ編集状態に切り替えます。
キースイッチ編集状態では、ピアノロール上を左クリックすることでそのノートナンバー(高さ)のノーツをキースイッチ扱いにします。右クリックでキースイッチ扱いを解除します。キースイッチが有効な部分は薄く黄色がかり、画面中央付近にノートナンバーが表示されます。を押すと編集を確定します。を押すと編集内容を破棄して元の画面に戻ります。
キースイッチに指定されたノーツは「整理」の対象にならず、キースイッチの状態が異なるノーツはそれ以外の要素が一致していても異なるものと扱われます。キースイッチ指定を編集した場合、「整理」を改めて行う必要があります。
「ノーツまとめ」(C)
ノーツまとめ」のウィンドウを開きます。
「シーケンス化」(S)
選択中のノーツシーケンスにまとめます。選択範囲にコードシーケンスが含まれる場合、それら全てを結合します。
シーケンスは「整理」のとき分解されずそのままの形で扱われます。シーケンスは内部に一つ以上のスライスマーカーを持ち、BMSにおいてはこのスライスマーカーの個数ぶんのキー音に対応します。
「シーケンス解除」(D)
選択中のシーケンスを削除し、もとのバラバラなノーツの状態に戻します。範囲選択せずに押した場合、現在のトラックの全てのシーケンスを解除します。
「マーカー編集」(M)
選択中シーケンスのスライスマーカーを編集するサブウィンドウを開きます。選択範囲内に複数のシーケンスがある場合、最初の一つがその対象になります。
「整理」(Ctrl+1)
整理」のウィンドウを開きます。
「BMS化オプション」(Ctrl+2)
BMS化オプション」のウィンドウを開きます。
「WAVスライス」(Ctrl+3)
WAVスライス用のサブウィンドウを開きます。「整理」した後でないと選択できません。
「BMS書き出し」(Ctrl+4)
BMS書き出し」のウィンドウを開きます。一つ以上のトラックで「整理」を行ったあとでないと選択できません。

「マウスクリップ」(Ctrl+M)
押す度にマウスクリッピング(マウスカーソルがソフトのクライアントウィンドウから出なくなる)状態が切り替わります。Alt+Tabなどでウィンドウを切り替えると元々の状態に関わらずクリッピングは解除されます
「言語選択」(F9)
言語選択のウィンドウを表示します。
「更新の自動チェック」(F10)
有効にすると「BMSツクール2」の更新(バージョンアップデート)があるかどうかを確認し、ある場合はこのページを表示するかどうかの確認ダイアログを表示します。また、有効にしておくとこの更新確認作業を「BMSツクール2」の起動のたびに行うようになります。
「終了」(Ctrl+Q)
「BMSツクール2」を終了します。最後に保存したときから何か変更されている場合は、それを保存するかどうか聞かれます。この確認が表示されること以外はAlt+F4やウィンドウ自体の×ボタンを押した場合と同じです。

「ノーツまとめ」ウィンドウ

「ノーツまとめ」は、同時に鳴らされる複数のノーツを一つのグループ(ここではコードと呼びます)にまとめる機能です。最も基本的な使い方は、一つの和音をBMSにおける一つのキー音に対応させるような使い方です。「ノーツまとめ」を「実行」するとき、範囲内に既に存在するコードは全て一旦解除されます
+詳細
「対象」
  • 「ノーツまとめ」を行う対象を選択します。選択範囲がある場合はその「選択範囲」内と「トラック全体」のいずれかを選びます。
  • 選択範囲が無い場合は画像のように色が薄くなり変更できません。
「シーケンス」
  • 「除外」または「含める」から選択します。
  • 「含める」の場合、「実行」の際に対象範囲内のシーケンスは一旦全て解除されます。
  • 「除外」の場合、シーケンスは全てそのままにされます。
「ノーツまとめ」
  • まとめかたを指定します。以下のいずれかから選択します。
  • 「無効」
    • ノーツまとめを行いません。既に存在するコードは全て分解されます。
  • 「無制限」
    • 同時に鳴らされる全てのノーツを一つのコードにまとめます。
  • 「2」「3」「4」「5」
    • 同時に鳴らされるノーツを、指定の個数まで一つのコードとしてまとめます。
    • 例えば10個のノーツが同時に鳴る場合、「3」なら「3個-3個-3個-1個」の4グループにまとめられます。「5」なら「5個-5個」の2グループにまとめられます。
  • 「-2」「-3」「-4」
    • マイナスの値のときはノーツの数ではなくコードの数を指定することになります。
    • 例えば10個のノーツが同時に鳴る場合「-2」なら「5個-5個」の2グループにまとめられます。「-3」なら「4個-3個-3個」の3グループにまとめられます。
  • 「グライド」
    • 通常のノーツまとめは同時に発音されたノートのみまとめられますが、「グライド」モードではあるノートの発音途中に追加で鳴らされたノートを一つのコードにまとめます。
    • モノフォニックシンセでピッチベンドを使わずなめらかに音高を変えるときなどに利用できるかと思います。
「まとめ方向」
  • 「ノーツまとめ」の指定が数値の場合、グルーピングを上(高い音)から始めるか下(低い音)から始めるかを指定します。
  • 「ノーツまとめ」が「無効」「無制限」「グライド」のいずれかである場合には無視されます。
「実行」
  • 「ノーツまとめ」を実行します。
  • このボタンを押ずにウィンドウを閉じた場合、設定内容は保存されますがノーツの状態は変化しません。

  • ノーツまとめの具体例
元の並び ノーツまとめ : 2
まとめ方向 : 上から
ノーツまとめ : 3
まとめ方向 : 上から
ノーツまとめ : 2
まとめ方向 : 下から
ノーツまとめ : 4
まとめ方向 : 下から
ノーツまとめ : -2
まとめ方向 : 上から
ノーツまとめ : -2
まとめ方向 : 下から
ノーツまとめ : -3
まとめ方向 : 上から

「整理」ウィンドウ

「整理」は、選択中のトラックのMIDIノーツを整理し、整列して音切り用のMIDIファイルを出力する機能です。
+詳細
「曖昧さ」
  • 音の強さ(ベロシティ)と発音長さが近いノートを同一とみなすしきい値を設定します。
  • 「Vel」
    • ベロシティの差がこれ以下のノートは同じ強さであるとみなします。
    • 例えばこれを「5」にすると、ベロシティ 123~127 の間のノートが同一視されます。
    • ベロシティ変化が細かいと定義数がかさむのでここを設定するとよいでしょう。
  • 「長さ」
    • 発音長さの差がこれ以下のノートは同じ長さであるとみなします。
    • 例えばこれを「10」にすると、発音時間 990ms~1010ms の間のノートが同一視されます。
    • ここではテンポも考慮されるため、設定値を 0ms にしてあっても、例えばテンポ150bpmの8分音符とテンポ300bpmの4分音符同じものとして扱われます。
    • テンポによってモジュレーションが変わったりするシンセの場合は工夫が必要です(面倒なのでまだ対応していません。)
「サイドチェイン」
  • サイドチェイン(あるトラックの音声を別のトラックに入力すること)のトリガーとなるトラックを指定します。
    • たとえば Bass トラックに挿しているコンプ(これはDAW上での話です)のトリガーに Kick トラックを利用している場合、「サイドチェイン」に Kick を指定します。
  • サイドチェイントラックが指定されている場合、ノートの同一性判定にサイドチェイントラックのノーツも加味されることになります。
「出力ファイル名」
  • 出力される整理済みMIDIファイルの名前を指定します。
  • デフォルトでは「(元のファイル名)_(トラック名)」となっています。必要があれば変更してください。
「頭空白」
  • 出力されるMIDIの、先頭から最初のノートまでの空白を拍数単位で指定します。
  • 基本的にはデフォルト値の 1 から変更する必要はありません。
「最低間隔」
  • ノートの終端*8から次のノートの始端までの間隔を拍数(四分音符)単位で指定します。
  • 大きくしすぎると書き出されるWAVファイルが肥大化し、処理速度の低下やメモリ消費量の増大を招きます。小さくしすぎると前のノートの残響が次のノートに混ざってしまう可能性があります。
  • 実際に使われる音源の性質に合わせて調節してください。
「終端マーク」
  • 「有効」の場合、各ノート(あるいはコード/シーケンス)の終端に、ノート終端を示すマーカーを付加します。
    • 「WAVスライス」の際、このマーカーより後ろの部分は切り捨てられます。
  • ハイハットシンバルなどの残響が極端に長い音源に対して、その残響を切り捨てたい場合などに使います。
「書き出し」
  • 「整理」を実行し、MIDIファイルを出力します。
「書き出して次のトラックへ」
  • 「書き出し」た上で次のトラックの「整理」ウィンドウに切り替えます。
    • 有効なノーツの無いトラックは飛ばされます。
  • 全てのトラックについて「ノーツまとめ」などを先に設定しておけば、このボタンを連打することで素早く「整理」を済ませることができます。

  • 「整理」とは、各ノートに一意のインデックスを付ける作業を指します。
  • 同一のノートは全て共通のインデックスを持ちます。
    • 同一とは、「曖昧さ」を考慮した上で音高(ノートナンバー)・強さ(ベロシティ)・長さの全てが同じである、という意味です。
  • コードシーケンスについては、内包する全てのノーツが相対位置を含めて一致する場合に同一とみなされます。
  • インデックスは、基本的にはBMSにおけるWAV定義のインデックスと同じものであると考えてよいです。
    • 多重定義が行われる場合は、WAV定義と「整理」によるインデックスにズレが生じます。

「BMS化オプション」ウィンドウ

「BMS化オプション」は、選択中のトラックをBMSシーケンスにどう反映するかを設定するためのウィンドウです。他のウィンドウと異なり、これ自体は設定を決めるだけで何か作業をするわけではありません。また、同じ内容の設定項目が「トラックマーキング」のウィンドウにもあるため、必ずしも設定しておく必要はありません。
+詳細
並べ替え
  • 「有効」の場合、下の並べ替え優先度に従ってWAV定義リストを並べ替えます。
  • 「無効」の場合、WAV定義リストのインデックスはMIDIでの各ノートの出現順と同じになります。
1st / 2nd / 3rd
  • 「並べ替え」の基準を優先度順に指定します。
    • 「NN」はノートナンバー(音高)、「Vel」はベロシティ(強さ)、「Gate」は発音時間を表し、末尾の矢印は「↑」が昇順(小さいものが定義リストのにくる)、「↓」が降順を表します。
    • デフォルトでは NN > Vel > Gate の優先度で全て昇順になっていますが、必要がなければ「無効」を選ぶこともできます。
  • 比較の結果が同じ場合はMIDIでの出現順に並びます。
多重定義間隔
  • 同一のノーツがこの指定値より短い間隔で鳴らされる場合、多重定義を行います。多重度はこの値とノートの長さに応じて自動的に(無制限に)決まります。
    • キックドラムの16分ロールなど同じ音が連続するときは多重定義したほうがきれいに聞こえる場合があります。
  • 「-1」にしておくと多重定義は適用されません。
  • 「0」にしておくと、ノート終端と次のノート始端が接しているときだけ多重定義します。
基本名
  • WAV定義リストにおける名前の基本部分を指定します。
    • 基本部分とは、例えば定義名が「01_Drum_001.wav」ならば「01_Drum_」の部分です。
  • デフォルトでは「(トラック名)_」になっています。トラック名が無い場合は「01_」などになっています。
接尾辞
  • WAV定義リストにおける名前の末尾部分の形式を指定します。
  • 「通し番号」
    • 「01_Drum_001.wav」「01_Drum_002.wav」「01_Drum_003.wav」... といったふうに、通し番号を使います。
    • この形式の場合、下の「開始番号」と「増加量」も同時に指定する必要があります。
    • 例えば「開始番号」が「3」で「増加量」が「2」の場合、「01_Drum_003.wav」「01_Drum_005.wav」「01_Drum_007.wav」... といった形になります。
    • 基本的にはどちらもデフォルトの設定でいいと思います。
  • 「nn_vel_gate」
    • 「01_Drum_n36_v100_g48.wav」「01_Drum_n36_v100_g24.wav」「01_Drum_n38_v80_g96.wav」... といったふうに、ノートナンバー・ベロシティ・ゲート(長さ)のそれぞれを付加します。
    • 差分作成を見越した場合、こちらの形式のほうが見やすいかもしれません。
    • コードシーケンスの場合、最初に発音されるノーツだけが接尾辞に反映されます。
  • 「直接入力」
    • すぐ下のテキストエリアによって、直接任意の文字列を設定します。
    • 文字列中の <name> は音階名(G4, C#2など)に、<nn> はノートナンバーに、<vel> はベロシティに、<gate> はノートの*9長さに、<idx> は通し番号にそれぞれ置き換わります。
    • 「接尾辞」の指定が「通し番号」「nn_vel_gate」の場合、テキストエリアには自動でそれに対応した文字列が入力されます。
  • 同じ名前が複数ある場合、MIDIでの出現順に合わせて2番目には「_2」、3番目には「_3」というふうに重複を表す数値が付加されます。
「次のトラック」
  • 次のトラックの「BMS化オプション」を開きます。
    • 有効なノーツの無いトラックは飛ばされます。

「BMS書き出し」ウィンドウ

「BMS書き出し」は、「整理」を行った各トラックの内容をBMSシーケンスに反映し、出力する機能です。
+詳細
「フォルダ名」
  • BMSファイルを出力するフォルダを指定します。
  • 「WAVスライス」の保存先と共有です。
  • 空文字列にするとゲームフォルダ内に保存されます。
    • スライスされたWAVでフォルダが埋め尽くされるので、空文字列の指定は推奨しません。
  • デフォルトでは読み込んだMIDIがあるフォルダ内の「exported_bms」になっています。
    • 存在しないフォルダを指定した場合は自動で作られます。
「ファイル名」
  • 出力されるBMSファイルの名前を指定します。
  • デフォルトでは読み込んだMIDIと同じ名前です。
  • 拡張子は省略可能です。
    • 省略した場合や、.bms / .bme / .bml / .pms / .pml 以外の拡張子を指定した場合は「.bms」が自動的に付加されます。
「ジャンル」「タイトル」「作者」
  • それぞれ、BMSにおける「#GENRE」「#TITLE」「#ARTIST」タグの内容を指定します。
  • これらは通常のBMSエディタやメモ帳でも編集可能なので、ここで設定しておく必要はありません。
  • なお、「#PLAYER」「#PLAYLEVEL」「#DIFFICULTY」「#RANK」「#TOTAL」「#STAGEFILE」「#BACKBMP」「#BANNER」については適当*10値に設定されます。必要に応じて、BMSエディタやメモ帳などで変更してください。
「BMSに反映」
  • BMSシーケンスに反映するトラックをチェックボックスで選択します。
  • 「整理」を行っていないトラックは選択肢に現れません。
「開始定義番号」
  • 最初のトラックの1つ目のWAV定義に充てるインデックスを指定します。
  • BGMを用意する場合はそのぶんを空けておくとよいです。
  • あまり大きくしすぎると定義数上限を超える可能性が高くなるので、基本的には「01」でいいと思います。
「定義間隔」
  • トラック間の定義番号の間隔を指定します。
  • 例えば「1」にしておくと、トラック1についてのWAV定義が終わったあと、1つぶん定義を空けてトラック2のWAV定義を始めます。
  • トラックの境界を分かりやすくしたい場合に使えますが、あまり多様すると定義数を圧迫するので基本的には「0」でいいと思います。
「実行」
  • BMSファイルを出力します。
  • BMSシーケンスの生成中、WAV定義の数が1295を超えるとコンソールに警告が出ますがBMSファイルはそのまま出力されます。
    • このとき定義番号("01"~"ZZ"で表されるもの)は2桁に矯正されるため、BMSとしては正しく読み込めますが曲としては崩壊します。
    • 定義数の節約には「整理」におけるVelや長さの曖昧さを大きくしたり、そもそも「BMSに反映」するトラックを減らすなどの方法が挙げられます。

マーカー編集画面の操作

  • スクロールなどの基本操作は「基本画面」と同じです。
  • カーソル位置及び選択範囲は常にクォンタイズされます。
+各アイコンの説明
「前のマーカー」(↑) / 「次のマーカー」(↓)
カーソルを、現在位置の直前または直後のマーカーの位置に移動します。このとき範囲選択は解除されます。
「マーカーの追加/削除」(M)
カーソル(選択範囲の始端)の位置にマーカーがあればそのマーカーを削除します。なければそこにマーカーを追加します。ただし、シーケンス先頭にあるマーカーは削除できません。
「マーカークリア」(Ctrl+C)
全てのマーカーを削除します。ただし、シーケンス先頭にあるマーカーは削除されません。
「ノーツマーク」(A)
選択範囲があれば選択範囲内の、なければシーケンス全体の各ノートの始端にマーカーを付けます。この機能は「シーケンス化」を行ったとき自動的に呼び出されます。
「範囲クリア」(Delete)
選択範囲内のマーカーを全て削除します。選択範囲が無い場合は何もしません。
「範囲自動付加」(Insert)
選択範囲内のマーカーを削除し、クォンタイズと同じ間隔で付け直します。選択範囲が無い場合は何もしません。
「クォンタイズ」(Q)
カーソル/選択範囲の移動単位を指定します。デフォルトでは4分音符にフィットするようになっています。全音符(4拍ぶん)から32分3連符(俗にいう48分音符)までから選ぶほか、tick単位で直接指定することもできます。「直接指定」でクォンタイズを「1」にした場合、実質的にクォンタイズは無効になります。
「自動シーケンス化」(Ctrl+S)
選択中のシーケンスと同じ並びのノーツを全てシーケンス化します。自動シーケンス化により生成されたシーケンスはマーカーの設定を共有します。「同じ並び」の判定には、ノートナンバー(音高)、ベロシティ(強さ)、長さの全てが一致する必要があります。ピアノロール上での見た目が同じでも長さが 1 違えば自動シーケンス化の対象にはなりません。

WAVスライス画面の操作

  • 左チャンネルで、右チャンネルで表示されます。両方が重なる部分は紫色になります。
  • 左ボタンドラッグで範囲選択します。
    • 左クリックでは選択範囲は初期化されず、カーソル(再生位置)だけが移動します。
    • 左ダブルクリックをすると範囲選択を解除します。
    • スクロールバーの上で左クリック/ドラッグすると表示範囲をその場所へ移動します。
    • Ctrlキーを押しながら左ボタンドラッグすると直近のマーカー位置を動かします
  • 右ボタンドラッグ、またはホイール回転で画面をスクロールします。
    • Ctrlキーを押しながらホイールを回転すると、横方向の拡大率を変更します。
    • スクロールバーの上で右クリック/ドラッグすると、その位置にカーソルを移動します。
  • 中央ボタンドラッグ縦方向の拡大率を変更します。
    • 中央ダブルクリックで縦方向の拡大率を初期化します。
    • Ctrlキーを押しながら中央ダブルクリックをすると横方向の拡大率を初期化します。
  • スペースキーを押すとWAVを再生します。もう一度押すと停止します。
    • 選択範囲がある場合、その始端から終端までの範囲を再生します。選択範囲が無い場合、カーソル位置から再生されます。
    • 再生は選択範囲(またはWAV全体)の終端で終了します。このときスペースキーが押しっぱなしにされていると、範囲の最初に戻って再生しなおします。
+各アイコンの説明
「前のマーカー」(↑) / 「次のマーカー」(↓)
カーソルを、現在位置の直前または直後のマーカーの位置に移動します。このとき、そのマーカーから次のマーカーまでの範囲が選択されます。
「まとめて移動」(M)
有効な場合、Ctrl+左ドラッグによるマーカー移動の際、動かしているマーカーより後ろにあるマーカー全てが連動するようになります。多くのマーカーを一括で動かしたい場合に使ってください。
「トラックマーキング」(A)
トラックマーキング」のウィンドウを開きます。
「スライス」(Ctrl+Z)
スライス」のウィンドウを開きます。
「ファイルを開く」(Ctrl+O)
新たにWAVファイルを開きます。WAVを開くと、現在の設定に従って自動でマーカーが配置されます。
「ファイルの保存」(Ctrl+S)
開いているWAVに名前を付けて保存します。このときスライスマーカーの情報も一緒に保存されます*11

「トラックマーキング」ウィンドウ

「トラックマーキング」は、MIDIトラックを読み込んでそれを元にWAVデータにスライスマーカーを配置する機能です。「WAVスライス」の画面を開いたとき自動的にこの機能が呼び出されますので、マーカー位置に不備があるなど、置き直したい場合にこのウィンドウを開くことになります。
+詳細
「参照 MIDI ファイル」
  • スライスマーカーの元になるMIDIファイル名を指定します。
  • 「整理」ウィンドウの「出力ファイル名」と連動します。
  • 基本的にこの項目を変更する必要はありません。
「並べ替え」「基本名」「接尾辞」
  • 「BMS化オプション」と同じなので説明は省略します。
「オフセット」
  • スライスマーカーの位置をこの値のぶんだけにずらします。
  • シーケンスがある場合は、この項目の値は変更せず、必要に応じて手動でマーカーを移動したほうがいいです。
「近傍最小」
  • 各マーカーの位置を、その前後0.5ms(44100Hzの場合は22サンプル)で最も音量(RMS)の低い位置に移動します。
  • シーケンスがある場合、ぶつ切りに伴ってプチプチというノイズ(クリックノイズ)が発生しますが、この項目を有効にしておくとそのノイズを低減できるかもしれません
  • なお、0.5msのズレは聴覚上はほとんど判別できません。

「スライス」ウィンドウ

「スライス」は、WAVデータをスライスマーカーに従って分割し、別々のファイルとして保存する機能です。
+詳細
「フォルダ名」
  • スライス済みのWAVファイルが保存されるフォルダを指定します。
  • 「BMS書き出し」ウィンドウと共有します。
  • 基本的に変更する必要はありません。
「無音カット」
  • 各スライスの両端を、指定されたしきい値で切り捨てます。
  • 「先頭無音レベル」
    • スライスマーカーから、ここで指定された音量(dB)になるまでの区間を切り捨てます。
      • 参考までに、16bitの場合-90.3dB以下で「完全な無音」になります。
      • 24bitの場合-138.5dB以下で「完全な無音」になります。
      • すなわち、デフォルト値の-144dBは24bit WAVにおける「完全な無音」を指しています。
      • 32bit floatの場合「完全な無音」と区別される最小の音量はかなり小さな値になります。
    • マーカーを移動して各スライスに前方の空白を作っていたとしても、その区間がこの値以下の音量であればカットされます。
  • 「末尾無音レベル」
    • スライス区間の終端(次のスライスマーカーの位置)から逆向きに見て、ここで指定された音量(dB)になるまでの区間を切り捨てます。
      • 残響の長い音源では、この値を小さくしすぎると各スライスのファイルサイズが肥大化します。
    • 聴覚上はデフォルトの-72dB程度でほとんど聞こえなくなると思いますが、必要に応じて調節してください。
「両端フェード」
  • 各スライスについて、先頭/末尾からそれぞれの指定時間(サンプル単位)のフェードをかけます。
    • 「先頭」は、各スライスの先頭からのフェードインを指定します。
    • 「末尾」は、各スライスの末尾へのフェードアウトを指定します。
  • シーケンスのぶつ切りに伴って発生するクリックノイズを低減するのに使えますが、スライス位置がより目立つようになるため、なめらかに変化するようなシーケンスの場合はフェードさせないほうがいいかもしれません。
  • 0 以外の値を設定した場合、「実行」時にフェード処理のぶん追加の時間がかかりますので、シーケンスが存在しないなどフェードの必要性が薄い場合は 0 にしておくことをお勧めします。
「ビット深度」
  • 出力される WAVファイルのビット深度(量子化ビット数)を指定します。デフォルトでは読み込んだWAVと同じになっていますが、必要がある場合は変更してください。
  • 例えば元のWAVファイルが16bitの場合、24bit以上のビット深度への変更によって音質は向上しません。
    • 基本的には、32bit float や 24bit など高ビットレートであるような元WAVから低ビットレートに変換したい場合に使う機能です。
  • 注:ビット深度変換はフェード処理と同じタイミングで行われます。各スライスの両端無音カットの時点ではビット深度はまだ変更されていないので、「無音レベル」の指定にはご注意ください。
「実行」
  • 「スライス」を実行し、WAVファイルを出力します。
「スライスして次へ」
  • 「スライス」た上で次のトラックの「スライス」ウィンドウに切り替えます。
    • 「整理」していないトラックは飛ばされます。
  • 全てのトラックについて「整理」などを先に済ませておけば、このボタンを連打することで素早く「スライス」を済ませることができます。



本体以外について

Save フォルダ

  • ゲームフォルダ下の「Save」フォルダには「Vocab」フォルダと「Common.rvdata2」*12というファイルが入っています。
  • Common.rvdata2
    • 「BMSツクール2」のエディタ設定などが保存されるファイルです。「最後に編集した状態」もこのファイル内に格納されています。
    • ソフト起動時にこのファイルが読み込まれ、前回の編集状態を復元します。
    • 削除すると全ての設定を初期化できます。
  • Vocab フォルダ
    • ソフト内のヘルプウィンドウなどに表示する各種文字列を定義する JSON ファイルが入っています(こんな感じ)。
    • 初期状態では「English.json」と「日本語.json」が存在します。これと同じ書式のJSONを作成すれば、任意の言語で説明を表示させることもできます。
      • ただし標準のフォント「VL Gothic」は欧文及び日本語のかな/漢字にしか対応していないので、アラビア文字やハングルなどを描画させたい場合は、システムに対応したフォントをインストールした上で fontname の内容を変える必要があります。
      • 「VL Gothic」以外のフォントが正常に描画されるかは保証できません。フォントによっては字が大きすぎてはみ出す可能性もあるため、同時に fontsize も変えるといいです。
      • 「BMSツクール2」の本体(Game.exe)には「日本語.json」の内容がそのまま格納されているので、このフォルダを空にしてもUIの文字が消えたりはしません。
    • 前述の「言語選択」の際、ウィンドウにはこれらのファイル名がそのまま表示されます。

Fonts フォルダ

  • ソフトで仕様する標準フォント「VL Gothic」が(再配布条件を満たした状態で)そのまま入っています。「BMSツクール2」のディスクサイズの7割がこのフォントによるものです。
    • 削除した場合、システムに「VL Gothic」がインストールされていなければソフトを起動できなくなります*13ので、基本的には削除/変更しないでください。
    • 逆にいえば、システムに「VL Gothic」がインストールされていればこのフォルダを削除してディスクサイズを削減できます。
+非パッケージ版の同梱ファイル
Audio フォルダ
  • SE > Buzzer1.ogg / Cancel2.ogg / Cursor2.ogg / Decision3.ogg
    • 「BMSツクール2」でカーソルの移動や決定などを行ったときに鳴る音声です。
    • 削除すると音が鳴らなくなります。(エラーは起こりません)
    • 同じ名前で別の音声ファイルに差し替えると、操作時の音声が変わります。
System フォルダ
  • HNDINPUT.dll
    • マウスのホイール操作を取得するためのライブラリです。
    • これを削除するとホイール操作が効かなくなります。(エラーは起こりません)
  • LNSLib.dll
    • 主に WAV ファイルの操作時に使われるライブラリです。
    • 削除すると「BMSツクール2」が起動できなくなります。(エラーが起こります)
  • RGSS301.dll
    • RGSS Player の本体です。Game.exe からRubyの機能を呼び出す際に使われるライブラリです。
    • 削除すると「BMSツクール2」が起動できなくなります。
Game.ini
  • Game.exe の起動に関する初期化情報を格納するファイルです。変更しないでください
  • ファイル名を Game 以外にすると起動しなくなります。
Game.rgss3a
  • 「BMSツクール2」のスクリプトデータや画像データなどが格納されたコンテナファイルです。
  • 当然ながら削除すれば起動できなくなります。
  • ファイル名を Game 以外にすると起動しなくなります。
    • 実は「Game.exe」「Game.ini」「Game.rgss3a」の全てを同じ名前にしておけば名前を変更しても起動します。


更新履歴

Ver2.06 / Ver2.06a

  • 2020/03/02 更新
  • 機能追加
    • 基本画面と「WAVスライス」画面にて、Ctrl+Jを押すことで開いているファイルの概要をJSON形式で書き出す機能を追加しました。
      • アイコンはありません。キーボードからのみ呼び出せる機能です。
      • 特にWAVファイルについては、「WAVスライス」画面では表示されない各種タグ情報をJSONで確認できるため、WAVの情報を得るのにいいかもしれません。
  • 仕様変更
    • フォルダ名構成を変更しました。(BMS_Maker2.x.x → BMS_Maker2.xx)
    • 各種設定ウィンドウ(背景が緑色のもの)の背景の不透明度を増加しました。
      • 以前のバージョンより内容が見やすくなりました。
    • 「マーカー編集」画面の「範囲自動付加」の際、選択範囲終端にはマーカーを追加しないように変更しました。
      • 「範囲クリア」については元から選択範囲の終端を含まない処理だったので、こちらに合わせた形となります。
    • 「WAVスライス」画面の「ファイルを開く」にて、ダイアログのタイトル欄に選択中トラックの名前を表示するように変更しました。
    • 「WAVスライス」画面の「ファイルを開く」にて、開いたWAVファイルにマーカーを自動付加しないように変更しました。
      • 「WAVスライス」画面を開いたときの自動付加は引き続き有効です。
      • 既にマーカー付加済みのWAVがあり、そのマーカーを確認したいときなどに有効です。
      • この仕様変更に伴い、「WAVスライス」画面の「ファイルを開く」からWAVを読み込んだ場合、スライスマーカーは「トラックマーキング」により改めて付け直すことが必要になりました。
      • 「ファイルを開く」の後何もせずに「WAVスライス」画面を閉じ、再び開くことでもマーカーが付加されます。
    • いくつかの用語(Vocab/日本語.json 及び Vocab/English.json 内)を変更しました。
  • 不具合修正
    • 「WAVスライス」画面の「ファイルの保存」にて、上書き保存(開いているファイルをそのままの名前で保存)するとWAVファイルの中身が消滅する不具合を修正しました。
    • 「整理」画面の「書き出し」時に、元々のトラックが持っていたチャンネルの情報が、出力されるMIDIに反映されていなかった不具合を修正しました。
    • 基本画面の「ファイルの保存」にて、キースイッチを指定しているとキースイッチ指定のノーツが二重に書き込まれる不具合を修正しました。

Ver2.05 / Ver2.05a

  • 2020/02/27 更新
  • 機能追加
    • 基本画面のUIに「更新の自動チェック」を追加しました。
      • 有効な場合、起動時にバージョンの更新を確認し、更新があればこのページへ誘導するようにしました。
      • 有効にした際にも更新チェックを行います。
    • 実験機能です。Ver2.05時点ではこのページを開くだけでアップデート機能そのものはありません。将来的にはソフト単体でアップデートまで可能にするかもしれません。*14
  • 不具合修正
    • 「整理」「BMS化オプション」「WAVスライス」「BMS書き出し」のショートカットキーが機能しない不具合を修正しました。
    • 「WAVスライス」画面の「スライス」ウィンドウにて、特定条件*15で「実行」するとエラーが発生する不具合を修正しました。

Ver2.04 / Ver2.04a

  • 2020/02/26 更新
  • 仕様変更
    • 「WAVスライス」画面の「スライス」ウィンドウにて、「ビット深度」の項目を追加しました。
    • 「マーカー編集」画面にて、カーソルキーの上下で画面がスクロールしないように変更しました。
      • Shiftキーを押しながらホイールを回すことで上下方向にスクロールできます。
    • 「BMS書き出し」ウィンドウにて、「実行」により書き出されるBMSファイルの改行コードをLFからCRLFに変更しました。
  • 不具合修正
    • 通常画面にて、「トラック名の変更」を行おうとするとエラーが発生する不具合を修正しました。
    • 「WAVスライス」画面の「ファイルを開く」でWAVファイルを開いたとき、波形表示部分に反映されない不具合を修正しました。

Ver2.03 / Ver2.03a

  • 2020/02/24 更新
  • 非パッケージ版 (2.03a)
    • 通常版が Windows Defender などにウィルス判定を食らうことがあるため、Audioフォルダなど通常版では Game.exe にパッケージされていたものをそのままにしたバージョンもダウンロードできるようにしました。
    • 通常版の「Game.exe」に同梱されていた「Audio」「System」「Game.ini」「Game.rgss3a」が独立のフォルダ/ファイルとして存在しています。
    • 通常版と同じく「Game.exe」または「Run.bat」により起動します。機能は全て同一です。
  • 仕様変更
    • 「BMS化オプション」及び「トラックマーキング」にて、「接尾辞」の設定方法を変更し、任意の文字列を指定できるようになりました。
    • Ver2.0.1で「整理」を行っていた場合、再度「整理」を行ってください。
  • 不具合修正
    • またもやDLLが読み込めなくなっていたため修正しました。

Ver2.02

  • 2020/02/23 更新
    • 起動できない不具合があったため公開停止
  • 機能追加
    • 「ファイルを開く」から現在編集中のものと同じファイル*16を開こうとした際、現状のシーケンス化などの設定を保ったままアップデートできるようになりました。
      • ノートナンバー、長さ、ベロシティのいずれかが変更された部分の「シーケンス化」は解除されます。
      • ノートの配置ミスなどにより元々のMIDIファイルを修正したとき、最小限の操作で以前の編集状態を再現できるようになりました。
  • 仕様変更
    • 「BMS化オプション」などのウィンドウで何も設定を変更せずに閉じた場合は「元に戻す」のカウントが更新されないようになりました。
    • キースイッチ指定により実質のノート数が 0 になったトラックは「整理」できないようにしました。
    • 「コードまとめ」ウィンドウに「シーケンス除外」の項目を追加しました。
    • 「WAVスライス」内の「トラックマーキング」ウィンドウに「基本名」の項目を追加しました。
  • 不具合修正
    • プログラム起動後、「整理」画面を経由せずに「WAVスライス」を開くとエラーが発生する不具合を修正しました。
    • 特定条件で「BMS書き出し」を行うとエラーが発生する不具合を修正しました。

Ver2.01

  • 2020/02/20 更新
  • 不具合修正
    • DLLが読み込めない旨のRuntimeErrorが発生する不具合を修正しました。*17
    • 日本語フォルダに対応できていなかった不具合を修正しました。
    • 誤ってROKINAがデモで使っていたMIDIのデータが含まれていたので削除しました。

Ver2.00

  • 2020/02/19 更新
    • 起動できない不具合があったため公開停止


名前:
コメント:
最終更新:2021年03月03日 19:07

*1 α版ではこれの対策をしていなかったので、しばしば Failed to allocate memory で落ちていました。

*2 Run.batの中身は、見れば分かりますが「Game.exe」を console のオプション付きで起動しているだけです。

*3 RPGツクール(VX以降)製のゲームをやったことがある人は、他の一般的なゲームと同じキーアサインだと思えばよいです。

*4 リセット時にエラーが発生する現象に関しては、Ver2.02で修正されました。

*5 Ver2.02にて「何も変更せず閉じた」ときは「元に戻す」のカウントが更新されなくなりました。

*6 後のアップデートでアンドゥの最大回数を指定できるようにする予定です。

*7 Conductorを選んだ状態でピアノロール右上に表示されます。

*8 終端が拍と重なっていない場合はその次の拍

*9 コード/シーケンスの場合はその全体の

*10 BMSツクールの作者が勝手に決めた

*11 FL Studioで開くとマーカーを参照できるのですが、他のDAWだとどうなるかは確認していません。

*12 初回起動以降

*13 Vocab定義ファイル内の font を変えていない場合

*14 RGSS Player(Game.exe)の実行中に実行ファイル(Game.rgss3a)を変更可能であるか、変更した場合何が起こるか、作者はまだ検証していません。自動アップデートを実装するかは怪しいところです。

*15 「先頭フェード」「末尾フェード」がともに 0 かつ「ビット深度」を変更した状態

*16 ファイル名で判定されます

*17 誤ってDebug BuildのDLLを同梱していた(照