Back to Index

Update: 2024-09-28

Table of Contents

PitchShiftDelayピッチ シフト ディレイ はディレイを使った時間領域ピッチシフタです。 16 倍のオーバーサンプリングによってピッチシフタ特有の癖を多少抑えています。また内部のバッファ長をリアルタイムで変更できます。フォルマント補正がないので、声に使うとヘリウムを吸ったときのような音になります。

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

Linux ビルドは Ubuntu 24.04 でビルドしています。もし Ubuntu 24.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 ごとのプリセットの配置先の一覧です。

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

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

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

sudo apt install libxcb-cursor0  libxkbcommon-x11-0

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

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

重要: 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

プラグインは署名されていない (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 を実行。

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

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

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

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

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

プラグインのウィンドウを開くたびに 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 から提供されるコンテキストメニューが開きます。

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

青い縦棒が並んだコントロール (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-4 インデックスが 2n-4n の値を低減
5-9 インデックスが 2n-5n の値をホールド

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

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

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

いくつかの BarBox の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを 左ドラッグ で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

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

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

Pitch

基本となるピッチシフトの倍率です。

メインシフタは LFO を無視すれば常に Pitch で指定された倍率のピッチシフトを行います。

PitchShiftDelay は 16 倍のオーバーサンプリングを行っているので、 16 * 2 - 1 = 31 倍のピッチシフトまでならエイリアシングノイズは出ません。

Offset

ユニゾンシフタのピッチシフトの倍率が Pitch からどれだけ離れるかを決める量です。

Pitch Cross

メインシフタとピッチシフトの出力をクロスフィードバックする量です。

Mirror

チェックを入れるとユニゾンシフタのピッチシフトの倍率を 1 / Pitch に設定します。

起動直後の状態から Mirror にチェックを入れると Feedback を上げても、フィードバック信号のピッチが常に Pitch あるいは 1 / Pitch になります。この状態は OffsetPitch Cross 、 あるいは LFO セクションの To PitchTo Unison がデフォルト値である限り保たれます。

S1 Reverse

チェックを入れるとメインシフタの出力を逆再生させます。

内部的にはピッチシフトの倍率の値の符号を負に変えることで読み取りポインタを逆走させています。

S2 Reverse

チェックを入れるとユニゾンシフタの出力を逆再生させます。

L-R Lean

左右のディレイ時間の比率です。 Channel TypeM-S のときでも機能します。

Delay Time [s]

ピッチシフタのバッファの長さです。 Pitch の値が 1 のときだけ正確なディレイ時間を表すことに注意してください。

ピッチシフトの倍率が 1 でないとき、正確なディレイ時間はピッチシフトの倍率とバッファの長さによって変わります。 その上に LFO がかかると正確なディレイ時間を計算することは困難になります。したがって Delay Time の値は、正確なディレイ時間というよりも、おおまかな指標です。

Feedback

振幅であらわされたフィードバックのゲインです。

Stereo Cross

ステレオチャンネル間でクロスフィードバックする量です。 1.0 にするとピンポンディレイになります。

Channel Type

入力信号のステレオチャンネルの種類を左右 (L-R) とミッド-サイド (M-S) のいずれかから選択します。

Highpass [Hz]

フィードバック経路に挿入されているハイパスフィルタのカットオフ周波数です。

Dry [dB]

バイパスする入力信号のゲインです。

Wet [dB]

PitchShiftDelay を通過した出力信号のゲインです。

Unison Mix

メインシフタとユニゾンシフタを混ぜる比率です。

Smoothing [s]

パラメータのスムーシング時間です。

例えば Smoothing の値を 0.01 と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし Smoothing の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。

逆に Smoothing の値を 1.0 などと長くするとパラメータの値がゆっくりと切り替わるようになります。特に Pitch などを動かしたときはスライドやポルタメントのようになります。

Sync.

チェックを入れるとテンポ同期を有効にします。また同期間隔が変わったときに再生開始時点から導かれる位相へと同期します。

チェックが外れているときは 120 BPM に同期した状態と同じになります。ただし、同期間隔が変わったときに位相を調整しなくなります。

Tempo Upper

テンポ同期が有効な時の同期間隔を表す分数の分子です。

1/1 のときに 1 小節、 4/4拍子であれば 1/4 のときに 1 拍で LFO が 1 周します。 Rate が乗算されて周期が変わる点に注意してください。

以下は同期間隔の計算式です。

syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
Tempo Lower

テンポ同期が有効な時の同期間隔を表す分数の分母です。

Rate が乗算されて周期が変わる点に注意してください。

Rate

同期間隔に乗算される係数です。

Tempo UpperTempo Lower を変えずに LFO の同期間隔を変えたいときに使えます。

Stereo Offset

ステレオチャンネル間で LFO の位相をずらす量です。

Unison Offset

メインシフタとユニゾンシフタの間で LFO の位相をずらす量です。

Wave Interp.

LFO の波形の補間方法です。

Step を選ぶと LFO をシーケンサのように使えます。 LinearPCHIP と似たような音になりますが、計算がすこし速いです。デフォルトの PCHIP はサンプル間をだいたい滑らかに補間します。

To Pitch

LFO でピッチを変調する量です。

To Unison

To Pitch で指定した量に加えて LFO でユニゾンシフタのピッチを変調する量です。

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

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

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