BMS Analysis とは
手持ちのBMSファイルを検索して内容を解析・分析し、その結果を様々な形式で出力するアプリケーションです。 出力したい項目や項目の並び順、出力形式ごとの設定を細かく行うことができ、出力された結果から多種多様な 分析を行うことを目的としています。

以下のリンクから最新版を入手できます。
ダウンロードしたファイルを任意のフォルダに解凍してください。

BMS Analysisの起動
解凍したファイルの中にある「bmsanalysis.exe」を実行します。
bmsanalysis.exe
Java実行環境
BMS Analysis の実行には Java17 実行環境が必要です。お使いのPCにインストールされていない場合、以下のようなメッセージが表示されます。 (※英語・日本語・韓国語で同じ意味の文章が表示されます。環境によっては一部の言語が文字化けする場合があります)
起動時に以下のメッセージが表示された場合は こちらのページ の内容に従って Java17 実行環境をインストールしてください。
Java17実行環境未インストール時のメッセージ
表示言語の選択
初回起動時はアプリケーション上での表示言語を選択する画面が表示されます。表示に使用したい言語を選択し、OKボタンを押してください。
表示言語の選択画面
起動直後の画面
BMS Analysis の起動に成功すると以下の画面が表示されます。
BMS Analysis メイン画面
入力元の選択
最初にBMSファイルを検索するフォルダ、またはファイルを選択します。フォルダの場合、選択したフォルダとその配下のサブフォルダから BMSファイルを検索しようとします。ファイルの場合、対応する圧縮ファイル(※1)を選択します。対応形式はZIP/7-ZIP/RAR(※2)の3種類です。 圧縮ファイルの中に格納されている全てのBMSファイルを検索しようとします。
入力元の選択

※1 現在、非常に低速な動作となっています
※2 RAR5には対応していません

出力形式の選択
BMSファイル分析結果の出力形式をリストから選択します。出力形式ごとの詳細設定を行う場合には隣の詳細設定ボタンを押し、細かい出力設定を行うことができます。
出力形式の選択
出力項目の編集
分析結果として出力したい項目とその順番を編集します。左側のリストが実際に出力する項目とその順番、右側のリストが出力可能な項目を表します。
出力項目の編集
ソート順の編集
分析結果の並び順を決定するための項目を編集します。左側のリストが実際の並び順、右側のリストが並び順に利用可能な項目を表します。 左側リストの「△」はその項目の昇順ソート、「▽」は降順ソートを表します。また、ソート順はリスト上部の項目から順に評価していきます。
ソート順の編集
出力開始
最後に出力先のファイルパスを入力すると、画面下部の出力開始ボタンを押せるようになります。ボタンが押せない場合は入力内容に不備があるので、 各種設定内容に間違いがないか再確認してください。
※開始前に出力ファイルが閉じられていることを確認してください
出力開始
分析結果出力中の画面
各種設定内容に従ってBMSファイルの検索、分析を行っている間は以下のような画面で進捗状況が表示されます。 ファイル数にもよりますが処理するファイルが多いと数分~数十分ほど時間を要する場合があります。 全ての処理が完了するまで画面を閉じずに待機してください。
分析結果出力中の画面

UIモードでは複数の出力オプションを選択し複数のBMSファイルの分析結果を表示する用途で使用しますが、1個のBMSファイルを単体で分析することもできます。
BMSファイルの選択
分析したいBMSファイルをエクスプローラで選択し、BMS Analysisのプログラムファイルへドラッグ&ドロップすると分析が即座に開始されます。 分析には数秒ほど時間がかかりますので完了まで待機してください。
BMSファイルのドラッグ&ドロップ
分析結果の表示
分析が完了すると、以下のようなレイアウトでWebブラウザに結果が表示されます。
単体BMSファイル分析モードでの分析結果
その他の単体BMSファイル分析モード実行方法
.bms / .bme / .bml ファイルを bmsanalysis.exe に関連付けておくと、エクスプローラ上でBMSファイルをダブルクリックするだけで 単体BMSファイル分析モードでの分析を実行することができるようになります。詳しい設定手順については本ページでは省略しますので、 設定を行う際はインターネット上で情報を検索する等で手順を探してみてください。

