doubledepth

BMSと関係があるかもしれないapplicationsの最近の更新

DTXMania 103 () / DTXCreator 030 ()

  • WASAPIのbuffer値に関する修正、High DPI対応、Mouse/Keyboard非接続環境でのGPF発生を抑止、DTXCreatorの鬱陶しい不具合の修正など、地味に重要な変更が適用されている。
  • Windows 8.1/10使用者は、DTXMania 103のためにMicrosoft .NET Frameworkを導入する必要は無い。DTXMania 103およびそれ以降は、「.NET Framework 3.5の有効化」(English)も必要ない。
  • Windows Vista/7/8使用者は、Microsoft .NET Framework 4.5.1以上を導入する必要があるかもしれない。
  • DTXMania 099dのみTitle Screenの年号が“(c) ”に変更された。DTXMania 103”のまま

bmsjs (alpha version)

Web BMS playerのひとつ。いまのところbrowser requirementsが不明私のWindows 10環境において、Blink (Iron 44, Opera 31, Vivaldi 1.0.249.12, etc.), Firefox 40.0.2では動作した。Internet Explorer 11, Edge 20.10240.16384.0, Presto Opera 12.17, WebKit Midori 0.5.10では動作しない。

追記: 『推奨ブラウザはchromeです。』と書いてあった。すみません。

Bemuse v1.0.0-beta.13–19

  • v1.0.0-beta.13以降、Offlineで演奏できる。現在Blink (Chrome/Iron 40+, Opera 27+, Vivaldi, etc.)のみ有効。
  • v1.0.0-beta.14以降、Online Rankingに参加できる。事前にAccountを作成し、Log-in状態でplayする。
  • v1.0.0-beta.16以降、5-keys BMSも演奏できる(従来版は5-keys図表を選択できなかった)。
  • v1.0.0-beta.18以降、1個のturntable laneに対し2個のkeysを割り当てることができる。
  • v1.0.0-beta.19以降、BMSON形式の図表を演奏できる。Bemuseは最初のplayableなBMSON実装になった。

