VVVF-Synth

電車のVVVFインバーターと同じ仕組みで音が鳴る VST3 音源です。
zip ファイル内の Readme.txt の利用規約に同意いただいてからご使用ください。また、一般的にダウンロードされていないという警告が出ますが、無視してください。
目次

知っておくと VVVF-Synth と親しくなれる概念

このシンセは、PWM(パルス幅変調)という仕組みで音を作っています。 2 つの波があり、それらを比較して波が高ければ 1 、低ければ 0 を出力する、という仕組みです。 2 つの波はそれぞれ信号波 (Signal)キャリア (Carrier) という名前がついています。 信号波の高さとキャリアの高さの比である変調率 M と 2 つの波の周波数を変えることで様々な音を鳴らせます。
詳しくは作者のブログ

この音源を使った作品

まだ少ないですが、お使いいただいた作品を見つけたら掲載するかもしれません。
VVVFシンセでグルメレースです (@yuppii5)
「激突!グルメレース」のメロディにこの音源を使いました。アレンジはオリジナルです。
VVVFシンセを作っています (@yuppii5)
「ようこそジャパリパークへ」の大サビをこの音源のテストプレイに使いました。

動作確認環境

Windows 10 (64bit)
上記以外でも動作すると思いますが、未確認です。

主な仕様・特徴

.vst3 ファイルの配置場所

VVVF-Synth.vst3C:/Program Files/Common Files/VST3に置いてください。このフォルダーがなければ作成してください。

GUI の説明・各部仕様

電気回路のように信号が左から右へ流れていくイメージです。 スイッチやコンパレーター (右側の三角▷) の絵があるので、直感的な GUI だと思います。
ここからは GUI を 8 つの区画にわけて説明していきます。

① Note

ここはノートの音程を調節する部分です。
名前 オートメーション名 説明
LFO Note LFO Enable

ノートの周波数に LFO を掛けることができます。 LFO の左のチェックボックスで LFO の有効/無効が設定できます。

Depth Note LFO Depth

LFO を掛ける深さを変えられます。

Freq. Note LFO Freq.

LFO の周波数を変えられます。

波形 Note LFO Shape

正弦波、三角波、ノコギリ波、矩形波、ノイズ、外部音声入力となっています。 外部音声入力の接続方法は下で詳しく説明しています。

Legato, Poratmento Note Legato Enable Note Portamento Auto Enable Note Portamento Time

レガート (Legato) を有効にしていると、ノート発音中に別のノートオン信号が発生すると A と D の動作なく音程が変わります。

ポルタメント (Portamento) はノートオン時に前回の音程を引き継いで、歌のしゃくりのような動作をします。 右側の Time はポルタメントタイムの調整つまみでしゃくりの具合を調節します。 時間が大きくなるほど、音程に追従する速度が遅くなります。

Portamento Auto を有効にすると、単なるノートオン時にはしゃくりが起こらず、 ノート発音中に別のノートが発音された場合にのみポルタメントが発動するようになります。

レガートを有効にし、ポルタメントタイムをいくらか調節します。ノートを下の動画のようにするとビブラートが掛かった音になります。

② Signal Freq.

信号波の周波数を調整する部分です。後述する非同期モードを無効にすると、この設定部分は無視されます。
名前 オートメーション名 説明
Phase Reset Signal Freq. Initial Phase Enable Signal Freq. Initial Phase

ノートオンのときに信号波の位相をリセットするかどうかを決めます。 右のつまみでノートオン時の位相を決められます。 つまみは 0 ~ 360° に対応しています。

Tempo Sync, Automation Signal Freq. Sync Type Signal Freq. Tempo Sync Time Signal Freq. Automation Freq.

信号波の周波数をテンポ同期 (Tempo Sync) にするか、オートメーション (Automation) にするかを決めます。 この音源の特性上、音量の節が信号波の周波数で決まります。 テンポ同期にすると、この音量の節をテンポに同期させることができます。 右のつまみや数字入力欄で 8 分音符あたりどのくらいの周期にするかを決められます。 入力範囲は 0.25/8 ~ 32/8 です。

オートメーションにすると、信号波の周波数を固定で決められます。 範囲は 0 ~ 999 です。 次の Envelope で、ノートオンオフ時の信号波の周波数の挙動を決められます。