現在の最新バージョンで対応している出力項目について解説します。
項目名 対応ヘッダ/Ch 説明
入力元パス なし アプリの「入力元」に追加されたフォルダ・ファイルの絶対パスが出力されます。
入力元格納場所 なし アプリの「入力元」に追加されたフォルダ・ファイルが格納されているフォルダの絶対パスが出力されます。
入力元名称 なし アプリの「入力元」に追加されたフォルダ・ファイルのフォルダ名、またはファイル名が出力されます。
BMSファイル絶対パス なし BMSファイルの絶対パスが出力されます。
BMSファイル相対パス なし BMSファイルの「入力元パス」からの相対パスが出力されます。
BMSファイル格納場所 なし BMSファイルが格納されているフォルダの絶対パスが出力されます。
BMSファイル名 なし BMSファイル名が出力されます。
BMSファイルサイズ なし BMSファイルのファイルサイズがバイト数単位で出力されます。
BMSファイル更新日 なし BMSファイルの最終更新日時が出力されます。
ハッシュ値(LIB) なし BMSファイルから算出した64文字のハッシュ値が出力されます。この値はBMSライブラリから得られた未加工の値で、現時点では意味を持ちません。
ハッシュ値(MD5) なし BMSファイル全体のMD5ハッシュ値が出力されます。
ハッシュ値(SHA-1) なし BMSファイル全体のSHA-1ハッシュ値が出力されます。
ハッシュ値(SHA-256) なし BMSファイル全体のSHA-256ハッシュ値が出力されます。
ジャンル #GENRE 楽曲のジャンルが出力されます。
タイトル(定義) #TITLE 楽曲のタイトルが出力されます。
この項目は、#TITLEの値をそのまま出力します。
タイトル #TITLE
#SUBTITLE
楽曲のタイトルが出力されます。
この項目は、同一楽曲の#TITLEの共通部分を出力します。
サブタイトル(定義) #SUBTITLE 楽曲のサブタイトルが出力されます。
この項目は、#SUBTITLEの値をそのまま出力します。
サブタイトル #TITLE
#SUBTITLE
楽曲のサブタイトルが出力されます。
この項目は、同一楽曲の#TITLEの共通部分以降の内容を出力します。
フルタイトル #TITLE
#SUBTITLE
タイトル+サブタイトルが出力されます。
アーティスト名 #ARTIST 楽曲のアーティスト名が出力されます。
サブアーティスト名 #SUBARTIST 楽曲のサブアーティスト名が出力されます。複数定義されている場合、"/"で区切った値となります。
ジャケット画像ファイル #STAGEFILE ジャケット画像ファイルのパスが出力されます。
バナー画像ファイル #BANNER バナー画像ファイルのパスが出力されます。
背景画像ファイル #BACKBMP 背景画像ファイルのパスが出力されます。
プレビューファイル #PREVIEW プレビューファイルのパスが出力されます。
動画ファイル #BMP01 視覚演出が「動画」の場合に動画ファイルのパスが出力されます。
視覚演出 #BMPxx
Ch:04
#BMPヘッダとBGAチャンネルの定義状況から、視覚演出の種類が判定され出力されます。値は「なし」「動画」「静止画」「アニメーション」のいずれかになります。
URL %URL 楽曲に関連付けられたURLが出力されます。
E-Mail %EMAIL 楽曲に関連付けられたメールアドレスが出力されます。
プレーモード #PLAYER プレースタイルの種類が出力されます。BMS Analysisでは「1」をシングルプレー、「2」「3」「4」をダブルプレーと判定します。
譜面難易度 #DIFFICULTY 譜面難易度の種別が出力されます。値「1」から順に「BEGINNER」「NORMAL」「HYPER」「ANOTHER」「INSANE」と判定し、それ以外の値では「OTHER」となります。
譜面種別 #PLAYER
#DIFFICULTY
プレーモード+" "+譜面難易度を出力します。
楽曲レベル #PLAYLEVEL 譜面制作者が規定した譜面のレベルが出力されます。小数点以下の値は切り捨てられます。
初期BPM #BPM 演奏開始時のBPMが出力されます。小数点以下の値は切り捨てられます。
判定ランク #RANK 判定ランクの種別が出力されます。値「0」から順に「VERY HARD」「HARD」「NORMAL」「EASY」判定し、それ以外の値では「OTHER」となります。
LNモード #LNMODE ロングノートのモードが出力されます。値は「LN」「CN」「HCN」のいずれかになり、ヘッダが未定義・不明な値の場合は「LN」となります。
TOTAL値 #TOTAL TOTAL値がそのまま出力されます。ただし、小数点以下の値は切り捨てられます。
推奨TOTAL値1 なし 総ノート数から算出されたTOTAL値の推奨値が出力されます。この値は以下の計算式で算出されます。
TOTAL = 7.605 * N / (0.01 * N + 6.5)
※N = 総ノート数
推奨TOTAL値2 なし 総ノート数から算出されたTOTAL値の推奨値が出力されます。この値は以下の計算式で算出されます。
N < 400: TOTAL = 200 + N / 5
N < 600: TOTAL = 280 + (N - 400) / 2.5
N >= 600: TOTAL = 360 + (N - 600) / 5
※N = 総ノート数
演奏時間 なし 楽曲の演奏時間が分:秒単位で出力されます。楽曲の先頭から最後のノートを演奏し終えるまでの範囲が演奏時間となります。
最小BPM #BPM
#BPMxx
楽曲中の最小BPMの値が出力されます。BPM変化のない楽曲では初期BPMと同じ値になります。
最大BPM #BPM
#BPMxx
楽曲中の最大BPMの値が出力されます。BPM変化のない楽曲では初期BPMと同じ値になります。
フルBPM表記 #BPM
#BPMxx
「初期BPM (最小BPM-最大BPM)」の表記が出力されます。BPM変化のない楽曲では初期BPMと同じ値になります。
COMPLEX なし Delta SystemのCOMPLEX値が出力されます。値の詳細はこちら
POWER なし Delta SystemのPOWER値が出力されます。値の詳細はこちら
RHYTHM なし Delta SystemのRHYTHM値が出力されます。値の詳細はこちら
総ノート数 なし 操作対象の総ノート数が出力されます。通常ノート、ロングノートがカウントの対象になります。
SCRATCH数 Ch:16, 26 スクラッチの総数が出力されます。ダブルプレーの場合、左右レーンのスクラッチの合計数になります。
SCRATCH比率 Ch:16, 26 総ノート数に対するスクラッチ総数の比率が出力されます。
LN数 なし ロングノートの数が出力されます。
LN比率 なし 総ノート数に対するロングノートの比率が出力されます。
平均密度 なし 操作対象のノートが存在する期間での平均密度が出力されます。単位はNotes/秒です。
最大密度 なし 操作対象のノートが存在する期間での最大密度が出力されます。単位はNotes/秒です。
注視点傾向(LS/DP) なし スクラッチが左側にある場合、またはダブルプレーにおける注視点の値が出力されます。値は-1~1の範囲で、レーン左端が-1、中央が0、右端が1を示します。この値は楽曲全体での注視点の大まかな傾向を表します。
注視点傾向(RS) なし スクラッチが右側にある場合の注視点傾向が出力されます。
注視点変動係数(LS/DP) なし スクラッチが左側にある場合、またはダブルプレーにおける注視点の振れ幅が出力されます。値は0~1の範囲で、値が大きくなるほど楽曲の進行による注視点の振れ幅が大きいことを表します。
注視点変動係数(RS) なし スクラッチが右側にある場合の注視点変動係数が出力されます。
視野幅(LS/DP) なし スクラッチが左側にある場合、またはダブルプレーにおける視野幅の値が出力されます。値は0~1の範囲で、0が幅なし、1がレーン全体を表します。この値が大きい楽曲は横方向に対する譜面認識力が必要であることを示します。
視野幅(RS) なし スクラッチが右側にある場合の視野幅が出力されます。
視野幅変動係数(LS/DP) なし スクラッチが左側にある場合、またはダブルプレーにおける視野幅の振れ幅が出力されます。値は0~1の範囲で、値が大きくなるほど楽曲の進行による視野幅の振れ幅が大きいことを表します。
視野幅変動係数(RS) なし スクラッチが右側にある場合の視野幅変動係数が出力されます。
KEY1 Ch:11-16, 18-19 シングルプレー、またはダブルプレー左側レーンのそれぞれのキー・スクラッチ数が全て出力されます。
KEY2 Ch:21-26, 28-29 ダブルプレー右側レーンのそれぞれのキー・スクラッチ数が全て出力されます。
KEY / SCRATCH-[N] Ch:11-16, 18-19
Ch:21-26, 28-29
各キー・スクラッチに対応する操作対象のノート数が出力されます。
KEY / SCRATCH-[N](%) Ch:11-16, 18-19
Ch:21-26, 28-29
総ノート数に対する各キー・スクラッチの操作対象のノート数比率が出力されます。
BPM変化回数 #BPMxx
Ch:03
Ch:08
楽曲の進行によってBPMが変化する回数が出力されます。
譜面停止回数 #STOPxx
Ch:09
楽曲の進行中に譜面が停止する回数が出力されます。
WAV定義数 #WAVxx #WAVヘッダの定義数が出力されます。
BMP定義数 #BMPxx #BMPヘッダの定義数が出力されます。
エラー数 なし BMS定義の中のエラー数が出力されます。
ジャケット有無 #STAGEFILE ジャケット画像ファイルが定義されているかどうかが出力されます。
バナー有無 #BANNER バナー画像ファイルが定義されているかどうかが出力されます。
背景画像有無 #BACKBMP 背景画像ファイルが定義されているかどうかが出力されます。
プレビュー有無 #PREVIEW プレビューファイルが定義されているかどうかが出力されます。
BPM変化有無 #BPMxx
Ch:03
Ch:08
楽曲の進行途中でのBPM変化があるかどうかが出力されます。
譜面停止有無 #STOPxx
Ch:09
楽曲の進行中に譜面が停止することがあるかどうかが出力されます。
ロングノート有無 Ch:11-16, 18-19
Ch:21-26, 28-29
操作対象ノートの中にロングノートが存在するかどうかが出力されます。
地雷有無 Ch:D1-D6, D8-D9 地雷オブジェが含まれているかどうかが出力されます。
フロー制御 #RANDOM
#IF
#ELSE
#ELSEIF
#ENDIF
乱数と分岐による定義のランダム化が行われているかどうかが出力されます。
エラー有無 なし BMSの定義内容にエラーがあるかどうかが出力されます。

