doubledepth http://hk-tm.hp.infoseek.co.jp/
hitkey0801[at]hotmail.com
web clap



4月25日(日)

5月中旬まで更新停止します。 晴れたらいいね! 晴れたらいいね! 晴れたらいいね!

○PMSV v1.4.8
「XP に限り (?)、終了時にランタイムエラーが発生していたバグ」 が、修正されつつある模様! 超ありがたいです!
 エラーが出なくなった状況は、(1) 自動終了時、(2) Esc での終了時、(3) エディタからの再コマンド時。 残るエラー発生状況は以下。
  − タイトルバー右端の × ボタンを左クリック
  − タイトルバー左端の PMSV アイコンを左ダブルクリック
  − Alt + F4
  − システムメニュー 「閉じる(C)」 (タイトルバー右クリック、タイトルバー左端 PMSV アイコンクリック、Alt + Space 等)
  − タスクバー右クリックメニュー 「閉じる(C)」 (Ctrl + 左クリックでタスクを複数選択して 「グループを閉じる」 場合も含む)
  − 単独起動で再生中の PMSV に分岐譜面をドロップし、分岐指定窓を上記の手段で閉じる
  − 単独起動で再生中の PMSV に分岐譜面をドロップし、プレビュー窓を上記の手段で閉じるとランタイムエラーで子窓まで閉じるが、
    プレビュー窓を 「Shift + ×ボタン左クリック」 で閉じるとエラーが出ず、プレビュー窓だけ閉じて分岐指定窓は残る。
    このとき残った分岐指定窓では、決定ボタンが押せない

・オプション選択ウィンドウで、(1) 決定ボタンがエンターでも押下可能に! (2) 初期フォーカスが決定ボタンに変更されました! しかし!
 Alt, F1-10, PrintScreen 以外のあらゆるキー入力が、フォーカス位置を問わず常に 「決定ボタン押下」 とみなされます;
 Esc を押すと再生開始。 Tab でフォーカス移動しようとすると再生開始。 リストボックス項目を方向キーで選択しようとすると再生開始。
 Win キーすら再生開始とか非常にやばい気がしますが、そもそも要望の時点から俺の日本語がバグってたので、毎度ながら反省・・・
 ええと、「フォーカスがある決定ボタン」 を、キーボードからはスペース&エンター "のみ" で押せるようになるといいなと思います。
 他は (マウスやら Tab やらなにやらも) v1.4.7 以前と同じ挙動で大丈夫だと思います。 しいていえば子窓も Esc 効くといいかも。

・プレイヤーモードにおける変格ロングノートの解釈が、直ったというか変わったというか、意図なのかバグなのか判断しづらいですが、
 小節をまたぐ混成型LN はプレイヤーモードでも警告が出るようになり、小節をまたがない混成型LN は以前より不思議化しました。

・上図から ch51-69 を消して、かわりに始端に通常オブジェを配置し、正常な #LNOBJ にしたところ、それでも警告が出ました。
 各レーンの最初のオブジェが #LNOBJ 型のLNだと、警告が誤爆 する模様? LN始端以前に通常オブジェを置けばセーフ。
 ただし 条件に合致するレーンが複数ある場合、この例だとまずレーン2でひっかかり、後続の レーン3・レーン5 でも警告が誤爆。

・あ、プレイヤーモードで 「始端が見つからない #LNOBJ」 は、「#000 先頭に配置された通常オブジェ」 とみなすようになったのかな?
 オブジェ数に加算されるし、#LNOBJ に指定された番号に音があると #000 先頭で鳴るけど、譜面はちゃんと終わるようになりました。
 ちなみに始端なしの #LNOBJ を、LR2/pomu2/uBMplay はただの通常オブジェと解釈します。 nanasi/fgt++ は存在しないものと解釈。
 bmx2wav は両解釈を選択可能、ruv-it! はどうも落ちるみたい? です。


4月24日(土)

○PMSV v1.4.7
・ランタイムエラーの件、"XP ウィンドウメッセージ" でググったら こんなページが出てきた。 書いてあることの意味は俺には不明。
 ここに 「WM_KEYLAST 0x0108 XPを除く」 というのが載ってて、もしかすると関係がある可能性もあるかなと思い、いちおうメモ。
 「譜面選択ダイアログ → キャンセル」 やオプション画面キャンセルでは、ランタイムエラーが出なくなってて嬉しい (前は出てたはず)
・PMSV / bmx2wav は Windows 2000 でも動作する らしい (変な操作を試してはいないと思うけど、すくなくとも普通に使うぶんには)

