doubledepth

Computers hate me

容量0.9 TiBの外付けHDDをformatして約30 GiB相当のdataを移していたところ、HDDが突然Disk Managerからさえ認識されなくなり、移したdataが完全に消えました。時を同じくしてfilerのContext Menu Extensionsがなぜか一切表示されなくなりました。寝起きの思いつきでfilerをuninstallしたところ問題は解決しましたが、当然ながらtabs collectionやbookmarksやuser scriptsは全滅しました。なぜbackupする前に軽率に行動してしまったのか。Windows歴がもうすぐ20年に達するというのに初心者のような為体であり、昨年の私が送受信済みのE-mailsから解き放たれたように、今年の私は取り組んでいた雑事から自由になりました。hopstepを順調にこなしてしまったようなこの感じ。

あああああ…… Filerに登録していたMouse Gestures等の設定も関連付けも全部消えてる…… 常用applicationsもほぼbookmarksに頼り切りだったから覚えてないし…… 突然四肢をもがれたようなこの感じ、もどかしさに苛々させられるのは確かだけど「ああ、またか」程度でだんだん流せるようになってきているのが厭だなあ。実際もう包丁とか利き手で使えなくなって数年たってるけど、受け入れてしまえるものなんだよな。とどめをさしたのは自分自身なのに、まるで他人事のように……

追記

先日の日記について、寝起きの頭で早合点していましたが、見直してみたら紹介がはばかられる理由は特にありませんでした。匿名氏から教えていただいたSHOCK.C氏のscrolling図表、UTTER (S.C.MIX)

あと“MAX1120 (140ver.)”という、titleから内容が察せられる感じの図表も教えていただきましたが、こちらはLR2IRにも登録されてないそうなので、何かの限定公開とかそういう……? 前後の事情が分からないので紹介のみにとどめます。 https://web.archive.org/web/20030112014801/http://www16.big.or.jp:80/%7Eshockc/bms/c_max1120_easy.rar

古い作品がBPM詐称しがちなのは、当時BMS player applicationsの大半がpixel判定だったことも一因であるだろう、というごもっともな指摘もいただきました。古い環境では、速い曲ほど判定が厳しくなり、一方で遅い曲ほど判定が緩くなるという問題がありました。「低速VERY HARD判定」などもpixel判定の産物といえそうです。現在主流のBMS applicationsは、問題を既に解決しています。

そういえば昔のBPM変更は自然数のみで255が上限だったりしたんでしたっけ。たしかしょっぺ人氏が普通に#BPM 300のBMSを「新春カラオケ大会〜ボーカルBMS対決〜」に登録されていたような気がしますが、私が当時集めていたBMSは全滅の憂き目に遭ったので確証がありません。BPMや小節長を半分にするようなscrollingは一切使っていなくて驚かされたような記憶があります。

LA-MULANA 2をclearした

エゴサーチしてて、131さんが自分のBMSを評価してくださっているのを見て本当に感動しました。またBMSつくってみたくなりました。

つたないwebsiteを消さずに続けていて良かったです。私が熱中したBMS作品を生んでくださった方に対して少しでも何かをお返しできたなら、usersの一人としてこれに勝る幸せはありません。懐かしい方の新作BMSを遊べるなら嬉しく思いますし、もし遊べなくても、うん、まあ……うん。


以下、8月1日の日記6月19日の日記に関連する話題です。数日前に匿名氏から“Boldman's Anchor”の動画を教えていただきました。動画でみるbeat indicatorはたしかに曲の拍子と噛み合っていません。曲を聴く限りでは普通に⁴⁄₄拍子ですが、indicatorは小節あたり6回明滅しています。

これは単純に小節長を伸ばしたというよりは、「⁴⁄₄拍子曲のBPMと小節長をともに¾に縮小したうえで、縮小済み小節を二小節ずつ組にした」という感じでしょうか。

逆の言い方をすれば、「⁴⁄₄拍子の曲を、⁄₄拍子の図表として解釈したうえで、さらにそのBPMと小節長をともに¾に縮小した」という感じでしょうか。

どう表現するのが正しいのかちょっとわかりませんが、「BPMと小節長を、同じ比率で伸縮する」「二小節ずつまとめる」という二つの操作がこの図表には施されています。比による伸縮は音楽とは無関係な図表の都合で、小節連結のほうは拍子をどう解釈するかという音楽的な話になるのかな。このうち前者を#SCROLL独自拡張命令などで肩代わりすれば、強いてBPMを詐称する必要もなくなり音楽的には筋を通せるんじゃないかな、といういつもの話に。いや音楽的整合性とかはどうでもいいんですが、視覚的な気持ちよさに直結するindicatorを狂わせないような図表作りは重要と思いますね。

