---
lang: ja
...

# GenericDrum
![](img/GenericDrum.png)

<ruby>GenericDrum<rt>ジェネリック ドラム</rt></ruby> はディレイを使った汎用ドラムシンセサイザです。バスドラムやスネアドラムについては良い音が出ます。シンバルの音も出せますが、低いドラムの音ほど良くはありません。

{% for target, download_url in latest_download_url["GenericDrum"].items() %}
- [GenericDrum {{ latest_version["GenericDrum"] }} `{{ target }}` - VST 3 をダウンロード (github.com)]({{ download_url }}) <img
  src="img/VST_Compatible_Logo_Steinberg_negative.svg"
  alt="VST compatible logo."
  width="30px"
  style="display: inline-block; vertical-align: middle;">
{%- endfor %}
{%- if preset_download_url["GenericDrum"]|length != 0%}
- [プリセットをダウンロード (github.com)]({{ preset_download_url["GenericDrum"] }})
{%- endif %}

**重要**: プリセットはサンプリング周波数が 48000 Hz でなければ想定された音が出ないことがあります。

{{ section["package"] }}

{{ section["contact_installation_guiconfig"] }}

## 操作
{{ section["gui_common"] }}

{{ section["gui_knob"] }}

## 注意
外部のリミッタと共に使用してください。パラメータの変更や、演奏時のベロシティによって大きくゲインが変わります。

パラメータの設定によっては発振あるいは発散することがあります。発振とは振幅が一定となって音が止まらない状態、発散とは時間とともに音が大きくなり続ける状態のことです。

発散すると最大で +40 dB ほどの振幅になることがあります。 GenericDrum は発散を検知すると自動でフィードバックを下げます。この仕組みはプライマリあるいはセカンダリの振幅が +40 dB を超えたときに起動します。

`Prevent Blow Up` を有効にするとワイヤとプライマリの衝突による発散を大きく抑えることができます。ただし音の質感も大きく変わります。

`Prevent Blow Up` が有効でも、ディレイ時間が短く、バンドパスの Q が高く、フィードバックが大きいと発散します。以下は関連するパラメータの一覧です。

- `Note -> Pitch`
- `Cross Feedback Gain`
- `Cross Feedback Ratio`
- `Delay`
- `BP Q`

## 仕組み
GenericDrum は物理モデルではありません。対応する物理現象が説明されていないからです。では何なのかというと、バイオリンで鳥の鳴き声をまねるように、ディレイでドラムの音をまねた芸術作品です。ここでの芸術とは人間が感覚でパラメータを設定したということを意味しています。

GenericDrum はバスドラムやスネアドラムなどの筒に膜が張ってある低めのドラムの音は得意ですが、シンバルのような薄い金属板の質感は苦手です。ドラムの膜の上に手を置いて擦るような演奏や、ハイハットのクローズのような衝撃とともに音を止める表現には対応していません。これは今後の課題です。

ドラムの音をまねるには、本物のドラムと似たような構造を作ればいいわけです。 GenericDrum は大まかに以下の部品に分けることができます。 () は対応する GUI 上のセクションを示しています。

- ばちと打面の衝突 (Impact)
- ワイヤ (Wire)
- プライマリの打面 (Primary Membrane)
- セカンダリの打面 (Secondary Membrane)

ドラムは手やばちで打面を叩くことで音が出ます。 Impact セクションでは、この叩く動作によって起きるノイズを生成します。音としてはホワイトノイズにローパスがかかった信号を生成します。また `Echo` によってドラムが揺れてスタンドなどと接触するときにでるカチャカチャという音をまねることができます。

ワイヤはスネアドラムのスナッピーを想定した部品で、プライマリと衝突するようになっています。中身は直列につながったディレイです。 `Collision Distance` でプライマリとの衝突が起こる距離を変えることができます。これはスナッピーを裏面に近づけたり離したりという調節をまねています。また `Rattle-Squeak Mix` によって衝突の質感を変えることができます。特に squeak 側 (1.0) に寄せるとクイーカに似た音が出せることがありますが、擦る量をうまく制御する仕組みはありません。

プライマリとセカンダリの打面には impact セクションからの衝突が等しく伝わります。この挙動は非現実的ですが、楽器としてはいい音が出ます。 1 つの打面は 1 つのフィードバックディレイネットワーク (FDN) からなります。 FDN のフィードバック経路にはバンドパスフィルタが設けられており、このバンドパスのカットオフ周波数と Q 、またディレイ時間の組み合わせによって打面の質感を変えることができます。特に Q を下げると明るい音になります。

