ゆゆシケ・コード to vsqx(仮)技術情報

ここは「ゆゆシケ・コード to vsqx(仮)」の技術的情報のページです。

ソースコード

バージョン管理とかリグレッションテストとか気の効いたことはしてないので迷ったらソースはDL推奨。
何かあっても責任持てませんが、ご利用は随意に。

phpソースコード

※拡張子が.txtなのは作者がサーバ設定とか考えるのがメンドウだったためです。大目に見ましょう。
以下、ソース読んで全てを理解して改造できるような人に役に立つ情報は多分ありません。

ゆゆシケ・コード(楽曲データ)について

楽曲の保存に使用されている「ゆゆシケ・コード」については「仕様をまとめてみました。...」を参照。ほぼ完全な情報があります。
ゆゆシーケンサープラス」の情報も必要となるでしょう。
ゆゆシーケンサープラスではわりと自由に書けた気もするんですが「ゆゆシケ・コード to vsqx(仮)」においては「固定長データ扱い」してるので改行とかスペースは禁止。
パーシング手を抜いてる割に全体が丁度192バイトじゃないとダメとか無闇に厳しいチェックもしてます。

ゆゆシケ・コードに関連するソフト

ゆゆシーケンサープラスの作者Bumpyうるし氏はゆゆシーケンサープラス以前から様々な作品を作っててる方で、その道の有名どころ(?)では「ミクシーケンサー」があります。
ぱっと見、音域等に差があるもののコードのフォーマット自体の変化はほとんどないようなのでこれらで作成したコードが読めて もよさそうなものですが、「ゆゆシケ・コード to vsqx(仮)」はムダに厳しいエラーチェックが災いして非対応となってます。
このページを開くような奇特な人だったらゆゆシケ・コードを手で書き換えてくれたらいいような気もします。

ざっと調べた範囲では
ミクシーケンサー初音ミク
当時は同人ソフトの許諾も手探りで大変だったらしい。
ミクシーケンサー  ソロ初音ミク
ソロ専用の軽量版。
ミクシーケンサー トリオ初音ミク
ベースが付いた高機能版。重量級。
ガチャシーケンサーガチャッポイド。
メーカーの公式ページにあったりする。
リリィシーケンサーリリィ。
音楽作品「anim.o.v.e 02」の付録DVD ROMに収録。
作画がKEI氏らしい。
ゆゆシーケンサー結月ゆかり
ボカロマケッツのサイトにある。
ゆゆシーケンサープラス結月ゆかり
初の黒鍵対応。最近「非入力用」キーボード対応。
とういのがあるようです。
「ミクシーケンサー トリオ」にはベースパート「ミクベス(MikuBethヘッダ)」もあったみたいです。

製作メモ(あるいは日記)

きっかけ

AHS生放送(の時間差視聴)で「ゆゆシーケンサー」の話を見てその存在を知る(AHS生放送 第15回00:05:50-)。
実際「ゆゆシーケンサー」使ってみて「URL(GETのパラメータ)に楽曲保存してShortURL化することで1Tweet中に曲が保存できる」ことに気が付き驚愕。
Twitterで作者の人のTweetでvsqx化の要望を確認(これ)。
ちょうどPHP勉強中だしvsqxは素性が知れてるので案外簡単かも?と思い作業開始。

製作

Vocaloid3でそれっぽい4パートのデータを作って多少なりと音符を並べたvsqxファイルを生成。
読んでもよくわからないので拡張子phpにしてその瞬間vsqxを書き出すphpアプリ完成!
と思ったけどxmlとPHPやブラウザの相性とかあるので全体をphpタグで囲んでとくいのヒアドキュメント構文(<<<EOD...EOD;)で囲んで、header()でtext/plainにして完成!

VOCALOID MIDIのことは以前ちょっと調べたのでなんとなく類推できるとこから書き換えてお試し。
本家の出力ファイルが元になってるので、(秀丸の)diff掛けてなるべく同じになるように調整。
そろそろ力尽きそうだったので公開(このへん)。

そういう経緯なため、原則的に素材を活かした(?)ベタベタなソースになってるので、「とりあえずリバーブ掛けたのを生成したい」、「durTickは240ぐらいだろ」とかいう場合はVocaloid3 Editorでそういうvsqxを出力、元ファイルとdiffして差分を一生懸命探して手でテキスト部分(echoしてるとこ)を書き換えると楽だ思います。
(でも、意味わかるようなら自分で一から書く方がいいかも。)

引継ぎ

Bumpyうるし氏とやりとりがあって、ゆゆシーケンサープラスと統合する方向で検討。
思ったより(作者に)好評だったのでUI(入力枠とボタンだけのHTMLフォーム)を追加(最初の版ではアドレスバーに直接入力するしかなかったの)。
HTMLフォームに最低限の使い方説明(と、主にうるし氏向けの技術情報)を追加して、このページの原型作成。
Bumpyうるし氏が引き取ってくれそうだったので、ソース受け取ってもらう方向決定。
週刊誌にインタビューが載っちゃうような有名人とお話しちゃったよ。ドキドキ。

