doubledepth

真夜中は別の竿

おっっっそろしく今更ですが、#DEFEXRANKの件修正していただきました。記事どころか初版から何年経ちましたっけ(考えないことにしよう)。

私のEnglish abilityがEnglish powerだったのでaqtq氏は大変に苦労されたはずです。

  1. iBMSC 3.0公開直前、labelは#DEFEXRANK、出力されるBMS codeは#EXRANKだった
  2. 誤記に気付いた私がE-mailをお送りした結果、公開版はlabelも#EXRANKになった
  3. iBMSCのfolk版たるμBMSCにおいて、zardoru氏がBMS codeを#DEFEXRANKに修正
  4. そのμBMSCをBluvel氏がfolkされた版に対して、今回のlabel修正が入った

はっ! 全部私のせいだ! ハハハハハ! Nekokanくん、全部私のせいだ! フフッ

ア……ATOK

https://nekokan.dyndns.info/file/hitkey_bms_ms.jpg

ここがbms.msドメインでも利用できるという話は以前したと思いますが、その際なぜかスタイルシートが反映されない場合があるんですよね。Cloudflare(DNS&proxy)設定だと思うんですが難しいもんですね。そんな感じのおま環おま言うネタでした。駄文失礼しました。

2011年以降の当日記はstyleを外しても支障なく読めるようにしていたはずなので平気平気〜 とはいえ気にかけてくださりありがとうございます(日付が変わる前にいただいたcommentsも頭が下がる思いです、人手…猫の手…鼠手が必要であればお声がけください)。私の環境でもstyleが外れたり当たったりすることを確認しました、以前pupulyなどが陥っていたMixed Content絡みでもなさそうだし、原因は私にはちょっと思い当たらないです、でも再三になりますがこちらは全然問題ないので!

Bemuse v50