Envelope Signal Freq. ADSR A Freq. Signal Freq. ADSR D Freq. Signal Freq. ADSR R Freq. Signal Freq. ADSR A Time Signal Freq. ADSR D Time Signal Freq. ADSR R Time

信号波の周波数にエンベロープ (Envelope) を掛けることができます。一般的な ADSR の A、D、R に周波数を個別に指定できるようにしたものです。 ADSR の S は上のオートメーションの周波数となっています。周波数の範囲はオートメーションと同じく 0 ~ 999 です。 A、D、R のつまみで時間を設定できます。 この部分は一般的な ADSR と同じです。指定できる時間の範囲は 0 ~ 10 秒です。

③ スイッチ部

パルス数 (Ps) と非同期モード (Async Mode) の選択部分です。
名前 オートメーション名 説明
Ps Ps

パルス数は非同期モードでない場合に有効化されます。パルス数はテキスト入力が可能です。

Async Mode Async Mode

非同期モードの場合、Note で生成された周波数は④のキャリアに入力されます。 非同期モードでない場合、Note で生成された周波数は⑤の信号波に入力されます。 キャリアの入力はその周波数のパルス数 倍の周波数となります。

④ Carrier

キャリア (Carrier) の波形の設定部分です。
名前 オートメーション名 説明
- Carrier Shape

キャリアの波形に三角波かノコギリ波が選択できます。実際の電車では三角波が用いられています。

⑤ Signal

変調率 (M.) に関する設定部分です。
名前 オートメーション名 説明
Note's Velocity to M. Signal Notes Velocity Enable

これを有効化するとノートのベロシティを変調率に適用します。 一方で無効化すると通常の音源のようにベロシティは音量に適用されます。

LFO Signal M LFO Enable Signal M LFO Depth Signal M LFO Freq. Signal M LFO Shape

変調率に LFO を掛けることができます。 ただし、Gain つまみで設定した値に加算される形になります。

最終的な変調率 = Gain + Depth × LFO

Gain Signal M ADSR Gain

変調率の最大値を設定できます。

ADSR Signal M ADSR A Signal M ADSR D Signal M ADSR S Signal M ADSR R Signal M ADSR Slope

変調率に ADSR のエンベロープを適用できます。A、D、R は時間、S は変調率ですので注意してください。 A、D、R は 0 ~ 10 秒まで設定可能です。

また、エンベロープのカーブに直線と指数関数のどちらかを選択できます。

⑥ 右上

Panic ボタンとクレジットです。 Panic ボタンは音が出っぱなしになったなどの場合に押してください。

⑦ Output

最終的に出力される音を調節する部分です。
名前 オートメーション名 説明
Line Voltage Output Line voltage Enable

これを有効化すると線間電圧が出力されます。 実際の電車の音はこれに近いです。 一方で無効化すると相電圧が出力されます。 この場合、Output の ADSR でリリース (R) を調整しないとノートオフしてもしばらく音が鳴り続けます。

Eliminate Fund. Output Eliminate Fund. Enable

これを有効化すると基本波成分 (信号波と同じ周波数の成分) が除去されます。 非同期モードを有効にしている場合は低周波数の成分が出てしまうため、ミックスの観点から除去することをおすすめします。

Gain Output ADSR Gain

Gain はマスターボリュームと同じです。音量が変わります。

ADSR Output ADSR A Output ADSR D Output ADSR S Output ADSR R Output ADSR Slope

音量に ADSR のエンベロープを適用できます。 また、エンベロープのカーブに直線と指数関数のどちらかを選択できます。 A、D、R は時間、S は音量ですので注意してください。 A、D、R は 0 ~ 10 秒まで設定可能です。

⑧ 波形表示

出力波形が表示されます。 波形がかなり変質するため、基本波成分の除去 (Eliminate Fund.) はこの波形表示に反映されません。

詳細な使い方

LFO の Noise について

Freq.で指定した周波数ごとに値がランダムに切り替わります。 実際の電車の音に近づけるには 1kHz 程度に設定すると良いでしょう。

ADSR のスロープ

