ラベル Jobプラグイン の投稿を表示しています。 すべての投稿を表示
ラベル Jobプラグイン の投稿を表示しています。 すべての投稿を表示

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が自動で調整するパラメーターのはずだから、ユーザーが勝手に触れられないんじゃないかな?

2016年8月28日日曜日

PITパラメーターを設定するJobプラグインを作成する

アナログシンセサイザーのオシレーターを2基重ねるときに、ピッチを調整するパラメーター[FINE]が“一致しているはずなのに一致していない”現象というのがあるそうです。デジタルみたく何段階とかガウス記号的な処理ができないために発生するのだそう。KORGのMS20 miniの紹介動画でそんなトークがされてました。

「VOCALOIDでもトラックを複製して[PIT]パラメーターを少しだけ弄ったら似たような効果が得られるんじゃないの?」と思ったので、やってみます。

残念だ。

VOCALOID Editorで[PIT]を調整しようと思ったのですが。[PIT]は-8192から8191までの大きい数字を設定できるようになっているせいで、画面上のマウス操作だと【1】とか小さい数字を入力できないんですね。どうしても2桁以上の値になってしまう。。。60インチとかの大画面なら1桁操作できるのかな?

Jobプラグインの出番

仕方がないので、好きな値に設定できるようなJobプラグインを作ります。

最終的には、もう少し使いやすいように「もう書き込んでる部分を反映するのか?」「選択範囲全域を上書くのか?」を選択できるようにしました。[GEN]バージョンを作ってみるのもいいかも。

試す

作ったJobプラグインを使って、ピッチを微妙に変えたトラックを重ねたときの音を聴いてみます。

[PIT]=11 あたりから「あぁ、ピッチがズレてるのね」のウネウネ感が出てきます。重ねてるのが分からない程度にするには1桁台~15くらいが良さそうです。[PIT]=600 くらいで重ねるとシンセサイザーみたいな面白い音になってきます。ロボットみたいな音になってくると調声がヘンでも誤魔化せそうw

サンプルボイスを置いておきます。最初から順番に「[PIT]=0」「[PIT]=7」「[PIT]=600」をメイントラックに重ねたモノです。あと、作ったJobプラグインも置いておくので、興味があれば試してみてください。


ダウンロードはこちら⇒DL:PITを変更するJobプラグイン

おまけ

PiaproStudioだとJobプラグインを使えないからVOCALOID Editorを経由しないといけないのがツライですね。。。

2016年8月24日水曜日

VOCALOID Jobプラグインの作り方を覚える

VOCALOID Editorで使用できる『Jobプラグイン』。「Jobプラグインは『Lua言語』というプログラム言語で作ることができる」とのことなので、夏季休暇の工作(?)のつもりでJobプラグインを作ってみることにしました。

Jobプラグインの中に必ず記述しなければならないモノは下記の2つ。この2つさえあれば、あとは自由に弄れる。Lua言語に用意されている関数、VOCALOID Editor側が提供している関数を駆使してノートやパラメーターを操作できる。

  • function main(processParam, envParam)
    Jobプラグインの心臓部。ここでノートやパラメータに効果を付与する。
  • function manifest()
    Jobプラグインの定義部。プラグインの名前やバージョンを記述しておく。

プログラム言語を勉強するとき、最初に作るのはやっぱりコレだと思うのです! Lua言語って文字列の扱い方が独特ですね! 面白い。

せっかくなので、作ったJobプラグインを置いておきます(DL:BowlRoll)。Jobプラグインのファイル(.lua)はただのテキストだから、テキストエディター(メモ帳とか)で中身を見ることができます。ムダにコメントを付けてみたけど、参考になるかな?

おまけ

今更になって気付いたこと。パートを選択するだけでなく、Musical Editorでノートをピアノロール上に表示していないとJobプラグインを実行できないんですね。この制約のせいで“Jobプラグインのできること”が減っているように思えます。たとえば、メインのトラックを複製してハモリを自動生成したり、トラック複製後にノートの発声タイミングをズラして輪唱を自動生成したり、みたいなことができない。そういうのが作りたい(ほしい)んだけどなぁ。