FDN 内のフィードバック信号によってディレイ時間を変調することで、薄い膜の振動の非線形性をまねています。膜は揺れているときに伸び縮みしますが、定常状態から離れた分だけ内部的なストレスによって張力が一時的に増えるはずです。そして、張力が増えるということは音のピッチが上がることを意味します。これを FDN に当てはめると、フィードバックされた信号の振幅に応じてディレイ時間を短くすることでピッチを上げるという実装が考えられます。

衝突の計算には質量が等しい場合の完全弾性衝突を使っています。衝突後に通る FDN のフィードバック係数やバンドパスで振幅が減衰するので、衝突時に減衰を行わなくても音は止まります。また、衝突直後の振幅を溜め込んで、少しずつシステムに還流させることで、スネアドラムと似たような音が出るようにチューニングしています。ディレイは波の伝搬を近似できますが、伝搬の途中の状態は表現できません。したがって伝搬の途中で起こる衝突も表現できません。波の伝搬の途中で衝突が起こらないという癖は `Delay` の値を低くすると顕著に現れます。

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

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

![](img/GenericDrum.svg)

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

- \[dB\] : デシベル (decibel) 。
- \[s\] : 秒 (second) 。
- \[Hz\] : 周波数 (Hertz) 。
- \[sample\] : サンプル数。 1 サンプルは `1 / (サンプリング周波数)` 秒。
- \[oct\] : オクターブ (octave) 。
- \[st.\] : 半音 (semitone)。 1 半音は `1 / 12` オクターブ。
- \[cent\] : セント。 1 セントは `1 / 100` 半音。

### Mix & Options
Output \[dB\]

:   出力ゲインです。

Highpass \[Hz\]

:   出力の直前に通すことができるハイパスフィルタです。

    **警告**: `Highpass` のオン・オフを切り替えるとポップノイズが出ることがあります。

2x Sampling \[Hz\]

:   有効時に 2 倍のオーバーサンプリングを行います。

    **警告**: 値を変更するとポップノイズが出ることがあります。

Normalize Gain

:   有効時に以下の値に応じてゲインを自動的に調節します。

    - ノートの音程。
    - Impact セクションの `Noise Lowpass` 。

Reset Seed at Note-on

:   有効時にノートオンのたびに衝突のノイズに使われる乱数のシードをリセットします。

    チェックを外すと音がよれて人間味が出ます。

Prevent Blow Up

:   有効時にワイヤ周りのゲインを下げることで内部的な発散を抑えます。

    ワイヤが発散すると爆発するように大きな音が出ます。 `Prevent Blow Up` はこの爆発を抑えますが、副作用としてざらついた質感が消えた迫力のない音になりがちです。 Wire セクションで以下の操作を行えば、多少ざらつきを出すことができます。

    - `Decay` を上げる。
    - `Collision Distance` を下げる。
    - `Rattle-Squeak Mix` を下げる。

    上記の操作を行った後に `Prevent Blow Up` を無効にすると発散しやすい状態となっているので注意してください。

### Stereo Unison
`Stereo Unison` を有効にすると、左右のチャンネルで異なるワイヤ、プライマリ、セカンダリを使って計算を行います。ただし CPU 負荷が約 2 倍に増えます。

Stereo Balance

:   左右のチャンネルのゲインを調整します。

    パンとは異なり、左右のチャンネルはミックスされません。

Stereo Merge

:   ステレオの広がりを調整します。

### External Input
External Input セクションには外部入力に関する設定が配置されています。

外部入力の使用には 2 つの場合分けがあります。

- マイクからの入力を使う場合。
- 他のシンセサイザを使う場合。

マイクからの入力を使う場合は `Automatic Trigger` を有効にして、 `Trigger Threshold` の値を調節してください。

他のシンセサイザを使う場合は、外部入力と共にノートイベントを GenericDrum と共有するようにルーティングすることで正確にノートオンを合わせることができます。このとき `Automatic Trigger` は無効にしてください。

外部入力やノートイベントのルーティングは使用している DAW のマニュアルを参照してください。

External Gain \[dB\]

:   外部入力のゲインです。

Trigger Threshold \[dB\]

:   自動トリガのしきい値です。

Automatic Trigger

:   有効時に自動トリガを有効にします。

### Tuning
Tuning セクションにはノートとピッチベンドに関するパラメータが配置されています。

Note -> Pitch

