Back to Index

Update: 2020-08-18

Table of Contents

LatticeReverb

LatticeReverbラティス リバーブ はディレイを使った高次のオールパスフィルタを格子状につないで入れ子にしたリバーブです。 1 チャンネルあたり 16 のオールパスフィルタを備えています。

LatticeReverb の利用には AVX 以降の SIMD 命令セットをサポートする CPU が必要です。

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

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 によって提供されているコンテキストメニューを開くことができます。

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

数値スライダーでは、上記に加えて次の操作ができます。

青い縦棒が並んだコントロール (BarBox) ではショートカットが使えます。ショートカットは BarBox を左クリックしてフォーカスすると有効になります。フォーカス後にマウスカーソルを BarBox の領域外に移動させると、ショートカットが一時的に無効になります。ショートカットによって変更されるパラメータはカーソルの位置によって変更できます。

左下のプラグイン名をクリックすると、よく使いそうな一部のショートカットを見ることができます。利用できる全てのショートカットを次の表に掲載しています。

入力 操作
左ドラッグ 値の変更
Shift + 左ドラッグ 値の変更 (スナップ)
Ctrl + 左ドラッグ デフォルト値にリセット
Ctrl + Shift + 左ドラッグ 値の変更 (フレーム間の補間が無効)
ホイールドラッグ 直線の描画
Shift + ホイールドラッグ 1 つのバーを編集
Ctrl + ホイールドラッグ デフォルト値にリセット
Ctrl + Shift + ホイールドラッグ ロックの切り替え
a 符号を交互に入れ替え
d すべての値をデフォルト値にリセット
D 最小値・中央値・最大値の切り替え
e 低域の強調
E 高域の強調
f ローパスフィルタ
F ハイパスフィルタ
i 値の反転 (最小値を保存)
I 値の反転 (最小値を 0 に設定)
l マウスカーソル下のバーのロックの切り替え
L 全てのバーのロックを切り替え
n 最大値を 1 に正規化 (最小値を保存)
N 最大値を 1 に正規化 (最小値を 0 に設定)
p ランダムに並べ替え
r ランダマイズ
R まばらなランダマイズ
s 降順にソート
S 昇順にソート
t 少しだけランダマイズ (ランダムウォーク)
T 少しだけランダマイズ (0 に収束)
z アンドゥ
Z リドゥ
, (Comma) 左に回転
. (Period) 右に回転
1 すべての値を低減
2-9 インデックスが 2n-9n の値を低減

Shift + 左ドラッグ のスナップは一部の BarBox だけで有効になっています。特定の BarBox にスナップを追加したいという要望があれば、お気軽に GitHub のリポジトリに issue を開いてください。

Shift + ホイールドラッグ による 1 つのバーを編集は、マウスホイールが押された時点でカーソルの下にあるバーだけを編集します。マウスホイールが押されている間はカーソルの左右の位置に関わらず、選択したバーのみを編集できます。

Ctrl + Shift + ホイールドラッグ によるロックの切り替えでは、マウスホイールが押された時点でカーソルの下にあるバーの反対の状態が残り全てに適用されます。例えばカーソルの下のバーがアクティブだったときはロックに切り替えます。

注意

サンプリング周波数やバッファサイズによって出力が変わります。

次の手順に沿った操作が行われると出力が大きくなることがあります。

  1. OuterFeed あるいは InnerFeed のいくつかを最大値あるいは最小値の近くに設定。
  2. 信号を入力。
  3. 手順 1. で設定した OuterFeed あるいは InnerFeed の値を変更する。

ブロック線図

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

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

パラメータ

Base は左右のチャンネルで両方で使われる値です。 Base によってリバーブの大まかな質感が決まります。

Offset は左右のチャンネルの値の比率です。 Offset によって左右の広がりを作ることができます。

if (Offset >= 0) {
  valueL = Base
  valueR = Base * (1 - Offset)
}
else {
  valueL = Base * (1 + Offset)
  valueR = Base
}
Time

オールパスフィルタのディレイ時間です。

OuterFeed

格子構造のフィードバック、フィードフォワードの値です。

InnerFeed

格子構造の内側に入れ子になったオールパスフィルタのフィードバック、フィードフォワードの値です。

Multiplier

TimeOuterFeedInnerFeed の値をまとめて変更する係数です。リバーブの質感を変えずに減衰時間を変えるときに使えます。

Panic!

ボタンを押すと TimeOuterFeedInnerFeed の Multiplier を 0 にしてリバーブの出力を止めます。

出力が想定外に大きくなったときなど、音を手早く止めたいときに使えます。

Mix

Dry

バイパスされる入力信号の音量です。

Wet

リバーブを通った信号の音量です。

Stereo

Cross

格子の偶数段で左右のチャンネルの信号をミックスする割合です。

0 のときはもう片方のチャンネルからの信号はミックスされません。 0.5 のときは現在のチャンネルともう片方のチャンネルの信号比が 1:1 になります。

Spread

ミッドとサイド (M-S) の信号の比率です。

ミッドとサイドの信号は次の式で計算されます。

mid  = left + right
side = left - right

left  = mid - Spread * (mid - side)
right = mid - Spread * (mid + side)

Misc.

Smooth

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

Base

TimeOuterFeedInnerFeed の左右のチャンネルで共通する値を設定するタブです。

リバーブの大まかなキャラクタは Base タブの設定で決まります。

Offset

TimeOuterFeedInnerFeed の左右のチャンネル間での差を設定するタブです。

Offset タブの値を変えると左右の広がりが出ます。

Modulation

Time LFO

LFO によって Time を変調する量です。

LFO の波形はノイズ(一様乱数)です。 Time LFO CutoffSmooth の値によって滑らかさが変わります。

Time LFO Cutoff

LFO にかけるローパスフィルタのカットオフ周波数です。

Lowpass Cutoff

格子の各段に備えられたローパスフィルタのカットオフ周波数です。

リバーブの明るさを変更するときに役立ちます。

チェンジログ

旧バージョン

ライセンス

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

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

VST® について

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