ver 変更内容
0.6.0
  • 出力項目「COMPLEX」「POWER」「RHYTHM」を追加しました。
  • Webカタログ出力において、グループ化の単位「COMPLEX」「POWER」「RHYTHM」を追加しました。
0.5.0
  • Webカタログ出力において、1譜面ごとの詳細情報を表示する「楽曲詳細情報ページ」を出力する機能を追加しました。楽曲詳細情報ページには以下のような特徴があります。
    • ページ先頭にジャケットやタイトル、アーティストなどの代表的な情報を分かりやすく表示します。
    • BMSの定義エラーやファイルのリンク切れを検出して警告表示することができます。
    • 楽曲のタイトルを用いた各種動画投稿サイトでの検索結果へリンクすることができます。
    • 対応するほぼ全ての分析結果を詳細表示します。
  • Webカタログ出力において、プレビューファイルをブラウザ上で再生する機能を追加しました。
  • Webカタログ出力において、動画ファイルをブラウザ上で再生する機能を追加しました。(2022年現在、ブラウザ上で再生可能な動画ファイルはあまり多くありません)
  • Webカタログのデザインを調整し、表示内容を改善しました。
  • Excelワークブック出力において、各出力項目の列幅を調整するオプションを追加しました。
  • BMSファイルを指定してアプリケーションを起動すると、そのBMSファイルを単体で分析し「楽曲詳細情報ページ」で分析結果を簡単に表示できる「単体BMSファイル分析モード」に対応しました。
  • ジャケット画像ファイル・バナー画像ファイル・背景画像ファイル・プレビューファイルは、BMS定義と異なる拡張子の同名ファイルを検索し、定義と実在ファイルに差異がある場合にその違いが分かるように出力されるようになりました。
  • プレビューファイルの定義がない場合にはBMSファイルと同じフォルダからpreview.wav/ogg/mp3を検索し、実在するファイルを「プレビューファイル」として表示するようになりました。(beatorajaの仕様に類似した動作となります)
  • 出力項目「SCRATCH数」「SCRATCH比率」を追加しました。
  • 出力項目「KEY1」「KEY2」を追加しました。
  • カンマ/タブ区切りリスト出力で、出力内容に複数の言語が混在していると文字化けが発生することがある不具合を修正しました。これにより、本バージョンからカンマ/タブ区切りリストはBOM付きUTF-8にエンコードされて出力されるようになります。