指数関数的なカーブの場合、時間[s]は時定数となります。 元の 63.2% に達するまでの時間がその時間となります。 A から D への切り替えは元の 95% に達したときに行われます。

変調率 (M.)

0 ~ 1 が入力範囲です。LFO でこの範囲を超える入力がなされたとしても、リミッターで 0 ~ 1 に直されます。
非同期モードとパルス数が大きい同期モードの場合、変調率が 0.785 を超えると過変調になります。過変調になると、音割れしたときように一部が一定値になります。変調率が最大の 1 となると、矩形波になります。

外部音声入力

外部音声とはいっても、DAW においては別のトラックの音声となります。
ここからは REAPER 6 (日本語化済み) での外部音声の入力方法を説明します。なお、この音源の入力はステレオ入力となっていますが、この音源の内部では L と R の信号を平均してモノラル信号として扱っています。
  1. トラック 1 に入力用、トラック 2 に VVVF-Synth を用意します。
  2. トラック 1 の "Route" からトラック 2 の "Route" までドラッグアンドドロップします。
  3. ダイアログが出てきます。MIDI を「なし」に設定してダイアログを閉じます。
  4. トラック 1 の "Route" をクリックして出てきたダイアログの「マスターセンド」のチェックを外します。
これで完了です。

他の DAW では

「サイドチェイン やり方 ○○(DAW名)」などで調べると、似たようなやり方が出てきます。 サイドチェインと違うのは、外部音声のトラックをミュートする点です。 音声出力を音声入力につなげるだけなので、サイドチェインよりは素直なやり方になっていると思われます。

オートメーションについて

GUI上の全てのパラメーターがオートメーションで利用可能です。

略語集

デザインの都合上略記した名称を紹介します。
Freq.
Frequency の略で、周波数 という意味です。
Ps
パルス数 という意味です。
M.
Modulation Index の略で、変調率 という意味です。
Fund.
Fundamental Wave の略で、基本波 という意味です。

トラブルシューティング

Q. つまみを色々いじってたら音が鳴らなくなりました

A1. Portamento Time のつまみを最小にしたり最大にしたりすると直ることがあります。
A2. つまみやボタンを下図のように設定してください。そうすると一応鳴ります。

Q. ノートオフ直後の音が一切鳴りません

A. Output の ADSR の R を大きくしてください。デフォルトでは最大になっています。

Q. 画面が真っ黒になりました

A. GUIの画面を閉じて再度開くと直ります。今のところこのような対症療法しかありません。

バージョン履歴

GitHub の Release から過去バージョンをダウンロードできます。
1.0.2 - 2022/05/22
  • ビルド環境を Visual Studio 2022 に変更
  • レガート時にも信号波位相リセット (Phase Reset) が有効になるよう仕様を変更
1.0.1 - 2020/05/16
  • 変調率 M の LFO の Depth のデフォルト値を修正
1.0.0 - 2020/04/28
  • 最初のリリース

クレジット

製作者
ゆっQ
デザイン補佐・ Cubase での動作確認
たろいも
VST は Steinberg Media Technologies GmbH の商標で、ヨーロッパおよびその他の国で登録されています。
VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.

製作にあたり参考にしたサイト

C++でVST作り
こちらのサイトを見れば GUI まで作れます。わかりやすく、大変お世話になっています。
VST 3 の開発
波形表示を作る際の参考になりました。
VST3ホストを作ろう(5) 〜VST3 のライセンスについて〜
ライセンスの契約やロゴについて参考になりました。

サポート

本ソフトはフリーソフトです。本ソフトの著作権は作者である ゆっQ (yuqquu) が保有しています。
音源関連ファイルの学業・個人での複製は構いませんが、インターネット上などでの再配布や転載はご遠慮ください。

本ソフトを使用した作品 (楽曲など) の公開・頒布について

本ソフトを使用した作品を無償で公開・頒布する場合は連絡不要です。また、YouTube とニコニコ動画において収益化がなされている動画での公開も連絡不要とします。
本ソフトを使用した作品を有償で公開・頒布する場合は事前にご連絡ください。

連絡先

ご不明な点がありましたら、作者の Twitter か以下のメールアドレスに連絡をお願いいたします。
yuqquusan★gmail.com (★を半角のアットマークに置き換えてください)