Back to Index

Update: 2020-08-18

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 と REAPER で動作確認を行っています。もし Ubuntu 18.04 以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

インストール

プラグイン

名前が .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 を再起動してみてください。

macOS

注意: この節は英語で macOS を使用しているユーザからの報告によって作成されました。日本語でのエラーメッセージが分からなかったので曖昧な書き方になっています。

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した .vst3 ディレクトリに次のコマンドを適用してみてください。

xattr -rc /path/to/PluginName.vst3

プラグインは署名されていない (unsigned) 、または公証されていない (un-notarized) アプリケーションとして認識されることがあります。この場合は以下の手順を試してみてください。

  1. ターミナルを開いて sudo spctl --master-disable を実行。
  2. システム環境設定 → セキュリティとプライバシー → 一般 → ダウンロードしたアプリケーションの実行許可、を開いて 「全てのアプリケーションを許可」 を選択。

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

  1. システム環境設定 → セキュリティとプライバシー → 一般 → ダウンロードしたアプリケーションの実行許可、を開いて 「App Store と認証済みの開発元からのアプリケーションを許可」 を選択。
  2. ターミナルを開いて sudo spctl --master-enable を実行。

参考リンク

色の設定

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

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

style.json の設定例です。

{
  "fontPath": "",
  "foreground": "#000000",
  "foregroundButtonOn": "#000000",
  "foregroundInactive": "#8a8a8a",
  "background": "#ffffff",
  "boxBackground": "#ffffff",
  "border": "#000000",
  "borderCheckbox": "#000000",
  "borderLabel": "#000000",
  "unfocused": "#dddddd",
  "highlightMain": "#0ba4f1",
  "highlightAccent": "#13c136",
  "highlightButton": "#fcc04f",
  "highlightWarning": "#fc8080",
  "overlay": "#00000088",
  "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.