Back to Index

Update: 2024-01-02

Table of Contents

BasicLimiter

BasicLimiterベーシック リミッタ は名前の通りベーシックなシングルバンドリミッタです。目新しい音は出ませんが、トゥルーピークモードはやや贅沢に設計しています。

自動メイクアップゲイン、サイドチェイン、左右 (L-R) とミッド-サイド (M-S) の切り替えを追加した BasicLimiterAutoMake もあります。ただし CPU 負荷は 1.5 倍強に上がります。

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

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

macOS で使用するときは macOS パッケージのダウンロードを推奨します。また Apple Developer Program に加入していないので、インストール時に Gatekeeper を迂回するように設定する必要があります。詳細は インストール -> macOS の節を参照してください。

連絡先

何かあれば GitHub のリポジトリに issue を作るか ryukau@gmail.com までお気軽にどうぞ。

paypal.me/ryukau から開発資金を投げ銭することもできます。

インストール

プラグイン

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

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

プリセット

注意: プリセットの無いプラグインもあります。

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

  1. ページの最上部のリンクからプラグインをダウンロード。
  2. ダウンロードした zip ファイルを解凍。
  3. presets ディレクトリ内の Uhhyou ディレクトリを OS ごとに決められたディレクトリに配置。

以下は OS ごとのプリセットの配置先の一覧です。

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

Windows

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

Linux

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

sudo apt install libxcb-cursor0  libxkbcommon-x11-0

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

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

macOS

重要: full パッケージは動作未確認です。以下のファイルは codesign されていないので削除する必要があるかもしれません。

macOS パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは codesign コマンドの ad-hoc signing の状態になっています。

隔離の解除

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した .vst3 ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 /path/to/PluginName.vst3 の部分はインストールしたプラグインのパスに置き換えてください。

xattr -rd com.apple.quarantine /path/to/PluginName.vst3
xattr -rc /path/to/PluginName.vst3

Gatekeeper の迂回

プラグインは署名されていない (unsigned) 、または公証されていない (un-notarized) アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした Apple 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない App や未確認の開発元の App を開きたい場合」を参照してください。

ここまでの手順を経てまだ動かないときはインストール先を /Library/Audio/Plug-ins/VST3/ あるいは /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ のいずれか使っていなかったほうに変えてみてください。

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

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

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

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

codesign の適用

注意 この節の内容は macOS パッケージには関連しないと考えられますが未検証です。 (GitHub の issue)

full パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

sudo codesign --force --deep -s - /path/to/PluginName.vst3

codesign の利用には Xcode のインストールが必要となるかもしれません。

参考リンク

GUI の見た目の設定

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

プラグインのウィンドウを開くたびに style.json が読み込まれて更新されます。

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

style.json の設定例です。

{
  "fontFamily": "Tinos",
  "fontBold": true,
  "fontItalic": true,
  "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"
}

フォントオプション

以下はフォントオプションの一覧です。

カスタムフォントを使用するには、プラグインディレクトリの *.vst3/Contents/Resources/Fonts*.ttf ファイルを配置します。

注意: fontFamilyfontBoldfontItalic で設定したフォントファミリ名とスタイルの組み合わせが *.vst3/Contents/Resources/Fonts 以下のいずれかの *.ttf ファイルに含まれていないときは VSTGUI が指定するデフォルトフォントが使用されます。

fontFamily が長さ 0 の文字列 "" のときはフォールバックとして "Tinos" に設定されます。長さが 1 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI が指定するデフォルトフォントが使用されます。

ボールドあるいはイタリック以外のスタイルは VSTGUI がサポートしていないので動作確認していません。該当する例としては Noto フォントの Demi Light や、 Roboto フォントの Thin や Black などがあります。

色のオプション

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

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

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

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

操作

パラメータが割り当てられているコントロールの上で 右クリック すると、 DAW から提供されるコンテキストメニューが開きます。

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

注意

アルゴリズムの問題で、入力振幅がとんでもなく大きいと過剰に振幅が制限されることがあります (オーバーリミッティング) 。オーバーリミッティングが起こると、入力振幅が大きくなるほど出力振幅が小さくなります。振幅が 2^53 、つまり約 319 dB を超えたときに問題が起こることが想定されます。

ブロック線図

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

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

パラメータ

Threshold [dB]

リミッタのしきい値です。

True Peak がオフのとき、出力振幅はしきい値以下に制限されます。

True Peak がオンのとき、出力振幅は完全にしきい値以下に制限されません。これはリアルタイムで使えるアルゴリズムには限界があるからです。

Gate [dB]

ゲートのしきい値です。 Attack で指定した時間を超えて入力振幅が Gate の値を下回ると、出力振幅が 0 になります。

Attack [s]

リミッタのエンベロープを滑らかにするフィルタの遷移時間です。 Attack の値はそのままレイテンシに加算されます。

ドラムなどの振幅の変化が急峻な音にかけるときは 0.02 秒以下に設定することを推奨します。 0.02 秒という値は継時マスキングという人間の耳の聞こえ方の性質に基づいています。