同様の図表scrolling操作の実例として、匿名氏からは往年のSHOCK.C氏のいくつかのBMSに関しても教えていただきました。これらはさすがにここに記すにははばかられる感じだったので、ありがとうございましたとだけ。というかよくもまあURLぽんぽん出てきますね⁉>匿名氏

で、わりと古めのBMS作品にscrolling操作系図表の作例が多く見えるのは、当時はHI-SPEED関連optionsが未整備あるいは大雑把な倍率しか用意されていなかったからかな、などとふと思いました。だからこそ図表著者側が先回りしたくなる感じがあったのかもしれません。今はまあ、10000 BPMを超えるようなExtratoneなども何の配慮もなくそのまま図表化されていたりするので…… 9年前の作品を「今」と言ってのける時間感覚にわれながらびっくりしますが……

Visual C++ Runtimeのsupport期限に関する、『窓の杜』の記事

いくつかのBMS関連applicationsも、Visual C++ Runtimeを使用しています。私はちょっと今まともに思い出せそうにないのですが、あ〜〜〜……

Visual C++ 2005 Runtime (only if user uses Windows XP/2000/Me/98):
Visual C++ 2010 Runtime:
Visual C++ 2015 Runtime:

思い出し次第、listに追記するかもしれません。あの、x86/x64とかもう全然覚えてないので……

某BMS作者氏がLA-MULANA2にちょい役で出ててふいた

ふと書いておこうと思ったので更新

Computerの電源を入れたらsaunaにfan heaterを設置したも同然になった。腕からは蓮の花托のように汗が噴き出し、mousepadが即座に湿って使えなくなった。夜なのに蝉がうるさい。

beatmania APPEND GOTTAMIX “HELL SCAPER”と、beatmania 5thMIX “HELL SCAPER”は、BPMは同じでありながら、図表のscrolling speedが異なる。似た例は他にもいくつかあったはず…… 暑くて思い出せないけど…… ああそういえば、私はbeatmania THE FINALでしか遊んだことが無いので初出のbeatmania 7thMIXでどうだったかは知らないが、REFERENCEも妙に速かったような記憶がある。

drummaniaAcross The Nightmareも何か妙な細工をしていなかったっけ? OPTIONでHI-SPEEDをつけている動画ばかりだから確認できないけど(間違っていたらごめんなさいね)、

  • 表記上のBPMは300
  • Scrolling speedは150 BPM相当
  • (おそらく表記上のBPMと辻褄を合わすために、)全小節の長さを半分にしていた

つまり感覚的には「150 BPM、のわりにはやたらと小節線が降ってくる」。一部のBMS作家諸氏がこの技法を参考にしていたような記憶もある。固有名詞が汗と一緒に身体から流れ出ていく…… たしかAozuna氏は何かの作品で確実に同じことをやっていたはずだが、作品名を思い出せない…… 

何が言いたかったのかというと、Bemuse/beatoraja(0.6.2以降)/raindropが実装する#SCROLLzz/#nnnSC:拡張命令なら、前述の例のように図表だけではったりを利かせたり手加減したりする目的でも「実際のBPMの通りに図表を組んで、後からscrollingを調整する」こともできるだろう、ということ。

Scrolling関連beatoraja独自拡張命令備忘

beatorajaの拡張にスクロールスピードに関するものが追加されたらしいです。

https://twitter.com/ryougae_samurai/status/1018105368163962880

お知らせいただきありがとうございます! に0.6.1がreleaseされていたんですね……

Bemuse由来の拡張命令#SCROLLzz/#nnnSC:は既に作例があります(“Multiplex” / Dolphin)。この図表は件の命令を用いて、実際のBPMが変動する状況で図表のscrolling speedを一定に保ちます。beatoraja 0.6.1は件の拡張命令を知らないので、LR2他と同様にこの図表のscrollingを加速・減速します。

beatoraja 0.6.2はBMSON書式においても同等の独自拡張を施します。