雑記

「ゆゆシケ・コード to vsqx(仮)」に関して、このページにある以上のドキュメントは存在しません。
少なくともぼくは書いてません。

「ゆゆシケ・コード to vsqx(仮)」はvsqx生成するアプリなので、改造するには「vsqxの仕様がわからないと他に何ができてもどうにもならない」のですが、そのドキュメントはぼくの知る限りまだネットの公海上にはありません。独自調査されてる方はいるようですが。
vsqxは(Vocaloid3 Editor 3.0.4.0相当現在)XMLベースのフォーマットでプレーンテキストとして扱えますが楽曲データ部の考え方は(Vocaloidの)MIDIに近い系譜のようです。
Standard MIDI Fileフォーマットの基礎知識やDAWの仕様経験があるとvsqxでも自然に読める部分があると思います。
それに加えて「XML」、「DOM」といった言葉の意味がしっかり理解できてたらもう悩む余地は残ってません。ぼくは理解できてません。えっへん(一応目下勉強中)。
DOM対応版とか考えてなくもないのですが、ぼくが実装するのを待つぐらいなら(必要に迫られてる人が)1から書いちゃった方が早いんじゃないかと思います。
泥縄で調査中ではあるので 「VSQX調査のメモ」とか、その周辺情報は役に立つかも知れません。
あと、あんまり調べてないのですが、vsqxはMusicXMLとかUTAUのセーブファイル(xvsq)あたりとは全く互換性がないと考えた方が良いように思います。

「歌詞」はvsqxファイル内で、「日本語(あるいはその他の言語)として読める」ようになってます。
vsqxファイルには「Vocaloidが使ってる発音記号」もそのままの形で記述されるので、そのあたりの資料は手元に置いておくと良いと思います。
発音記号の情報はVocaloid3のマニュアルの巻末に「わりと」しっかりしたのがあります("o_0"とか隠しコマンドとかもあるみたいですが)。

直接vsqxの情報ではないですが、あとは、Vocaloid2製品のマニュアルの巻末にある「MIDI Data Format for VOCALOID2 VSTi」あたりを読み込んでおくと何となく参考になるはずです。
読んでられないという人は、もしかしたら「ファイルフォーマットの調査メモ」があるので参考になるかも知れません。
このへんは、ミク、リン・レンあたりがリリースされた2007-2008年頃に集中して調査されてたみたいで、その成果はネット上で探せば結構出てくるようです。
2012年3月現在では、「すごい人」は商業方面に動いてたりとか、非VOCALOID音声合成研究がクローズドに行われてたりとか、SNS趨勢によるネットリソースの分断とかいった状況が重なって、野良で手に入る情報はむしろ減ってる気がします。
このページが「vsqx」キーワードでGoogleトップ10に登場しちゃうことがあるぐらいに深刻です。
企業・大学・研究所以外だと多分「はちゅねのないしょ」、「SournceforgeのCadenciiプロジェクト」、「UTAUのコミュニティ」あたりに情報が集中してるのかなと思います。

「MIDI Data Format for VOCALOID2 VSTi」は何が何だかという場合は、先に「MIDI Data Format for Real-time VOCALOID2 VSTi」を読むと良いかも知れません(これまとめたのはここ)。
Realtime VSTiは実用してる人はそうそういないと思いますが、MIDIにすごく近い仕様でVocaloid2のエンジンを動かせるものなので、MIDI(SMF)の知識があればすぐ理解できると思います。
Realtime VSTiを直接に使わないにしても、vsqの基礎知識として目を通しておくと後が多分楽です。
MIDI打ち込み経験がある人なら「え?こんなことできたの?」という驚きがあるかも知れません。

......Vocaloid3でrealtimeが廃止=midi poly mode非対応になったっぽい現状、「ゆゆシーケンサープラス」 (とゆゆシケ・コード)の「和音の一発入力」という機能は実は需要があるような気もしてます。特に「遊ぶ」とか 「製作時にテンポラリにコードを鳴らしたい」とかいう用途で(YAMAHA社員とかボカロPの称号を持つような人でなければ、 Vocaloid3ユーザーで楽器が常に傍らにない人も多いんじゃないかと思う)。
Vocaloidエンジンは「音のつなぎ」がミソということなので、「和音の一発入力」の完成の方向があるとしたら 最終形はJob PluginがGUIを持てるようになって、「コーラス用のソロパート用トラック」から自動で「3度ハモりトラック」を生成するとかかなぁ。

つくったひとや権利表示

ゆゆシケ・コード to vsqx(仮)を作ったのは私「KimI(a.k.a. Kimiruhamiru)」です。
Kimiru-Hamiru@Twitter

「ゆゆシーケンサープラス」の作者は「Bumpyうるし」氏です。ボカロP「やきいもP」としても知られる方です。
VOCALOID™はヤマハ株式会社の登録商標です。