2015年7月17日

CeVIO が軽くなった話

CeVIO Creative Studio S でソングトラック編集中重かった部分が v3.2 でかなり改善された話です。

少し前の出来事になりますが、私 oov は ニコニコ超会議2015 の JOYSOUND ブースにて行われた「CeVIO 座談会」という、CeVIO について話し合う場に CeVIO のユーザー代表(?)として招待して頂きました。

CeVIO 座談会当日の様子。左から ITmedia 松尾さん、ブイシンク加藤さん、エクシング石原さん、自分、オワタPさん
自分以外はみんな人間力が高かったので、喋ってる間でさえ「出るんじゃなかった……」などと丸い背中で思っていた

ちなみに改めて oov って誰だよ、というのを簡単に説明すると、最近では主に JOYSOUND からリリースされている Color Voice Series という CeVIO のソング専用ボイスを使って遊んでいる人です。

この曲は Color Voice Series 黄咲愛里のソングボイスを使っているが、実は負荷テストにも使っていた
■ CeVIO が重い

座談会では色々な話をしたんですが、その中で要望のひとつとして「CeVIO が重いのを何とかしてほしい」というのを挙げさせてもらいました。
もちろん挙げた理由は単純に、自分が CeVIO を使う上でかなり気になっていた部分だったからです。
(DTM をそれなりにやってきた身としてはサンプラーよりも物理モデリング音源の方が計算負荷が高いことは経験上理解しているつもりではあるので、ある程度は我慢はできるものの、曲が長くなると操作が辛いと感じるレベルで UI でカクカクして重かった)

座談会の場においては簡単に「重い」とだけ表現していたのですが、後日改めてどのようなシーンで重く感じたのか、また状況の再現方法などを連絡させて頂き、この約2ヶ月半の間に多くが改善、軽減したので、主に負荷周りではどんな部分が変わったのかを動画で比較しつつまとめておきます。

なお、今回の話は全てソング機能におけるもので、所要時間の数字や動画はオリジナル曲「月の交点と彼女の海」のプロジェクトファイルを Intel Core-i7 4790K / メモリ 32GB の環境で CeVIO v3.1.14.1 と v3.2.15.0 で動かした時のものです。
トラック数や演奏時間、調整機能を多用しているかどうかなどで負荷の掛かり方は変わりますが、これは比較的重いシーンでの例になります。

アクティブトラックの切り替えが重かった
以前の CeVIO ではアクティブトラックを切り替える度に 1.5 秒程度の処理待ちが発生していました。
v3.1.16 以降ではこの待ち時間は発生しなくなりました。
左側では切り替えの度に時間が掛かっていますが、右側ではすぐ切り替わるのが確認できます。
再生停止後の最初の操作が重かった
以前の CeVIO では、プレビュー再生の停止後に初めて再生カーソルを移動させた時などに数秒の待ち時間が発生していました。
v3.2 以降ではこの待ち時間は発生しなくなりました。
左側ではクリックしてから再生カーソルが移動するまでに 2.23 秒掛かっていますが、右側では即座に移動するのが確認できます。
ノート編集後、ピッチやボリュームの調整画面に切り替えようとすると重かった
以前の CeVIO ではノート編集後にピッチやボリュームの調整画面に切り替えようとした時、実際に表示が切り替わるまでには 1.5 秒程度の待ち時間が発生していました。
v3.2 以降では即座に表示が切り替わり、データの準備が間に合っていない場合は完了次第追って反映されるようになったため、体感的な待ち時間はほぼ発生しなくなりました。
左側ではクリックしてから表示が切り替わるまでに 1.53 秒掛かっていますが、右側では即座に切り替わっているのが確認できます。
再生開始までの待ち時間が長かった
以前の CeVIO ではプレビュー再生の開始地点が後ろに行けば行くほど実際に再生が始まるまでの待ち時間が長くなっていました。
v3.2 以降ではこの待ち時間がほぼ一定になり、例えば以前の CeVIO で12秒弱掛かっていたものが v3.2 以降では2秒強にまで短縮されました。
左側ではクリックしてから再生が開始されるまでに 11.51 秒掛かっていますが、右側では 2.33 秒で再生開始されているのが確認できます。