昨日の訂正!!!;; かなり致命的な勘違いしてました!! うわーごめんなさい
 × pms でいう右手側レーン (6/7/8/9) は変に。
 ○ 始端が ch51-69、終端が #LNOBJ、かつ 始端から終端までの区間が小節線をまたいでいない場合 は変に。
 画像でいう左はオッケーだけど、右は PMSV で変になる (#000 から伸びる = 始端が認識されていない?)、ということです。
 100424_PMSV_a.png  100424_PMSV_b.png
 LNが配置されているレーンは、この件にまっっっったく関係ありませんでした。 ご迷惑をおかけしました・・・


4月23日(金)

○PMSV v1.4.7
・エディターズモードで譜面エラーが検出されたとき、警告を一括で log フォルダに出力してくれる機能 が実装されました!!
 これにより BMSE 連携時は、「ソフトによって解釈が変わる変なLN譜面」 とかを無自覚に作ってしまうようなケースは避けられるかも。
 − 出力してくれるだけでも大変ありがたいけど、これそのままズバッと見せてくれれば log フォルダ漁らなくて済んでもっと便利かも。
 └ (そこまでいくとお節介かもだけど、どうせ 「エラー出ました」 でワンクリック使うなら、その手間を活用したいなーと思いました)
 − エディタ連携時、エラー行番号を教えてもらっても、一時譜面のだからあんまりアテには・・・。 小節番号も見れるといいなと思いました。

・プレイヤーモードの譜面解釈範囲が、いつのまにか拡大されつつあるようです! 観賞用としては喜ばしい進化だと思います。
 エディターズモードではエラーになる変なLNも、プレイヤーモードでは可能な限り読もうとしてくれます。 以下、気づいた点。
 − ch51-69 型LN始端を #LNOBJ で閉じるタイプ も、LNとみなしてくれる。 ただし、pms でいう右手側レーン (6/7/8/9) は変に。
 └ これはチャンネルでいう 「62/63/64/65」 と 「58/59/56/57」 が混乱してるのかも? (つまり、bms-DP 型と bme-1P 型で。)
 └ ただし、「62/63/64/65」 または 「58/59/56/57」 のLN始端が、ch11-29 (通常の可視オブジェ) の真上に重なっていた場合、
   それは 「可視オブジェを可視オブジェで閉じる "まともな #LNOBJ のLN"」 として解釈される。 ふむふむ
 − 始端が見つからない #LNOBJ は、#000 から伸びるLNとなる。 (バグってわけじゃなくて、そういう解釈か〜成程、と。)
 └ この解釈に問題があるとすれば、「#LNOBJ の指定番号が音ありだった場合、#000 の先頭でその音が鳴ってしまう」 ことでしょうか。
 − LN始端 「ch 62/63/64/65」 か 「58/59/56/57」 を #LNOBJ で閉じた場合、または始端が見つからない #LNOBJ があった場合、
   (1) それらはオブジェ数の表示分母に加算されない。
   (2) 譜面の 「演奏中判定」 が残ったままになる? なんか閉じたりリプレイしたりしなくなる
 − #LNOBJ が記述された譜面は、ch51-69 のLN1本を、始端と終端で計2個の通常オブジェに置き換える。 (pomu2 解釈)
 └ (大半の場合は曲が盛大に変わるので、この解釈はあんまり妥当とは思えないけど、あくまで私見ですのでー)
 − #LNOBJ に指定された番号が、ch51-69 に使われてたらどうなる? 今の俺にはカオスすぎて把握できそうにないので、後日確認

・ささやかな要望。 オプション窓の 「開始」、分岐窓の 「決定」 ボタンを、スペースだけでなくエンターでも押したいです。
・あと分岐窓のテキストボックスは、数字入力 → エンター で直に 「決定」 できると快適かも (どっちみちキーボード触るわけなので)。
・あとオプション窓の初期フォーカス位置が曲情報という、なんかコピーするときくらいしか使わなさそうな場所にあるのも地味に気になります。
 フォーカス外すとキーボードから曲情報にフォーカスできなくなるのも不思議。 普段はスキップしてるから別に困りませんが・・・

・まさかの #SETRANDOM 対応。 しかしエラーコード7が出ます!
・#000-#999 まで (1000 小節分) 記述された譜面で、PHRASE が現在の小節番号で表示されるように修正。
・オプション設定画面で、BPM 変更がある譜面の BPM 変化幅の最小値が 0 と表示されていたバグを修正。
・オプション設定画面で、負数 BPM も BPM 変化幅の最小値として正しく表示されるように修正。
・おつかれさまです!! 急いでまとめますー


4月22日(木)

右足が完治! 左足は悪化・・・

○PMSV 俺用メモ
・この項の、以下で挙げている 譜面のまとめ
チャンネルがヘッダより先に書かれてるとダメ らしい。 内容が同じ譜面でも こっちはセーフこっちはアウト
・拡張 BPM 変更の値がどこらへんまで解釈されるのか調べてみようとしたけど、うまいやり方がわからない・・・
 とりあえず、#000-#999 までの 1000 小節分の経過時間を計ってみた。 BPM120万BPM1200万BPM120億
 普通の譜面は uBMplay 並のスポーツカー性能を要求しないので、これは 「精度が足りん! ぷんぷん!」 とかじゃないです。
 単に個人的に、モヤモヤしてるのが落ち着かないからハッキリさせたかっただけなのです。 できませんでしたががが
 ・・・あと、値がデカい方向はなんとなく目星がついたけど、値が小数点第何位とかの方向は知りません!
・ついでに STOP も調べてみようとしたけど、こっちはもっとわからない・・・
 とりあえず、exBPM6万における停止時間を計ってみた。 4/4 拍子小節かける 2万小節分停止3万小節分停止5万小節分停止
 2万小節停止はオッケーで、3万小節停止はアウト。 この間が境界だと思うけど、調べるのめんどくさい
 あと 「極小値 BPM」 と 「極大値 STOP」 を組み合わせることで、uBMplay ではストップオブジェ1個で68年停止とかできるけど、
 そんなもん再生してくれるソフトは uBMplay だけだと思うので知りません!


4月21日(水)

一回遊んだだけで口ずさめる、メロディの浸透力が超ヤバい (mommy さんの新作2作品)

○PMSV 俺用メモ (バグ報告じゃないです)
・分岐譜面を #REP 1 でリピートした場合 ┬ 指定型 (#RANDOM 定義が単数) は、最初に指定した定数のままでリピートする。
・分岐譜面を #REP 1 でリピートした場合 └ 生成型 (#RANDOM 定義が複数) は、最初に自動生成した乱数のままでリピートする。

・ BMSE から PMSV (常に最前面) を呼び、それを閉じずに uBMplay (常に最前面) を呼ぶと、uBMplay が最前面に表示される。
 uBMplay の後に PMSV を呼べば、PMSV が最前面に来る。 両者は常に BMSE より手前にあり、アクティブな側がより手前に来る。
・ということは、もし PMSV 分岐窓が最前面属性を持てるなら、単独起動中の PMSV がリロードを禁止する理由は無くなるんじゃないだろうか?
 (『#TOP 1 / #LIN 2 で、単独起動中の PMSV に分岐譜面をドロップすると、分岐窓がメイン窓の背面に回る不具合』 とか根本的に解決する)

・ PMSV は #VOLWAV を解釈する。 #VOLWAV 20 とかにすると、ちゃんと音量ちいさくなった。 てことは逆もあるのか、気をつけよう
・ BMSE で適当な譜面を開き、関係ない譜面を PMSV で単独再生、その状態の PMSV に対して BMSE 「最初から再生」 を行うと無視される。
 なるほど、『エディタからの起動の時、D&D をできない仕様に変更。』 ってそういうことでもあるのかー。 単独と連携は完全に別物なのね

・・・しかし、その区別も解消できるかもしれない?
・"Burning Boost Rising" とかの適当な bme 譜面を BMSC で開くと、解析に失敗した行の仔細をリストアップしつつ、譜面を開いてはくれる。
 十年前のソフトだから、36 進数定義とか軒並み解析失敗するけど、「警告は一括で出すが、目的は果たしてくれる」 という形は神すぎる。
 PMSV のエディターズモードは 「譜面エラー = 即停止」 だから 「お勧めしません」 なんだろうけど、これが上のような形だったならどうか。
 内部で常に譜面エラーを検知できるなら、各モードの区別は 「譜面エラーを : 知らせる / 知らせない」 だけで済むような気もする。
 『エディタから呼んだら必ず知らせる』 をやるには、編集中の一時ファイルとそうでない譜面の区別が必要で、それが可能かは分からない
・毎度毎度、分からないのにこんな妄想してるのは滑稽だなあ。 せめて proglam の p くらいは分かるようにならなきゃ恥ずかしすぎる終了

○時間なかったのでメモだけ (俺用)
・PMSV : 拡張スクロールオブジェの値がどこまで有効か調べる
・PMSV & bmx2wav : #SETRANDOM の扱い
・PMSV v1.4.4 : エディタモードで演奏チャンネル重複時もエラー 31 が出た、なるほどう
・PMSV : "脅威を以て信仰を知れ、巫女を見れ" の整数型 24bit wav で落ちた。 Float 32bit wav は読めるのに不思議
・BMSE : 重なりオブジェで奥側にあるほう、かつそこにしか使われてないオブジェの、変換ウィザードでの扱い → 使われている判定
・bmx2wav : ↑ の、"検証" "WAV" タブでの扱い → あとで調べる


4月20日(2)

>自分は uBMplay は動いてます。
>指定の DLL ファイルを System32 に移動した後にブロック解除をしなくてはいけません。
>あとは管理者権限で登録云々です。 *桜為


*** Win7 64bit でも uBMplay が動作する !! ***

貴重なご報告! まじありがとうございました!!
え〜〜っと、Vista 用の手順 のまま、(2) と (3) の間に 「ブロック解除」 を行えばよい、ということでしょうか?
「ブロック解除」 とは UAC 解除? それとも XP にもある ファイルの 「プロパティ → ブロックの解除」 でしょうか?
これは BMSE 非公式ヘルプに速攻で掲載したい超有用情報なので、できればもうすこし詳しく教えていただけるとうれしい・・・!

>WAV ファイルはそれ以前の問題になってます。
うんまあ、いろんな意味でつっこみたくなるファイル構成ではありますよね、って空気を読んでレスしてみたけど日本語って難しいね (
まじな話なら、KBP2010 "Run n' Chase" の 32bit wav は整数型じゃないので、たとえば SoundEngine とかでは開けませんねー。
GoldWave v5.55 だと普通に編集できました。 てきとうに WAV ヘッダ覗いてみたところ、

RIFF 'WAVE' (wave file)
        <fmt > (format description)
                Floating point format
                2 channel
                44100 frames per sec
                352800 bytes per sec
                8 bytes per frame
                32 bits per sample
        <Fake> (2 bytes)
                "  "
        <data> (waveform data - 57216 bytes)

とかになってました。 PMSV で再生すると、#WAV39 / #WAV3J 以外の音は、こちらではちゃんと鳴ってますです。

○追記
あ、上のコメントはもしかしてその話じゃなくて、バグリストの [100322-1]、μ-law 形式とかで落ちるバグについてでしょうか?

uBMplay の Win7 導入手順については、結局 UAC じゃなくて 「プロパティ → ブロックの解除」 ということで、いいんですかね。
というわけで full 版を更新しました。


4月20日(火)

>1.3.6 以降から終了タイミング関連ですでに実装されてるのが気づかれてないのが悲しい *桜為。
あっ、確認は当然毎回してたけど、エディタ連携時もプレイヤーモードになるバグを [100411-5] と勘違いしてて、結果すり抜けてました;
v1.4.3 で曲の終了タイミングが変更され、プレイヤーモード時の譜面終了タイミングは、洞窟ガバの この差分 で一目瞭然になりました!
音声チャンネル全オブジェの波形再生が終了した瞬間に、譜面を終了してくれます (以降にスクロールオブジェや小節長変更が残ってても)。
これは最近の高機能ソフトと同じ賢い挙動であり、観賞用ソフトとして快適さが格段に向上したといえるでしょう! ありがとうございました!
>あと実は、必要なランタイムは DirectX7 以上だけみたいなんです。
ΩΩΩ < な、なんだってー
ではランタイムエラーの原因は別にあるのですね、これはいよいよダンプとか pomu2/Output/Log/Fps_Log.txt みたいなのが必要かも?
PMSV がどの段階でどうコケてるのかトレスできればと思うのですけど、ログの出し方忘れたので、こっそり教えてほしいです (何
もし任意出力じゃなく、エラー時にログが自動出力されるよう作られているのだとしても、その機能はこちらでは正常に動作してません・・・

>>uBMplay foon edition
>なん・・・だと・・・
>正直なところ存在自体を忘れていた・・・ごめんね・・・!

忘れてくださっていたおかげで今でもダウンロードできたので感謝しております!
>>しかし uBMplay、俺の環境だと IE8 正式版導入以降、初回起動速度がガクンと落ちちゃったんですよね・・・
>たぶん VB6 が IE の影響を受けるのではないですかねー。
>そもそも Win7 64bit だと起動できない問題もあるし、そろそろ終焉かな!
>あとは頼んだ!

プログラムは俺の脳だと最初の階段が10メートルある感じですが、人柱としてはかろうじてお役に立てそうなので頑張ります・・・!
VB6 はそういえば IE8 ベータ版の頃に、それ用の vbscript.dll だか何だかを入れさせられた覚えがあるなあ (うろおぼえ)。
Win7 64bit での uBMplay の動作については、この記事 のその後の顛末が気になります・・・ 結局だめだったんでしょうか; zannen

32bit の IEEE float 型の WAVE が既に bms に使われていた件
loca さんの記事 で知ったのですが、イベント KBP2010 登録作品 "Run n' Chase" が、浮動小数点型 wav を大量に使ってます。
※ 検証のために1ギガ半ダウンロードとか大変なので、勝手ながら数日間だけ 「部分的に」 抜粋アップ! させていただきます。
結論からいうと、この作品を正しく再生できるソフトは LR2、ruv-it! のみ です (あと DirectShow Ogg Filters 入れた BMSE)。

・32bit float ○ : LR2、ナナシ、ruv-it!、PMSV (ただし PMSV は #WAV39 sweeper.ogg を再生してくれない)、BMSE
・32bit float × : fgt++ (強制終了)、[nazo、pomu2、uBMplay] (該当音を無視)、bmx2wav (該当音を WAV ファイルエラー)
・MP3 ○ : LR2、ruv-it!、nazo、pomu2、uBMplay、BMSE (#WAV3J gun-shell-drop.mp3)
・MP3 × : fgt++ (応答なし)、[ナナシ、PMSV] (該当音を無視)、bmx2wav (該当音を WAV ファイルエラー)

○ PMSV v1.4.4
・というわけで、なんで上の ogg が鳴らないのか自分にはわかりませんでしたが、可能なら対応していただけるとありがたいです。
・MP3 や XA ファイルは、現在の bms シーンではほとんど使われてませんけど、pomu2 は鳴らせるので、もしお気が向いたら・・・
・いまのところ 32bit float 型 wav を鳴らせるビューワは BMS Viewer と PMSV だけ なので、これは地味に強みだと思います!
メモリ大食い。 起動するだけで LR2 に匹敵します。 もしかすると、ゆめにっきEXのロードに数分間かかるのもメモリ由来かなあ・・・
・たまに PHRASE が表示されません ("----" のままになる)。 再現条件は不明。 もっかい PMSV 再起動すれば直るけど。
・エディターズモードにて、スクロールオブジェが重複している譜面を再生すると、内部エラー 31 が出ます。
・上でも書いたけど、起動時の状況に関わらず、#MOD の設定で動作します (『強制エディターズモード』 が効いてない)。
 たぶん v1.3.6 では既にそうなってたと思うけど、#HIS や #REP の強制一時変更は効いてたので見逃してました、すみません;


4月19日(3)

○ PMSV v1.4.3
おおおお地味にいっぱいバグ直ってる!! どのバグが直ったのかこちらには分からないのが実は大変だったりするけどうれしい!!
・エディタや 「プログラムから開く」 から呼び出すと、dll ありません警告が誤爆します;
・スクロールオブジェの重複時、「後に指定されたほう」 じゃなくて 「先に指定されたほう」 が優先されちゃってます!! 逆っす!;
・緊急度高そうなのは上の2つ。 あとはバグリスト見ていただければー。 あとは この差分 でなぜか1個目のオブジェが先走るとかです。


4月19日(夜)

この譜面は #000-999 まで全小節にオブジェがあり、#002-997 は同じ内容。 #001 で BPM 65535 になり、#998 で BPM 128 になる。
  ○ : ナナシ、fgt++、ruv-it!、uBMplay (あともちろん BMSE)
  × : LR2 (#999 が変)、pomu2 (最後で強制終了)、bmx2wav (BmsBarManager 範囲超えアクセス)、PMSV (#999 シカト)
#000 以前に余白を補完しても変にならないナナシが不思議。 内部的には最大 1024 小節とかで管理してるのだろうか (otama みたく)

追記 : nazo 忘れてた。 俺の環境だと BPM 65535 から BPM 128 への BPM 変化を拾えず一瞬で終わった。
もうちょい加減して BPM 1000 → BPM 128 で試したら、#000-999 までちゃんと再生されてた。 よって ○


4月19日(朝)

なんか一度に3回くらい拍手入っててびびった! 開発も佳境みたいで超応援してます! 人違いだったらごめんなさい!
>>いまだからこそ dosukoi=True なのではないか。
>あれ、そんなイースターエッグ仕込んだっけ・・・と思わず確認してしまった!

foon edition で仕込んでるじゃないですか!! ・・・といいつつ俺もこれを見つけたのはつい最近なんですけど
> http://ucn.tokonats.net/archives/ubmplay/sound_dosukoi.zip
>そーいえば昔こんなの作ったなあとか思い出しました。くだらないネタでごめんなさい。

無駄に高機能すぎてわろた。 dosukoi.wav の汎用性は異常
※ 試してみようという方は、uBMplay 1.4.6 の sound.dll を 必ずバックアップとったうえで sound_dosukoi.zip ので上書きしてください。
>>BMSE は無限 undo/redo ができるので、この情報をビューワが取得できるなら、(略)
>うーんその発想はなかった。
>確かにメモリ上に溜めてはいますが、公開するようには作ってありません。。。

いや、なんかすみません; できることとできないことの区別すらついてないので、これはあれです、
子供が遊びで話す 『スタローンとジャン・クロード・バンダムはどっちが強い?』 レベルの雑談でした。 まあ最強はセガールなんですけどね!
>>なんといいますか、bms の書式って、単純そうなわりにめんどくさいんですね・・・
>全体的に書式がきちんと定義されなかったせいで解釈に幅が出てしまったってところですかねー。
>オブジェの重複まわりはみんな (自分含めて) ほとんど検証していないと思います。

そもそもチャンネル重複はレアケースですし、普段なら問題にもならない部分だとは思います。 んー自分にカバーできる範囲ならまとめてみたいな。
そういえば W3C みたいなのは無いかなあ。 wiki.bms.ms が最もそれに近い感じでしょうか・・・ んんん??? 東方 BMS まとめ・・・だと・・・

昨日の日記を今朝になって読み返したら、妙に pomu2/PMSV に辛辣な感じになってるなあ。 そんなつもりはなかったっす、ごめんなさい;
5ライン bms の配置を自動的に9ラインに配置しなおす機能は、現在は他には LR2 くらいしか類似機能がない、間違いなく超ユニークなものです。
この種の配置変更機能はまだ発展途上だと思います。 ロングノートまわりとかオブジェ重複まわりとかで、現時点ではおかしくなる場合が案外あるけど、問題点が周知されればゆくゆくは解決されていくのではないかと思います。 譜面自動生成とかロマン機能ですよ!! 超応援してます!

○ bmx2wav
#000 先頭の負数 BPM でエラー出るなら、#999 あたりに負数 STOP を配置すれば同種のエラー出せるかな?
となんとなく思って試してみたけど、いまのところそんなことはないみたい。 俺は何と戦ってるんだ

○ PMSV
http://e-blog.tokonats.net/ で "uBMplay" をサイト内検索してて見つけたんですが、CPU 占有率 という問題もありました!
現在の PMSV は、1コアなら 100%、2コアなら 50%、4コアなら 25% くらい、再生中に CPU を占有するようです (たぶん)。
これは低スペック環境下では相当の負荷なのではないか。 uBMplay は PMSV の 1/4 〜 1/5くらいの占有率でサクサク動くので、上の記事に載っている方法が他の言語でも使えるものであれば、試してみる価値はあるかもしれませんです。 Win7 以降で通用するかはわからないけど・・・

しかし uBMplay、俺の環境だと IE8 正式版導入以降、初回起動速度がガクンと落ちちゃったんですよね・・・
IE8 のメニュー 【ツール > インターネット オプション > "セキュリティ" タブ > 制限付きサイト】 の登録を減らしまくったら多少改善したけど、それでも以前より応答性は低下した実感があります。 Windows API とやらを利用するソフトの場合、API とやらの仕様が変わると振り回されて大変そうだなあ。
そういう意味でも、64bit Win7 という桜為さんの開発環境はものすごいアドバンテージだと思います。

○俺様のメモ帳
・bms とは全然関係ないメモ。 どこでもサイト内検索ぐりもん - それをはてなとかでも使えるようにした改造版
 残念なことに後者が消えてしまっていて、俺がまたHDDクラッシュしたら泣くだろうなと思ったので、勝手ながら バックアップ
・あとついでに、B.I.D.C のアドレスがいつのまにか変わっていたので B.I.D.C. SkipInfo も対応


4月18日(日)

>重なってる演奏オブジェの扱いはこのままみゅに仕様で突っ走ります。修正はかけますが。 *桜為
先日の 洞窟ガバ差分 は pomu2 だと こんなんなる わけですが、これって9ライン展開機能の副産物、はっきりいうとバグじゃねすか?;
演奏オブジェが5重に配置されてるこの差分を元の曲の通りに鳴らしてくれるソフトは、いまのとこ uBMplay / PMSV / bmx2wav だけでして。
この解釈が正しいかどうかは判断しかねますが、「ヘッダもチャンネルも後のやつ優先」 って統一されてたほうが、自分にはしっくりきますねー。

○bmx2wav 1.1.1
・"Sofa" の #IF 186 / 212 / 238 で内部エラーが出ます。 #000 先頭の負数 BPM のせいで、オブジェ座標が巻き戻れないからと推測。
 該当分岐を抜粋した差分。 LR2 / ruv-it! は #000 先頭の音を鳴らさない。 ナナシは BPM 0.1 と解釈。 fgt++ は負数ストップ版で強制終了。
 pomu2 は負数 BPM を無視、ただし1回でも遊んだらこの負数 BPM 差分は 'ダメ譜面' と判定されて選曲リストから消えます。 うっといわー。
 nazo, uBMplay, PMSV はおそらく譜面が意図した通りに再生します。 ラインハーフ表示&ハイスピ4くらいで眺めるのがいいと思う。

○ PMSV v1.4.2
・ウィンドウ操作中の譜面一時停止機能について整理してみました。 一部は環境によるかもしれないけど、まあいちおう・・・
  ├ タイトルバー領域上で左ボタン押下して押上 (ドラッグ含む) : ○
  ├ タイトルバーを右ドラッグして、タイトルバー領域外 (バー左端アイコンや最大化ボタン、他の窓も含む) でドラッグ解除 : ×
  ├ タイトルバーを右クリック : システムメニュー編につづく
  ├ バー左端アイコンを左クリック : システムメニュー編につづく
  ├ バー左端アイコンを左クリックしてから ESC : なんか、なにこれ? 宙ぶらりん状態
  │ └ この状態からは [Up / Down / 左端アイコン左クリック / タイトルバー領域上で左右クリック] のみ ○、それ以外は ×
  ├ 最小化・閉じるボタンから左ドラッグを開始して、元の場所じゃない領域でドラッグを解除 : ×
  ├ 最小化・閉じるボタンから右ドラッグを開始して、タイトルバー領域外でドラッグを解除 : ×
  ├ ALT や F10 で不可視のメニューバー領域にフォーカスして、スペース / エンター / Up / Down : システムメニュー編につづく
  ├ ALT や F10 で不可視のメニューバー領域にフォーカスして、システムメニューを開かないままフォーカスを失う : ×
  │ └ 関係ないキー (ESC や TAB 含む) を押す、タイトルバー領域外をクリック、ALT → ALT、F10 → F10、ALT ←→ F10、etc...
  ├ システムメニューを開き、タイトルバー領域上で左クリックでメニュー閉じる : ○
  ├ システムメニューを開き、タイトルバー領域外 (バー左端アイコンや最大化ボタン、他の窓も含む) で左クリックでメニュー閉じる : ×
  ├ システムメニューを開き、「タイトルバー、バー左端アイコン、最小化ボタン」 以外の領域で右クリックでメニュー閉じる : ×
  ├ システムメニューを開き、有効な項目を選択・決定してメニュー閉じる : ○
  ├ システムメニューを開き、ESC / ALT / F10 でメニュー閉じる : ×
  ├ システムメニューを開き、グレーアウト項目にカーソルしてエンターでメニュー閉じる : ×
  ├ システムメニューを開き、グレーアウト項目のアクセスキーを押してメニュー閉じる : ×
  └ ・・・秋田
他にもいろんなケースがあると思うけど、そういうのはパソコン詳しい方にお任せします、Win7 の操作わからんし・・・

・先日からの当然の流れで、同じ位置にストップシーケンスのオブジェが重なってるとどうなるかも調べてみたんですが、
  ├ PMSV は 「同じ位置にストップシーケンスが複数重なっています!」 と警告を表示して、再生しない。
  ├ LR2, ナナシ, ruv-it!, nazo, uBMplay, bmx2wav ・・・ 後のほうの行を優先する。
  └ fgt++, pomu2 ・・・ すべて解釈する
これはのけぞった! ストップシーケンスのオブジェが同じ座標に5個重なってたら、停止時間は5個分の値の合計になる ということで。
つまり pomu2 は基本的に、例外チャンネル (BPM, 小節長 etc) 以外は すべて重複を許す仕様 みたいです。 仕様っていうか・・・;

ちなみに BMSE は、開くときには重複分を全部解釈したうえで、後のほうの行にあるストップオブジェを優先的に表示します。 重なって表示される。
重なったままの状態で保存すると、最前面にあるストップオブジェだけが配置チャンネルに記録されるけど、この時点ではその奥の分の定義も残る。
つまりストップシーケンスの未使用定義が残りうるわけですね、これをまた開いて保存すると、未使用ストップ定義はちゃんと消えてくれますが。
なんといいますか、bms の書式って、単純そうなわりにめんどくさいんですね・・・


4月17日(土)

○PMSV v1.4.2
ちょっと別件でレジストリいじったら、なんか必要なキーまで消しちゃったらしく、自分の環境がさらに疑わしくなりました、すみません;
・#HIS や #OJM がインデックス外の値だとエラーコード7
・洞窟ガバの この差分 をエディタ以外から再生すると、トータルオブジェ数の分母がマイナス150に。 ちなみに pomu2 だと凄いことに。
 13日の当日記 でも触れた重複チャンネルの話題ですが、PMSV で演奏オブジェ重複時はオブジェ数が変になるみたいです。
 また、BPM 変更チャンネルの重複時は 「後の行を優先する処理」 が効いてないらしく、「同じ位置に BPM が複数重なっています」 エラー。
・「通常 BPM 変更オブジェ (ch03)」 と 「拡張 BPM 変更オブジェ (ch08)」 が同じタイミングに重なったときは、
   LR2, fgt++, ruv-it!, nazo, pomu2, uBMplay, bmx2wav は後に指定されたほうを優先。
   nazo は 「ch03 < ch08」 かつ 「ch08 の重複行において最も定義番号が大きいもの」 を優先。
   ナナシ は #000 以前の空小節は「ch08 の重複行における最も大きい定義番号」 で再生、#000 以降は 後に指定されたほうを優先?
   えーとつまり、内部的に細かい違いはあるような感じですが、とりあえず他のチャンネルと同じく、後のものを優先する、みたいです?
   BMSE はそれに加えて、保存時に ch03 と ch08 でオブジェが重なってると、別個のスクロールオブジェとして保存してしまうみたい。
   だから BPM オブジェ重複が発生する余地はあるし、これを譜面バグとみなすなら PMSV は検知器としては便利なんですけれども。
   でも "Sofa" の分岐1番には、同じタイミングに重なってる BPM 変更オブジェは無いしなあ、なんでエラー出るんだろ・・・

・(WinXP) コンテキストメニュー 「プログラムから開く → プログラムの選択 → PMSV.exe」 → 「おやっ? 引数が変か、ファイルがありません」。
・起動時に hmm.dll がないと、エラーコード 38 の無限ループ。 起動時に hspdx.dll がないとエラーコード 38。 前者優先っぽい。
・ソフトが要求する動作環境 (必要なランタイムとか) についての情報は、あってもいいかなと思いました。
・ああ、あとアイコンのレジストリ登録も、簡単に消せる配慮があると親切かも。
 先頭にマイナスくっつける とか、すじもんの人には常識なんだろうし、PMSV アンスコ後は放置してもべつに実害ないんだろうけど・・・
 あと HKEY_CLASSES_ROOT のはエイリアスで実体は他にあるらしいとか、え、じゃあこの pms.reg のだけ消すんじゃダメなのすか?
譜面ストップ中、一切のウィンドウ操作が効きません。 リロードあたりはまだしも、閉じれないとか超びびった!
・すんごいどうでもいいあれですけど、オプション画面において、負数 BPM の表記が変になりますねー
・そうそう、エンターでバグ出なくなったので、スペースとの違いがようやくわかりました。 エンターは uBMplay におけるスペース、おk把握

かきわすれ追記
・あーあと再生中の PMSV にエディタから再コマンドすると、自分の環境ではアブノーマルじゃない C++ ランタイムエラーが出るようになりました。
・それと、エディタとの連携が深まりつつある現在の挙動では 「再生を停止」 もより活用できる余地があるかなと思いました。
 現在はエディタから 「再生を停止」 すると止まりきって、この状態だとエディタからの 「最初から」 「現在位置から」 しか受け付けてくれません。
 ここでスペースやエンターもできるといいな、といいますか、もし開きっぱなし前提であれば尚更、アイドリングはできたほうがよい気がします。


4月16日(金)

>>uBMplay 1.5.0 が緊急リリースされるレベルの神機能じゃないですか!?
>そろそろ復活しているかしらと思って覗きに来てみたらいきなりふいた
>老ビューワは死なず、ただ消え去るのみ・・・ですよ

動画対応ビューワは IIDXView とかあるし、pms 特化型の PMSV は絶賛更新中ですが、次世代ビューワの応答性・機能性・解釈力・安定性が uBMplay の水準まで並ぶか凌駕するまでの間は、uBMplay は使われ続けると思われます! じつはいまだに BMSC も現役だったりするおれ。
はたして bms シーンは uBMplay を過去のものとすることができるのだろうか。 いまだからこそ dosukoi=True なのではないか。

>エンター再読み込みは…エディタ連動のほうがいいみたいですね、もしかしたら *桜為
更新おつかれさまです! PMSV v1.4.1 でエンター押したらエラーコード10 → アブノーマルうんたらのコンボを食らいました。
というわけでいまだにスペースキーリロードとの違いを把握できてないのでどちらがベターかは判断しかねますが、ええ、エディタとの連動が深まるほど編集効率が向上するのは間違いありません。 ゆめにっきEXとかでもないかぎり、普通なら再生前に最も時間をくうのはファイル読み込みでしょうから、そこは新しいビューワにとっては逆にチャンスだと思います。 実現可能か全然知らずに喋ってますが・・・

BMSE は無限 undo/redo ができるので、一時的な譜面編集履歴はメモリに入ってるはずで、この情報をビューワが取得できるなら、「前回再生した一時編集譜面」 から差分だけを上書きする感じで、配置データの更新もできるかも。 そんなことしなくても、#WAV だけ読み飛ばして他を更新とか・・・ どちらにせよビューワ開きっぱなしの形だとメモリが大変なことになりそうではありますが、今なら皆さん普通に10ギガとか積んでおられるのでしょうから、贅沢して快適になったほうがより多くの方が幸せになれるんではないでしょうか。 かくいう私は1ギガです。

>(レス不要)
恐悦! なんとなく 表現だけ変えてみた (すぐ消します) けど、説明過多か説明不足の両極端に陥って結局わかりにくくなるのが俺パターンでした。 「同じ番号の音が連続したとき云々」 なんか 「発音キャンセルを有効にする」 で通じるのに、マニュアルと UI を勘違いしてる気がしますね、読み返して他人事のようにそう思いました。 マニュアルで補完できるなら元々の表現のほうがよいと思います、両極端じゃない湯加減が。

○ PMSV
もろもろまとめが滞っててごめんなさい! たぶん明日の夜か明後日の夜に更新します! そしてまたしばらく出かけます!
あっあと desktop.ini は Vista 以降ではお節介でもないみたいですね、勝手に何度も何度も要らん子扱いしてマジすみませんでしたッ;
・起動時に hmm.dll もしくは hspdx.dll が存在しないと内部エラー (38) が出ます。 そりゃそうだろうよ!
・起動時に option.inf がないときは初期設定 inf を生成してくれてもいいかなと思いました。
・上でも書いたけど、エディタから起動時にエンター押すとエラーコード10。
・そして復活のアブノーマルプログラムターミネーション。 起動するたび必ずエラー音を聴くのがつらいです安西先生・・・
内部ログの解答きてた! 分解能座標とオブジェ番号だけは推測あってました。 しかし log の出力方法を忘れた

○ bmx2wav
・拙作 "bubble" を 「前のを消す / #000-999 / #001-004」 「Average Normalize (100%)」 「LPF 使用」 で変換 → ブツブツ天国。 なんか卑猥だ。
 同設定で全小節変換しても普通にブツブツ入るし、単音から割れてるのをヤケクソ同時発音してるのを平均 100 %ってのがそもそもあれですが!


4月15日(木)

○ LR2 100201
・通常起動時には普通に遊べても、ドロップ起動時は読み込めないまま一瞬で終わってしまう譜面がたまにある。
 └ "osmosis" の 昔の俺差分 とか。 これテキストで開いて先頭のスラッシュ1文字削ると通るんだけど、なぜだろう・・・ ハッシュとか?
・"Sphagnum squarrosum" のアナザーを、BMSE で #000 を削除して別名保存。 これをプレイすると最初のオブジェまで2分近く待たされる
 └ 「#000 の1拍目に演奏オブジェがある場合、配慮する機能」 で、先頭に挿入される空小節の長さが、#000 か #001 に依存してる?
・ドロップ起動時、チャンネル部分の乱数が固定される? オートメーション工場だと曲名は毎回変わるけど、配置は固定、BPM は 128 固定
 └ この譜面の初期 BPM は 128。 #000 の1拍目で拡張 BPM 変更をランダムロードすることによって、以降の BPM を決定してる

○ bmx2wav 続き
・[WAV の読み込み時にローパスフィルタ (ノイズ除去) を使わない] - 原理は ここ とか ここ とか? "L9 (WAV)" の 差分 で比較すると、
 チェック無し / チェック有り ・・・ 前者は元の音に近い。 後者は LR2 に近い? ソフトによって聴こえ方が違うので、各自お好みで。

・[WAV ファイルが存在しなかった場合の動作] - 昨日は書き忘れたまま日記アップしちゃったけど、正常に動作してると思う。
 「ユーザに尋ねる」 は そのつど尋ねる 挙動。 "検証" が有効な場合は検証のほうの挙動を優先する (つまり、変換停止する)。
 2番目と3番目の違いは、前者は 曲に影響ありそうな場合だけ 尋ねる、後者は 曲に影響ない場合も 尋ねる。 3番目が萌える。
 一括変換時は 「常に無視する」 が役立ちそう。 無視してもログにはエラーとして記録されるので、後からそれを見れるなら大助かり。
 └ ログを全部見たい場合もあるけど、エラーログだけを見たい場合もあるかなーと思った (イベント作品の一括変換時とか)

・[WAV ファイルの些細なフォーマットエラー] - WAV ヘッダが変だったりするけど、読み込むことが可能なタイプの、「些細」 なエラー。
 「常にエラー」、もしくは 「尋ねる」 で 「試してみる? → いいえ」 にした場合、「些細」 なエラーも ↓ WAV ファイルエラーとみなされる。
・[WAV ファイルエラー] - 未対応形式だったり破損してたりで、読み込みに失敗するタイプ、あと 「些細」 から降格したやつ。 たぶん。
 たとえば [些細な〜 : 常にエラー] & [ファイルエラー : 常に無視] の場合、"DRAGONLADY" とかは歯抜けしまくりで変換される。

ヘッダ重複のときも思ったけど、微妙にわかりにくい気がしなくもなくて、んで 勝手に表現いじりはじめたら 時間なくなってしまった!
二日連続でコメントレスを遅らせていただきます・・・ 超ごめんなさい・・・!;


4月14日(水)

昨日の日記で1箇所だけ after と before を逆にしちゃってました。 直しました。

○bmx2wav 続き
・[小節長が重複した場合の動作] これも昨日の話題と同じで、この表 の上半分のソフトは 「後で指定された小節長を有効にする」。
 ├ ruv-it! だけは先に指定された小節長を有効にするが、これは ruv-it! のバグだと思う (他のヘッダは後で指定されたほう優先なので)
 └ bmx2wav は、変換画面に表示される #TITLE や #ARTIST や 基本 BPM などのヘッダ重複に対しても、抜かりなく挙動を設定できる

・初期 BPM が 1E+53、スクロールオブジェ無し、全小節 4/4 拍子、#999 まで音がある場合、サンプル数が 0 の wav に変換される。
 ├ こんな非常識な値でも落ちずに変換できるのが凄い。 ちなみに 44100Hz におけるサンプル数 1 は 1/44100 秒なので、↑ は合ってる
 └ 初期 BPM が 2147483647、他は上と同じ条件だと、サンプル数が 4 の wav に変換される。 おおお計算あってる
・とかやってて気付いたけど、1.1.0 以降、#999 終了時点より後方に残ってる波形はカットされる。 1.0.8 以前の bmx2wav を使えば回避可能
・[詳細設定] 前回閉じたときアクティブだったタブから開けるといいかも? "BMS" タブとかは最初に挙動を決めたらあんまり触らないし

[WAV ファイルを読み込んでいます。 / WAV ファイルの読み込み完了] - 読み込まなかった音の存在が一目で判る進捗バーがすてき!
└ 進捗バーが微動だにしなかったときは 「鳴らすべき WAV ファイルがひとつも存在していません。」 とかで中止してもいいようなキモス
[WAV ファイルが存在しなかった場合の動作] -
[ファイル存在チェック] - BMP の存在チェックで、定義が XXX.bmp でファイルが XXX.png のとき、存在しないものとみなされる
 └ ちょうど #WAV における .ogg みたいな扱いで、現在は png もふつうに使われてます。 LR2 には 一括変換機能ありまして
[未使用定義チェック] - なぜか [WAV01 〜 WAVZZ] のみを有効にしたときも、#WAV と #BMP が両方チェックされる
[未使用定義チェック] - そして、 [BGA チャンネルの行は読み込みを無視する] が有効のときも、↑ で #BMP もチェックされる
[未使用定義チェック] - そして、 [BGA ch 行無視] & [#WAV 未使用チェック] が両方有効のとき、#BMP00 が未使用とみなされる (!?)
[未使用定義チェック] - 上と同じ条件のとき、実際の使用/未使用を問わず 「#BMP に有効な定義がある番号すべて」 が未使用とみなされる

すみません続きはまた後日 v(^^)v コメントいただき中でありがとうございます! レスも後日とさせてください v(^^)v


4月13日(火)

○bmx2wav (要望・バグ報告するならいまのうち!)
というわけで、書きあぐねてた要望未満の些事も晒してみます。 TEM さんの興味をそそるネタがひとつでもあれば儲けもの、の精神で。
ユーザ拡張に超期待。 マイナな拡張命令/ch は案外あるし今後も増える可能性あるので、そのへん柔軟に対応できると神機能な予感
・ヘボい環境だとファイル参照ダイアログで応答性が低下するので、変換設定.ini は BMSE 様にサブメニュー展開 してくれると楽かも。
・設定サンプルというかテンプレとして 「本体並みにゆるゆる.ini」 「ふつう」 「ガチガチに検証.ini」 を同梱するのはどうか。 それお節介だよね
・バージョン情報窓は見る→閉じるしかやることないのに、Esc でも Enter でも窓領域クリックでも閉じられず苛立つ。 それ俺が不具合だよね
・他のソフトでやったほうがいいのでは、とは思いつつ、譜面変換時にエフェクトをかけられると有利かもしれない状況 はありそう。
 LR2 は サウンドエフェクトパネル から いろいろ できます。 ここのエフェクト設定は LR2 変換には反映されないので、狙い目ではある。
 KEY/BGM を個別にターゲットできるのがミソで、音量比 10:7 くらいでざっくりとキー音を目立たせて変換して DP イメトレ素材に! とか、
 筐体10鍵盤の如く、左手で叩く音は左から、右手で叩く音は右から鳴らすパンふりとか (元がモノラルメインじゃないと効果薄いけど)、
 遊び方はいろいろ思いつきはします。 このへんも個別チャンネルミュートでパートごと出力して他で加工すれば済む話ではありますが。
8日の当日記 でもタイムストレッチとかの雑談があったけど、「変換で遊ぶ」 という要望はあるのかも。 需要スケールは不明ですが・・・

以下はバグ報告や要望というよりは自分用の覚え書になってますが・・・ 拾っていただけるにせよ却下にせよ、一応メモはしておきますー
・[ファイル存在チェック] #BMP00 も検索してくれてありがたい、けど表記が "BMP01 〜 BMPZZ" になっている
・[未使用定義チェック] "BGAch の読み込み無視" の有効無効に関わらず、"BMP01 〜 BMPZZ" の検索を指定しても実行されない
[ファイル存在チェック] 検索対象ヘッダを任意に追加指定したい (#STAGEFILE, #BANNER, #BACKBMP, #CHARFILE, etc)
 ├ かつ、それを設定に保存してくれるとうれしいです (BMSE の 変換ウィザード は追加指定できても閉じると初期化されちゃう残念)
 └ 上記ヘッダは 「定義と拡張子が異なるとき、同名のを探す/探さない」 両方のソフトがあるので、拡張子どうすんだよって感じですが・・・

   └ 読み返して、われながら問題外だと思ったので <del>
・[ファイル存在チェック] #BMP で見つからないファイルが複数あったとき、変換中止するにしてもひととおりの解析結果はログで一瞥したい

・[ロングノートの始端が終端と違う場合エラーにする] #LNOBJ と混同する表現かも? あとこれ系のエラーでは小節番号も知りたい気はする
・[#LNOBJ で指定した WAV は鳴らさない] "Burning Boost Rising" の 9k EX で正常動作を確認。 LN でない場合ちゃんと鳴らすのも優秀!
・[登録されていない WAV のオブジェクトを使用した場合エラーにする] #LNOBJ や無音不可視でない、意図しない空オブジェの検出に便利!
・[変換範囲小節] 999〜999 とか無音地帯を指定すると、長さ 0 の wav に変換される。 これを MediaPlayerClassic が再生すると固まるバグ
・[変換範囲指定] 小節番号入力フォームに上から順に 0 / 1 / 2 / 3 とか指定して変換すると内部エラー。 微妙に TEM さんのパスが露出
 └ 数字以外が入力できないうえ (Alt+テンキーでも。 コピペは通るけど)、入力後も値をチェックする、二段構えの堅牢フォームに感動

・[同一ヘッダが重複していた場合の動作] と [読み込み行でエラーが発生した場合の動作] が、ちょっとややこしい。
 たとえば #WAV01 b.ogg という行の後に、#WAV01 a.ogg という行があったとする。 (before / after ね)
 [ヘッダ重複 : 後のを有効] で変換 → ヘッダ重複エラーは発生しない。 #WAV01 a.ogg で変換。 (この表 の上半分と同じ解釈)
 [ヘッダ重複 : 先のを有効] で変換 → ヘッダ重複エラーは発生しない。 #WAV01 b.ogg で変換。 (ini 書式などと同じ解釈)
 [ヘッダ重複 : エラーにする] ┬ [読み込み行 : エラー] で変換 → ヘッダ重複エラー発生。 変換中止
 [ヘッダ重複 : エラーにする] ├ [読み込み行 : 尋ねる] で変換 → ヘッダ重複エラー発生。 無視する? ┬ (Y) #WAV01 b.ogg で変換
 [ヘッダ重複 : エラーにする][読み込み行 : 尋ねる] で変換 → ヘッダ重複エラー発生。 無視する? └ (N) 変換中止
 [ヘッダ重複 : エラーにする] └ [読み込み行 : 行無視] で変換 → ヘッダ重複エラー発生。 無視する。 #WAV01 b.ogg で変換
 [ヘッダ重複 : 尋ねる] ┬ [読み込み行 : エラー] で変換 → 重複を後ので上書きする? ┬ (Y) #WAV01 a.ogg で変換
 [ヘッダ重複 : 尋ねる][読み込み行 : エラー] で変換 → 重複を後ので上書きする? ├ (N) #WAV01 b.ogg で変換
 [ヘッダ重複 : 尋ねる][読み込み行 : エラー] で変換 → 重複を後ので上書きする? └ (-) ヘッダ重複エラー発生。 変換中止
 [ヘッダ重複 : 尋ねる] ├ [読み込み行 : 尋ねる] で変換 → 重複を後ので上書きする? ┬ (Y) #WAV01 a.ogg で変換
 [ヘッダ重複 : 尋ねる][読み込み行 : 尋ねる] で変換 → 重複を後ので上書きする? ├ (N) #WAV01 b.ogg で変換
 [ヘッダ重複 : 尋ねる][読み込み行 : 尋ねる] で変換 → 重複を後ので上書きする? └ (-) ヘッダ重複エラー発生。 無視する?
 [ヘッダ重複 : 尋ねる][読み込み行 : 尋ねる] で変換 → 重複を後ので上書きする? └ (-) ├ (Y) #WAV01 b.ogg で変換
 [ヘッダ重複 : 尋ねる][読み込み行 : 尋ねる] で変換 → 重複を後ので上書きする? └ (-) └ (N) 変換中止
 [ヘッダ重複 : 尋ねる] └ [読み込み行 : 行無視] で変換 → 重複を後ので上書きする? ┬ (Y) #WAV01 a.ogg で変換
 [ヘッダ重複 : 尋ねる] │ [読み込み行 : 行無視] で変換 → 重複を後ので上書きする? ├ (N) #WAV01 b.ogg で変換
 [ヘッダ重複 : 尋ねる] │ [読み込み行 : 行無視] で変換 → 重複を後ので上書きする? └ (-) ヘッダ重複エラー発生。 無視する。 b.ogg で変換
・つまりこれ、フローチャートというか継承 (?) というか、そんな感じ? なのかな。 いったんわかればわかる感じで。
・UI 作りのめんどくささがなんとなく想像できました。 文字数制限と構造視覚化がせめぎあうデザイン
・ポイントは、ヘッダ重複をエラー扱いにすれば変換ログで一覧できることと、再生本体と同じ解釈にしたければ 「後のを有効」 にすることかな。
・[ヘッダ重複 : エラーにする] かつ [後のを有効にする]、つまり他ソフトと同じ鳴り方で変換しつつ、一気にエラーログをとれたりすると便利かも。

・今日まで完璧に忘れてたのですが、「同一チャンネル行が重複した場合」 もありましたね! たとえば こういうケース
#00111:01010101
#00111:0002000200020202
クソ譜面じゃないマジな作品でも、ごくまれに見かけた気がするなあ (複雑なリズムの入力はテキスト編集のほうが楽な場合もあるし)。
ミスるか何かして、同じレーンの同じリズム座標に、オブジェ番号 01 と 02 が 重複指定 されてしまってるというケース (この例だと4拍目)
・bmx2wav は後の行だけを解釈します (01 は鳴らさない)。 じつはこの解釈は珍しい。
・BMSE で開くと、1鍵盤に 01 02 01 02 01 02 02 02 と並ぶ。 4拍目 02 の真下に 01 が隠れてるけど、これは重なったまま保存すると消える
・uBMplay / PMSV は 01 02 01 02 01 02 02 02 と鳴らす。 前の行のをベースに、後の行のを上書きする形ですね (00 は透過)
・nanasi / ruv-it! は 01 02 01 02 01 02 01 02 と鳴らす。 前の行のは完全に残して、休符以外なら後の行のも拾う感じ
・nazo は4拍目の 02 を BGM で鳴らす。 座標が重なる部分だけ逃がす感じ。 [KEY : 01 02 01 02 01 02 01 02] [BGM : 00 00 00 02]
・LR2 / fgt++ は 01 02 01 02 01 02 01 02 ? オートプレイだと4拍目で 01 と 02 が両方鳴るけど、演奏すると 01 だけなのかな
・pomu2 は全部拾う。 重複部分は隣のレーンに逃がして両方たたかせる。 オブジェ数が増える。 自動配置アレンジ機能あるから謎
・・・ ミラーやらランダムやら配置変更系のオプションや機能を適用すると、いろいろ不思議なモノが見れそうな予感。 俺はやらんけど

途中ですが時間切れなので、続きはまた後日!;

○PMSV v1.4.0
こちらものちほど粘着するとして、てみじかに!
・リピートとか冗談だったのに数時間後に実装されててどうしようかと思いましたw ウソが真にされてしまったので多少マジメに考えると、昨日の図でいう黒い部分だけリピートとかもアリかも? 再生中に特定キーを押した小節をリピート終点とし、<measure> を始点として・・・とか。
・エディタ側からの再生位置更新もスペースキーリロードもばっちりで 超うれしいです!!
・エンターのデータ再読み込みって、もしかして #WAV などのヘッダの再読み込み無しに "一時編集データ" だけを更新できる、とかでしょうか? つまり、使ってる音が変わらなければ、PMSV は起動しっぱなしのまま、エディタから配置だけをバシバシ変更しつつそれをプレビューできる とか、もしかしてそれって uBMplay 1.5.0 が緊急リリースされるレベルの神機能じゃないですか!? ・・・と勝手に盛り上がって確認したけどそうじゃなかった! 何を再読み込みしてるのかわかりません ?_?
・リピート一回だけ試したのですが、最後までいって最初に戻るときにレーザーのオンオフが初期化されてないのか、全押し状態で始まりめす
・続きはまた後日!;


4月12日(月)

>新しいフォルダ log に注目を。 *桜為
PMSV v1.3.5 の謎機能ですね! 内部データがズラッと並んでるけど何のログなのかマジで謎だったので、詳しい方にお任せします!
じつは不要ファイルと早合点して (PMSV.zip にいまだに desktop.ini が同梱されてたりするし)、ついさっきまで解凍すらしてなかったという;
最近は更新日時だけ見て PMSV.exe と read.txt のみを上書き解凍してたのですが、バチがあたりました。 いつか死を賭してお詫びします。

○ PMSV v1.3.8
怒涛の更新おつかれさまです! エディタ側から再生位置を更新できる機能が実装され、これにより戦力5割増! 超うれしい!
しかし 「エディタからの起動の時、スペースキーでのリロードと D&D をできない仕様に変更。」 これは超かなしい!
D&D はともかく、リロードは譜面編集用途でこそ威力を発揮する機能なんですが、今後はエディタ側からの再コマンドで肩代わりするしかないのか・・・。 ビューワ自身のリロード機能が使えれば、観賞用途でも編集用途でも同じ操作ができて楽なんだけどな。 うーむ残念。

合ってるかどうかは知らないけど、ビューワにおける再生位置の俺的イメージ。
100412_viewer1.gif
上図はビューワがアイドル状態のときの譜面。 左端を #000 として、右方向に小節が伸びる。 <measure> は譜面エディタの 「現在位置」。
100412_viewer2.gif
上図はビューワを 「現在位置から再生」 したイメージ。 黒い範囲は演奏された区間、NowPlayingPoint は今まさに演奏中の地点を示す。
この図の状態から、
・<measure> を小節単位で移動し、かつ NowPlayingPoint を <measure> の位置まで移動するのが 「エディタ側からの再生位置更新」
・<measure> はそのままに、NowPlayingPoint を <measure> の位置まで移動するのが 「スペースキーでのリロード」
・<measure> はそのままに、NowPlayingPoint を小節単位で移動するのが 「uBMplay でいう Up/Down/PageUp/PageDown でのシーク」
ビューワは進化するにしたがって、普通のマルチメディアプレイヤー/編集ソフトと似通っていくのかなーと思ったりもします。 ということは・・・

「次はループ再生機能が来る!」 とか益体も無い予測はさておき、バグについて。
・気がついたらバグがだいぶ少なくなって、安定してきたように思います!
・こちらの環境では "abnormal program termination" は出なくなり、別のランタイムエラーが出るようになりました。
・option.inf で #HIS 11 や #OJM 5 にして再生するとエラーコード7が出てたのが、"#Error 7 -->内部エラーが発生しました(7)" に。
どこが修正されたのかひととおり確認するだけで時間なくなったので、粘着はまた後日!

追記
>エディタから渡ったときのみスペースの動作ができないので、単独起動ではふつうにスペースは使えます。 *桜為
あっ、#MOD 1 でも単独起動時はスペースキーでのリロードが有効だった; バグページ修正しました、ご指摘ありがとうございます!
つまり現在の仕様では、PMSV 自身のリロード機能 は、単独で最初から再生したときのみ有効ということですね、把握しましたー


4月11日(2)

>abnormal program termination がこっちでは起きてないんでどうしようもない状態です。 *桜為
あ、さきほどブログ拝見したところ、8日にその旨がちゃんと書かれてたことに気付きました; 遅ればせながらこちらの環境は、ええと・・・
32bit / XPsp3 / DirectX 9.0c / VC++ 2005 ランタイム導入済み / VC++ 2008 ランタイム導入済み / Microsoft Update 全部適用済み。
この環境で少なくとも v1.3.1 まではランタイムエラー出なかったので、v1.3.2 か v1.3.3 の更新で必要環境を満たせなくなった可能性が。

ともあれググる。 abnormal program termination - 教えて!goo / ゲーム中にエラー - BIGLOBEなんでも相談室
あ、こちらの環境下で "リンク時のマップ情報" / "アセンブルリスト" が取得できれば、お役に立てるかも・・・? やり方わからんけど・・・
そもそもこのエラー出てる方、ほかにいらっしゃいます? つねづねそこがまず不安です、俺のみが何かヘマしてる可能性が濃厚なので。

○PMSV v1.3.7
分岐なおった! あといつのまにか譜面選択ダイアログが整理されてて、地味に嬉しかったです。
バグ一覧は晩メシ前にアップしておいたけど、いちおう追加分のバグだけメモっときますね〜
・エディターズモードで再生中にスペースキーリロードすると、option.inf 内 #HIS が 01 に書き換わる。 (SPEED x1.5)
・「#RANDOM が n 個見つかりました」 で、#random の個数が1個足りない (ゼロから数えてる?)。 動作自体は正常だと思います
・#LNOBJ xx のロングノートを使ってる譜面は、LNの本数ぶんだけ余計にオブジェ数が表示される (分子は正しい。 分母が余計)
 └ ヒバリカヨウ LONG (EX) や、"Burning Boost Rising" の 9keys EX などで確認しました

追記
・いつのまにかタイトルバー左端アイコンのシステムメニューの時も譜面一時停止するようになってる! (タイトルバー右クリックとかはまだ)
・option.inf で #MOD 2 とか #HIS 11 とか #OJM 5 とかにするとエラーコード7や12。 v1.3.5 で追加された謎機能がわからん、諦めた!


4月11日(日)

Symphonian さんによる KBP2010 全曲まとめパック http://cid-93342bf773c82f0b.skydrive.live.com/browse.aspx/.Public?lc=1042
loca さんの記事経由で知りました、大規模イベント作品を手軽にDL&解凍できるのは凄まじくありがたいです!

○PMSV v1.3.6 (バグページは夜あたりに更新しますー)
・[分岐] なおった yatta!! しかし今度は "declinin' " の分岐地帯のオブジェがほぼ空に。 他の部分分岐タイプの譜面は大丈夫な模様。
・[分岐] ゆめにっきEX で分岐 64 番を指定 → 数分間がんばって読み込む → #000 だけで再生終了。 今度は全体分岐タイプが空に!?
・[分岐] 常に最前面状態のとき、スペースキーリロードすると、窓位置によっては分岐ダイアログが PMSV メインウィンドウの裏に隠れる。
・[タイトルバードラッグ] 全押し状態で固まるのは解消されたけど、今度はオブジェと音声が突然消えて PHRASE が巻き戻りはじめました。
 (どうやら ogg 使ってる譜面で譜面一時停止が入ると、この現象が発生するようです。 wav のみの譜面では再現しませんでした)
・[モードの差別化] 曲の終わり方の判定の違いを確かめるべく 洞窟ガバの差分 を用意してみたのですが、なんか特に変わりないような。
 read.txt に書いてある通りなら、プレイヤーモードは #012 が過ぎた時点で終わるのかな、と思ったのですが、俺また誤解してるかも・・・
 そして #MOD 0 が観賞用、#MOD 1 が作成用なら、そもそも挙動が逆かも (作成用はお節介抜きで再生してくれたほうが、ミスに気付ける)
・[abnormal program termination] 実害ありました、他を巻き込む可能性があることが判明。 なんて、そんな大層な被害じゃないけど;
 (KBP2010 まとめパックをDL中、このエラーが発生した瞬間に Firefox のダウンロードが打ち切られ、不完全な書庫が保存された)


4月10日(夜)

>今更ですけど U9 に STOP 空定義を使っているとか作った自分でも気付いてませんでした ;_;
>#TOTAL stand by OK とかアホすぎて泣ける ^0^;;; 地雷譜面もっと流行らないかなぁボミョンン

BMSC 時代ですから、LNや #exBPM や #STOP は 「2P側に空オブジェ置いてテキスト置換」 とか、たぶんそういう作り方ですよね〜なつい!
#STOP 空定義は見るからに置換ミスな感じがしますが、おかげさまで pomu2 のバグとか見つかっておいしいです ^q^
地雷は作り方からしてあんまり知られてない気がしますね (方法1方法2方法3)。 エディタやビューワが対応すれば、作る敷居が低くなって定着する、か、もしくは #BGA (座標定義) みたく手間に見合わないと結論されて廃れるか、いずれにせよ何がしかの結論は出そうですが。
"minefield surfing" を見たとき 「地雷ロングノートもあればよくね?」 と思いました。 イライラ棒や象形配置なら、点より線のが向いてそう。

>そういえば昔に ( ^’)b 氏が作成した R9 という L9 差分があったのですが、ベンチマーク的にはいかがでしょうか?w
こっそりアップしていただきまして感謝です! せっかくだからかいつまんで紹介するけどいいよね? 答えは聞いてない (
・たしか The Kusofumen Tower 産。 U9 と L99999999略 と L と他 L9 関係のクソ譜面を、テキスト編集でソース全部くっつけた、という触込み
・基本 BPM が 1E+53 (= 1 × 10 53)、uBMplay だと #INF (無限大) 扱いに。 分解能 384 (データ長が正しい行だけ解釈した場合)
・未定義の拡張スクロールオブジェ多数 (#BPM&#STOP A0,B0,C0,D0,E0,F0、 あと #STOP02-04)。 あと #BPM00 とか #STOP00 とか
・#BPMA 348 / #BPMB 349 / #BPMC 350 / #BPMD 351 / #BPME 352 / #BPMF 353 (定義番号ゼロサプレスわろた)
・終端が見つからないLNが山ほどある (ch51-69 型)。 #PLAYER 1 なのに2P側にもオブジェあり。 分岐や負数スクロールは削られてる
・LR2 はスコアが消える、ナナシ/nazo は普通? fgt++/ruv-it は BPM -2147483648 のままスクロールが始まらず、pomu2 は早めに終わる
・uBMplay はゼロ除算でエラー落ち、PMSV は演奏オブジェ数 10000over なのでエラー、bmx2wav はエラー潰せば変換可能

>ch01 の除外は同時表示のほうです。 *桜為
ありゃ、再び失礼しました; ・・・恥ずかしながら2種類の制限の違いをあんまりわかってないのですが、以下の理解でいいのでしょうか?
(1) 演奏オブジェ数上限 10000 (トータルノート数 10000 以上の譜面は再生しない)
(2) 描画オブジェ数上限 1024 (PMSV が同時に描画できる、[スクロールオブジェ+演奏オブジェ+小節番号] の上限??)
今までたぶん勘違いしてたけど、(1) は内部オブジェ数じゃなくて演奏オブジェ数、(2) は低速化オジャマとか入れてると影響を受けるたぐいかしら。
(3) 分岐数上限 1000 は、幹 (#random) の上限が 1000 本 までなのか、枝 (#if) の上限が 1000 本 までなのか、これも確認しきれず棚上げ中

○bmx2wav 1.1.1
・朝の続き。 未定義・空・0・無効な値の拡張スクロールオブジェによるエラーはどうやっても無視できないみたいだったので、データ文の該当番号だけ 00 に置き換えられる設定があると良いかなと思いました。 スクロール系は、一行丸々すっとばす形だとさすがに曲への影響が大きすぎかも・・・
・[要望にあらず] "同じ WAV が鳴った場合、前のを消す" で、有効と無効の間くらいが標準状態になったとしたら便利かも? という案。
 『発音キャンセルはする (再生ソフトと同じ鳴り方)』、『プチノイズは防ぐ (同番号の音が鳴る直前で、前のをフェードアウトとか)』、
 「両方」 ですかあぁぁ〜〜〜 ってのがつらいところですが、リアルタイムで個別に鳴らすわけでない変換ソフトなら、夢物語でもないかもなーと。
・[要望にあらず] 起動直後はフォーカスが隠れてて、[Alt + 英字] が空振りますねー (てきとうに [Tab] とか押せば済む話ですけど)。
・[ほんのり要望] 変換実行直後はフォーカスが出てますが、逆にここは最初は隠れててくれたほうが、エンター押しっぱなしとかやりやすいかも。

○PMSV v1.3.5 (更新スピードがいつもながらやばい)
・謎機能ってなんだろう・・・!? エディタ側から 「最初から再生」 すると、#000 じゃなくて #001 から始まることかしら。 えっ
・タイトルバードラッグでしばらく譜面一時停止してから、そのまま再開してしばらく眺めてると、突然 PMSV が全押し状態で固まる場合があります。
・[エディタモード] #000 の1拍目 に演奏オブジェがある譜面をリロードすると、「オブジェとLNが重なっています!」 (LNなくても)
・エディタ側からの読み直しですが、言葉が全ッ然足りてなくてすみませんでした; ええと、こんな感じの使い方ができるといいなあと。
 (1) まずエディタ側から PMSV を呼び出す。 仮に #009 あたりから、BMSE の 「現在位置から再生」 ボタンをクリックしたとする。
 (2) PMSV が #009 から譜面を再生する。 このときアクティブな PMSV でスペースキーを押すと、瞬時に #009 からリロード再生される。
 (3) 再生状態のまま、「今度は2番の歌詞を比較しよう」 とかの用途で、エディタ側で小節を移動する。 (PMSV が常に最前面だと便利な瞬間)
 (4) エディタ側から再び <measure> を渡す。 仮に #036 あたりから、BMSE の 「現在位置から再生」 ボタンをクリックしたとする。
 (5) すると、「#009 から譜面を再生している状態にある PMSV」 が、今度は #036 から譜面を再生する (瞬時に)。
 ・・・ uBMplay には 「再生状態のまま再生位置を前後にスキップできる、シーク機能」 があるのでそちらが使えますが、他のビューワは uBMplay ほど楽には再生位置を変更できないものが多いです。 たとえば #WAV が ZZ まで埋まってる譜面とかだと、ファイルを読み込むだけでもものすごく時間がかかるので、再生位置を変えるだけのために 「ビューワをいったん閉じて、BMSE から小節スクロールして、またビューワ呼ぶ」 なんて操作はしたくない。 そこで 「エディタ側からの再生位置更新」 ができると効率よくて超快適・・・ とわたくしは前回お伝えするべきだったのでした。 切腹
・[エディタモード] はハイスピ固定なので、オプション画面は常にスキップしちゃっていいじゃん、という理に適った変更がなされました! yatta!!
・しかし、なぜ x1.5 固定なのだろう ?_? (x1.5 以下だと描画制限上、都合が悪いのかな? ポップくんはBMよりおっきいから多少広げたい;)
・部分分岐型のランダム譜面は "declinin' " に限らず、「分岐以外の箇所」 が空になっちゃってます!!; (モード問わず)
・バグ一覧のまとめは今日はもう時間ないのでまた後日に! しつれいしました〜


4月10日(朝)

俺メモ : 4月13日だか14日だかに Adobe Reader / Acrobat 9.3.2 / 8.2.2

>今使っているのだとoggのシークができない仕様なんで、途中からあれは無理です *桜為
ぎゃあ失礼しました!!; 仕様とは知らず散々な無茶を要望してしまいごめんなさいでした・・・
○PMSV v1.3.4
・リロード高速化、超うれしい!
・けど、いったん閉じてまた起動してるような挙動なのかな? #OPS が 0 だとリロードのたびにオプション訊かれたり、PMSV 再生中にエディタ側から再生位置を変えて再度 「現在位置から再生」 とかすると二重起動しようとして落ちたり、微妙にかゆいところに手が届かない感じでした。
 (とはいえ分岐指定機能との兼ね合いもあって、なかなか難しいところではあると思いますが・・・)
・ch01 BGM がオブジェ対象から除外され、"bolero" 等の一部の譜面が再生可能に! 根本的な解決にはなってない気もするけどありがたいです!
・"Sofa" が読み込めるようになった! けど分岐2番で 「BPM が同じ位置にあるぞ」 っていわれたり (譜面ソースみるとそんなことはないのに)、分岐246番で明らかに指定してないスクロールオブジェが読み込まれたり、まだ微妙に解釈精度が甘いみたいです。
・無効な引数で警告を出してくれるようになった! 親切!
・"declinin' " を BMSE で開いて #020 あたりから PMSV で再生すると、明らかに変・・・ と思ったけど uBMplay でも変になるなあ。
 この譜面は分岐命令が 65535byte 超えてて、BMSE 拡張命令タブに収まりきらない事情もあるし、ビューワ側の不具合ではなさそうですね。
・それで思い出した、ああいや PMSV とはあんまり関係ないメモですが、オートメーション工場は 「#random 1024 とか指定しときながら #if は 16 パターンくらいしか記述してない」 みたいなテキトーな分岐がけっこうあるんですよね。 なんてひどいベンチマーク・・・

デバッガさんhitkeyさん帰ってktkr! バグは直すお!
ども! またすぐ出かけますが! デバッガってまともにPC詳しい人ってイメージがあるから何かおそれおおい! バグいきなり直ってて驚愕!
>コンプレッサは理論は簡単なんですが、音を変化させずに音圧だけ稼ぐ時のパラメタが難しいんですよね。
>素人じゃ扱えないし、自分も扱えないので隠し機能扱いです。
>ちなみに動作は Sound Engine(ver3以前の)をちょっと参考にしてます。

エフェクト適用前にプレビューできるソフトなら、個々の param を理解できてない俺でも試行錯誤でなんとなく使えたりするのですが、完全マニュアル指定となるとむろんお手上げです・・・ プロい方がレビューしてくださることを傍から祈ってます! お役に立てず申し訳なす;
ver3 以前の SoundEngine は記憶の彼方だなあ・・・ 現在の版より UI が分かりやすい印象はあったかも。 2.945 同梱の Lumpy 懐かしすぎわろた

クレクレ板のスレを覗いてて思ったこと。 コンプ云々ってもしかすると 「bms 再生プレイヤーと近い聴こえ方にしたい」 ってことかなあ。
「ノーマライズやんない&音量100%」 だとビシビシ割れる譜面が、再生本体だと何事もなく鳴るのは普通に不思議。 DirectX か何かのマジック?
選択肢 (1) LR2で変換する、(2) bmx2wav から自力加工、(3) コンプを覚える、(4) bmx2wav にマジックの搭載を要望する、(6) 諦める

>トリム範囲を指定したらBPM変更とか長音のを探すのも考えたんですが、それをやろうとすると
>結局 0〜999 を指定した時と似たような動作になるのよねん。だから今の感じにしました。

bme2wav 時代はマンモス譜面では30分以上固まるのが日常茶飯事だったような記憶もあって、だから今の形はとてもありがたいです。
けど全ユーザがメモリが潤沢なら、こんな感じ で 「無言で全変換&切り出し範囲のみ指定」 という形で何も困らなかっただろうな、とも思います。
>名前(変換開始・終了とか切り出し開始・終了とか)はもっと判りやすいのがあれば変えたいんですけどね。
"読み込む/書き出す" という表現は、一対感というか、処理の順位が判りやすいような気はしますが、内実は違うから不適切、ボツかなあ。
"変換/切り出す" は、変換ってワードが (変換ソフトゆえに) 若干ひっかかりますが表現としては正確だし、マニュアルなどでカバーはできそう。
>個別 WAV と出力 WAV を全部 44kHz にした時の容量 ×2 のメモリが必要な筈。×2 なのは内部では 32bit で扱ってる為。
ああなるほど・・・! メモリの概念がなんとなく理解できた気がします。 とてもためになる情報と思うので、マニュアルに載るとうれしいです!

○bmx2wav 1.1.1
・分岐内でのみ使用されるヘッダがあると、「検証」 で未使用扱いされるような? 具体的には "u9" の分岐で選外になった拡張 BPM とかです。
・そういえば "u9" は #stopFD が未定義なので、譜面から削らないと変換できないのですが、このエラーを無視できる設定ってありましたっけ?

すみません、PMSV も bmx2wav もまだ粘着できてないです; 他に書きたいネタもあるけど今ちょっと時間がーまた後日ー


4月8日(木)

>「BMS読み込み→BPMを指定→単音のwavをそのBPMに合わせた長さで出力」 ということができたら、それらのwavを再構築することでマッシュアップBMSやノンストップBMSが比較的容易に作れそうだなあ、と思いました。思っただけです!
男は度胸! なんでも思ってみるのさ
bms 作品フォルダ内の単音群を一括尺変更ってことでしょうか、残念ながらいまのところ SoundEngine ではピンポイントで不可能 なんですよね・・・
なので uLilith 使うか、素直に DTM ソフト探すのが良いかなと思いますが、手軽にそれができればさらにいろいろ遊べるかもしれませんね!
LR2が搭載してるノンストップメドレーモードやリアル再生速度変更機能、あれをそのまま譜面化/wav 化できたら面白そうかも、とかは妄想したことあるなあ (皆さん考えてらっしゃるだろうけど)。 bmx2wav に再生速度変更機能がついたら、一本 wav に関してはまさにコメントのような用途がぐっと身近になりそうな気はします (・・・しかし、ピッチシフト/タイムストレッチって真面目にやるととても大変らしい、とどこかで見かけた記憶も・・・)

● PMSV v1.3.3
○ v1.3.1 からの更新点 (自分が把握した範囲で自分用メモ)
・再生中の波形が残ってる間は自動的に閉じないように変更 yatta!!!
・演奏中スペースキー押下で 「音声ファイルをすべて再読み込み」 & 「譜面を最初から再生」
・小節線をまたぐ ch51-69 型LNが音化けするバグ修正
・再生開始位置小節をロングノートがまたぐ場合も、そのロングノートを表示するよう変更
・再生開始位置小節1拍目の演奏オブジェ・スクロールオブジェ・小節番号を、表示するよう変更
・再生開始位置小節1拍目の演奏オブジェ・スクロールオブジェ・小節番号を、start.wav のぶん待ってから処理するよう変更
・タイトルバードラッグ中は譜面を一時停止するよう変更
・#STOP による停止時, レーザー表示が遅れたり出なかったりするバグ修正
・ch11-29 の真上にある ch51-69 のLNが表示されないバグ修正
・ch11-29 の真上にある ch51-69 のLNでオブジェ数表示が変だったのを修正
・無効な引数を指定すると固まるバグ修正
・分岐の中身が空になるバグ修正

○ 現時点でのバグ・たわいもない要望や雑感
・終了時、必ず C++ ランタイムエラー "abnormal program termination"... 実害はないみたいだけどなんか怖い&ワンクリック増える (´・ω・`)
同じパスのファイルは読み込みを行わない機能 (uBMplay/ruv-it!/pomu2/その他実装) があれば、スペースキーリロードが快適かも。
 えーとたとえば pomu2 で、一度選曲した譜面をプレイ直後に再度選曲すると、ほぼロード時間無しで再度プレイできるみたいな。 みたいな。
・「途中から再生」 時にスペースキーリロードしたら、またその位置から再生 してくれると、譜面の特定箇所を吟味する場合に神です!
 BMSE で開ける #random は "declinin' " 型の部分分岐タイプだけなので、この場合は乱数指定を考慮する必要はあんまりないかも?
・ゆめにっきEX再生中にうっかりスペースキーを押すとあばばばば
・一時停止希望 : タイトルバードラッグ中、[バー左端アイコン / Alt + space / Alt] システムメニュー展開/待機中、[最小化/閉じるボタン] 押下中
 (というのは重箱の隅つつきですが、あと可能なら 「譜面一時停止」 に加えて 「音声も一時停止」 していただけると・・・いやなんでもないっす;)
・#000 の1拍目の演奏オブジェがすべて無視されるバグが直ったと思ったけどそんなことはなかったぜ (回帰バグというやつでしょうか?)
・"Sofa" が仕様上は再生できるはずなのに、エラーコード7が出ます?_? (ベンチマーク表 が原因究明のお役に立てれば幸いです)
・無効な引数に出くわした時点で強制的に譜面選択ダイアログ開く挙動だと、"-A -PL <filename>" みたいな勘違い指定をしてそれを忘れたとき、「譜面エディタから正常に呼び出せないのは引数の指定ミスが原因であること」 になかなか気付けないのではないかしら、という杞憂

● bmx2wav 1.1.0
・bmx2wav.ini 内 ShowCompressor キーを 1 に変更 すると、詳細設定に コンプレッサ タブが出現!!
 数値を直接入力する必要がある玄人向け設定ですが、ちゃんと使えます! 明後日の方向に凄すぎてわろた
・設定項目が一気に増えてまだ把握/検証しきれてないのですが、なんか 「ファイルが存在しない #BMP」 を無視できないような・・・?
 ・・・いや違うな、「#WAV00 〜 #WAVZZ で指定したファイルが存在するかチェックする」 が有効だと、なぜか #BMP がチェックされるようです。
・「変換開始小節〜終了小節」 と 「切り出し開始小節〜終了小節」 の違いは、前者は読み込み範囲、後者はトリミング範囲なのかな。
 たとえば変換時に 「メモリ足りねーぞ」 っていわれたときは、読み込み範囲を狭めてあげればよくて、
 譜面の途中で BPM 変化とか超長い音とか使ってる場合は、そこは読み込んだうえでトリム範囲を狭めればよいのかな。
 譜面の一部だけを変換したい場合、普段は 「変換開始〜終了」 は 0 〜 999 のまま、トリムのほうだけをいじれば問題なさそう。
 (変換時に常に BPM 変更や長音の位置を把握できてるとは限らないので、このへんだけは指定位置以前のも探してくれても・・・お節介?)
 いやーしかし、「メモリ足りねーぞ」 らへんも譜面いじらずになんとかできちゃうというのは、個人的には非常にありがたいです。 らくちん
・設定読み込み/書き出し機能。 読み込み専用属性にした z_default.ini / z_conv.ini / z_check.ini を用意して使い分ける予定です
・ bmx2wav.exe に譜面をドロップして起動すると、パスが自動入力されて嬉しい! けどパス区切り記号が抜けちゃって悲しい!



日記  01 02 03 04 05
06 07 08 09 10
 
拙作BMS bubble 
二次配布BMS ノイズの海と鯨 / moka 
無断配布BMS PARTY TIME IN MY DREAM / HAIJI 
BMSE 非公式ヘルプ chm shtml online full buglist 
ソフト仕様メモ 本体主役版 コマンド主役版 ベンチマーク集 PMSV 
差分 analgam bolero Ketchup quovadis SELF yellows 
BMSリンク BMS Journal BMS名鑑 Be-Music Report 
差分リンク artofnotes kusofumenlovers 徒然草 風雲亜草 物置  
参加中
Obj Tech LoversDirector's Cut-DC-
応援中
BMS STARTER PACK 2009