前述の“Multiplex”の該当箇所をBMSON書式に変換すると……
"bpm_events": [ … ],
"scroll_events": [
    {"rate": 1.8, "y": 0},
    {"rate": 1.714, "y": 12480},
    {"rate": 1.636, "y": 13440},
    {"rate": 1.565, "y": 13920},
    {"rate": 1.5, "y": 14400},
    {"rate": 1.44, "y": 14880},
    {"rate": 1.384, "y": 15360},
    {"rate": 1.333, "y": 15840},
    {"rate": 1.285, "y": 16320},
    {"rate": 1.125, "y": 35520},
    {"rate": 1.111, "y": 50880},
    {"rate": 1.097, "y": 51840},
    {"rate": 1.084, "y": 52800},
    {"rate": 1.071, "y": 53760},
    {"rate": 1.058, "y": 54720},
    {"rate": 1.046, "y": 55680},
    {"rate": 1.034, "y": 56640},
    {"rate": 1.022, "y": 57600},
    {"rate": 1.011, "y": 58560},
    {"rate": 1, "y": 66240}
],

負数指定によって図表を逆流させることができるらしいので、今後はflip bookめいた詐術無しでも手軽に図表を踊らせることができるようになるかもしれません。

LongNotes関連beatoraja独自拡張命令備忘

wish on the skyをbeatorajaで遊ぶと、playersがLongNotesを図表の指示通りに押下できない図表が指示する通りに押下できていない間、Groove Gaugeが減少し続ける。この変化はbeatoraja独自拡張命令#LNMODEによる。鍵盤の右側にturntableを構える環境(いわゆる2P側)で“wish on the sky”を遊ぶと、曲の展開に沿って運指が右側に追いつめられた挙句「右端の鍵盤押下状態を維持したままturntableを回転させ続ける」という曲芸を強いられる。予習なしではこなせないであろう攻略性……そういうのも良いよね!

Mifis -Confinement-や、RIE-CHAN MADNESS ~ Director's Cut: hitoGoroshi_no_yoha.oggのPMS発狂図表のように、LN終端を判定しないことも明示できる。前者はLR2との互換性を考慮した結果と思われる。終端判定の有無は演奏感に影響を与えうるので、私は#LNMODEを大いに支持している。

(TBD)のNORMAL/ANOTHER図表も#LNMODE 3を使っている。NORMAL図表は#036#038で、「休符の無いphrase・かつ同じ音階・かつLongNotes」という状況を「ええ〜……」って感じの方法で処理している。

uet_bms_collection収録作品“Covenant”は、現時点でbeatorajaが持っているBMSON独自拡張propertiesを全て使っている。この図表の後半はBSS祭りの様相を呈し、まさに図表の顔としてpreview音声に抜粋されている。

詳細:
  • info.ln_typeによって、この図表に現れるLongNotesの種別が大域的に指定される。

    "ln_type":3,
  • さらに、sound_channels[n].notes[idx].tによって、各NotesのLongNotes種別が局所的に変更される。具体的には#037#041のLongNoteのみ、HELLでないCHARGE NOTEに指定される。

    {"c":true,"l":3840,"t":2,"x":8,"y":35520},

    この一個のLongNoteはBMSON Layered Noteでもあるので、前述のcodeは複数個所に存在する。

  • さらに、sound_channels[n].notes[idx].upによって、各LongNotesの終端に別の音声が割り当てられる。これは、ありていにいえばbeatmaniaIIDXのBACK SPIN SCRATCHを再現できる代物。

    {"c":true,"l":3840,"t":2,"x":8,"y":35520},

    "x"列座標8番における、"y"座標3552039360区間のCHARGE NOTE終端位置に対して、以下の終端専用Noteが重ねられる。

    {"c":true,"l":0,"up":true,"x":8,"y":39360},

    "up" propertyそのものが存在しない場合、LN終端位置に重ねられた音声は、BGMとして自動再生される


beatorajaのBMSON拡張命令"up"は、turntableのみならず、鍵盤列に対しても使用できる。FF4 バトル2追加図表で試した。書庫内の図表二枚はまったく同じ内容だが、片方は図表著者の期待通りには音声が再生されない。すくなくともbeatoraja 0.6時点では、BMSON code上において"up"よりも先に始端側のLongNotesが記述される必要がある。場合によっては"up"を後方に記述するためにsound_channelsを多重定義する必要もあるかもしれない。

無名戦#15 + A-1#8 on Bemuse

BMS event参加作品群(98 works)が丸ごとWebで遊べる! Umlaut + 漢字」のような「従来BMS applicationsでは表現できなかった文字の組み合わせ」も普通に表示されていて凄い。

