Sample of Enclosed Alphanumeric Keys
“U+00A0 NO-BREAK SPACE” and “U+00AD SOFT HYPHEN” may be used in HTML.
Image | HTML |
---|---|
| |
|
I discovered typo in RFC 2070 (Obsolete):
If the line is indeed broken there, a hyphen must be displayed at the end of the first line. If not, the character is not dispalyed at all. In operations like searching and sorting, it must always be ignored.
The requirements for the SOFT HYPHEN in HTML are unrelated to BMS. All the BMS players which support UTF-8 display “#TITLE Changelog
” as “Change-log”.
こんにちは、lifthrasiirです。
-
#SWBGA
は概念的にはsound-like effect("キーを押した時の効果")であるため、formatがノートにkeysoundがなく効果を割り当てることを考慮して設計されなければなりません。"拡張が容易ではない"という言葉はこのような意味で使われました。
#SWBGA
is bound to a lane (key), but if possible, this should be bound to a note (object) ...I thought that LRX's #SWBGA
will succeed if an attribute new as follows is increased:
<LRS><sound id="9" filename="v_foon.wav" />
<n c="0" s="5040" p="9" effect="foon_5n.lrm#swbga-group-v_foon" /></LRS>
But, it may require the feature like SVG Fragment Identifiers at least. Now I see, I was foolish.
- DTXはmeasure barを任意の位置に入れることができるが、BMSではないですから。実は理想的には編集機が仮想のmeasureを管理した後、BMS formatに変換して解決しなければならない問題です。
| | | | | | | | |
| +-+-+ | | | | |
| | | | | | | | |
| | | +-+-+-+-+-+
+-+ | | | | | | |
| +-+-+ | | | | |
|S|1|2|3|4|5|6|7|
- 機械翻訳が...;_; 当該文章だけを英語でもう一度書きます: I think, if LR were well alive today and LR started supporting LRX then BMS would have been completely displaced by LRX. But most proposals do not have such an influential software supporting them, not to mention a lack of niche softwares like nanasigroove. (ななしのBMS拡張がどの程度受け入れられたのもななしがどの程度使われるソフトウェアだったからです。)
About nanasigroove, I suppose you could say that.
LR2 supported some nanasigroove extensions in order to be able to play this package (probably).
(: #DIFFICULTY
, : *.pms
, : #WAV00
+ [D1-E9]
, : #BANNER
)
Except for these, nanasigroove extensions are not used mostly. (Although PMS is feeling-pomu extension)
- CSSのようなsyntaxは流用できるが、XMLではなく、また他の言語を解釈する負担があります。
<judges>
を分離するのが解釈は簡単です。
When metadata is expressed only with <meta/>
elements, reading and writing may become difficult about multiplex value.
For me, the following ways are more easier than IDREFS:
<subartists>
<subartist>Movie: m</subartist>
<subartist>Noter: n</subartist>
<subartist>Testr: t</subartist>
</subartists>
Or:
<artists>
<artist_song>artist</artist_song>
<artist_movie>m</artist_movie>
<artist_sequence>n</artist_sequence>
<artist_balance>t</artist_balance>
<制作環境>
<abbr title="BMx Sequence Editor">BMSE</abbr>
is
<abbr title="Digital Audio Workstation">DAW</abbr>
</制作環境>
</artists>
- Unique identifier問題は、
id
という名前を避けて異なるnamespaceごとに異なるattributeを使用することにすればいいと思います。Sonorousは内部的にsoundref/imagerefという用語を使用しています。
Can each xml:id
attribute value have prefixes ? But this may also be a bad way.
<xbms><head><title>test</title>
<sound xml:id="s01">audio.wav</sound>
<image xml:id="i01">image.bmp</image></head></xbms>
<image id="STRING">STRING</image>
??“<meta http-equiv="X-UA-Compatible" content="chrome=1" />
”:
I remembered that Google Chrome Frame will be retired in .
こんにちは、lifthrasiirです。
- Sonorousは依然として作業中です。基本的に"安定したゲームシステム"を目標するので判定、主要インタフェース、互換性などがどの程度改善される前までは0.1.0は発表しないつもりですが時々snapshotは出そうです。Rust最新バージョンを必要としているのはそうしないと旧バージョンそのものを受けにくいために... orz
- Sonorous実装の過程でcmds.htmを改めて詳しく読んでいます。TechnicalGrooveの多重
#SUBARTIST
支援は#SUBTITLE
と#COMMENT
にも同様に適用できると思います(Sonorous で追加されました)。#BACKBMP
は、個人的には (BMS packageなどで使用できるように)#SKINBMPzz
、#SKINWAVzz
、#SKINTEXTzz
などで次第に変わってこそ、しないと思っています。Angolmoisのmovie rewindingは...そうですね、できれば直したほうがいいようですね。- Sonorous(以前)とAngolmois Rust editionの速度の問題は同一の原因です。具体的に、特にWindowsでRustの特定の関数(
std::os::path_is_dir
)が非常にゆっくりなせいです。問題を報告したため未来には改善されるが、一旦はSonorousでは問題を避けるように構造を変更し、Angolmoisの方も近いうちに直そうとします。
Multiple Metadata is a very interesting design! In sound-only mode, I checked that.
test.bms | sonorous.exe -X "test.bms" |
---|---|
|
|
In sound-only mode, unquoted #COMMENT
values are also displayed as quoted strings. Conversely, on “selecting screen”, quotation marks of #COMMENT
are invisible. What an elaborate behavior this is!
I think that there may also be #SUBGENRE
extension, seeing this sample. ... Indeed ?
#EXTCHR
(or Materials)”. The extension which can assure that “shared resource can be referred to regardless of the structure of BMS application” may be required.xml:id
- 10月13日の日記のちょっとした間違い:XMLで
ID TokenizedType
はDTDでそんなに宣言されている時だけ適用されます。ID typeを持つattributeの名前が必ずid
である必要はありません(HTMLでは保障されますが)。実はDTDを許容しないXML implementationも多いため、unique identifierが必要なら、xml:id
(https://www.w3.org/TR/xml-id/)みたいなのがもっといいようです。- XBMSについては・・・続いて書きます。1000文字制限が;
id
”. I must apologize to LRS and XBMS. Sorry... Sorry...id
' and 'xml:id
' attributes [SVG Tiny 1.2]Unique identifier (ID type) may rather bring about trouble. It may be happier for us to be satisfied with “the state of being not valid XML but well-formed XML” (e.g. LRS, XBMS) ?
BMS | XBMS (xml:id error) |
---|---|
|
|
xml:id
error if first-letter of a value is [0-9]
.xml:id
error if two or more same ID values appear in a document./* Reminder for me :: xml:id requires @namespace */
@namespace xml "http://www.w3.org/XML/1998/namespace";
#id {/* unmatch */}
[id] {/* all just ids match */}
[xml|id] {/* all xml:ids match */}
sound[xml|id="01"] {/* all <sound xml:id="01"> match */}
image[xml|id="01"] {/* all <image xml:id="01"> match */}
lifthrasiirです。続いて書きます。
-個人的には新しいformatを作ることは反対する立場です。ここには私が約7年(!)前に似たようなものを作ろうとした経験もあって、同様の試みをとてもたくさん見たせいもあります。一番最近観たのは、このようなことですね: https://twitter.com/MusicGameLAB/status/352662851565002752 (日本語の翻訳が惜しくもまだありません)
- 具体的に、私が考えているBMSの当面の問題はこうです。
1.音楽からBMSデータを作るのが簡単ではないです。
"key soundがない"商用音ゲームが登場する現象もここにいると思います。effectorを使用する某ゲームがこの問題をうまく解決したと思いますが、いつも可能な方法ではないでしょう。 しかし、これはBMSの特性上やむを得ない問題だけに、BMSの改善よりはBMSを作るソフトウェアの改善で解決しなければならないと思います。iBMSCがサウンド編集なども支援してくれればよいかも(笑)
#EXWAV
. In addition, virtual waveform slicer / concater were already implemented. (Video: sm11018377, sm11067837) These are “the features for simplifying making chart data from music” literally.2. BMSが使用できるresourceに制限が多いです。
36^2
つ制限だけあることではなく、BGA layer本数が足りなかったり256x256
制限とか・・・ これはBMSの根本的な問題というよりは拡張が容易しないために生じた問題です。XMLやJSON基盤なら拡張がたくさん容易になるように見えるが、formatがそれほど柔軟しなければ意味がありません。LRXも結局、LRの内部表現をそのまま持ってきたものに過ぎなかったんです。もし#SWBGA
のようなことをLRXで実現するために、どうしなければなりませんか?
#SWBGA
is virtual image grouping, and LRX editor already has audio concater.Sharp comment to LRX. However, that #xxx
separators are not bound to actual measures (in musical notation) may bring about a new musical viewpoint.
For example, Polyrhythms, Polymetres, Polytempos, etc. can be visualized now more clearly than before, by objectized separators. Since this is impossible for the conventional BMS, it is commented as follows: 마디 선을 긋는 것은 유저에게 그저 압박을 주기 위해 사용되는 기능이므로
3. 新しいゲーム要素の追加が極度に難しいです。
BMSのゲームシステムがとても曖昧に規定されていて新たな機能が現れても他のソフトウェアがこれを具現化するには危険が大きいです。結局、機能が追加されなかったり、過度に緩やかに追加されたりします。これこそBMSじゃなく他のformatが必要な理由になることができます。しかし、BMSを使っていないという話は既存のBMSを放棄しなければならないという話もします。BMSと新しいformatをともに支援しながら絶対的な優位を占めるソフトウェアがないかぎり難しいです。
- 続きます。
lifthrasiirです。あまりに長く書いていますね; これで終わらせます。
- このような理由で、BMSに新しい機能が追加されるには二つの可能性があります。たくさん使うソフトウェアが新機能を主導したり、新しい機能を大幅に制約して他のソフトウェアが簡単に適用できるようにしたり。
- XBMSをはじめとする多くの提案の共通的な問題は、既に実装するソフトウェアはないのに他のソフトウェアが追いつくのにはあまりにも巨大ということです。私はLRがもし今すぐLRXを使用し始めたら、BMSが消えるかもしれないと思います。しかし、ほとんどの提案にはLRはおろかnanasigrooveのようなソフトウェアさえありません。
- Sonorousはたくさん使うソフトウェアがないので漸進的な機能追加を目標としています。
#LANES
は多分もうちょっと修正をしなければならないが...他のことは経験を基にほかのソフトウェアが実装しやすいように作っています。
- 内部的にJSONなどでserializeするformatの標準化なら可能かもしれません。BMS hash計算などに使われることができるようです。たとえば、random BMSで
#IF
...#ENDIF
などを全て除去したBMSデータを作って各パターンを別のランキングで集計したり。
#RANDOM
BMS are enjoying the inequity of ranking, positively.Therefore, it is doubtful whether collecting all the combination that may exist is required. However, it is a very interesting idea. If realizing is possible, someone is likely to implement.
(Although I am not interested in IR, I know that it is important. IR is required of de facto standards.)
- その外にいろいろ:
*
title
/artist
のpriority
はsubtitle
/subartist
でも十分だと思います。実はほとんどのmetadataは<meta key="" value=""/>
で統一してもいいです。こうしたらkey
部分だけ簡単に標準化して拡張できます。* ノートを押した時の効果は音がないこともできます。
sound
/image
とeffect
を交わすのがいいと思います。 (sound
が基本である可能性はあるが)*
keys
とjudges
は良い方向だと思うけどどうやって作ったのがいいのかは分かりません。* 多重ゲームシステム支援についてはCarmVTR(http://www.geocities.jp/kokolaworks/carmvtr/)が、個人的に興味深いました。
<meta/>
elements seem to be best practice now. However, I cannot imagine it well ... (<meta key="subartists" value="IDREFS IDREFS …" />
?)effect
s applied to a note as you tell.Since I cannot imagine difficulty of implementing, I can be taking interest simply.
<note
time="12/16"
id="v_n"
type="note"
position="PLAYER1/5"
judge="perfect:8ms; great:0; good:0; bad:32ms; poor:40ms;"
/>
This resembles the awkward inline style as used in the field of (X)HTML. How to solve this could also imitate it of (X)HTML, if such localization is ill-mannered.
<judges group="8">
<judge type="perfect">8ms</judge>
<judge type="great">0</judge>
<judge type="good">0</judge>
<judge type="bad">32ms</judge>
<judge type="poor">40ms</judge>
</judges>
...
<note
time="12/16"
id="v_n"
type="note"
position="PLAYER1/5"
group="8"
/>
<meta/>
and test codes: Elements, or Attributes ?I would like to only manipulate the 2nd N of “F, O, O, N, F O O N, foon” ...
I also want a little easier way of writing:
<judges group="10" rank="VERYHARD" />
<judges group="11" rank="HARD" />
<judges group="12" rank="NORMAL" />
<judges group="13" rank="EASY" />
<judges group="14" rank="VERYEASY" />
But developers are puzzled.
Thank you very much for commenting a lot !
Optimizations on the loading screen.
Windows users will see tenfold performance boost.
Requires Rust 0.8 from this point.
Addition of the selecting screen and play result screen.
Support for #SUBTITLE
, #SUBARTIST
, #COMMENT
, #DIFFICULTY
and #BANNER
has been added.
More parsing diagnostics have been added.
Twitterのkju_8さんがXBMSっていう規格を考えてるみたいですけど、hitkeyさんとしてはどうなんでしょうか
<artist>FILE</artist>
??XML is suitable for mixed content by text nodes and any elements. For example:
<title priority="-9999" xml:lang="ja">
その動画、
<span xml:lang="fr">
boléro
</span>
かもな。知らないのか?
</title>
(If XBMS doesn't include mixed content, JSON which can treat data types may be more light weight and more convenience. )
The following code is invalid XML:
<?xml version="1.0"?>
<xbms>
<head>
<title>test</title>
<sound id="1">kick.wav</sound>
</head>
<body>
<bpm>140</bpm>
<bar />
<bar>
<note type="note" time="0" id="1" position="PLAYER1/1" />
<note type="note" time="13/16" id="1" position="PLAYER1/1" />
</bar>
</body>
</xbms>
Values of type ID must match the Name production. A name must not appear more than once in an XML document as a value of this type; i.e., ID values must uniquely identify the elements which bear them.
NameStartChar: ":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | …
“[0-9]
” must not appear as a character of the beginning of id
attribute value.
(Therefore strictly speaking, LRS is not valid XML, either. )
document.getElementById("id")
” is applied to the above-mentioned XBMS, probably the result which we expect will not be obtained.XBMS seems to be unable to express “empty BGM lanes”. When the arrays of BGM objects are not held, it may be inconvenient for GUI chart-editor applications.
// kick
#00101:01010101
// spacer for GUI chart-editor (e.g. BMSE)
#00101:00
// hi-hat
#00101:0022002200220022
A new problem is pointed out in that section:
The C version allows "rewinding" the movie by repeatedly setting the same alphanumeric key to the BGA layer; the Rust Edition doesn't. I'm not sure that this feature is portable at all.
I investigated it:
Rewinding | Apps which support videofile |
---|---|
Yes: | LR2, nazoZZ, IIDXv, HDX, uBMplay 1.5.0+, BGAEncAdvance, Angolmois 2.0 alpha 2 (C version) |
No: | ruvit, Angolmois (Rust version) |
#WAV
is rewindable (FINAL ATTACK RIDE D-D-D-DECADE
), I consider it more desirable (in my opinion) for #BMP
to be also rewindable.However, these may be able to be protected by #IF
.
Before BMSE | After BMSE |
---|---|
|
|
#IF
is not used, most above-mentioned extensions will be removed.#WAV00
cannot be held.
First, BMSE hoists all the #WAVxx
and #BMPxx
.
Therefore, in BMSE, the following codes are equivalent:
Before | After | Eventually |
---|---|---|
|
|
|
#WAV00
. Therefore, #WAV00
is invalidated.#OPTION
commandWe may be unable to welcome vendor prefixes.
CAUTION: “Be-Music Helper” requires “woslicerII” (not 3 but 2).
[] Now, BMHelper + woslicerIII can work.
Internal restructuring necessary for full-featured game. No external changes.
encoding-7f2f331d82de0aa-0.1.0.dll
” was newly added to DLL files.#OPTION
command#OPTION
which nanasigroove ver.1.552 parses.#CANVASSIZE width[1-9999] height[1-9999]
(Default: #CANVASSIZE 256 256
)#BMP
, etc. ]#LANES <channel> <spec> <channel> <spec> ...
How to specify variable user-styles ?
Scratch position:
Position | Image | Code |
---|---|---|
Left | S 1 2 3 4 5 |
#LANES 16 scratch 11 key_odd 12 key_even 13 key_odd 14 key_even 15 key_odd |
Right | 1 2 3 4 5 S |
#LANES 11 key_odd 12 key_even 13 key_odd 14 key_even 15 key_odd 16 scratch |
Either | ? 1 2 3 4 5 ? |
#LANES ??? (I want to specify “either is fine, users' decide”) |
Lane gap:
Style | Image | Code |
---|---|---|
Separate |
|
#LANES ??? |
Half |
|
#LANES ??? |
Either | #LANES ??? |
#CANVASSIZE
and #LANES
interfere in appearance (called “theme” or “skin”). Therefore, first of all, the argument about “a desirable structure about appearance” may be necessity.This is an interesting proposal. For example:
// translation may not be right
#TITLE Point, Line, Plane
#TITLEja 点、線、面
#TITLEko 점, 선, 면
#TITLEzh-CN 点,直綫,平面
#TITLEzh-TW 點,線,平面
#WAV01 vocal-en.wav
#WAV01ja vocal-ja.wav
#WAV01ko vocal-ko.wav
#WAV01zh-CN vocal-zh-Hans.wav
#WAV01zh-TW vocal-zh-Hant.wav
#BMP01 lyrics-en.mpg
#BMP01ja lyrics-ja.mpg
#BMP01ko lyrics-ko.mpg
#BMP01zh-CN lyrics-zh-Hans.mpg
#BMP01zh-TW lyrics-zh-Hant.mpg
#00101:01
#00104:01
When BMS application does not support “Simple Localization”, or when priority is given to neither Japanese nor Korean nor Simplified Chinese nor Traditional Chinese:
#TITLE Point, Line, Plane
#WAV01 vocal-en.wav
#BMP01 lyrics-en.mpg
#00101:01
#00104:01
When the language to which BMS application gives priority is set as Korean:
#TITLE 점, 선, 면
#WAV01 vocal-ko.wav
#BMP01 lyrics-ko.mpg
#00101:01
#00104:01
[Writer Requirements] Probably, I guess that when authors use commands with language tags, authors should write together the command without a language tag as a default value.
#TITLE quovadis
#TITLEla quovadis
#TITLE bolero
#TITLEfr boléro
beatmaniaIIDX has song called “one or eight”. This is Janglish which translated Japanese words meaning “sink or swim” literally (一か八か). Which are the suitable language tags to this?
#TITLE one or eight
#TITLEen one or eight
#TITLEja one or eight
#TITLEen-JP one or eight
Explicit Key Sound of Long Note Endpointsはまだ構想中だから待ってこない方がいいです;_; ただロングノートの末に重なるTick Objectが同じような役割をするように設計され、ロングノートの末のkey soundが存在する場合、同じ位置にあるTick Objectと同じタイミングで再生されなければならないためにひょっとしたらこれで十分だっかもしれません。実装問題さえなければ当該sectionがTick Objectに吸収されるかもしれません。
#xxx70-8Z
).そして私見ではあるが、一貫したゲームバランスは重要だと思います。同じBMSがロングノートコンボや空POORの有無によってクリア難易度までもが大きく変わったらいくつかのプログラムがいても、人々は気に入る限り、プログラムを使うようになることであり、すでにある程度その現象があります。それで実装の特色とは別にゲームバランスが大きく変わらなければ、様々なBMS実装が共存するのに役立つようです。
However, there are two problems.
The game balance in the recent BMS applications is moderately consistent.
The “COMBO” in ruvit is different from “TOTAL NOTES”. (“COMBO” does not influence #TOTAL
. )
Practically, the more game balance becomes tight, the more environment is limited.
For example, BMS which is “#TOTAL 60
” is assumed.
In nazobmplay which has an initial value of a groove-gauge 22%
, this BMS is able to clear.
In MixWaver which has an initial value of a groove-gauge 9%
, this BMS is not able to clear.
#TOTAL
. I delegate all the game balance to each user. If the HARD option, the HAZARD option, etc. are evaluated on the Internet-Ranking, I think that it must be sufficient.こんにちは、lifthrasiirです。暑い夏ですね。
SDLがついに2.0が発表された関係で久しぶりにAngolmoisに修正を加えました。思ったより変換が難しくはありませんね。そしてこの過程でそのままにしにくい
#BGA
の動作が変わってhttps://nekokan.dyndns.info/~hitkey/diary1307.php#D130715で指摘された非互換性が改善されました。("風のたどり着く場所 (Extra-Mix)"で1文字keyを2文字に変えたことがよく動くのが確認しました。1文字key未知員は仕様です;) 少し遅くなったできるけど、一応は微々たる差で報告はあります。
SDL 2.0.0
into MinGW and checked updated Angolmois (C version).I created angolmois.lnk
and have changed “Property
-> Target
” as follows:
C:\WINDOWS\system32\cmd.exe /v:on /q /c for /l %n in (1,1,2) do if %n==2 (for %q in (!x!) do start "" /b /min "D:\bms\angolmois\angolmois.exe" any-angolmois-command-line-options %q) else set x=
e5cea53a2cbd
or later, supposing cmd.exe option “/min
” is specified, an Angolmois execution window will not become active. Meta-informations (e.g. #TITLE
) are not displayed, either. (Note: This is not a bug report. This is a memorandum record for me.)I checked that the behavior about the “Overlap” of #BGA
had been changed. (Now, “Overlap: Yes”)
Sonorousは...https://github.com/lifthrasiir/rust-encoding/こんなものを作るために少し休んでいました。orz それはそうだしSDL 2.0をよく見ると、どうすれば今OpenGL ESを使用するために無視した低い仕様のパソコンをまた支援できるかもしれません。まだrust-sdl2のようなものはないけど。
(I am going to write a continuation of this reply by the end of tomorrow)
負数 BPM 到達時に全音声が一度に鳴る現象 がいつのまにか再現しなくなっていました
(普通に負数 BPM を配置 → 再生 → kaboom って感じで、特に変なことをした記憶は無いんですが・・・)
#WAV
は、組曲 (모음곡 / suite) のような形式を表現しやすくするでしょう。#BGA
系列コマンドはデリミタとして “(
” や “)
” を使用できます。 この書式は Sonorous Extended KEYs と競合するでしょうか? 予想外の落とし穴があるかもしれませんが、私はそれを思いつくことができません。optional tick sound
は私にとって重要です。 この記法は FREE ZONE などにも転用できる汎用的なものに見えます (#xxx[70-8Z]
の主旨は 「明示的なコンボ」 ですが)。#xxx07
に #BGA
を使えない」 と書いたけど、勘違いでした、ごめんなさいloadtest.exe
と BGAEncAdv.exe
で #random
が効かない (Why case-sensitive ?)