Back to Index

Update: 2020-06-15

Table of Contents

TrapezoidSynth

TrapezoidSynthトラピゾイドシンセは台形オシレータを使ったモノフォニックシンセサイザです。台形オシレータは PTR (Polynomial Transition Regions) という手法に基づいて作ったのですが、ピッチが高くなると逆にノイズが増える欠点があるので 8 倍のオーバーサンプリングをしています。コードを作るために 2 つの AM ピッチシフタを搭載しています。

パッケージには次のビルドが含まれています。

Mac を持っていないので、 macOS ビルドはテストできていません。もしバグを見つけたときは GitHub のリポジトリに issue を作るか、 ryukau@gmail.com までメールを送っていただければ対応します。

Linux ビルドは Ubuntu 18.0.4 でビルドしています。また Bitwig 3.1.2 と REAPER 6.03 で動作確認を行いました。 Bitwig 3.1.2 では GUI が真っ黒になるバグがあるようです。

インストール

プラグイン

名前が .vst3 で終わるディレクトリを OS ごとに決められた位置に配置してください。

DAW によっては上記とは別に VST3 をインストールできるディレクトリを提供していることがあります。詳しくは利用している DAW のマニュアルを参照してください。

プリセット

解凍して出てきたディレクトリを OS ごとに決められた位置に配置すると使えるようになります。

プリセットディレクトリの名前はプラグインと同じである必要があります。 Uhhyou ディレクトリが無いときは作成してください。

Windows

プラグインが DAW に認識されないときは C++ redistributable をインストールしてみてください。インストーラは次のリンクからダウンロードできます。ファイル名は vc_redist.x64.exe です。

Linux

Ubuntu 18.0.4 では次のパッケージのインストールが必要です。

sudo apt install libxcb-cursor0  libxkbcommon-x11-0

もし DAW がプラグインを認識しないときは、下のリンクの Package Requirements を参考にして VST3 に必要なパッケージがすべてインストールされているか確認してみてください。

REAPER の Linux 版がプラグインを認識しないときは ~/.config/REAPER/reaper-vstplugins64.ini を削除して REAPER を再起動してみてください。

色の設定

初回設定時は手動で次のファイルを作成してください。

既存の色のテーマを次のリンクに掲載しています。 style.json にコピペして使ってください。

style.json の設定例です。

{
  "fontPath": "",
  "foreground": "#ffffff",
  "foregroundButtonOn": "#000000",
  "foregroundInactive": "#8a8a8a",
  "background": "#353d3e",
  "boxBackground": "#000000",
  "border": "#808080",
  "borderCheckbox": "#808080",
  "unfocused": "#b8a65c",
  "highlightMain": "#368a94",
  "highlightAccent": "#2c8a58",
  "highlightButton": "#a77842",
  "highlightWarning": "#8742a7",
  "overlay": "#ffffff88",
  "overlayHighlight": "#00ff0033"
}

16 進数カラーコードを使っています。

プラグインはカラーコードの 1 文字目を無視します。よって ?102938\n11335577 も有効なカラーコードです。

2 文字目以降のカラーコードの値に 0-9a-f 以外の文字を使わないでください。

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

操作

つまみとスライダーでは次の操作ができます。

操作できる箇所を右クリックすると DAW によって提供されているコンテキストメニューを開くことができます。

注意

SlideTypeReset to 0 にすると極端に低い周波数が出るので、ハイパスフィルタをかけることを推奨します。

ブロック線図

図が小さいときはブラウザのショートカット Ctrl + マウスホイール や、右クリックから「画像だけを表示」などで拡大できます。

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

パラメータ

Oscillator 共通

Semi

ピッチを半音単位で変更します。

Cent

ピッチをセント単位で変更します。 100 セント = 1 半音です。

Slope

台形の両端の傾きです。

PW

台形の上辺の長さです。 Pulse Width の略です。

Oscillator 1