v48.5時点では鳴らなかったはずのmissの音声が鳴るようになった。子方向へのpathの定義を気兼ねなく使えるようになり、個人的にはとてもありがたい。ちなみにBemuseは、親方向へのpathの定義(e.g. #WAV02 ../v_foon.wav”)やfull pathの定義おそらく意図的に拒絶する。その理由はBMSON仕様のどこかに書かれていた気がする。たしかpath traversal攻撃を抑止するためだったはず。……なんというか私たった数箇月離れていただけで何もかも忘れててふく(真顔)

あと、Can select custom BMS archive on Android/iOSが地味に凄いと思う。Smartphonesはつい最近までlocal filesのdrag-and-dropすら覚束なかったはずなのに……

Auftakt

Subdivision recollection4拍目裏から曲が始まるが、図表上では曲全体が8分音符1個ぶん末尾方向にずらされている……ように見えるが実際のところどうなのか私は知らない。

microheavenの図表は曲全体を16分音符1個ぶん先頭方向にずらしているのでは? と昔感じた。久々に“microheaven”を眺めると、16分の弱起Auftaktを曲に忠実に図表化したようにしか見えない。

【期間限定公開】TVアニメ『小林さんちのメイドラゴンS』ノンテロップオープニング映像、前半ずっと弱起Auftaktで引っ張って溜めて、後半で何もかも劇的に吹っ飛ばす。感動して原作を買った。

Qwilightをv1.13.38に自動更新したら起動しなくなった

近日中に予定されているv1.13.39がreleaseされるまでは、Qwilightを起動しないことをお勧めします(起動すると否応なしに更新されてしまうので)。BOF登録締め切り10分前とかだと悲劇。[追記] にv1.13.39がreleaseされ、起動不可能bugは既に修正されました。既に起動不可能になっていたり自動更新に失敗する場合は、古いQwilight folderを消して改めて新規installすれば大丈夫っぽいです(既定の曲とかはdownloadし直すことになるけど)。

自動更新機能を求めるusers側の声は何度か見かけた記憶があるし、開発側としても実装してみたい機能なのかもしれないが、う〜ん、Qwilightで同様の事態に陥ったのは1回や2回ではないし、個人的には更新しない選択肢も用意していただけるとありがたいかな……。

mBMplay v2.21.1024.0

Keyを押し続けると小節移動やHI-SPEED変更などを連続入力できるようになった。Ctrl+Shift+Qとか絶対に覚えられない私としては、Q/W/E/Rを押し続けるだけでKEY/BGMの音量変更ができるようになったのがありがたかった。地雷、BGA各層のみ再生、一時停止、一時停止したまま小節送り、おりたたみやごころ[Crazy]の#if 5#BGA座標定義、などが必要な場合はuBMplayを使えば良さそう。

Amaニキニキ

AmapianoMAXをプレイいただきありがとうございます。

当パッケージのBGAに於いてはStan Brakhage氏(アメリカの実験映画作家)の影響を強く受けておりますので、

特に初見では戸惑ってしまう可能性はあるかもしれません。

貴重なこぼれ話いただきました! 参考映像は瞼の裏に映る埃めいた筆致が爽快です、filmを物理的に加工しちゃう系の映像表現の開祖みたいな方っぽくて勉強になります。_motirefix.bms#000のような強烈なcontrastの短時間切り替えにポケモンショックみを感じたのですが、たぶんこれ私一人が視覚過敏というだけの話かも。AmapianoMAXのBGAそのものは私はとても好きで、speakers_and_male.bmpとかこういうのに飢えてたんだな〜と気づかされました。

Comments返信

このサイトがPHPページ中心なので突然ですが、PHP7/8系って興味あります?

現状suPHP+PHP5.6ですが、とっくの昔にサポート終わってるなーと思いまして……。もっとも7.4ですらあと1年の期限、サーバー全体にアップグレードかけたらColosseoやノンジャンル辺りが止まってしまいそうなわけですが……。

私はいつでもupgrade大歓迎です! 投稿型sitesは仰る通りerrorが危惧されますね、開催期間終了から年を経たBMS event会場跡地はHTML化して後顧の憂いを断っても良いんじゃないかなと思うことはあります。club Stubbornのlogみたいに。なかなかそういうわけにもいかないのでしょうけど。

Webブラウザーで「Visual Studio Code」が完全動作 ~「vscode.dev」にアクセスするだけ

https://forest.watch.impress.co.jp/docs/news/1360147.html

え〜……。なんか「えぇ〜……」って思ってしまったのでおすそ分けします。……ぇぇー………

おすそ分けありがとうございます! 正直なところ、この展開は予想していました、Electronってまさにこういうことをするためにあるんだろうなと思っていたので…… Web技術でこの完成度のapplicationを組める方々は本当に凄いと思います!

BMSChecker 1.3.0

昨日言及し忘れていました。BMSONに対応! BTS差分のreadmeの拡張子をbmsonに変更して突っ込んでみたところ、BMSONの文字列値がいきなりHTMLとして描画されてびっくり。

私事諸々がなんとか落ち着いたので日記を再開してみる

beatmaniaIIDXのARENA mode4人の選んだ楽曲を演奏し点数を競うreal-time matchをLR2で実現するsoftware

に匿名氏に教えていただいた(ありがとうございました)。LR2の規約『解析・改造を禁止します。』に抵触しているかもしれないのでsoftwareの名前は伏せる。BMSにおけるDLL横取り手法にはおそらく先例があり、BM98kのfolder内に存在するyaneSDK.dllに干渉して何かを行うsoftwareがあったような(誰に教わったのだったか、softwareの内容や作者についても忘れてしまった)。

unofficial nazoBMplayにLR2のような規約があれば、Glasopalもなかっただろう。既に役割を終えたとはいえ、nazobmとLR2を橋渡ししたGlasopalの意義は大きかった。小見出しのsoftwareはBMS形式を直接に拡張するものではないが、BMSの遊び方を変える可能性はあるかも。

HTML ruby関連の雑談

Wikipedia記事ruby要素が使われている(『製造業メーカー』)。教えてくださった匿名氏(ありがとうございました)いわく「設計・開発はdeveloper, 組立はmanufacturer と使い分けなければならないことには気をつけねばと思った次第」。言葉を扱う業務ではそのあたり繊細さが求められますね。語の意味を限定したいがために英語で伝えたくなる状況は結構ありそうですが、片仮名表記に正書法やguidelineがないとディベロッパーdeveloperだのデヴェロッパdeveloperだの入り乱れalphabetしか勝たん。

ruby関連の別記事を見つけた。自社漫画のほぼ全漢字にrubyを振っている集英社、まじで日本の識字率向上にめっちゃ貢献している。

「キャベツばたけ」や「コウノトリ」をしんじているわいおんなのコにしゅうせいのポルノをつきつけるときそうぞうするようかいかん

こういうので日本語を覚えると、Hentai contentsで声優さんが「下卑た」を「げた」と読み間違えるだけでしぼんじゃうおじさんに育つ。価格を上げてくれてよいから台本にrubyを振ってくれ。

テキストの多線形性」に同意。私見ではrubyはinline-tableに近しく、table要素と同程度に複雑かつaccessibility困難を抱えていると思う。関係ないけど過去に書いたSVG文書群のxlink:hrefを全部ただのhrefに置換したときに去来した虚無感も記憶に新しい。

暫定的には段落ごとWAI-ARIAで装飾するのが間違いなさそうだが(<p role="image" aria-label="本文ruby無し">本文ruby有り</p>)、long descってaccessibilityの観点から非推奨なのだっけ。data-ruby属性とCSSで処理する方法はかしこそうだけど、それだとrubyの註釈性はmark-upできないようにも思う。人工知能にruby振りを任せると、Twitterで絵文字に対して機械的に挿入される必ずしも適切とは限らない代替textsみたくなりそう。声優AIが抜きどころで漢字を読み間違える未来に妥協できる人ならそれでもいいのかもしれない。

PythonでBMSを再生するprogram

これも8月中旬に匿名氏に教えていただいた(ありがとうございました)。さきほどWindows用Pythonをinstallし、pygametqdmを別途導入したうえで、このscriptをcmd.exeから実行した。

C:\Users\IRUser\Desktop>py bms.py
pygame 2.0.2 (SDL 2.0.16, Python 3.10.0)
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
  File "C:\Users\IRUser\Desktop\bms.py", line 295, in <module>
    main()
  File "C:\Users\IRUser\Desktop\bms.py", line 220, in main
    bms = BMSInfo(bms_path)
  File "C:\Users\IRUser\Desktop\bms.py", line 28, in __init__
    self.load()
  File "C:\Users\IRUser\Desktop\bms.py", line 50, in load
    raise ValueError("cannot detect bms file encoding")
ValueError: cannot detect bms file encoding

C:\Users\IRUser\Desktop>

これはもしかして、script自体を書き換える必要があったりする感じ? だとすればそれなりに学習してからじゃないと私にはこのscriptを使いこなせそうにない。後日機会があれば再挑戦しよう。しかし既存のlibrariesを賢く適切にimportすれば、わずか200行かそこらを費やすだけでBMSを演奏できてしまうんだな、情報技術者ってすごいな……

そういえば私もBMS関連のscriptを書きかけていた、どこまで進めたか思い出すまで10分くらいかかった。どこで詰まっていたのかは思い出せたけど解決法をまだ考えていなかった。後日後日。

Google Driveの古い共有リンクが無効化している可能性

Nekokan氏に教えていただいた(ありがとうございました)。作品置き場としてGoogle Driveを使っておられたBMS作者の方々には影響があった模様。これも一箇月前の話題です🙇Sorry。関連する話題↓

2017年11月13日以降に更新されたファイルなら大丈夫そう

Google ドライブの仕様変更でBMSが落とせなくなった話の対処とBMSユーザーへのお願い

Googleドライブのファイルのセキュリティアップデートを削除すればURLを変更しなくてもダウンロードできるようになります

【BMS作者向け】 Googleセキュリティアップデートによる共有ドライブリンクへの影響 のまとめ

とりあえず現在activeな作者の方々にとっては「多少面倒だが対処できなくはない」くらいの問題だったようで、一介のBMS userとして安堵している。現在非activeな作者の方々の作品群に関しては深刻っぽいけど、それは今回に限った話ではないので……、なんともいえない。

プナイプナイえんそうアップデート(ver0.10)

これも匿名氏から教えていただいた(ありがとうございました)。私はたしかver0.07くらいで止まっていたので知らなかったが、「WAV手動で音切りした際、フォルダ指定したのに肝心のWAVが出力されないバグを修正」って音切りsoftwareの本質に関わる致命的なbugの修正だと思うので、使用されている方々は忘れず更新されたし。ってこれも十日くらい前の話題だし、皆さんとっくに更新されてますよね、ごめんなさいね。

AmapianoMAX -Amapiano BMS Mini package-

個人的にめちゃくちゃ面白かった。SA Respect(Prototype)で私もAmapianoに興味を持って30曲くらい掘ってはみたが、当時聴いた曲がどれも普通のvocal系afro houseみたいな感じだったのでそこで興味を失って離れていた。もったいないことをしたと今は思う。というか“SA Respect”公開停止かあ…… Amapianoをいろいろ聴いた後だと「ああ、ここはあれか〜」って楽しめる感じの作品なので、これまたもったいない。とは思うけど、ご本人の意向なら仕方ない。

BGAまで完備していてとても楽しめた。強いていうと一部のBGAの明滅が激しすぎて個人的にはつらかったが、これは私がむにむにおじさん氏の5鍵skinで1920x1080のクソデカBGAで遊んでいるせいかも。いや、LR2で640x480でもやっぱり目に刺さる感じはあるな〜。

Nekokan Serverからのお知らせ(2)

ISPの工事が行われるため、近日中に回線が一時停止するそうです。

1.工事日時

開始日時:   (24時間表記)

終了日時:

2.影響時間

上記時間帯において、20分程度数回、サービスがご利用いただけません。

この時間帯の更新や大容量ファイルのダウンロードは避けることをおすすめしますとのことです。よろしくお願いいたします。


Hitkeyさんは今月中に日記を再開したい感じです。

Server管理者様からのお知らせ

Nekokan_Serverです。サーバーの仕様変更についてお知らせします。

現状ほとんどのコンテンツは

*.nekokan.dyndns.info

*.bms.ms

どちらでもアクセスできますが、SSL/TLS化の流れや

bms.ms に活発な企画・利用が多いことから、

非SSLのアクセスを全面的にhttpsにリダイレクトする変更を行いました。

古い企画など必ずしもhttps対応ができない場合もありますので、

http://*.nekokan.dyndns.info はリダイレクトせずこれまでどおり非SSLで利用できます。

とのことです! 当siteも後日に外部参照先を点検し、可能ならHTTPSに修正する予定です。

久々更新

現在、諸事情で当日記の更新を一時休止しています。Web clap経由でいくつかcommentsをいただいております、ありがとうございます。後日に機を改めて返信させていただきます。

noteでのルビ(ふりがな)対応の実験

興味深い記事を教えていただいた(ありがとうございました)。見出しの記事で予定されている記法は、現時点でのWHATWG HTML仕様(rb/rtc要素が存在しない仕様)に準拠するようだ。

帰ってくるHTML Rubyrb/rtc)要素」という記事を以前見かけたが、Pull Requestへの付けの返信を見る限り感じでは、結局のところBlinkとWebkitにrb/rtc要素がすぐさま実装される予定は無さそうに見える。英語を読めない私には顛末がよくわからなかったが、lobbyingよりもcodeを書いてねってことだろうか。