0.4.0
  • 出力項目「タイトル」「サブタイトル」(同一楽曲解析による結果)を追加しました。
  • 出力項目「譜面種別」を追加しました。
  • 出力される項目名を任意の名前に変更する機能を追加しました。
  • 出力設定の保存・読み込み・デフォルト設定を行う機能を追加しました。
  • 出力設定の機能追加に伴い、出力設定のテンプレートを同梱しました。
  • 出力形式「Webカタログ」を追加し、出力された分析結果をWebブラウザで閲覧できるようになりました。
  • カンマ/タブ区切りリストの詳細設定画面で、ヘッダ部出力有無を切り替えてもヘッダ部言語のUIが更新されない不具合を修正しました。
  • カンマ/タブ区切りリスト出力で、ヘッダ部言語の設定が正しく反映されない不具合を修正しました。
0.3.0
  • 出力項目「ハッシュ値(MD5 / SHA-1 / SHA-256)」を追加しました。
  • 出力項目「動画ファイル」を追加しました。
  • 出力項目「プレビューファイル / プレビュー有無」を追加しました。
  • 出力項目「LNモード」を追加しました。
  • 出力項目「推奨TOTAL値1 / 2」を追加しました。
0.2.0
  • 出力項目「フロー制御」を追加しました。
  • 出力項目「視覚演出」を追加しました。
  • 出力項目「WAV定義数 / BMP定義数」を追加しました。
  • 出力項目「背景画像ファイル / 背景画像有無」を追加しました。
  • 出力項目「エラー数 / エラー有無」を追加しました。
  • 分析結果出力時に発生したエラーの詳細内容を表示する機能を追加しました。
  • Excelワークブック出力で、外部リンク可能な出力項目にハイパーリンクを設定する機能を追加しました。
  • Excelワークブック出力で、%表記の出力項目の小数点第2位が常に0になる不具合を修正しました。
  • ジャケット/バナー画像有無が常に「あり」になってしまう不具合を修正しました。