あたかも誰もがYouTubeを経由して動画を提供・閲覧できるかのように、誰もがBemuse Music Serverを経由してBMSを提供・演奏できるようになる。Computerに詳しくないusersに対してさえ、著者はBMSを届けることができるCasual usersはもはやBMSをdownloadする必要がなくなる。BMS eventを閲覧する者は、各作品の頁から一度も立ち去ることなく、その場で感想を投稿することさえできる(無名戦#12 “Exargon”のように)。

Nekokan Serverを借りている誰かがBMS packageを編纂するものと仮定する。彼はまず、Node.jsやSoXなどを導入する。次にWikiの手順に従って、Bemuse用のBMS packageを構成する。最後にそれらをNekokan Serverにuploadし、Cross-Origin Resource SharingのためのHTTP headerを送出する。そのpackageへのURIは、たとえば https://bemuse.ninja/?server=https://nekokan.dyndns.info/Bemuse/Yamajet のようになるだろう。

https://bemuse.ninja/”収録版“Exargon”に追加された図表BEMUSED.NORMAL”は、独自拡張命令を使う。これをBemuseで演奏する図表著者は、Song (Tempo)Chart (Scrolling)を分離することの意義を理解するに違いない。

charatbeatHDX VIOLET v1.09

地雷と#LNOBJがsupportされ、七鍵盤図表の解釈力に関してHDXはほぼ完全にLR2に伍するようになった。

あと地雷に付いて細かい説明がほとんど見つからなかったので、仕方なくLR2で

地雷の挙動を確認してたんだけど、地雷だけのレーンがあると判定の挙動が

おかしくなるのと、一番最後の判定のあるオブジェ(通常オブジェ)の後に

地雷オブジェが存在すると、それはもう反応しなくなるという問題を発見。


普通はフルコンボは最後の通常オブジェが終わった瞬間に判定するので、

LR2ではこの時点で処理を終わらせているからだと思うんだけど、

そうなると意図的に地雷を通常オブジェの後に置いている譜面は

いったい何のためにあるんだ?ってことになってしまうので、

このあたりの仕様はまともに出来ていないのでは無いかと思ったり。

(まぁ後付だしねw)


ということでcharatbeatHDXでは仕様として、

  • 地雷だけのレーンでも問題なく動作する
  • 最後のオブジェ以降に地雷があった場合も反応する

ということにしますた。


これによりフルコンボでクリア失敗ということが出来るようになってまつ。

(おそらくこれがしたいので通常オブジェのあとに地雷を置いてるのだと)


プラグラマーとしてはこういう細かい仕様が欲しいんだよねorz


ついでにおまけ機能として、地雷音は最大で4つまで同時に鳴りまつ。

また、#WAV00に地雷音が設定されて無ければ「FILES/WAV/MINE.WAV」が

読み込まれるようになってまつ。


連続した地雷を踏むとババババって感じw

「可視notesを持たないlane」がbugsの温床になりがちなのは仰るとおり。LR2の挙動はよくわからない。(^^)”の#00216:0000000000090000#002D6:00000000001F0000に変更しただけの図表は、LR2では私の意図通りに演奏(爆発)できるように見える。nanasigrooveではこの地雷は描画されないが、触れると爆発はする。

BMSのファイルサイズを小さくする工夫』を読んだ

Web BMS playerなどの用途において、いまもなおminified BMSは重要であり、この素晴らしい記事には、BMSの容量削減技術がほぼ網羅されている。この記事に載っていない技法はもはや忘れてよいだろう(重複定義による音量変更長音化はKEY soundsとして用いるには詐術的に過ぎるし、BGMの左寄せは割に合わない)。

  • BGM側でなくKEY側に遅延や残響が統合されているほうが、playersにとって気持ち良い場合もある(たとえば静かな場面でのAd lib演奏)。そこに容量を割く価値があるかどうかについて私は知らない。
  • 60秒よりも長いaudio file(s)を参照する図表は、LR2 Internet Rankingに登録されない。「60秒よりも長いKEY sounds」を望む著者は、長いKEY soundsとLR2IRのどちらかを選ばなければならない。
  • 音質を追及する著者は、High-Resolution Audioを使いたいかもしれない。

BMServer (Release version on )

現時点で最も高機能なBMS database siteのひとつ。図表viewerにJavaScript + SVGが使用されており、図表が登録されていればTexTageのような範囲切り出しや列変更表示なども可能。各記事の編集権限は限定されている(詳細はRead Meを参照されたい)。既に結構な分量のBMS dataが入力されている。

#bmson

次世代BMS規格の提案のひとつ。提案者wosderge氏は協力者を募っている音声の構成次第では音切りが不要になる定義数無限、などの情報がいまのところ明かされている。私は“(^^)”を移植してみた。現段階で音声が仮想的に裁断されているかは不明だが、少なくとも私の環境においてparseされ再生されることは確認できた。

The JSON License—“The Software shall be used for Good, not Evil.”は議論を呼んだ文言として知られている。この件と関係があるか不明だが、SonorousはJSONのかわりにCSONを使うよう変更されている

HTML5 datalist要素に関する備忘録

<label>Minimum example: <input list="ID"></label>
<datalist id="ID">
  <option value="Suggest-01">
  <option value="Suggest-02">
</datalist>

非対応環境に配慮するならPolyfillsを当てるか、あるいはJavaScript無効環境を前提するならこんな感じ:

<form class="dummy-for-lynx">
  <p>
    <label for="ID-FOR-IE6-1" onclick="" title="@onclick for iOS < 6.0">Search:</label>
    <input type="text" name="keyword" id="ID-FOR-IE6-1" value="" autocomplete="on" list="LIST" />
    <datalist id="LIST">
      <label for="ID-FOR-IE6-2" onclick="" title="@onclick for iOS < 6.0">(Did you mean:</label>
      <select name="keyword" id="ID-FOR-IE6-2">
        <option value="Suggest-01">Suggest-01</option>
        <option value="Suggest-02">Suggest-02</option>
        <option value="" selected="selected"></option>
      </select>)
    </datalist>
  </p>
</form>
  • autocomplete="off"にすると、Presto Opera 9.00–12.17で入力補完が効かない。
  • empty optionはfallback contentの初期値。これを項目の先頭に置かないならselected属性が必要。
  • option要素のlabel属性は、空の値は禁止。(“The label content attribute, if specified, must not be empty.”)
  • option要素の、@value/@label/text IDL attributeの優先順位には、互換性が殆ど無い(後述)。
  • 互換性を重視するなら、option要素のlabel属性は使用厳禁
  • 互換性を重視するなら、option要素のvalue属性値とText nodeは同一の内容にする。
<option label="Bad" value="example">Text</option>
Blink (Iron 43, Chrome, Vivaldi, Opera 15+, …)
value属性値は、列挙され、入力補完され、選択時にtextboxに入力される。label属性値(無い場合はText node data)は副文字列として表示される。
Presto (Opera 9.00–12.17)
Blinkとほぼ同じだが、副文字列も入力補完される。Text node dataは使われない。
Firefox 39.0.3
label属性値(無い場合はText node data)が列挙・入力補完されるが、選択時にtextboxに入力されるのはvalue属性値。文字列の途中からでも入力補完が効く。
Edge, Internet Explorer 10+
label属性値(無い場合はText node data)が列挙されるが、textboxに入力(補完)されるのはvalue属性値。
Internet Explorer 8 (or IE9, WebKit Safari, Midori, …)
label属性値(無い場合はText node data)が列挙されるが、value属性値がsubmitされる(普通のWeb Formsの挙動としては当たり前だが)。
Lynx 2.8.6rel.4TH
Text node dataが列挙され、value属性値がsubmitされる。label属性は使われない。

BMSChan Database

Webpage版BMSChan。個人的にはTwitter版よりも便利。画面幅が狭いときに表示が崩れる点と、各BMStbody単位)が隙間なく隣接していて見分け辛い点が気になった。後者に関しては、自分ならtbody::before { content: ''; display: table-row; height: 1em; }”とかでお茶を濁すと思う。

  • #high > p > h4”, “#high > p > div”, #high > h4 > form”, などの構造はinvalid
  • Bad:
    <a href="index.cgi?keyword=&keywordType=8"></a>
    Good:
    <a href="index.cgi?keyword=&amp;keywordType=8"></a>
  • <a href="index.cgi?keyword=オススメのソフラン&keywordType=8">オススメのソフラン</a>
    この属性値は、Internet Explorer/Edgeでうまくいかない場合がある。たとえば:
    1. IE/Edgeにおいて、Tag text上でcontext menuを開き、ショートカットのコピー」または「リンクのコピー」を選ぶ
    2. Shift_JISで符号化されたtextやHTML」などに対して、copied URLをpasteする。
      (「http:///index.cgi?keyword=オススメのソフラン&keywordType=8」となるはず)
    3. Shift_JISで符号化されたtextやHTML」から、pasted URLをあらためて選択してcopyし、IE/EdgeのURL barに貼り付けて移動すると、Shift_JISによるpercent-encoding符号化が行われ、Pythonのerrorが発生する
    UTF-8 percent-encodingを使用すれば、URLが化ける余地を減らせるはず:
    <a href="index.cgi?keyword=%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E3%81%AE%E3%82%BD%E3%83%95%E3%83%A9%E3%83%B3&amp;keywordType=8">オススメのソフラン</a>

日記

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

その他

HTML関連メモ
Dakuten on HTML
nest1000
EVS
Nervous Cascading
Source Han Sans test