BeMusicSeeker Unofficial Fork

概要
本プロジェクトは、Sayaka / 黒皇帝 氏の BeMusicSeeker-installer に同梱されている BeMusicSeeker.exe を ILSpy でデコンパイルし、改修・再構築を行った非公式版です。
オリジナルバイナリの作者である @rib_2_bit 氏から直接の許諾を得たうえでのフォークではありませんが、元バイナリが MIT License の下で公開されていることに基づき、派生版の作成および公開は問題ないと判断しています。
【重要】本リポジトリについて オリジナルのソースコードは非公開のままだったと認識しており、本プロジェクトにおいても、デコンパイルによって得られたソースコードそのものは(大部分を)リポジトリに含めていません。 本リポジトリは事実上、「改修済みリリースパッケージ(バイナリ)の配布」 と 「新規に追加・作成した一部のスクリプトや差分コードの公開」 を目的としたリポジトリとして運用されます。
導入手順
詳しい初回設定、動作モード、画面ごとの使い方は ユーザーマニュアル を参照してください。
- Everything 1.5 Alpha (x64) の導入を推奨
- 未導入でも動作しますが、大規模ライブラリでは起動・リロード・インストール推定の速度差が大きくなります。
- 導入後は、BMS 関連ファイルが存在するディレクトリのインデックス作成が完了し、Everything 上で検索できる状態にしてから BeMusicSeeker を起動してください。
- リリース版のダウンロード
- Releases ページから最新版をダウンロードしてください。
- ZIP のまま実行せず、書き込み可能な任意のディレクトリへ展開してください。インストール作業は不要なポータブルアプリとして動作します。
- 初回起動と設定
- 初回起動時は言語選択と設定画面が表示されます。動作モード、BMS ディレクトリ、LR2 連携に必要な
song.db/config.xmlなどを設定してください。 - 初回設定の流れは 初期セットアップ、設定項目の意味は 設定画面 を参照してください。
- 従来版 BeMusicSeeker がインストール済みの環境では、設定を自動的に引き継ぎます。引き継がれた設定は配置先の
.\config\user.configに保存されるため、元の BeMusicSeeker 本体には影響しません。 - LR2 連携モードで使う場合は、初回スキャン前に
song.db、config.xml、score DB などのバックアップを取ることをおすすめします。
- 初回起動時は言語選択と設定画面が表示されます。動作モード、BMS ディレクトリ、LR2 連携に必要な
- 使い方・ログ
- 基本操作は ユーザーマニュアル を参照してください。
- 譜面導入や保留パッケージの操作は インストール / 保留パッケージ を参照してください。
- キーワード検索の詳しい構文は キーワード検索構文ガイド を参照してください。
LaunchWithInfoLog.batから起動すると、通常より詳しいログがapplication.logとinstall-performance.logに出力されます。ログの見方は ログレベル INFO ガイド を参照してください。
変更概要
ここでは代表的な改善点だけを紹介します。詳しい使い方と注意点は ユーザーマニュアル を参照してください。
※ BMS 関連のデータベースや実ファイルを削除/移動する機能を含みます。導入・利用は自己責任でお願いします。
目玉の改善
- 起動・リロード・譜面導入の高速化
Everything 1.5 Alpha x64を利用した高速ファイル列挙と、初期化・差分確認・DB 更新処理の見直しを行っています。- 導入先推定、保留パッケージ処理、重複ファイルチェック、プレイリスト表示など、大規模ライブラリで重くなりやすい処理を中心に改善しています。
- 一覧表示は独自テーブル表示へ整理し、列設定、ソート、ツールチップ、プレイリストサマリーなどを大規模環境でも扱いやすくしています。
- bmson 対応
- bmson を BMS / PMS と同じく譜面ファイルとしてライブラリ、インストール、重複チェック、プレイリスト表示などで扱えるようにしています。
- ただし、現時点では内蔵プレイヤーでの再生や音声ファイル変換には対応していません。詳細は マニュアルの再生・録音 を参照してください。
その他の主な改善
- スタンドアローンモード
- LR2 の
song.dbを使わず、アプリ配下のdata/song.dbでライブラリを管理できます。 - ポータブルアプリ化
- 設定は配置先の
config/user.configに保存され、従来版 BeMusicSeeker の設定は初回起動時に自動コピーされます。 - インストール / 保留パッケージ機能の強化
- 差分導入先推定、手動導入先指定、マージ先推定、スマート上書き、既所持パッケージ整理、ゼロノート譜面の無効拡張子化などを追加・改善しています。
- プレイリスト機能の強化
- プレイリストサマリー、外部同期 STATUS、単体 / 範囲リロード、URL1/URL2 補完まわりを整理しています。
- beatoraja の
tableフォルダへ全プレイリストの.bmt難易度表キャッシュを出力できます。beatoraja 側の level 集約処理が重い環境で、BeMusicSeeker 側の集約済みデータを使わせるための互換処理です。 - メンテナンス機能の強化
- LR2互換性警告、ゼロノート検索、解析エラー、構成ファイルフルスキャン、重複ファイルチェックなど、状態確認用の画面を拡充しています。
- UI・ログ・多言語対応
- テーマ対応、設定ダイアログ整理、ステータスバー進捗表示、ログ出力、多言語リソース管理を改善しています。
TODO
現状で思いついたアイデアのメモです。思いついた順で、優先度は混在しています。対応済みになったものは随時この一覧から外します。
- BMS Score Viewer の未登録譜面確認画面
- (5MB超などのアップロード制限で送れなかった)未登録md5を自前でローカルDBに持つべきか? そうしないと未登録画面のリストから延々と消えない問題がある。
- 基本的には bms-score-uploader のアプローチを踏襲すれば良さそう。
- LR2IRからライバルデータをダウンロードし、データベース化・配置する機能
- クリアランプビューア機能
- コース内容の表示、および順番編集機能
- ハードコードされているURL群のうち、リンク切れとなっているものの代替
- LR2IRキャッシュ系はデータの用意や更新が大変なため、理想的には「プロキシサーバを用意し、最終更新から24時間経過していた場合のみLR2IR本体へフェッチしにいく」といった仕組みが良いかもしれない。
- Everything 1.5a 連携失敗時の警告ダイアログの表示
- カスタムフォルダ出力機能の継続確認
- 重要なコア機能なので、仕様整理と回帰確認を継続しておく必要がある。
.wavと.oggが重複して存在している場合にどちらかに寄せる機能
ライセンスの適用範囲
本リポジトリにて新規作成、および公開されているファーストパーティのソースコード(各種スクリプトなど)には、元バイナリに準じて MIT License が適用されます。
- 新規作成コード(公開スクリプト等): MIT License (
LICENSEを参照) - サードパーティ製バイナリ・フォント・SDK等: 本リリースパッケージに含まれるその他の外部コンポーネントは、それぞれの提供元が定めるライセンスおよび利用規約に従います。
- 条項が競合する場合、そのコンポーネントについては提供元のライセンス・注意情報が優先されます。
監査台帳とサードパーティ条項の詳細について:
ThirdPartyNotices.ja.txt: 各依存コンポーネントごとの注意事項や法的リスク状態のリストthird_party/licenses/: 同梱されている、プロプライエタリなコンポーネントやフォント等の利用許諾条項の原文ファイル
BASSに関する重要事項
本プロジェクトのリリースパッケージには、MITライセンスの適用範囲外となる BASS 関連のオーディオコンポーネントが含まれています。
これらのバイナリ群はオープンソースではなく、商用利用を行う場合には提供元(un4seen等)からの適切な商用ライセンスの取得が義務付けられています。非商用かつ個人利用の範囲であればフリーウェアとして許可される場合がありますが、利用の際は常にネイティブ版BASSおよび Bass.Net ラッパーの公式ライセンス条項を遵守してください。