Release [s]

リミッタのエンベロープが振幅を制限しない状態に戻るときの滑らかさです。

内部では Release で設定された時間の逆数をカットオフ周波数として使っているので、表示されている値はあくまでも目安です。普段は Sustain と足し合わせた値が 0.2 秒以下になるよう設定することを推奨します。この値は継時マスキングに基づいています。

Sustain [s]

リミッタのエンベロープが Attack で設定した時間に加えて振幅のピークをホールドする時間です。

ドラムなどにかけると Release よりもダッキングが目立つ傾向があります。歪ませたギターやサステイン中のシンセサイザなど、振幅が一定な音に対してはオートゲインと同じように働くので Release よりクリーンな出力が得られます。普段は Sustain と足し合わせた値が 0.2 秒以下になるよう設定することを推奨します。サステインを長くすると継時マスキングの曲線から乖離するので注意してください。

Stereo Link

Stereo Link が 0.0 のとき、左右のリミッタは独立して動作します。 1.0 のとき、すべてのチャンネルの振幅の最大値がすべてのリミッタに入力されます。以下は Stereo Link の計算式です。

absL = fabs(leftInput).
absR = fabs(rightInput).

absMax = max(absL, absR).

amplitudeL = absL + stereoLink * (absMax - absL).
amplitudeR = absR + stereoLink * (absMax - absR).

細かく設定するときは、まず Stereo Link を 0.0 に設定します。すると左右のどちらかに偏った信号が入力されたときに、中央に位置する信号が押し出されて、パンがふらつくように聞こえることがあります。このようなパンのふらつきが聞き取れなくなるまで Stereo Link の値を少しづつ増やしていけば、そのうち適切な値にたどり着きます。

True Peak

チェックを入れるとトゥルーピークモードがオンになります。トゥルーピークモードがオンのときは 94 サンプルのレイテンシが加わります。

トゥルーピークモードがオンのときはナイキスト周波数に近い成分を落とすためのローパスフィルタがかかります。サンプリング周波数が 48000 Hz のときに、およそ 18000 Hz 以下の成分についてはローパスフィルタの影響が及ばないように設計しています。

サンプルピークが Threshold で指定した値を超えることがあります。特にサンプルピークが 0 dB を超えたときは Overshoot の値が 0 でなくなります。このときは Threshold の値を下げてください。

ナイキスト周波数のトゥルーピークの復元には無限の長さの FIR フィルタが必要です (sinc 補間) 。したがってリアルタイムでの厳密な復元は不可能です。ローパスをかけていたり、トゥルーピークモードでオーバーシュートが起こったりと問題点があるのは、この無理をなんとかしようとしていることが原因です。

Reset Overshoot

クリックすると Overshoot の値を 0 にリセットします。

出力のサンプルピークが 0 dB を超えると Overshoot の値が 0 でなくなり、 Reset Overshoot が点灯します。

BasicLimiterAutoMake の固有パラメータ

Auto Make Up

チェックを入れると自動メイクアップゲインが有効になります。

自動メイクアップゲインが有効のときに Threshold の値が Auto Make Up Target Gain を超えると出力振幅が小さくなります。

自動メイクアップゲインが有効のときに、手やオートメーションで Threshold を上げると、オーバーシュートすることがあります。オーバーシュートでの歪みを防ぐためには Auto Make Up Target Gain を -0.1 dB 以下に設定することを推奨します。

入力信号があるときに Threshold を動かすのであれば BasicLimiterAutoMake の後にお守りとしてさらにもう一つリミッタを挿入することを推奨します。

Auto Make Up Target Gain

自動メイクアップゲインが適用された後の最大振幅です。 Auto Make Up の右側に配置されているコントロールで、単位はデシベルです。

Channel TypeM-S のときは設定値の +6 dB が最大振幅となります。

Sidechain

チェックを入れるとサイドチェインが有効になります。サイドチェインが有効のとき、ソース信号の振幅は Threshold に影響されないので Auto Make Up は無効になります。

BasicLimiterAutoMake は 2 つのステレオ入力を備えています。 1 番がソース信号、 2 番がサイドチェイン信号の入力です。ルーティングについてはお使いの DAW のマニュアルを参照してください。

Channel Type

ステレオチャンネルの種類を左右 (L-R) とミッド-サイド (M-S) で切り替えます。

種類を M-S に設定すると、サンプルピークが Threshold の 2 倍 (+6.02 dB) に達することがあります。そこで Auto Make Up を有効にして M-S を使うときは、 Auto Make Up Target Gain の値を -6.1 dB 以下に設定することを推奨します。この仕様は L-RM-S を切り替えて比較するときに聴感上の音の大きさが同じになることを狙っています。

チェンジログ

BasicLimiter

BasicLimiterAutoMake

旧バージョン

BasicLimiter

BasicLimiterAutoMake

ライセンス

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

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

VST® について

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