自分が把握している範囲内で大きな改善点は以上の4つです。
どれもかなり頻繁に行う操作であるためにこの変化による影響はとても大きく、一度 v3.2 での操作に慣れてしまうと古いバージョンに戻るのは結構苦痛になると思います。
(ベータの時点で既に快適すぎたので実際に自分でもバグでたまにデータが崩壊するのにも関わらず負けずに v3.2 でデータ作りを続けてました)

パフォーマンス面に関しては他にも「トラックの固定」(DAWで言うところのフリーズ機能で、トラックを内部的に Wave 書き出し済みにしておくことによって負荷を減らす)機能が追加されていたり、クォンタイズ単位でのガイド表示(ピアノロール上での右クリックメニューにある「ガイド表示」→「クォンタイズ」)が重かったのが改善されたりなどもしています。

なお v3.2 ではパフォーマンス面以外にも大量の変更が含まれており、操作性の向上や誤操作の抑制など、多方面から使い勝手の向上が図られています。
変更点の一覧はユーザーズガイド内の最新情報ページに記載されています。

■歌ってない場所で呼吸してる?

パフォーマンスに関する話ではありませんが、もうひとつ重要な改善点があるのでこれにも触れておきます。

CeVIO はピアノロール上でノートを置いていない場所で自動でブレスが入ったりしますが、大きな余白であっても少しノイズが出ており、綺麗なデータにしたい場合は手動でそこを削ぎ落とす必要がありました。
v3.2 ではノートのない小節が続いた場合に間の部分を自動的にミュートしてくれるようになったため、間奏部分やコーラスパートなど、長い休みがある場所を手動で消す必要がなくなりました。

以下の画像は1小節目と9小節目に8分音符で「ドレミファソ」を配置したプロジェクトファイルを v3.1.14.1 と v3.2.15.0 で書き出し、その結果を Wavosaur で縦方向に拡大表示して比較したものです。


v3.2 で書きだした側は余白部分に存在していたノイズがなくなっているのがわかります。
また、これは音量調整画面にも反映されているため、以下のように CeVIO 上でも確認できます。

ノイズがカットされた結果、音量のラインが下に消えている
■おわりに

生放送で中継もされているようなそこそこパブリックな場所である座談会で関係者を目の前にして「重い」とか言っちゃうのはなかなかに辛く当たっているなぁと自分でも感じていたものの、その重かった印象が覆るようなドラスティックな変更を、たった2ヶ月程度の間に行って頂いていたことをパブリックベータテストの開始によって知ることとなりました。
発言の場を提供して頂いたこと、そして改善のために尽力して頂いたことについて、エクシング小松様、石原様、ブイシンク加藤様、川出様、その他関係者の皆様に感謝の意を表すとともに、心より厚く御礼申し上げます。

で、別に自分のためだけにやってくれたわけでないにしても、ここまでやってもらっておいてベータテストに参加しないのでは不義理にも程があるし、ブイシンク加藤さんには「愛をとりもどせ」「愛をください wow wow」とも言われてもいたので、今回は逆にやり過ぎなぐらいベータテストに参加しようと思い、他のことが手に付かない程度にはとても積極的にテストやレポートすることで愛を表現させてもらいました。
こうしてブログにどのような変更があったのかを簡単に紹介しているのもその一環ではありますが、それはそれとして v3.2 がいかに素晴らしいリリースであるかを少しでも伝えられたら幸いです。

今回の変更の影響によるバグや以前からあったバグの報告、改善の要望など、2週間程の短いベータテスト期間ながらほぼ毎日のように、多分10通ぐらい毎回そこそこの長さのレポートを送ったりしてました(送信者控えがなく記録も残していないので正確な数字は不明)。
正直仕事をしていた頃よりもよっぽど仕事をしてる気分が味わえたような、そんな2週間でした。

■おまけ

8月末までのうたスキミュージックポストのオープニングキャンペーン、募集要項を守って投稿することで抽選ではなく先着100名に CeVIO の Color Voice Series の中から一つ貰えるんですが、間違っている人を見かけるのでここにもツイートを再掲しておきます。まあ間違っている人はここ見てないとは思いますが。
Color Voice Series は純粋に音としての面白さで音声合成界隈を見ている人なら興味深い代物のはずなんだけど、人気(にんき)がないというか、人気(ひとけ)がないみたいな感じで僕ちゃん寂ちい。使って。

■おまけ2

oov っぽくて惜しいってずっと思ってた(マジでどうでもいい)
Clip to Evernote