doubledepth

2013年7月の日記

[tentative] TechnicalGroove (version ) / Bluvel

先日の追加調査

BGAEncAdvance Ver0.031 / Bluvel

Sonorous 提案ほか

BGAEncAdvance Ver0.03 / Bluvel

射撃しつつ前進

文字コードについて色々と言われているけれど、とりあえず今はこれだけ。

[Tentative name] TechnicalGroove (version ) / Bluvel

BGAEncAdvance Ver0.03 / Bluvel

Encoding Provisions - Rationale

lifthrasiirです。最近はプログラミングはしない文だけ書きますね。

- UTF-8 overlong sequence(28 -> E0 80 A8)Sonorous(そしてもっと正確にはRust standard library)バグです。Encoding関連された部分は全般的に直さなければならないがrust-webencodingsが更新がなくて orz

- Rationaleをちょっと追加しましたが、全部英語なのでちょっと負担になるかも知れません。助けになるかと思ってEncoding Rationaleだけ簡単に要約します:

1. UTF-8宣言をコマンド(#CHARSET UTF-8, #ISUTF8, ...)にするとencodingを知るために、ファイル全体を読み取る必要がある危険性があるし、全角空白indentationをサポートする実装とも互換性がない。

2. UTF-8 BOMはすでにいくつかの実装をサポートするが、本質的に空白文字であるため、欠落される可能性がある。

3. したがって、UTF-8 BOMとは別に、最初の行がUTF-8文字列ならUTF-8と認識するようにする。既存のBMSは最初の行が空であるか、#PLAYERコマンドである場合が大半であるので、大きな問題はないようだ。

まあ、私なら多分"<BOM>UTF-8"と最初の行に書いて入れないかと、(笑)

[tentative name] TechnicalGroove (version ) / Bluvel

BMS extensions proposed by Sonorous

註 : この日記は翻訳でも解説でもない、自分が理解するためのメモです。 鵜呑みにしないでね

Encoding Provisions

Sonorous 0.1.0-pre ()

BMS extensions proposed by Sonorous

Sonorousによる、BMSの拡張についての提案というか呼びかけ

Encoding Provisions

회신

lifthrasiirです。

- 未知院環境について処理できなかったの(;_;)DirectX 9.0およびPixel Shader 2.0以上を支援するビデオカード、およびドライバが必要です。FirefoxChromeWebGLが動く環境なら、同じライブラリ(ANGLE)を使うSonorousも動かすと思ってもいいです。Windows XPでは、テストしなかったが、別に動かない理由はなさそうにしています。

- MSYSならもしquote(')の代わりにbackquote(`)をかけた方がないですか。お互いに他の文字です。そしてSonorousWindowsでは因子がなければ(例: sonorous -3vw)ダイアログボックスを示してくれるのであえてすべてのパスを入力する必要はありません。実はMinGWがいなくても動かします;

- -Xモードで音がしないことは知られた問題です。もっと正確にはWindowsで画面がないときSDL_mixerが音を出さなくます。これもそうだし音のlatency問題もあってSDL_mixerを他の物に変えてみようと考えております。(でもFMODはなりません・・・ライセンスの問題があります。)

- bmsexts文書は一旦は個人的な妄想です。orz

Sonorous 0.1.0-pre / lifthrasiir

lifthrasiirです。Sonorousは...ご存知のようにあちこちかなり変えました; 実はTwelve twisterがどうやってできた譜面かはSonorous変更後に確認したが、すごいですね。新しいアルゴリズムは誤差がひたすらBPM変更回数に比例するので、多分大きな問題はないはずなのに、もしひどく誤差が発生したりする事例があれば知らせてくださればありがたいです。あ、負のSTOPはまだどのようにするか決定できなかったから例外です。

それで、いったん昨日まで作業したsnapshotをダウンロード可能にしました。かなり大きいが(圧縮解除後18MB...)、多分大きな問題なしで実行されます。これから重要な修正があるたびにsnapshotを作成します。-Zオプションも確認してください~

https://cosmic.mearie.org/f/sonorous/

追伸: Guide to understand BMS formatURLが変わりました。 https://cosmic.mearie.org/2005/03/bmsguide/

BMS extensions proposed by Sonorous

Sonorous / lifthrasiir

rewritten timekeeping routines for accuracy.
added (for now parsing-only) support for many BMS extensions

BGAEncAdvance Ver0.02 / Bluvel

BGAEncAdvance Ver0.02 / Bluvel

[tentative name] technicalgroove (version ) / Bluvel

In IIDXv 2.14, “#CASE 2” is not adopted by any means

ドヤ顔でおま環やらかした直後なので、控えめに

[tentative name] technicalgroovefmod exに波形データの再生を任せているため、サポートしている波形データの種類はLR2と同じだと思っていただければ問題ないと思います。

Are values of #BGA allowed to align by trailing spaces ?

// example
#BMP01 2000x2000.bmp
#BGA02 01    0    0  256  256 0 0
#BGA03 01   64   64  320  320 0 0
#BGA04 01 1744 1744 2000 2000 0 0

先日の訂正

[tentative name] technicalgroove (version )

BGAEncAdvance Ver0.01 / Bluvel

  1. (^^) を動画化して foon.mpg を作る
  2. (^^) の元譜面をコピーする
  3. コピー譜面の #xxx04#xxx06 を全部消す
  4. コピー譜面に以下の BMS コードを追加する

    #BMPF1 foon.mpg
    #BGAF2 F1 0 0 256 256 0 0
    #BGAF3 F1 0 0 256 256 255 0
    #BGAF4 F1 0 0 256 256 0 255
    #BGAF5 F1 0 0 256 256 255 255
    #00004:F2
    #00006:F3
    #00007:F4
    #0000A:F5
  5. BGAEncAdv "D:\bms\yamajet_is_sugoi\quadrophenia.bms" -l 1 -w 512 -h 512
+----+----+
|(^^)|(^^)|
+----+----+
|(^^)|(^^)|
+----+----+

uBMplay 「オレは実は8192pxの画像を参照しただけで死ぬぞオオ!」

BM98de 「uBMplayがやられたようだな・・・」
DDR 「フフフ・・・奴は四天王の中では最弱・・・」
RDM 「2^13ごときに負けるとは#BGA実装の面汚しよ・・・」

Windows 「グアアアアアアア」

회신

> もしその BMS which use #BGA#TITLE#ARTIST を示すことについて問題が無いなら、お尋ねしても構いませんか? 私は #BGA の作例をあまり知らないので、常に注意深くそれらを探しています。
BOF 2012DJ_SATORI - Rememberanceです。 しかし、#BGAが実際には使われていないため、多分テストしてミスで消していないものを見せます。
> 分解能の制限が緩和されれば、Twelve twisterのAnother chartなどもprecomputationの恩恵を受けられるはずです!

同じ種類の譜面ですね。orz 実は分解能の問題はなく、(AngolmoisSonorous二人とも分解能が事実上無限大です) 言えば:

#BPM 240
#BPM01 14400000
#BPM02 240
#00108:01
#00208:02

このようなBMSがあれば、#000#0021秒間持続されて#0011/60000秒間持続する必要があります。しかし、現在は#001BPMが変われば、次のフレーム(たとえば、1/60秒後に)1000個のmeasureが過ぎ去ったことで認識してしまい、譜面があっという間に終わります。

AngolmoisCバージョンcrashが発生する理由は2000個を超えるmeasureが画面に表示されと、無効なメモリを参照するためです。(Rustバージョンではこのような問題はありません。)事実1000個のmeasureが通る途中BPMが変わるということを認識するのは難しくないが、代わりに逆変換過程で誤差が生じる可能性が高くて根本的な問題を解決しようとしているのです。BPMだけこういうのではなく、STOPにも同様の問題があります。

회신

lifthrasiirです。最近#BGAを使うBMSファイルをほとんど見てないのでテストをちゃんとできなかったんです。(HDD上にあるものではちょうどひとつ...) 今回もくだらないtypoでした。orz 教えてくれてありがとうございます!

Sonorousは大規模な構造変更を進行中です。前にETUDE FOR ULTRAEXTREME 5変に動くという話がいました。基本的には計算可能なことを(特にノートが落ちる時点)最大限先に計算する方向で修正しているので、思うとおりに変更が進められたら、これもまともに移動するようです。それ以外に他のことはまだナイショ ;)

BGAEncAdvance Ver0.01 / Bluvel

異様に腰が痛くて熱まで出てきた・・・

charatbeatHDX VIOLET standalone (v1.00) / PikaCharat

[fixed] #BGA does not work on Angolmois rust edition

#BGA から参照可能な画像のサイズの上限

PMSee-V v2.1.5a / 桜為小鳩

Is #BGA00 equivalent to #BMP00 ?

One digit problem

Furthermore, incompatibility “#BGAzz [#BMP-index(decimal)]
  1. In order to correct this problem, open “ed_place_*_*.bms” by a text editor.
  2. Replace from “#BMP0A ed_title2.bmp” to “#BMP10 ed_title2.bmp”.
  3. Replace from “#00104:Z5” to “#00104:10”.
Furthermore, incompatibility “Overlap of index of #BMP & #BGA
#BMP01 1.bmp
#BMP02 2.bmp
#BGA01 02 0 0 255 255 0 0
#BGA02 01 0 0 255 255 0 0
#00104:0102

#BGA で互換性を確保するのは大変すぎ

個人的には負数座標が0にセットされる方がなんだか納得いきませんね……

プレイ可能な譜面にこの伝統が活用されていなければいいのですが。

PMSee-V v2.1.5 / 桜為小鳩

PMSee-V v2.1.4 / 桜為小鳩

MixWaver の #BGA

One pixel problem

BGAEncoder改 (version )

#BGA 使用作品

Meet Again -Kids Return- / XeON
FELYS / onoken / (Challenger) skng

BGAEncoder改 / Bluvel

BMS delimiters memo

Abbr Name U+0009 U+3000 None Wide Header U+0020 U+FF1A Wide Index
[sample] #BPM1 #BPM 1 #BPM1 #BPM 1 #0011111 #0011111
#WAV01 a.wav
#00111:01
LR2YesNoNoNoYesGarbledGarbled
nanasiYesNoNoNoNoNoNo
ruvitNoNoNoNoYesGarbledNo
HDX / IIDXvYesYesNoNoNoNoNo
AngolmoisYesNoNoNoNoNoNo
fgt#NoNoNoNoYesGarbledGarbled
pomu2YesNoNoNoYesGarbledGarbled
nazoYesYesNoNoYesYesGarbled
GDAC2NoNoNoNoGarbledGarbledNo
BMSENoNoNoNoNoNo... Y... ???
iBMSCYesYesNoNoNoNoNo (all err)
uBMplayNoNoNoNoYesNo... Y... ???
PMSee-VY (2.1.5a+)Y (2.1.5a+)NoY (2.1.5a+)NoY (2.1.5a+)Y (2.1.5a+)
o2playNoNoNoNoNoYesNo
bmx2wavYesNoNoNoNoNoNo
BM98 / deYesNoNoNoYesGarbledNo
DDRYesNoNoNoYesNoNo
RDMNoNoNoNoYesNoGarbled
MixWaverNoNoNoNoYesGarbledNo
bemaniaDXNoYesYes [1]NoYesYesNo
otamaNoNoNoNoYesGarbledNo
GALLINoNoNoNoNoNoGarbled
BMSCYesNoNoNoYesGarbledNo (skip)
BMSVNoNoYes [2]NoYesGarbledNo
nBMplayYesYesNoNoYesYesGarbled
BMEVNoNoNoNoNoNoGarbled
WAviewYesNoNoNoNoNoNo
KbMediaYesNoYes [3]NoNoNoNo
BmsToAviYesNoNoNoYesNoNo
BGAEncoderNoNoNoNoGarbledYesNo
BGAEncAdvYesNoNoNoNoNoNo

Compatibility Equivalence in iBMSC

Compatibility Equivalence in HDX / IIDXv

ファイルシステムに関するメモ

[Windows] NTFS & [Mac OS X] HFS+ :
many Unix-like OS :

BMS アプリケーションの(レベル)では

多くの Windows BMS Apps :
Mac OS の beditor / MacBeat / Aqua'n Beats
Linux の BMda! ほか
クロスプラットフォームの Angolmois :

全角文字がTechnicalGroove直撃していた

Angolmois Rust Edition (version ) / lifthrasiir

Not 'NUMBER SIGN' (U+0023) #endif But 'FULLWIDTH NUMBER SIGN' (U+FF03) endif

Angolmois Rust Edition (version ) / lifthrasiir

まあ、rust-sdlRustと関係なく、バージョンが変わる問題があります。一応0.7に合わせてコードを修正しました。https://github.com/lifthrasiir/angolmois-rust/#how-to-compileにもっと詳細なコンパイル方法を書いておいたので参考にしてください。(中間にzipファイルへのリンクが含まれています。そのバージョンを使えばいいです。)

"それ"というのは、他のものではなく、本家ています; 最近のアーケードの音ゲーは時間がたくさん入って大変ですね。それについてはいろいろ考えをしているが、一応自重。

Dはちょっと長くなったが、(D2がなくてD1時代) そのD programming languageがぴったりです。C++と比較してDに変えたとき時間がより少なくかかるという保障がないので放棄した記憶がします。大勢の運営体制で動かすにはC++Dも多くのことを自ら作成する必要がありました。Rustは少しましな方です。(Servoのおかげでグラフィックはちょっと準備ができています。)

from lifthrasiir

Angolmois Rust edition:

ああっ、Rustは直接コンパイルしなくてもrust-0.6-install.exeMinGW環境さえ設置すれば、動かします。rustcコンパイルにはメモリがたくさん必要だが、そのまま動くのには大きな無理ないでしょう。(しかし、出た0.7はまだ未対応です...とりあえずは0.6を探して使用してください。)

Sonorous:

微妙に作業中なのに可視的な成果はまだいません。一応"それ"が韓国に登場したために時間が;

Angolmois Rust editionよりコンパイルがはるかに面倒臭いからsnapshotをコンパイルして提供しなければならないようです。他のことはコミットメッセージを参考にしてください。

TechnicalGroove:

Dと、懐かしい名前ですね。theseitが一時C++の代わりにDを使用しようとしたが、放棄した痛い思い出があるのだけど…オープンソースBMSプレイヤーが増えるのはいいですね。

“Kusofumen Lovers” don't revived yet ?

(******) クソラバ復活まだ?

(*********) いや

(*********) 消えたままで伝説にする

(******) KUSO

(******) じゃあ勝手にうpるか・・・

(*********) おk

(******) いいのかよ!

http://ucn.tokonats.net/archives/bms/allnightmokugyo.zip

いろいろメモ

#IFの入れ子」と「#ENDIFの省略」の両立
[tentative name] TechnicalGroove (version )
charatbeatHDX v1.00 is coming soon ... ?

uBMplay 1.5.2 (Hayana/UCN-Soft 2004-2013.)

[Tentative name] TechnicalGroove (version )

uBMplay 1.5.1

>どこかに何かの情報が露出するように変更

キャー hitkey さんのえっち!

メモ

uBMplay 1.5.1 (Hayana/UCN-Soft 2004-2007 2013.)

hitkey 先生のツッコミ対応アップデート完了@ubm 1.5.1

okayama EVOLVED なんとかしておきましたー

日記

2001年

2002年

2003年

2004年

2005年

2006年

2007年

2008年

2009年

2010年

2011年

2012年

2013年

2014年

2015年

2016年

2017年

2018年

2019年

2020年

2021年

2022年

BMS関連

拙作BMS
bubble
二次配布BMS
ノイズの海と鯨 / moka
PARTY TIME IN MY DREAM / HAIJI
BMSE 非公式ヘルプ
chm
online
full
full-online
buglist
iBMSC
Web (JP)
issues
雑多なメモ
本体仕様
ベンチマーク集
PMSV
pomu2
grid2sec
bmx2xxx
BMScmd
(JP)
evt
RND
BMS差分
analgam
bolero
Ketchup
quovadis
SELF
yellows

外部リンク

情報系
Be-Music Report
メモメモ
ブチコミ BMS
BMS memo
びにゅう 2.0
BMS名鑑
登録系
pupuly
betoo

応援中

LA-MULANA for WiiWare

BMS STARTER PACK 2009

Groundbreaking2012