Hatena::ブログ(Diary)

Hello, World. -OIE’s DIARY- RSSフィード Twitter

2012-01-29 ボカロをスウィング・シャッフルさせるプラグイン、できました!

ボカロをスウィング・シャッフルさせるプラグイン、できました!

紹介動画、公開!

本日、ボカロデータをスウィングさせるUG Job Plugin「Swing and Shuffle」の紹介動画をアップしました!

D

動画を公開した1/29本日の時点でまだヤマハ様からは審査完了のご連絡をいただいていませんが、問題がなければあと数日で公開処理に入り、1・2週間以内にボーカロイドストアから公開となる予定です。

【2012/2/7 追記】2/7、承認手続き完了の連絡をいただきました!恐らく、あと1,2週間以内に公開していただける見込みです。

【2012/2/10 追記】2/9夜、無事ボーカロイドストアより公開されました。ぜひご活用ください!


スウィング曲作成のお供に

ところで、「スウィング」と「シャッフル」って、リズムがタッカタッカ跳ねてるのは共通してても、どう違うかご存知ですか?実はシャッフルはスウィングの一種で、Wikipediaによれば

連続するふたつの音符のうちの初めの音符の長さは、ふたつめの音符に対して正確に2倍の長さをもつ

とのことです(調べて初めて知った!)。スウィング処理をする本プラグインでも、パラメータを適切に設定すればシャッフルもちゃんと実現できるので、この記事では用語を「スウィング」に統一しますね。


・・で、今回の「Swing and Shuffle」。使う目的とシチュエーションはかなりはっきりしています。ちょっと上で書いちゃいましたが、それはスウィング曲をボカロで書くとき。

V3 Editorは、クオンタイズの単位が1/4,1/8,..といった単位で固定されていて、三連符やその他のリズムを指定することが出来ません。そのため、上記単位からずれたリズムを打ち込む場合は、まず近い単位のクオンタイズで打ち込み、そのあと個別にリズムを調整する・・という、非常に手間のかかる作業が必要でした。「Swing and Shuffle」は、この最後のリズム調整作業を自動で行ってしまう・・というのが、基本的な機能になります。もう、スウィング曲を作るのも怖くない!!(笑)


基本的な使用法

f:id:OIE:20120130020054g:image:w360:left

使い方はかなり簡単です。このスクリーンショットにある、「スウィング率」と「スウィング対象の単位」を指定して、一番下の「OK」ボタンをクリックするだけで、基本的な機能であるノート(音符)のスウィング化が完了します。

「スウィング単位」は文字通り、長さを伸び縮みさせるときの単位。ある箇所の単位と、その次の単位がセットになって、伸びたり縮んだりします。そして「スウィング率」は、前のほうの単位がセットのなかの何パーセントの長さになるかを指定します。50であれば、変換前と同じ割合なので変化なし。ここから大きくしていけばリズムが跳ねていき、66.66667にすると(上記Wikipediaの定義に従えば)シャッフルへ変換できます。反対に50より小さくすると、逆に前のほうが短く、後ろがどんどん長くなっていきます。どこまでニーズがあるかはかなり怪しいですが(笑)、ま、一応可能ということで。


アドバンス1 短くなる音のアクセント調整

ここまでであれば、DAW内蔵の機能とか使ってシャッフルさせたMIDIデータをV3 Editorで読み込ませることでも、同じようなことを実現可能です。でも、今回はJob Pluginらしい、実用的な独自機能の開発もこだわってみました。そのひとつがこの、アクセント調整機能。

スウィング化することで、一部の音は変換前より短くなるわけですが、この音の「アクセント」の値が短くなった分だけ調整してあげるのが、本機能です。選択肢は「調整なし」「減少(弱)」「減少(強)」「増大(弱)」「増大(強)」の5種類。一般的に減少を選んだほうがある意味自然に聴こえるようになると思いますが、歌によっては短いほうの音を強調したい場合もあると思いますので、その際は増大を選択してみてください。


