疲労困憊で呆然としている
先日の日記、正しくはSecurity “r”
次期Windows 10では
先日の日記、正しくはSecurity “r”
次期Windows 10では
Nice to haveではなくMust haveなのでJavaを導入を無くなさければいけないです…
Java11以降ではJRE配布がないので開発者がJREをバンドルしないと動きません…
おっと、人前で蛙のような悲鳴をあげてうろたえてしまったぜ…… ご指摘ありがとうございました、誤った情報を載せてしまっていました。ごめんなさい。私が正しく理解できたかどうか自信がありませんが、ひとまず問題の記事を訂正しました。間違っていませんように……
User側としては、
あとBGAが表示されなくなった方もいつのまにか表示されるようになっていたとのことで、良かったです。私自身はBMS関連の古いappsも調査等を目的として頻繁に起動しますが、
寝るべきか、書くべきか。おやすみなさい。数年前から(実際はもっと前から)身体のあちこちにがたがきていて、たとえていうならkeyboardでBMSを遊ぶ際にKEY三個同時押しがいつのまにか効かなくなっているような感じなので、好む好まざるにかかわらず生活習慣を変えざるをえない。
https://https://tm3 .nekokan .dyndns .info/ tm3 .bms .ms/ サブドメイン方式でtm3のHTTPSに行くと証明書がうまくいってないことに気づき、今になって更新しました。
いつまでたってもそんな体たらくの13年目の猫でございました。
干支一周おめでとうございます!
某お相撲糞譜面も十五周年らしく。今回新しい映像を作られたiimo氏のみならずxarva氏にまで件の差分の存在が知られていたようで、背中から汗が噴き出しました。
先日のbme2bmson2bme図表、小節長1
になるべき箇所が小節長1
Note value | #xxx02 |
---|---|
𝅝 4/4 | 1 |
𝅗𝅥 1/2 | 0.5 |
♩ 1/4 | 0.25 |
♪ 1/8 | 0.125 |
𝅘𝅥𝅯 1/16 | 0.0625 |
𝅘𝅥𝅰 1/32 | 0.03125 |
𝅘𝅥𝅱 1/64 | 0.015625 |
𝅘𝅥𝅲 1/128 | 0.0078125 |
1/256 | 0.00390625 |
1/512 | 0.001953125 |
1/1024 | 0.0009765625 |
1/2048 | 0.00048828125 |
1/4096 | 0.000244140625 |
1/8192 | 0.0001220703125 |
1/16384 | 0.00006103515625 |
1/32768 | 0.000030517578125 |
1/65536 | 0.0000152587890625 |
1/131072 | 0.00000762939453125 |
1/262144 | 0.000003814697265625 |
1/524288 | 0.0000019073486328125 |
1/1048576 | 0.00000095367431640625 |
1/2097152 | 0.000000476837158203125 |
1/4194304 | 0.0000002384185791015625 |
1/8388608 | 0.00000011920928955078125 |
1/16777216 | 0.000000059604644775390625 |
1/33554432 | 0.0000000298023223876953125 |
1/67108864 | 0.00000001490116119384765625 |
1/134217728 | 0.000000007450580596923828125 |
1/268435456 | 0.0000000037252902984619140625 |
1/536870912 | 0.00000000186264514923095703125 |
計算上の累積誤差は約96 μsに相当する。他の箇所の丸め誤差とかのほうが深刻だと思うけど……、可能ならどうにかしたい。
beatorajaは今後はuser側でJavaを導入する必要がなくなるかもしれないらしい。
[追記] 正しくは「beatorajaは今後はuser側でJavaを導入できなくなる」でした。誤った情報を載せてしまい申し訳ございません。
TM3スタッフです。ミラーサイト公開したのでお知らせしておきます~
http://https://nekokan .dyndns .info /~tm3/ tm3 .bms .ms/
整備および更新お疲れさまです! ご丁寧にお知らせくださり大変にありがたいです。当Webpagesからは勝手ながらHTTPSのURIを参照させていただきましたが、問題があればHTTPに貼り直しますのでお気軽にお申し付けください。詫び石はあえて交互打ちを崩していくstyleが厭らしくて良かったです。
"bga"
"id"
"lines":[]
実装しようとしていた機能まで辿り着けてさえいませんが、今日あたりに更新しておかないと今年中はもう間に合わない感じだったので、
「LAYER用の画像がRGB
LR2の文字列長上限を採り入れたのですが、あんまりうまくいってない感じ。たとえば
さっきbeatoraja0.6.6を試したら5keyのオプション周りが改善されてて神
でもまたBGAが表示されなくなった~~~~
orz もしそちらでbeatoraja使ってたら確認してくれませんか…
5 keys
私の環境ではBGAも、すくなくともBMS仕様に準拠するresourcesであれば、
『ほぼ』という断り書きは、昔あった「1 pixel × 1 pixelの真っ黒画像で暗転」ですとか、
自分のcode、記憶を次の日まで持ち越せない人が必死こいてる感ある〜
拙作script、RGB
RGBa
ここから透過を無効化しても「透過色がRGB
[追記] RGBa
RGBa
“Battlekeys Megamix ’18 (FR Mix)”RGB
RGB
#000000
#0F0F0F
拙作script、"lines":
拙作script、長い小節をものすごく細かく分けようとする→長さ500桁を超える配列を初期化しようとする→沈黙、みたいな感じで頭の悪さが平常運転だった。対処法を四つ考えた。
1
以上になる小節は事前に分割しておく。自分が書いていたscriptに関して。[DP DUBAI]
自分は以前まったく同じことを調べたはずだが、肝心の調査結果を思い出せなかったので改めて調べた。おおむね三通りの解釈に分かれた。末尾一文字を捨てる実装と、末尾一文字を00
に置き換える実装と、行ごと捨てる実装があった。
#title from
#bpm 130
#wav01 a.wav
#00111:0101011
#title to (μBMSC)
#bpm 130
#wav01 a.wav
#00111:01000100010000
iBMSC7
の場合、小節は七等分される。
“Enclosed Alphanumeric Keys”
The reader must not parse the enclosed alphanumeric keys preceded by the incomplete (i.e. one-letter) alphanumeric key in the data section. For example,
#00101:abc(de)f
is invalid, although#00101:ab(cd)ef
is equivalent to#00101:abcdef
. The reader should ignore lines with such keys.
これ、AB
, CD
, (EFG)
HI
によって小節を四等分するか、または最後に00
を補って五等分する感じかな。
#00111:abcd(efg)hij
ん〜。まあこれならif
文とwhile
文しか読み書きできない俺でも実装できそうかな。やるべ。
beatorajaにFLACを実装された方や目を付けておられた方に気付いていなかった私、驚かされました。あと私、不覚にも見落としていましたが、
flac -d *.flac
このようなdirectory構成のとき、このようにcommandを指定すれば、
yassu氏の新作が数日前にreleaseされていたことを知って小躍りしています。地味にencoderが最新!
#SETRANDOM
に関する私の理解が誤っていたことに気づいたBMX2WAVが乱数をGlobal変数#RANDOM
#SETRANDOM
#SETRANDOM
問題は、某command memoが私の誤解に基づいて書かれており、誤解を自覚した以上は可能な限り早急に書き直すべきだということ。なんだけど諸事情あり、暖かくなるまで後回しにする。
BMX2WAVが負数値のscrollingをどう扱うかも確かめた。負数BPM変更はよく分からなかった。#IF 26
みたいなやつは、
#title Negative BPM
#bpm 140
#bpm01 -140
#wav01 kick.wav
#00108:0001
#00111:01010101
#00211:01010101
#title Memory Error
#bpm 140
#bpm01 -70
#wav01 kick.wav
#00108:0001
#00111:01010101
#00211:01010101
負数STOPは、
あとSofa2014を眺めていて思ったけど、
正式にでなくとも超絶分解能も考えていただけるのであれば個人的には本当にありがたいです!
同じタイミングに同じWAVが存在する場合は1つしか鳴らさない設定とかあれば良さそう
#title kick x1
#bpm 130
#wav01 kick.wav
#00111:01
#00115:01
#00211:01
#title kick x2
#bpm 130
#wav01 kick.wav
#wav02 kick.wav
#00111:01
#00115:02
#00211:01
既に一般的なBMS実装と同じように「一つしか鳴らさない」ように変換されているように見えます……?
明示的に重複定義されている場合は、演奏時のresoundingで発生しうるnoiseを抑制したり、#016
–#033
if
に来た時に行数表示してこのif
成立させる?見たいに聞くのはアリか。
#IF
特殊なWAVに関しては、私が体験した限りでは32-bit float WAVを他よりは見かけたかな? あとそれで思い出したというか私が思い出すのが遅すぎてごめんなさい案件なんですが、
特殊WAV関連でもうひとつ、
うお〜
#title 18/19, 22/23, 28/29
#bpm 130
#wav11 kick.wav
#00111:00000000000000000000000000000000000011
#00112:0000000000000000000000000000000000000000000011
#00113:0000000000000000000000000000000000000000000000000000000011
#00202:0.5
#00211:0000000000000000000000000000000000000000000000000000000011
#00212:00000000000000000000000000000000000011
#00213:0000000000000000000000000000000000000000000011
このBMSをiBMSC
#title lcm(19,23,29)
#bpm 130
#wav11 kick.wav
#00111:00000000000000000000000000000000000011
#00111:0000000000000000000000000000000000000000000011
#00111:0000000000000000000000000000000000000000000000000000000011
#00202:0.5
#00211:0000000000000000000000000000000000000000000000000000000011
#00211:00000000000000000000000000000000000011
#00211:0000000000000000000000000000000000000000000011
iBMSC
11
番は一行にmergeされ、丸められる。#00111
0/6337
としたとき、6003/6337
, 6061/6337
, 6118/6337
に。#00211
0/469
としたとき、445/469
, 449/469
, 453/469
に。})
これは特殊なrhythmを意図通りに記述したい図表著者にとっては都合が良い仕組みですが、全座標を同一平面上に投げ込まざるを得ない形式(E.g. BMSON)とは相容れないBMSになりがち。とはいえこのような発狂分解能も変換はできたほうが嬉しくて、というのは図表ごとに微妙にarrangementを異にする
別のBMSも試しました。通常難易度表収録曲#WAV67
–7I
, H0
–HH
, I6
–IO
, JV
–JW
)。それらを整理したのちWAVに変換すると、
“歓喜の歌”#00102
・#00113
、#127
–#128
)を消すと変換できます。他にもいくつか同種のBMSがあって、ひとつは
[追記] ぼんやり探したら出てきた。量子化BMSという記事が詳しいです。
負数BPM系では
Firefox 64の自動更新が降ってきて、これを適用している最中にAntivirus softwareが頑張り出した結果、どうやら良くないtimingで処理が競合してしまったらしく、
BMX2WAV v2 TEST2
#ENDRANDOM
正式対応予定ありがとうございます。これで#ENDIF
や、#WAVYW
#ENDIF
時間がなくて全然testできてない。すみません。あと私信ですがありがとうございました>ボス
体感で旧版の四倍は速い! 当環境では11.81
秒で変換できた。
#title E.g.1
#bpm 130
#wav01 a.wav
#00111:01
#00111:00
“PAL
#ENDIF
を持たない#IF
は変換されない。
#title E.g.2
#bpm 130
#wav01 a.wav
#random 1
#if 1
#00111:01
#endif
#endrandom
#random 1
#if 1
#00211:01
#endif
#endrandom
nanasigrooveは#RANDOM
#RANDOM
#ENDRANDOM
BMX2WAV v2は入れ子の分岐を変換できる。#ENDRANDOM
を/ENDRANDOM
#RANDOM 2
を#SETRANDOM 2
に置換すれば、図表著者の期待通りに
ついに64-bit版BMX2WAVが公開されました! 私はつい先ほど気付いたばかりでまだtestできてないのですが(何か調べ始めてしまった
"up": true
Longbeatoraja 0.6.4時点では(0.6.6時点でも)、終端定義を重ねても鳴る音は最後のひとつのみ。
{"version": "1.0.0",
"info": {
"title": "v_f.wav is 🎶",
"init_bpm": 140,
"ln_type": 2,
"mode_hint": "beat-7k",
"resolution": 2
},
"sound_channels": [
{
"name": "kick.wav",
"notes": [
{"l": 1, "x": 1, "y": 8},
{"l": 1, "x": 1, "y": 10}]},
{
"name": "ohh.wav",
"notes": [
{"up": true, "x": 1, "y":9},
{"up": true, "x": 1, "y":11}]},
{
"name": "v_f.wav",
"notes": [
{"up": true, "x": 1, "y":9},
{"up": true, "x": 1, "y":11}]}
]}
{"version": "1.0.0",
"info": {
"title": "ohh.wav is 🎶",
"init_bpm": 140,
"ln_type": 2,
"mode_hint": "beat-7k",
"resolution": 2
},
"sound_channels": [
{
"name": "kick.wav",
"notes": [
{"l": 1, "x": 1, "y": 8},
{"l": 1, "x": 1, "y": 10}]},
{
"name": "v_f.wav",
"notes": [
{"up": true, "x": 1, "y":9},
{"up": true, "x": 1, "y":11}]},
{
"name": "ohh.wav",
"notes": [
{"up": true, "x": 1, "y":9},
{"up": true, "x": 1, "y":11}]}
]}
終端定義が
var a = [
"#WAV(11) kick.ogg",
"#WAV(12) |><\"?*:/\\1",
"#WAV(13) |><\"?*:/\\2"
];
var r = "|><\"?*:/\\";
var x = /^#WAV\((\d+)\) \|><\u0022\?\*:\/\\(\d+)$/;
var t1;
var t2;
var t3;
var l = a.length;
var i = 0;
while (i < l) {
if (x.test(a[i])) {
t1 = x.exec(a[i]);
t2 = t1[2];
t3 = ("0" + (Number(t2).toString(36))).slice(-2).toUpperCase();
WScript.echo(a[i].replace(t2, t3).replace(r, "C-"));
}
i += 1;
}
// #WAV(012) C-1
// #WAV(13) C-02
一回目の置換結果のみ、不思議な位置に"0"
RegExp
String
String
日記を更新した後に即座に間違いに気付いた。偏差値40以上の人生は俺には完璧に関係ない感じある
#WAV
G2R2018開催期間中に間に合わせたく急いだため、細かい箇所の煮詰めが足りていません。たとえばBMSON仕様のlayer画像における透過部分は、
BMSON固有の仕様には追従しきれないので、あくまで一方向の疑似的な変換にとどまります。
#WAVZY 00ZZ.wav
#WAVZZ 0100.wav
#EXT #WAV(100) 0101.wav
#EXT #WAV(101) 0102.wav
#99902:0.0125
#EXT #(1000)02:0.0125
#EXT #(1001)01:00(1CS)00ZZ
#EXT #(1001)02:0.0125
BMS仕様の範囲を超える部分に関しては、前述の例のようにSonorous提案Enclosed Alphanumeric Keys仕様(非公式日本語訳)とBemuse提案Extension Lines仕様を組み合わせて無理矢理に体裁を整えています。問題は拙作変換器がReader要件を満たしていないことですが、これも今後の課題とします。
Layered Notesは全部BGMに回しています。"up"
ここまでやるなら実際に音声の裁断もできるといいんですけど、それは今の私には難しいうえに、素晴らしい音切り専用softwaresが既に存在するので、あんまりやる気ないです。
"y"
{"name": "a.wav", "notes": [
{"x": 1, "y": 960},
{"x": 0, "y": 960}
]}
"y"
が同じならすべて"c": false
として扱うべき(should):{"name": "a.wav", "notes": [
{"c": false, "x": 8, "y": 480}
{"c": true, "x": 1, "y": 960},
{"c": false, "x": 5, "y": 960}
]}
{"name": "a.wav", "notes": [
{"x": 1, "y": 960},
{"x": 5, "y": 960}
]}
同一channel内で同一の"y"
図表編集の都合もあるだろうBmsONEはともかく、変換を目的とするscriptが
使わないが構文解析だけしていた#VIDEODLY
#VIDEODRY
BMSの不可視notesや地雷notesを、
"sound_channels": [{
"name": "a.wav",
"notes": [
{"x": 1, "y": 120, "l": 100, "c": false},
{"x": 1, "y": 240, "hidden": true},
{"x": 1, "y": 480, "damage": 0.5}
]
}]
BMSON仕様v1.0.0に準拠する実装はこれらを通常のnotesと区別できないので、この方法は使えない。それならそれで"hidden
Object
[]
先月末の日記で読み仮名を参照したとき、そういえばWinampとかHTTPS化してたなあ、と思い出してcheckしてみたら他にもいろいろなURIが変わりまくっていて、けっこう忙しかった。以前は無料で読めたはずの記事が会員制に変わっていたり、まさに隔世の感。
#RANDOM
BMS list#OPTION
command