また、「Bemuseが大文字の図表拡張子を認識しない」というのは貴重な情報。同様のBMS applicationsとしてiBMSC/μBMSCやPulsusなどが存在する。

図表やreadme.txtがUnicodeな作品も増えてきているし(最近だと抜駆不辣首瑞雪など)、2018年春のソフラン差分祭り第2回」にはvs_yūdachiなるfolder名のBMSが含まれる。

(そういえば春祭り動画集は非常に素晴らしく、前述のdownload場所の各曲解説欄に個別に動画への参照を差し挟むとものすごく宣伝効果がありそうだなあ、と思った。)

Cybergence MK.2は最初は[Antem]Cybergence MK_”というfolder名で配布されていた。おそらく日本語Windows環境でfilenamesがCP932のbyte列としてZIP圧縮され、おそらくMac OS環境で展開された時点で機種依存文字「」が文字化けし、package初版には[Antem]Cybergence MK_なる改竄されたfolder名が収録されていた。現在は元の書庫内の名前もpackage内の名前も修正済み。

直下型地震

大阪は本日も明日もそこそこ蒸し暑いうえに雨が降る……

こ゚か゚こ゚か゚aŋoŋahaŋoeŋa

Blink系browsersで先日の日記のtext fileを開くと、日本語Windows環境では文字化けするようだ。

Google Chrome 55以降ではencoding変更機能が削除されたこの機能が危ないから」というのが削除理由だったはず。エンコーディングの切り替えによるSelf-XSS」などで攻撃の発想例が見られる。私もBMSON Checkerではいちおう対策していた(FirefoxでHTML sourceを見ると分かる)。

Web browsersはencodingを自動判別してくれはするけれど、ことBMSのように大半がASCII英数字で記述されるtext fileでは自動判別の精度に期待できないし、「users側がencodingを変更することによって文字化けに対処すること」を許さない前述のような環境もある。

BMS applicationsに非ASCII文字を確実に解釈させる方法は、やはり以下の二つしかない。

  • BMSをBOMつきUTF-8で保存し、BemuseやcharatbeatHDXなどのUTF-8対応機種で演奏する。
  • または、BMSをBMSON形式に変換し、beatorajaやBemuseなどのBMSON対応機種で演奏する。

ただし非ASCII文字を確実に表示させられるかどうかは、また別の問題。

先日の日記で示した例を、今回はZIP書庫で例示します(“AlitätriebのBGA適用版にUmlautを追加したもの)。“beatoraja default” skinが用いるVL Gothic書体(20141206版)は漢字とUmlautを含んでいるので、選曲画面や演奏画面などで漢字とUmlautを同時に表示することができる。

Umlautを含む文字列“Alitätrieb”と、漢字を含む文字列“BGA:自動車 原付”が、beatorajaの選曲画面に同時に表示されている。

beatorajaでLR2用themesを流用した場合にも同じことができるかどうかは、私は知らない。

Bemuseは文字描画関連処理をWeb browsersにほぼ丸投げできるので、当然のようにうまくいく。

日本語Windows環境上のBemuseの場合、Umlautを含む文字列“Alitätrieb”はSource Sans Pro書体で描画され、漢字文字列“自動車 原付”はMeiryo書体で描画される。

PulsusはBMSONをsupportしているので、非ASCII文字たるUmlautを正しく解釈してはいるはず。Umlautを描画できないのは書体の問題だと思う。

Pulsus 0.5.3の場合、Umlautを含む文字列“Alitätrieb”は“Alit?trieb”として表示される。

空調修理費弐万円無理

(あとどう調べても分からなかったんですが、BMSでウムラウト文字をタイトルにつける方法をご存知の方がいらっしゃったら教えていただけると超喜びます)

Alitätrieb / R*uLuru (第15回自称無名BMS作家が物申す!)

LR2上でUmlautを表示する方法はないはずです。LR2を無視して構わないなら二つ方法があります。

文字符号化方式は選択の余地がないので悩む余地もありません。Umlautと漢字を同時に表示できなければならない」という要件のほうが面倒かもしれません。

BMSE非公式Helpを少し更新した

Windows 10 April 2018 Update (Version 1803)以降特有の問題について軽く加筆し、linksを整備した。Microsoftのdocumentsはどうしてああも頻繁に所在が変わるのか。KB2575928とか到達できなくなってるし……。いっそ最初からInternet Archiveを参照するべきか。“Cool/Dead URIs don’t change.”

日記

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
雑多なメモ
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