ちなみに仕様的なお話ですが、このオプション、名前のとおり短くなる音にだけ作用します。長くなったり、長さが変わらない音では変化がありません。また、割合としてより短くなった音がより影響を受けるようになっています。


アドバンス2 味付け

選択肢が「みそ」と「醤油」という、かなり悪ふざけなやつですみません(笑)。要は、どちらを選んでも通常大きくは変わらないので、好みのほうを選択してくださいね・・というのを、あの文字数で言い表したかったわけです。


ちゃんと補足すると、2つの選択肢の違いは、スウィング前と後でのマッピング関係を演算するときの方式です。方式が違うといっても、完全にスウィング単位の拍に乗っかったタイミングでは、変換後も両者の選択肢の間で違いはありません(例えば66.6667であれば、どちらの選択肢でもきちんとシャッフルします)。一方、拍からずれたタイミングでは、変換すると、両者の選択肢の間で違いが出てきます。一般的に、「みそ(擬似曲線)」のほうが「醤油(単純二値)」よりもメリハリが効いた変換になると思いますが、ぜひお好みで両者から選んでもらえればと思います。


本当はこの部分の処理(特に擬似曲線)、作成時に1,2位を争う大変な箇所だったのですが(笑)、方式の違いによる影響はクリティカルなものではないので(それこそ好みで選べるレベル)、UI上はあえて扱いを小さくしています。ここらの処理周りは、作っていていろいろと思うところがあったので、後日別の記事として補足するかもしれません。


アドバンス3 「パラメータも移動」と「歪み補正」

開発当初からこだわった機能です。すでにパラメータ系も入力して調教したデータの場合、もしノートだけをスウィングしてしまうとパラメータとずれてしまいます。そのため、利用できるシーンは現実的に、ノートだけベタ打ちしたデータのみとなるわけですが、このオプションを有効にすればパラメータ系を入力済みでもきちんとスウィングして、ノートに追従します。

「歪み補正」は、特に長い持続音がなっているときのパラメータに効果を発揮します。例えば2拍や1小節と続くような持続音だと、そのあいだに何度もスウィングするため、パラメータ変化もそれに応じてヨレヨレになってしまいます(笑)。「歪み補正」オプションを有効にすると、発音している間のパラメータはそのままスウィングするのではなく、その間のパラメータ変化を純粋に伸縮させます。基本的にこのオプションは、常時オンで問題ないかと。


蛇足のお話。このプラグインを作り始めたとき、他にも同様のものを作られている方がいたら無駄になっちゃうかなー・・とか思ったのですが、この「パラメータも移動」機能を検討し始めた時点で、多分杞憂だと気づきました。これ、実装があまりに面倒くさいんだもん!(笑) これなら丸かぶりすることも少なかろうということで、他のアドバンス機能を検討・追加した上で本格的に作り始めたわけです。

なにが面倒かって、要は時間を歪ませちゃってるわけですよ。もし単純に、「ある時点のパラメータを未来のある時点へコピー」なんて処理を過去から順々にやっていくと、過去から上書きされてしまったパラメータをもとにさらに未来をいじることになり、時間が進むほど無茶苦茶になってしまいます。一時的な処理スペースを別途用意してあげれば解決するのですが、今度は発音(ノート)のほうとも整合性を保たなきゃいけないし・・というような流れで、非常に開発は大変でした。このあたりの検討結果とかは、上の「味付け」と同じく、別記事でいつか取り上げたいと思います。


ぜひお試しあれ!

今回の「Swing and Shuffle」は、かなり使いどころが限定されたツールです(笑)。ただその分、実際にボカロで入力していく上で便利な機能は厳選して実装できたと思います。もしボカロでスウィング曲を作られる方は、ぜひ一度触っていただいて、感想とかいただけると嬉しいです!今使わないという方も、ぜひ頭の片隅に置いといてあげてください(笑)。いつか、未来のあなたに役立つときが訪れますように。