2016年12月24日土曜日

VOCALOID Editorで使用できるJobプラグイン APIを調べる

LUA言語を覚えるのも兼ねてJobプラグインを作ってみているけれど(コレとか)、「VOCALOID Editorで用意されているAPIって、もっとあるのでは? バージョンアップしてるのだし」と思ったので調べてみます。

APIを引き抜く

V3時代のリファレンスマニュアルによれば、LUAのグローバル変数【_G】にAPI名が一覧上に格納されているらしい。ここからAPI名っぽいものを探して引き抜くことにします。“探す”といっても、functionに該当するモノをfor文でクルクル回すだけなんですけどね。

for文を追加したJobプラグインを作成してVOCALOID Editorで実行すれば抜き出し完了。単純に抜き出しただけだと何故かLUA言語の関数も含まれていたので、VOCALOID APIっぽいもの(頭文字が「VS」)に絞ると、下記55個がヒット。

No.API名
1VSDlgAddField
2VSDlgDoModal
3VSDlgGetBoolValue
4VSDlgGetFloatValue
5VSDlgGetIntValue
6VSDlgGetStringValue
7VSDlgSetDialogTitle
8VSGetAudioDeviceName
9VSGetControlAt
10VSGetDefaultControlValue
11VSGetMasterTune
12VSGetMusicalPart
13VSGetMusicalPartSinger
14VSGetNextControl
15VSGetNextMonoWAVPart
16VSGetNextNote
17VSGetNextNoteEx
18VSGetNextNoteExpression
19VSGetNextStereoWAVPart
20VSGetNextTempo
21VSGetNextTimeSig
22VSGetNoteExpressionAt
23VSGetPitchSnapMode
24VSGetPreMeasure
25VSGetPreMeasureInTick
26VSGetResolution
27VSGetSequenceName
28VSGetSequencePath
29VSGetStereoWAVPart
30VSGetTempoAt
31VSGetTimeSigAt
32VSInsertControl
33VSInsertNote
34VSInsertNoteEx
35VSInsertNoteExpression
36VSMessageBox
37VSRemoveControl
38VSRemoveNote
39VSRemoveNoteExpression
40VSSeekToBeginControl
41VSSeekToBeginMonoWAVPart
42VSSeekToBeginNote
43VSSeekToBeginNoteExpression
44VSSeekToBeginStereoWAVPart
45VSSeekToBeginTempo
46VSSeekToBeginTimeSig
47VSSetMasterTune
48VSSetPitchSnapMode
49VSUpdateControl
50VSUpdateControlAt
51VSUpdateMusicalPart
52VSUpdateNote
53VSUpdateNoteEx
54VSUpdateNoteExpression
55VSUpdateNoteExpressionAt

新種?

抜き出したAPI55個の中で、気になったのは次の9個。「PitchSnapMode」はV4で追加された機能のはず。「NoteExpression」は何だろう? エクスプレッションピッチのことかな?

No.API名
1VSGetMasterTune
2VSGetNextNoteExpression
3VSGetNextStereoWAVPart
4VSGetNoteExpressionAt
5VSGetPitchSnapMode
6VSSetMasterTune
7VSSetPitchSnapMode
8VSUpdateNoteExpression
9VSUpdateNoteExpressionAt

元V3ユーザーとして気になったのは「MasterTune」と「NextStereoWAVPart」の2つ。

“MasterTune”ってことは、「全体の音程を調整できるってこと?」なのかと思って、VOCALOID Editorを見てみるとプリファレンスの[その他]に【マスターチューン】が追加されてました。いつの間にかできるようになってたんですね。

V3時代にはステレオWAVEファイルは1つしか取り込めなかったのですが、V4では複数取り込めるようになってました。1つのVSQXファイルで複数楽曲分のボーカルを作成できるようになったわけですね。そんな作り方はあまりしないでしょうけれど。。。利用シーンとしては、Aメロだけのオケ/Bメロだけのオケ/サビだけのオケをそれぞれ個別に取り込むような使い方ですかね? 1曲分フル尺でWAVEファイルを用意しなくてもよくなった、と。「VSGetNextStereoWAVPart」は次々にステレオWAVEファイルを参照するイメージでしょう、たぶん。

おまけ

API名を抜き出せたので、あとは使用方法を見つけ出さないといけないですね。「NoteExpression」については何を指してるのかも不明ですが。エクスプレッションピッチはVOCALOID Editorが自動で調整するパラメーターのはずだから、ユーザーが勝手に触れられないんじゃないかな?