LR2 BP減らし周回用のカスタムフォルダを作る

はじめに

こんな感じのフォルダを作る記事です。LR2にはBPソートがないので自分で作ることにしました。

作業

BeMusicSeekerの導入が前提です。

対象とする難易度表のplaylist_idを確認する

BeMusicSeekerのプレイリスト出力フォルダのうちの対象としたい難易度表のフォルダを開き、拡張子が.lr2folderのファイルをなんでもいいので開く。

#COMMANDplaylist_id = xxxxxを探してIDをメモ。

カスタムフォルダを作る

どこでもいいのでフォルダを作って中に移動。フォルダ名は難易度表名 (order by BP)などにしておくとわかりやすい?

以下のような内容の拡張子が.lr2folderのファイルを好きなだけ作る。

SQLがわかる方は#COMMANDは好みに合わせて改変してください。対象の難易度表を複数にしたりなど

#COMMAND song.hash in (SELECT md5 FROM playlist_entry WHERE playlist_id = 前の作業で確認したIDをここに AND is_removed = 0) AND (minbp BETWEEN 120 AND 130) ORDER BY minbp ASC
#MAXTRACKS 0
#TITLE 120 <= BP <= 130

ただ手作業だと面倒なのでカスタムフォルダを自動生成するPythonスクリプトを用意しました。BPを1から10ごとに最大300まで分けたカスタムフォルダを作成します。

(追記)環境構築不要のバッチファイルの方がよかったかも やりたいことはもう実現できているので気が向いたら書く 誰か代わりに書いて(追記おわり)

.lr2folderを生成する場所に下記のコードをgeneratelr2folder.pyなどとして保存してください。

playlist_id = 1 # 前の作業で確認したIDをここに

lr2folder_template = lambda lower_limit, upper_limit :f"""#COMMAND song.hash in (SELECT md5 FROM playlist_entry WHERE playlist_id = {playlist_id} AND is_removed = 0) AND (minbp BETWEEN {lower_limit} AND {upper_limit}) ORDER BY minbp ASC
#MAXTRACKS 0
#TITLE {lower_limit} <= BP <= {upper_limit}
"""

for i in range(30):
    lower_limit = i * 10 + 1
    upper_limit = (i + 1) * 10
    # print(lr2folder_template(lower_limit, upper_limit))
    with open(f"{str(i).zfill(4)}.lr2folder", mode="w") as f:
        f.write(lr2folder_template(lower_limit, upper_limit))

実行方法の例は以下の通りです。詳しくは各自で調べて

Windows

py generatelr2folder.py

Mac/Linux/WSL

python3 generatelr2folder.py

LR2のJUKEBOXでプレイリストを追加

フォルダをD&Dしておわり。