系webpagesはおおむねrb要素を出力するが、W3C HTML5.x仕様はに廃止済みrb要素を出力しない件の記事は仕様に敏感な感じ。記法が唯一の正解とは私は思わないが、とはいえrb/rtc前提の簡易記法というのも想像がつかないし、記法に倣う見出し記事の方針は現実的ではあるのだろう。rb/rtc要素を含めたrubyはinline-tableにも似る。こういった複雑な構造なら簡易記法はむしろ遠回りかもしれない。文章投稿用formでHTML直打ちは許容しないほうが安全ではあるのだろうが。

3==🚗

FINALFANT
      ASY

うるせ〜〜〜!!!!!

知らね〜〜〜!!!!!

00()が等価だとして、(00)は?

#TITLE LN or not?
#BPM 130
#WAV00 bomb.wav
#WAV11 kick.wav
#LNOBJ ()
#00111:1100(00)00

        FINALFANT
              ASY  

Enclosed BMS test #2

#TITLE Enclosed BMS test #2
#BPM 130
#BPM(0) 130.1
#BPM01 512
#BPM1 256
#STOP(1) 2
#STOP1 192
#BMP() default_poor_320-64.png
#BMP(0) 320-64-blue.png
#BGA(0) (0)   32    0  288  256    0    0
#BGA00    0    0    0  320  320  -32    0
#WAV00 landmine.wav
#WAV(0) v_foon.wav
#WAV(000) C:(0)
#WAV01 do_overwrite.wav
#WAV(01) kick.wav
#WAV (01) do_not_parse_1.wav
#WAV(01)do_not_parse_2.wav