:   ノートの音程によるピッチの変調量です。

    `Note -> Pitch` の値によらず、音程が A3 (MIDI ノート番号でいうと 57) のときにピッチの変調量が 0 となります。

    `Note -> Pitch` の値が 0.0 のとき、ノートのピッチは無視されます。

    `Note -> Pitch` の値が 1.0 のときに音程がピッチにそのまま反映されます。ただしドラムの音ははっきりとした音程を持たないのでチューニングがあっていないように聞こえることがあります。また、実装の都合により音が高くなるほどチューニングが狂います。

    `Note -> Pitch` の値が -1.0 のとき、音程の上下が逆転します。

Semitone

:   半音単位でノートの音程をトランスポーズします。

    **注意**: `Note -> Pitch` が 0.0 のときは無効です。

Cent

:   セント単位でノートの音程をトランスポーズします。

    **注意**: `Note -> Pitch` が 0.0 のときは無効です。

Pitch Bend Range \[st.\]

:   ピッチベンドの範囲です。単位は半音です。

Slide Time \[s\]

:   2 つ以上のノートが同時に演奏されたときにピッチをスライドする大まかな時間です。

### Impact
Impact セクションには、ばちと打面の衝突を模倣する部分のパラメータが配置されています。

Seed

:   乱数のシードです。

    シードを変更すると、大まかな質感を維持しながら音を変えることができます。

    GenericDrum は衝突のノイズの生成と、内部的なパラメータの設定に使うための 2 つの乱数生成器を備えています。ノイズの生成については `Reset Seed at Note-on` によってノートオンごとにシードをリセットすることができます。

Noise Decay \[s\]

:   ノイズの大まかな減衰時間です。

Noise Lowpass \[Hz\]

:   ノイズが通過するローパスフィルタのカットオフ周波数です。

    `Normalize Gain` の有効時は `Noise Lowpass` の値が大きいほど音が小さくなります。

Echo \[Hz\]

:   ノイズにかけるエコーの全長を表す周波数です。

    このエコーはドラムとスタンドの衝突によるカチャカチャという音の表現のために備えられています。

### Wire
Wire セクションにはスナッピーのような打面に接するワイヤを模倣する部分のパラメータが配置されています。

Impact-Wire Mix

:   衝突のノイズと、ワイヤからの出力を混ぜる比率です。

    0.0 で衝突のノイズのみ、 1.0 でワイヤからの出力のみとなります。

Membrane-Wire Mix

:   プライマリの打面と、ワイヤからの出力を混ぜる比率です。

    0.0 でプライマリの出力のみ、 1.0 でワイヤからの出力のみとなります。

Frequency \[Hz\]

:   ワイヤ全体の周波数です。

    ワイヤは 4 つの区間に分割されて計算されるので `Frequency` で設定した周波数だけが得られるわけではありません。

Decay \[s\]

:   ワイヤ出力の大まかな減衰時間です。

    **警告**: `Prevent Blow Up` の無効時は `Decay` の値を上げると発散しやすくなります。

Collision Distance

:   ワイヤとプライマリの衝突を判定するときに使われるしきい値です。

    **警告**: `Collision Distance` の値が小さいときは `Decay` による十分な減衰がかかるまで、一時的に発散することがあります。発散を防ぐためには値を上げてください。

Rattle-Squeak Mix

:   衝突の質感です。

    `Rattle-Squeak Mix` の値が 0.0 のときはスナッピーがぶつかるざらついた音、 1.0 のときは打面を擦るような音が出ます。

    **警告**: `Prevent Blow Up` の無効時は `Rattle-Squeak Mix` の値が 0.0 に近づくほど発散しやすくなります。

### Membrane Tone
Membrane Tone セクションには打面を表す FDN のフィードバックに関するパラメータが配置されています。 Membrane Tone セクションの設定はプライマリとセカンダリの両方で共有されます。

Cross Feedback Gain