Drift

ホワイトノイズでピッチを変調します。

Feedback

Oscillator 1 の位相をフィードバックで変調します。

osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))

Oscillator 2

Overtone

周波数を Overtone 倍にします。

PM

Oscillator 1 の位相を Oscillator 2 の出力で変調します。

Envelope 共通

Retrigger

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が 0 から 1 以上になったときだけエンベロープをリセットします。

A

アタック時間の秒数です。アタックは音が最大音量に到達するまでのエンベロープの区間です。

D

ディケイ時間の秒数です。ディケイはアタックが終わった後にエンベロープが減衰する区間です。

S

サステインの大きさです。サステインはディケイが終わったのエンベロープの出力の大きさです。

R

リリース時間の秒数です。エンベロープは、鍵盤から指を離した時点(ノートオフ)からリリース状態に移行して、出力が 0 になるまで減衰します。

Curve

エンベロープの特性を変更します。

Gain Envelope

Gain

出力音量です。

Filter

Order

フィルタの次数です。 TrapezoidSynth では 1 次フィルタを 8 個直列につないでいます。 Order の値によってフィルタから信号を取り出す位置を変更しています。

Cut

カットオフ周波数です。

Res

レゾナンスの強さです。

Sat

フィルタのサチュレーションの強さです。

filterInput = tanh(Sat * (input + Res * filterOutput))
Env>Cut

Filter Envelope による Cut の変調量です。

Key>Cut

鍵盤の高さによる Cut の変調量です。

+OscMix

Oscillator 1 と Oscillator 2 をミックスした信号による Cut の変調量です。

Filter Envelope

>Octave

Filter Envelope の出力を使ってピッチをオクターブ単位で変調する量です。

Misc

OscMix

Osillator 1 と Oscillator 2 の比率です。左いっぱいに回すと Oscillator 1 の音だけになります。

Octave

ピッチをオクターブ単位で変更します。

Smooth

パラメータを変更したときに変更前の値から変更後の値に移行する秒数です。次のパラメータに影響します。

Mod 共通

Retrigger

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が 0 から 1 以上になったときだけエンベロープをリセットします。

Attack

モジュレーションエンベロープのアタック時間の秒数です。

Curve

モジュレーションエンベロープの特性です。

Mod 1

>PM

Oscillator2.PM をモジュレーションエンベロープ 1 で変調します。

Mod 2

>Feedback

Oscillator1.Feedback をモジュレーションエンベロープ 2 で変調します。

>LFO

LFO.Freq をモジュレーションエンベロープ 2 で変調します。

>Slope2

Oscillator2.Slope をモジュレーションエンベロープ 2 で変調します。

>Shifter1

Shifter 1 のピッチをモジュレーションエンベロープ 2 で変調します。

Shifter 共通

Semi

半音単位でピッチシフトの量を変更します。

Cent

セント単位でピッチシフトの量を変更します。

Gain

ピッチシフトした信号を足し合わせる大きさです。

LFO

LFOType

LFO の波形の種類を次の 4 つから選択できます。

Tempo

LFO の周波数をテンポシンクします。

Freq

LFO の周波数です。

Shape

LFO の波形を変更します。

>Pitch

LFO による Oscillator 1 のピッチの変調量です。

>Slope1

LFO による Oscillator1.Slope の変調量です。

>PW1

LFO による Oscillator1.PW の変調量です。

>PW1

LFO による Filter.Cut の変調量です。

Slide

SlideType

ピッチスライドの種類を変更できます。

Time

ピッチスライドにかかる時間です。

Offset

Oscillator 1 のスライド時間に対する Oscillator 2 のスライド時間の比率です。

チェンジログ

旧バージョン

ライセンス

TrapezoidSynth のライセンスは GPLv3 です。 GPLv3 の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

リンクが切れているときは ryukau@gmail.com にメールを送ってください。

VST® について

VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.