#00103:(100)(0000)
#00104:00(0)
#00108:00()01(0)
#00109:01(1)
#00111:00()(0)
#00113:(000)()(00)()()(000)
#00119:01(01)01(01)
#001D1:(56789ABCDEFGHIJK)(1)(0)

(1)(01)(001)が区別されるなら、(0)(00)(000)も区別されるのだろうが、非dataのheader tagにおいても00()を同一視して構わないのだろうか? 前述の例でいうと#BGA00#BMP()をcropできるべきなのか、それともそれをしてはならないのか、よくわからない。とりあえず同一視したが。

#00103(標準BPM変更)や#001D1(地雷)などのvalues listは“Enclosed Alphanumeric Keys”仕様の範囲に含まれるのだろうか? #00103:(56789ABCDEFGHIJK)BPM 1143448453347401269920800に変換するような振る舞いは、以下の仕様に抵触するかも。でもvalues listはkeys仕様と関係ないかも。

The reader must treat enclosed alphanumeric keys as a string with the fixed length, not a base-36 number.

そういったよくわからない箇所に目を瞑れば、う〜ん、一応、私の書きかけscriptはtestsをpassできたんじゃないかな?

Enclosed BMS sample

#TITLE enclosed test
#BPM 130

// ["11", "222", "33", "00", "00"]
#00111:11(222)33()00