:   打面の音の減衰の速さを調整するゲインです。

    **警告**: ``Cross Feedback Gain` が 1.0 に近づくと発振あるいは発散しやすくなります。

Consistency

:   `Cross Feedback Ratio` をノートオンごとにランダマイズする割合です。

    0 のときは完全にランダム、 1 のときはランダマイズが無効になります。

Cross Feedback Ratio

:   打面のトーンを調整する値です。

    `Cross Feedback Ratio` の値はハウスホルダー変換によって FDN のフィードバック行列へと変換されます。

    `Cross Feedback Ratio` の値がすべて 0.0 のとき FDN 内のディレイは互いにフィードバックをかけなくなります。このとき音のピッチは聞き取りやすくなりますが、薄い膜や板を叩いたような音としての質感は薄くなります。

    `Cross Feedback Ratio` の値がすべて 1.0 のとき、薄い膜の振動のような質感に近くなります。ただし Primary Membrane セクションの各値に応じて質感は大きく変わります。

    `Cross Feedback Gain` や `Collision Distance` の値をできる限り変えずに発振や発散を防ぐときは `Cross Feedback Ratio` の値を変えると効果的です。

### Pitch Texture
Pitch Texture セクションには打面を表す FDN の内部的なピッチに関するパラメータが配置されています。

Delay Time Spread

:   FDN のディレイ時間の分布の幅です。

BP Cut Spread

:   FDN のフィードバック経路に位置するバンドパスフィルタのカットオフ周波数の分布の幅です。

Pitch Random \[cent\]

:   ランダムにピッチを変更する量です。

### Pitch Envelope
ピッチエンベロープは FDN のディレイ時間とバンドパスのカットオフ周波数を変調します。

Attack \[s\]

:   エンベロープの大まかな立ち上がり時間です。

    **注意**: `Decay` の値より立ち上がりが長くなることはありません。

Decay \[s\]

:   エンベロープの大まかな減衰時間です。

Amount \[oct\]

:   エンベロープによるピッチの変調量です。

### Primary Membrane
Pitch Type

:   FDN のディレイ時間の分布の種類です。

    **注意**: `- Reserved * -` を選択しないでください。 `- Reserved * -` は後で異なる `Pitch Type` を追加するために予約された空のオプションです。 `- Reserved * -` が選択されたときは `Harmonic` にフォールバックします。

Delay \[Hz\]

:   FDN のディレイ時間の基準値です。

    FDN 内では `Delay` の周波数となるフィードバック経路が必ず一つは用意されますが、あくまでも目安となる値であり、正確なピッチを表すわけではありません。これは FDN 内でフィードバックが交差することによるカオスな挙動が原因です。ピッチの変化は `Cross Feedback Ratio` の設定に依存します。

Delay Modulation \[sample\]

:   FDN のフィードバックの振幅に応じてディレイ時間を変調する量です。

    **警告**: `Delay Modulation` の値が大きくなるほど発振あるいは発散しやすくなります。

BP Cut \[oct\]

:   `Delay` で設定された周波数に対するプライマリのバンドパスのカットオフ周波数の比率です。

    シンバルのような高い音を作るときには `BP Cut` を上げると効果的です。

    `Delay Modulation` によるバリつきをとって滑らかするには `BP Cut` を下げると効果的です。

BP Q

:   プライマリのバンドパスの Q 値です。

    `BP Q` が小さいと帯域幅が広くなるため、高く、長い音になります。ただし発振しやすくなります。逆に `BP Q` が大きいと帯域幅が狭くなるため、低く、短い音になります。

    **警告**: `BP Q` の値が大きくなるほど発振あるいは発散しやすくなります。

### Secondary Membrane
セカンダリは原則として Primary Membrane セクションの値を継承します。

Mix

:   プライマリと混ぜる比率です。 1.0 のときセカンダリからの出力だけが聞こえるようになります。

    **注意**: 値を 0.0 あるいは 1.0 に設定しても衝突の計算は行われます。衝突を止めるには `Collision Distance` の値を上げてください。

Pitch Offset \[oct\]

:   プライマリに対するピッチの比率です。

    0.0 のときは Primary Membrane セクションと同じ値が使われます。

    `Pitch Offset` と `Q Offset` の調整は、スネアドラムの片面のチューニングをずらすような操作と似ています。

Q Offset \[oct\]

:   プライマリに対するバンドパスの Q の比率です。

Collision Distance

:   プライマリとセカンダリの衝突を判定するときに使われるしきい値です。

    **警告**: `Collision Distance` の値が小さいときは発振することがあります。発振を防ぐためには値を上げてください。

## チェンジログ
{%- for version, logs in changelog["GenericDrum"].items() %}
- {{version}}
  {%- for log in logs["ja"] %}
  - {{ log }}
  {%- endfor %}
{%- endfor %}

## 旧バージョン
{%- if old_download_link["GenericDrum"]|length == 0 %}
旧バージョンはありません。
{%- else %}
  {%- for x in old_download_link["GenericDrum"] %}
- [GenericDrum {{ x["version"] }} - VST 3 (github.com)]({{ x["url"] }})
  {%- endfor %}
{%- endif %}

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

- [https://github.com/ryukau/VSTPlugins/tree/master/License](https://github.com/ryukau/VSTPlugins/tree/master/License)

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

### VST® について
VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.