0.1.0
  • 出力項目「KEY / SCRATCH[N](%)」を追加しました。 ※総ノート数に対する各キーの割合
  • 出力項目「LN数 / LN比率」を追加しました。
  • 出力項目「平均密度 / 最大密度」を追加しました。
  • 出力項目「注視点傾向 / 注視点変動係数」を追加しました。
  • 出力項目「視野幅 / 視野幅変動係数」を追加しました。
  • Excelワークブック出力でヘッダ部の背景色を選択できるようにしました。
  • #STAGEFILE, #BANNER にファイルパスとして使用できない文字があると出力に失敗する不具合を修正しました。
0.0.1 新規作成

今後のバージョンアップで対応する予定の項目一覧です。優先順位をつけて順次対応していきます。
※一覧は予告なく追加・更新・削除する場合があります
  • Excelワークブックで各種分析グラフを出力できるようにする。
  • Excelワークブックで出力項目ごとに見やすい装飾を行うことができるようにする。
  • BMS Analysis の詳細な動作設定を行う機能を追加する。
  • Delta Systemのレーティング値「SCRATCH」「HOLDING」「GIMMICK」「DELTA(Δ)」を出力できるようにする。
  • 譜面傾向のレーダーチャートを出力できるようにする。
  • 最もクリアしやすい・しにくいRANDOM配置を出力できるようにする。
  • 譜面の画像を出力できるようにする。
  • その他、動作・パフォーマンス改善など。