// []
#00221:123(456789)0

// ["12", "34", "56789ABCDEFGHIJK", "00", "56789ABCDEFGHIJL", "00"]
#00322:1234(56789ABCDEFGHIJK)00(56789ABCDEFGHIJL)00

// []
#00423:1234(5678

// [] ?
#00429:1234(5678))

// ["00", "1", "01", "001", "02", "03"]
#00524:00(1)(01)(001)0203

// ["01", "01", "01", "01"] ?
#00625:01(01)((01))(((01)))

// ["12", "00", "9A"] ? // hope to: ["12", [layered "345" + "678"], "9A"]
#00728:12((345)+(678))9A

Enclosed Alphanumeric Keysを部分的に実装した

BMS形式のまま1296個以上の定義を使えるようになるSonorous拡張をうろおぼえの記憶だけで実装してから仕様を眺めたらmust notが予想外にいっぱいあった。従来のBMS仕様を満たしきれていないhand-coded invalid BMSがそこそこ存在するので「可能な限り寛容さを維持しつつ括弧が含まれる行だけはSonorous仕様に合わせて厳格にparseする」という方針で私はscriptを書き直すつもり。

μBMSC 3.5.0.2は「BMSON形式にexport可能なkeyboard 24 keys BMS(およびそのDoublePlay図表)」を読み書きできる。μBMSCのmenuからTheme2OCT.Theme.xmlを選択することで24 keys図表を編集できる。この中間形式も私の書きかけscriptでsupportしたい。しかしμBMSCによってexportされた24 keys BMSON図表はWHEEL UPがG1に移動しWHEEL DOWNがF#1に移動する。これはbugに見える。

括弧拡張などの新しい要素を実装するのは自分なりに楽しいと思える。しかし過去の自分が書いたcodeに向き合うのは個人的にはまったく楽しくない。「4000行の巨大なwhileから20層以上に及ぶ入れ子」など読んでいると比喩でなく吐き気がこみ上げてくる。

202112

BGAEncAdvance Ver0.035がreleaseされた。32-bit Windows環境ではもはや動作しない。必要な人は旧版も確保しておくのが無難かもしれない。sample/sample.bmsの変換に失敗するようになったが、自分が動画をどういった設定でcroppingしていたか思い出せない。

Qwilight v1.12.8でいくつかのBMS独自拡張が追加されるようだ。従来の構文解析と競合しそうな#SWIPE0などの命名は個人的には歓迎しづらいが、swipe系の図表がどう表現されるのか楽しみ。

日記

BMS関連

拙作BMS
bubble / hitkey
二次配布BMS
ノイズの海と鯨 / moka
PARTY TIME IN MY DREAM / HAIJI
BMSE非公式ヘルプ
Lite
Lite-online
Full
Full-online
buglist
iBMSC
Web (Japanese version)
issues
BMS差分
a­nal­gam
boléro
Ketch­up
quovadis
SELF
yellows
Do not use non-ascii filenames
Brilliant Techno Square
雑多なメモ
bmsplayer data
bms benchmark
Secrets - Feeling Pomu 2nd
grid2sec
bmx2xxx
BMx Outliner
BMS command memo
BMS command memo (Japanese version)
BMS EVENT LITE
#RANDOM BMS list
BMS #OPTION command
BMS Bitmap test
Extended BPM
STOP Sequence
BMS Edge Cases
BMS extensions proposed by Sonorous (unofficial Japanese version)
BMS 2.0 (unofficial Japanese version)
BMS Editors
Do not use non-ascii filenames
BM98 Kikuchan Version 3.30 Revision #4.2
BMSON Checker
_wsh_bms2bmson.js

その他

HTML関連メモ
Dakuten on HTML
nest1000
EVS
Nervous Cascading
Source Han Sans test
User-Agent String
CSS Logical Properties