Back to Index

Update: 2024-01-02

Table of Contents

MembraneSynth

MembraneSynthメンブレイン シンセ は膜を張った打楽器のような音がでるシンセサイザです。バスドラムやタムタムのような低めの打楽器の音が得意ですが、自己変調による発振によって変な音を作ることもできます。

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 から提供されるコンテキストメニューが開きます。

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

青い縦棒が並んだコントロール (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 の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを 左ドラッグ で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

注意

音量の振れ幅が大きいので MembraneSynth の後に必ずリミッタを挿入することを推奨します。

以下の条件がそろったときに発振するおそれがあります。

発振はドローンや効果音を作るときには使えますが、打楽器の音を出したいときは問題となります。対策として、 Envelope を有効にすることで発振をいくらか防ぐことができます。

ブロック線図

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

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

パラメータ

角かっこ [] で囲まれているのは単位です。以下は MembraneSynth のパラメータで使われている単位の一覧です。

また、ところどころに出てくる FDN という言葉はフィードバック・ディレイ・ネットワークという部品の略称です。詳細はブロック線図を参照してください。

Gain

Output [dB]

出力のゲインです。

Normalize

チェックを入れると Impact -> Amplitude の値に応じてゲインを一定に保つように正規化します。

2x Sampling

チェックを入れると 2 倍のオーバーサンプリングを有効にします。

Impact

Impact セクションでは、励起信号のパラメータが調整できます。ここでの励起信号とは、大まかにばちと打面の衝突を模倣する信号のことです。

Amplitude [dB]

励起信号の最大振幅です。大まかにばちと打面の衝突の強さを表しています。

Decay [s]

励起信号の減衰時間です。大まかに衝突時に沈み込んだ打面が元の位置に戻ってくるまでにかかる時間を表しています。

Decay の値が大きいほど低い周波数成分が強くなります。また、他のパラメータの設定によっては Decay がある値より大きいときに、音のざらついた質感が消えることがあります。

Position

励起信号を FDN に分配するときの偏りを与えるパラメータです。大まかに打面の中央からふちの間の位置を表しています。

Position が 0 のときは打面の中央、 1 のときは縁を表すはずだったのですが、今回の実装ではあまり大きく音が変わりません。

Tuning

Tuning セクションでは DAW から送られてくるノートイベントと、シンセサイザ内部のピッチの対応を設定します。

MembraneSynth の癖として、すべての音程が正確に合うことはない点に注意してください。音程を合わせる必要があるときは、一度レンダリングして、外部のサンプラーに読み込んで使うことを推奨します。

Semitone, Cent

全体の音の高さを変更します。

Equal Temp., A4 [Hz]

音律を変更します。

Equal Temp. は Equal Temperament (平均律) の略です。 Equal Temp. が 12 のときは 12 平均律となります。 Equal Temp. を 12 よりも小さくすると、内部的なピッチが高すぎるあるいは低すぎるために、音が変わらなくなる範囲が増えるので注意してください。

A4 [Hz] は、音程 A4 の周波数です。

P.Bend Range [st.]

ピッチベンドの範囲です。

Slide Time [s]

最後に与えられたノートのピッチへとスライドする時間です。

内部的にはフィルタのカットオフ周波数に置き換えられるので、正確な遷移時間を表しているわけではない点に注意してください。

Slide at Note-on, Note-off

チェックを入れると、ノートオンあるいはノートオフの時点でスライドを行います。

打楽器の音を作るときは、ピッチスライドを行わないほうが自然な音に聞こえるかもしれません。

Delay

Delay セクションでは、 FDN のディレイ間のフィードバックと、ディレイ時間に関するパラメータを設定できます。

Cross Feed

ディレイ間のクロス・フィードバックの割合です。

値が大きいほうがクロス・フィードバックが増えて複雑な倍音が出ます。

Feedback

FDN 全体のフィードバック量です。

Feedback によって音の長さを設定できます。また Feedback を下げることで発振を抑えることができます。

Shape

ディレイ時間の係数を、弦の振動のモードと円形の膜の振動のモードとの間で切り替えます。

Shape が 0 のときは係数が弦の振動のモードに応じて 1 倍、 2 倍、 3 倍、 … と設定されます。 Shape が 1 のときは係数が円形の膜の振動のモードに基づいて 1 倍、 1.59 倍、 2.13 倍、 … と設定されます。

Modulation

Modulation セクションでは、 FDN 内のフィードバック信号によってディレイ時間を短くする変調に関する設定ができます。

Amount

FDN 内のディレイ時間をフィードバックによって変調する量です。

Amount が 0 でないときは、タムタムのようなピッチの下降が起こることがあります。

Interp. Rate

1 サンプルあたりのディレイ時間の変化を制限する値です。

Interp. Rate の値が大きいほど変調が強くかかりますが、発振しやすくなるので注意してください。

Max Ratio

変調されていないディレイ時間からの割合で表された、変調の最大値です。

例えば Max Ratio が 0.3 のときは、ディレイ時間が定常状態から 30% 以上短くなることはありません。

Envelope

点灯させると変調エンベロープが有効になります。

変調エンベロープを有効にすると Interp. Rate を時間とともに下げて発振を無理やり抑えることができます。打楽器の音だけが欲しいときは、常に有効にしておくことを推奨します。

Sustain [s]

変調エンベロープのサステイン時間です。発振しているときにサステインが長いと不自然な音になる傾向があります。

Release [s]

変調エンベロープのリリース時間です。発振しているときはリリースを短めに設定することで自然な音に近づきます。

Random

Random セクションでは、ノートオンごとに行うランダマイズの設定ができます。

Seed

乱数のシード値です。

Seed を変えると FDN のフィードバック行列が変更されるので、クロス・フィードバックの質感が変わります。

Matrix Rnd.

FDN のフィードバック行列をノートオンごとにランダマイズする割合です。

Overtone Rnd.

ディレイ時間を決めるときの倍数にランダムに加算する値の大きさです。

Filter

Filter セクションでは、 FDN のフィードバック経路に用意されたフィルタの設定ができます。

LP Cut [Hz], HP Cut [Hz]

ローパスフィルタ (LP) 、ハイパスフィルタ (HP) のカットオフ周波数です。

実のところ、ローパスフィルタではなく、ゲインを 0.5 (~= -6.02 dB) に固定したハイシェルフフィルタを使っています。 UI 上ではローパスフィルタとしたほうが分かりやすいと思ったので、このように表記しています。

LP Q, HP Q

ローパスフィルタ (LP) 、ハイパスフィルタ (HP) の Q 値です。

Q 値は変更しても大きく音が変わらないので、細かい調整を行いたいわけでなければ無視できます。ただし、以下の 2 つのレシピは発振を抑えたいときに役立つかもしれません。どちらも音の低い部分を下げる効果があります。

チェンジログ

旧バージョン

ライセンス

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

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

VST® について

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