From 91efdd064ad95d0c9f41009859332ff43df768ad Mon Sep 17 00:00:00 2001 From: Takamitsu Endo Date: Wed, 11 Dec 2019 15:40:08 +0900 Subject: [PATCH] Update documentation --- docs/dev_note/vst3_dev.html | 1477 +++++++++-------- docs/index.html | 8 + docs/index.md | 9 + docs/manual/FDNCymbal/FDNCymbal_en.html | 9 +- docs/manual/FDNCymbal/FDNCymbal_en.md | 7 +- docs/manual/FDNCymbal/FDNCymbal_ja.html | 9 +- docs/manual/FDNCymbal/FDNCymbal_ja.md | 7 +- .../IterativeSinCluster_en.html | 418 +++++ .../IterativeSinCluster_en.md | 193 +++ .../IterativeSinCluster_ja.html | 431 +++++ .../IterativeSinCluster_ja.md | 209 +++ ...VST_Compatible_Logo_Steinberg_negative.svg | 82 + .../img/iterativesincluster.png | Bin 0 -> 39318 bytes docs/manual/SevenDelay/SevenDelay_en.html | 9 +- docs/manual/SevenDelay/SevenDelay_en.md | 7 +- docs/manual/SevenDelay/SevenDelay_ja.html | 9 +- docs/manual/SevenDelay/SevenDelay_ja.md | 7 +- docs/manual/SyncSawSynth/SyncSawSynth_en.html | 8 +- docs/manual/SyncSawSynth/SyncSawSynth_en.md | 6 +- docs/manual/SyncSawSynth/SyncSawSynth_ja.html | 8 +- docs/manual/SyncSawSynth/SyncSawSynth_ja.md | 6 +- .../TrapezoidSynth/TrapezoidSynth_en.html | 6 + .../TrapezoidSynth/TrapezoidSynth_en.md | 4 + .../TrapezoidSynth/TrapezoidSynth_ja.html | 6 + .../TrapezoidSynth/TrapezoidSynth_ja.md | 4 + docs/manual/WaveCymbal/WaveCymbal_en.html | 9 +- docs/manual/WaveCymbal/WaveCymbal_en.md | 7 +- docs/manual/WaveCymbal/WaveCymbal_ja.html | 9 +- docs/manual/WaveCymbal/WaveCymbal_ja.md | 7 +- 29 files changed, 2237 insertions(+), 734 deletions(-) create mode 100644 docs/manual/IterativeSinCluster/IterativeSinCluster_en.html create mode 100644 docs/manual/IterativeSinCluster/IterativeSinCluster_en.md create mode 100644 docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html create mode 100644 docs/manual/IterativeSinCluster/IterativeSinCluster_ja.md create mode 100644 docs/manual/IterativeSinCluster/img/VST_Compatible_Logo_Steinberg_negative.svg create mode 100644 docs/manual/IterativeSinCluster/img/iterativesincluster.png diff --git a/docs/dev_note/vst3_dev.html b/docs/dev_note/vst3_dev.html index 5d34eac0..cc73083d 100644 --- a/docs/dev_note/vst3_dev.html +++ b/docs/dev_note/vst3_dev.html @@ -5,7 +5,7 @@ - + vst3_dev + + + + + +
+

Back to Index

+

+ Update: 2019-12-09 +

+
+ Table of Contents + +
+
+

IterativeSinCluster

+

+

IterativeSinCluster is an additive synthesizer. This synth computes 512 sine waves for each note to make tone cluster.

+ +

The package includes following builds:

+ +

IterativeSinCluster requires CPU to support AVX2 instructions.

+

macOS build isn’t tested because I don’t have Mac. If you found a bug, please file a issue to GitHub repository or send email to ryukau@gmail.com.

+

Linux build is built on Ubuntu 18.0.4 and tested on Bitwig 3.0.3 and Reaper 5.983. Both seems to have problem to display GUI, therefore GUI is currently disabled for Linux build.

+

Installation

+

Place IterativeSinCluster.vst3 directory to:

+ +

DAW may provides additional VST3 directory. For more information, please refer to the manual of the DAW.

+

Linux Specific

+

On Ubuntu 18.0.4, those packages are required.

+
sudo apt install libxcb-cursor0  libxkbcommon-x11-0
+

If DAW doesn’t recognize the plugin, take a look at Package Requirements section of the link below and make sure all the VST3 related package is installed.

+ +

REAPER 5.983 on Linux may not recognize IterativeSinCluster. A workaround is to delete a file ~/.config/REAPER/reaper-vstplugins64.ini and restart REAPER.

+

Controls

+

Knob and slider can do:

+ +

Parameters

+

Gain

+

Boost, Gain

+

Both controls output gain. Peak value of output will be Boost * Gain.

+

It’s possible that output gain becomes too small while changing gain of Note, Chord, Overtone. Boost can be useful in this situation.

+

ADSR

+

Parameters for gain envelope.

+ +

Curve

+

Change attack curve of gain envelope.

+

Shelving

+

Cutoff freqeuncy can be changed by Semi, which is relative to a note frequency. For example, if the note is C4 and Semi is 12.000, cutoff frequency is set to C4 + 12 semitone = C5.

+ +

Pitch

+

Add Aliasing

+

When checked, the synth enables rendering of sine waves over nyquist frequency.

+

Roughly speaking, nyquist frequency is the highest frequency that can be reconstructed from recorded digital signal. When generating sound, it’s possible to set value that is higher than nyquist frequency. However, the result may contain unexpected frequency due to a phenomenon called aliasing. Add Aliasing is option to add those aliasing noise.

+

Reverse Semi

+

When checked, negate sign of Semi. For example, 7.000 becomes -7.000.

+

Octave

+

Note octave.

+

ET

+

ET stands for equal temperament. This parameter can be used to change tuning of Semi and Milli.

+

Note that this parameter is not to change tuning of notes sent from plugin host. Only affect to internal parameters.

+

Multiply, Modulo

+

Change sine wave frequency.

+

Equation is noteFrequency * (1 + fmod(Multiply * pitch, Modulo)). pitch is calculated from Note, Chord and Overtone. fmod(a, b) is a function that returns reminder of a / b.

+

Smooth

+

Time length to change some parameter value to current one. Unit is in second.

+

List of parameters related to Smooth. * represents wild card.

+ +

Other parameter uses the value obtained from the timing of note-on for entire duration of a note.

+

nVoice

+

Maximum polyphony. Lowering the number of this option reduces CPU load.

+

Random

+

Retrigger

+

When checked, reset random seed for each note-on.

+

Seed

+

Random seed. This value change random number sequence.

+

To Gain

+

Amount of randomization to sine wave gain. Randomization is done for each note-on.

+

To Pitch

+

Amount of randomization to sine wave pitch. Randomization is done for each note-on.

+

Note, Chord, Overtone

+

Change sine wave gain and pitch.

+

1 Note have 16 Overtone. 1 Chord consists of 8 Note. 4 Chord are available to use.

+

Common parameters for Note and Chord.

+ +

Leftmost of Overtone is gain of fundamental frequency (1st overtone) of a note. For each bar from left represents 1st, 2nd, 3rd, … , 16th overtone gain.

+

Below is the summary of calculation of sine wave frequency.

+
function toneToPitch(semi, milli):
+  return 2 ^ (1000 * semi + milli) / (ET * 1000)
+
+for each Chord:
+  chordPitch = toneToPitch(Chord.semi, Chord.milli)
+  for each Note:
+    notePitch = toneToPitch(Note.semi, Note.milli)
+    for each Overtone:
+      frequency = midiNoteFrequency
+        * (1 + mod(Multiply * Overtone * notePitch * chordPitch, Modulo))
+

Chorus

+

Mix

+

Change Dry/Wet mix ratio.

+

Freq

+

Chorus LFO frequency.

+

Depth

+

Change stereo spread.

+

Range

+

Amount of modulation from LFO to delay time. There are three delays in this chorus.

+

Time

+

Delay time.

+

Phase

+

LFO phase.

+

Offset

+

Phase difference between delays.

+

Feedback

+

Feedback of delay.

+

Key Follow

+

When checked, change delay time relative to note frequency.

+

Change Log

+ +

License

+

IterativeSinCluster is licensed under GPLv3. Complete licenses are linked below.

+ +

If the link above doesn’t work, please send email to ryukau@gmail.com.

+

About VST

+

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

+ + + + + diff --git a/docs/manual/IterativeSinCluster/IterativeSinCluster_en.md b/docs/manual/IterativeSinCluster/IterativeSinCluster_en.md new file mode 100644 index 00000000..34cb5d3f --- /dev/null +++ b/docs/manual/IterativeSinCluster/IterativeSinCluster_en.md @@ -0,0 +1,193 @@ +# IterativeSinCluster +![](img/iterativesincluster.png) + +IterativeSinCluster is an additive synthesizer. This synth computes 512 sine waves for each note to make tone cluster. + +- [Download IterativeSinCluster 0.1.0 - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/IterativeSinCluster0.1.0/IterativeSinCluster0.1.0.zip) VST compatible logo. + +The package includes following builds: + +- Windows 64bit +- Linux 64bit +- macOS 64bit + +IterativeSinCluster requires CPU to support AVX2 instructions. + +macOS build isn't tested because I don't have Mac. If you found a bug, please file a issue to [GitHub repository](https://github.com/ryukau/VSTPlugins) or send email to `ryukau@gmail.com`. + +Linux build is built on Ubuntu 18.0.4 and tested on Bitwig 3.0.3 and Reaper 5.983. Both seems to have problem to display GUI, therefore GUI is currently disabled for Linux build. + +## Installation +Place `IterativeSinCluster.vst3` directory to: + +- `/Program Files/Common Files/VST3/` for Windows. +- `$HOME/.vst3/` for Linux. +- `/Users/$USERNAME/Library/Audio/Plug-ins/VST3/` for macOS. + +DAW may provides additional VST3 directory. For more information, please refer to the manual of the DAW. + +### Linux Specific +On Ubuntu 18.0.4, those packages are required. + +```bash +sudo apt install libxcb-cursor0 libxkbcommon-x11-0 +``` + +If DAW doesn't recognize the plugin, take a look at `Package Requirements` section of the link below and make sure all the VST3 related package is installed. + +- [VST 3 Interfaces: Setup Linux for building VST 3 Plug-ins](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/linuxSetup.html) + +REAPER 5.983 on Linux may not recognize IterativeSinCluster. A workaround is to delete a file `~/.config/REAPER/reaper-vstplugins64.ini` and restart REAPER. + +## Controls +Knob and slider can do: + +- Ctrl + Left Click: Reset value. +- Shift + Left Drag: Fine adjustment. + +## Parameters +### Gain +#### Boost, Gain +Both controls output gain. Peak value of output will be `Boost * Gain`. + +It's possible that output gain becomes too small while changing gain of `Note`, `Chord`, `Overtone`. `Boost` can be useful in this situation. + +#### ADSR +Parameters for gain envelope. + +- `A` : Attack time which is the length from note-on to reaching peak value. +- `D` : Decay time which is the length from peak value to reaching sustain level. +- `S` : Sustain level which is the gain after decay. +- `R` : Release time which is the length from note-off to the gain reaching to 0. + +#### Curve +Change attack curve of gain envelope. + +### Shelving +Cutoff freqeuncy can be changed by `Semi`, which is relative to a note frequency. For example, if the note is C4 and `Semi` is 12.000, cutoff frequency is set to `C4 + 12 semitone = C5`. + +- `Low` shelving changes `Gain` of sine waves **less than or equal to** cutoff frequency specified by `Semi`. +- `High` shelving changes `Gain` of sine waves **greater than or equal to** cutoff frequency specified by `Semi`. + +### Pitch +#### Add Aliasing +When checked, the synth enables rendering of sine waves over nyquist frequency. + +Roughly speaking, nyquist frequency is the highest frequency that can be reconstructed from recorded digital signal. When generating sound, it's possible to set value that is higher than nyquist frequency. However, the result may contain unexpected frequency due to a phenomenon called aliasing. `Add Aliasing` is option to add those aliasing noise. + +#### Reverse Semi +When checked, negate sign of `Semi`. For example, 7.000 becomes -7.000. + +#### Octave +Note octave. + +#### ET +`ET` stands for equal temperament. This parameter can be used to change tuning of `Semi` and `Milli`. + +Note that this parameter is not to change tuning of notes sent from plugin host. Only affect to internal parameters. + +#### Multiply, Modulo +Change sine wave frequency. + +Equation is `noteFrequency * (1 + fmod(Multiply * pitch, Modulo))`. `pitch` is calculated from `Note`, `Chord` and `Overtone`. `fmod(a, b)` is a function that returns reminder of `a / b`. + +### Smooth +Time length to change some parameter value to current one. Unit is in second. + +List of parameters related to `Smooth`. `*` represents wild card. + +- All parameters in `Gain` section. +- `Chord.Pan` +- All parameters in `Chorus` section, except `Key Follow`. + +Other parameter uses the value obtained from the timing of note-on for entire duration of a note. + +### nVoice +Maximum polyphony. Lowering the number of this option reduces CPU load. + +### Random +#### Retrigger +When checked, reset random seed for each note-on. + +#### Seed +Random seed. This value change random number sequence. + +#### To Gain +Amount of randomization to sine wave gain. Randomization is done for each note-on. + +#### To Pitch +Amount of randomization to sine wave pitch. Randomization is done for each note-on. + +### Note, Chord, Overtone +Change sine wave gain and pitch. + +1 `Note` have 16 `Overtone`. 1 `Chord` consists of 8 `Note`. 4 `Chord` are available to use. + +Common parameters for `Note` and `Chord`. + +- `Gain` : Sine wave gain. +- `Semi` : Distance from note frequency. Unit is semitone. +- `Milli` : Distance from note frequency. Unit is 1 / 1000 semitone, or 1 / 10 cent. + +Leftmost of `Overtone` is gain of fundamental frequency (1st overtone) of a note. For each bar from left represents 1st, 2nd, 3rd, ... , 16th overtone gain. + +Below is the summary of calculation of sine wave frequency. + +``` +function toneToPitch(semi, milli): + return 2 ^ (1000 * semi + milli) / (ET * 1000) + +for each Chord: + chordPitch = toneToPitch(Chord.semi, Chord.milli) + for each Note: + notePitch = toneToPitch(Note.semi, Note.milli) + for each Overtone: + frequency = midiNoteFrequency + * (1 + mod(Multiply * Overtone * notePitch * chordPitch, Modulo)) +``` + +### Chorus +#### Mix +Change Dry/Wet mix ratio. + +#### Freq +Chorus LFO frequency. + +#### Depth +Change stereo spread. + +#### Range +Amount of modulation from LFO to delay time. There are three delays in this chorus. + +#### Time +Delay time. + +#### Phase +LFO phase. + +#### Offset +Phase difference between delays. + +#### Feedback +Feedback of delay. + +#### Key Follow +When checked, change delay time relative to note frequency. + +## Change Log +- 0.1.0 + - Initial release. + +## License +IterativeSinCluster is licensed under GPLv3. Complete licenses are linked below. + +- [https://github.com/ryukau/VSTPlugins/tree/master/License](https://github.com/ryukau/VSTPlugins/tree/master/License) + +If the link above doesn't work, please send email to `ryukau@gmail.com`. + +### About VST +VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries. diff --git a/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html b/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html new file mode 100644 index 00000000..a8055e1b --- /dev/null +++ b/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html @@ -0,0 +1,431 @@ + + + + + + + + +IterativeSinCluster_ja + + + + + + +
+

Back to Index

+

+ Update: 2019-12-11 +

+
+ Table of Contents + +
+
+

IterativeSinCluster

+

+

IterativeSinClusterイテレイティブ サイン クラスタはノート 1 つあたり 512 のサイン波を計算する加算合成シンセサイザです。

+ +

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

+ +

IterativeSinCluster を使うには CPU が AVX2 をサポートしている必要があります。

+

Mac を持っていないので、 macOS ビルドはテストできていません。もしバグを見つけたときは GitHub のリポジトリに issue を作るか、 ryukau@gmail.com までメールを送っていただければ対応します。

+

Linux ビルドは Ubuntu 18.0.4 でビルドしています。また Bitwig 3.0.3 と REAPER 5.983 で動作確認を行っています。どちらも GUI の表示に問題があったので、今のところ Linux ビルドでは GUI を無効にしています。

+

インストール

+

IterativeSinCluster.vst3 を OS ごとに決められたディレクトリに配置してください。

+ +

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

+

Linux

+

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

+
sudo apt install libxcb-cursor0  libxkbcommon-x11-0
+

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

+ +

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

+

操作

+

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

+ +

GainSemi などで使われている数値スライダーでは、上記に加えて次の操作ができます。

+ +

Overtone では次の操作ができます。

+ +

操作できる箇所を右クリックすると DAW によって提供されているコンテキストメニューを開くことができます。

+

パラメータ

+

Gain

+

Boost, Gain

+

どちらも音量を調整します。出力のピーク値は Boost * Gain となります。

+

NoteChordOvertone のゲインを調整すると音がかなり小さくなることがあります。そんなときに Boost が使えます。

+

ADSR

+

音量エンベロープのパラメータです。

+ +

Curve

+

音量エンベロープのアタックの曲線を変更するパラメータ。

+

Shelving

+

LowHigh の 2 つのシェルビングができます。

+

カットオフ周波数はノートの音程を基準として、 Semi で指定した半音単位で相対的に決まります。例えば音程が C4 、 Semi が 12.000 のときは カットオフ周波数は C4 + 12 半音 = C5 になります。

+

変更する音量は Gain で調整できます。

+ +

Pitch

+

Add Aliasing

+

チェックを入れると、ナイキスト周波数より高い周波数が指定されたサイン波もレンダリングします。

+

ナイキスト周波数とは、ざっくりいえば録音したデータが再現可能な最高周波数のことです。音を生成するときはナイキスト周波数以上の値を指定することができますが、折り返し(エイリアシング)と呼ばれる現象によって計算結果は予期しない周波数になってしまいます。 Add Aliasing は、こうしたエイリアシングノイズを足し合わせるオプションです。

+

Reverse Semi

+

チェックを入れると、 Semi の符号を逆転させます。たとえば 7.000-7.000 として処理されます。

+

Octave

+

ノートのオクターブです。

+

ET

+

平均律の値です。この値によって SemiMilli の調律を変更できます。例えば ET が 12 なら 12 平均律になります。 ET は Equal Temperament の略です。

+

ホスト側から送られてくるノートの調律を変更するわけではないので注意してください。

+

Multiply, Modulo

+

サイン波の周波数を変更します。

+

計算式は ノートの周波数 * (1 + fmod(Multiply * pitch, Modulo)) のようになっています。 pitchNoteChordOvertone で指定した値から計算されるピッチです。 fmod(a, b)ab で割った余りを計算する関数です。

+

Smooth

+

特定の値を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。

+

Smooth と関連するパラメータのリストです。 * はワイルドカードです。

+ +

他のパラメータはノートオンのタイミングで指定されていた値をノートの発音が終わるまで続けて使います。

+

nVoice

+

最大同時発音数です。

+

Random

+

Retrigger

+

チェックを入れると、ノートオンごとに乱数シードをリセットします。

+

Seed

+

乱数のシード値です。この値を変えると生成される乱数が変わります。

+

To Gain

+

ノートオンごとに各サイン波の音量をランダマイズする度合いです。

+

To Pitch

+

ノートオンごとに各サイン波の周波数をランダマイズする度合いです。

+

Note, Chord, Overtone

+

サイン波のピッチと音量を指定します。

+

1つの Note あたり 16 の Overtone が発音されます。8つの Note で 1 つの Chord になります。そして 4 つの Chord が使えます。

+

NoteChord に共通のパラメータです。

+ +

Overtone は左端が基本周波数(第1倍音)の音量で、右に一つ進むごとに第2倍音、第3倍音、 … 、第16倍音の音量を表しています。

+

サイン波の周波数の計算式は次のようになっています。

+
function toneToPitch(semi, milli):
+  return 2 ^ (1000 * semi + milli) / (ET * 1000)
+
+for each Chord:
+  chordPitch = toneToPitch(Chord.semi, Chord.milli)
+  for each Note:
+    notePitch = toneToPitch(Note.semi, Note.milli)
+    for each Overtone:
+      frequency = midiNoteFrequency
+        * (1 + mod(Multiply * Overtone * notePitch * chordPitch, Modulo))
+

Chorus

+

Mix

+

Dry/Wet の比率を調整します。

+

Freq

+

コーラスの LFO の周波数です。中央から右に回すと正、左に回すと負の周波数を指定できます。

+

Depth

+

左右の広がりを調整します。

+

Range

+

LFO によってディレイ時間を変調する度合いです。 3 つのディレイが用意されています。

+

Time

+

ディレイ時間です。

+

Phase

+

LFO の位相です。

+

Offset

+

ディレイの間での位相差です。

+

Feedback

+

ディレイのフィードバックです。

+

Key Follow

+

チェックを入れると、ディレイ時間をノートの音程に応じて変更します。

+

チェンジログ

+ +

ライセンス

+

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

+ +

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

+

VST® について

+

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

+ + + + + diff --git a/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.md b/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.md new file mode 100644 index 00000000..b5021f2c --- /dev/null +++ b/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.md @@ -0,0 +1,209 @@ +# IterativeSinCluster +![](img/iterativesincluster.png) + +IterativeSinClusterイテレイティブ サイン クラスタはノート 1 つあたり 512 のサイン波を計算する加算合成シンセサイザです。 + +- [IterativeSinCluster 0.1.0 をダウンロード - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/IterativeSinCluster0.1.0/IterativeSinCluster0.1.0.zip) VST compatible logo. + +パッケージには次のビルドが含まれています。 + +- Windows 64bit +- Linux 64bit +- macOS 64bit + +IterativeSinCluster を使うには CPU が AVX2 をサポートしている必要があります。 + +Mac を持っていないので、 macOS ビルドはテストできていません。もしバグを見つけたときは [GitHub のリポジトリ](https://github.com/ryukau/VSTPlugins)に issue を作るか、 `ryukau@gmail.com` までメールを送っていただければ対応します。 + +Linux ビルドは Ubuntu 18.0.4 でビルドしています。また Bitwig 3.0.3 と REAPER 5.983 で動作確認を行っています。どちらも GUI の表示に問題があったので、今のところ Linux ビルドでは GUI を無効にしています。 + +## インストール +`IterativeSinCluster.vst3` を OS ごとに決められたディレクトリに配置してください。 + +- Windows では `/Program Files/Common Files/VST3/` に配置します。 +- Linux では `$HOME/.vst3/` に配置します。 +- macOS では `/Users/$USERNAME/Library/Audio/Plug-ins/VST3/` に配置します。 + +DAW によっては上記とは別に VST3 をインストールできるディレクトリを提供していることがあります。詳しくは利用している DAW のマニュアルを参照してください。 + +### Linux +Ubuntu 18.0.4 では次のパッケージのインストールが必要です。 + +```bash +sudo apt install libxcb-cursor0 libxkbcommon-x11-0 +``` + +もし DAW がプラグインを認識しないときは、下のリンクの `Package Requirements` を参考にして VST3 に必要なパッケージがすべてインストールされているか確認してみてください。 + +- [VST 3 Interfaces: Setup Linux for building VST 3 Plug-ins](https://steinbergmedia.github.io/vst3_doc/vstinterfaces/linuxSetup.html) + +REAPER 5.983 の Linux 版が IterativeSinCluster を認識しないときは `~/.config/REAPER/reaper-vstplugins64.ini` を削除して REAPER を再起動してみてください。 + +## 操作 +つまみとスライダーでは次の操作ができます。 + +- Ctrl + 左クリック : 値のリセット。 +- Shift + 左ドラッグ : 細かい値の変更。 + +`Gain` 、 `Semi` などで使われている数値スライダーでは、上記に加えて次の操作ができます。 + +- ホイールクリック : 最小値、最大値の切り替え。 + +`Overtone` では次の操作ができます。 + +- Ctrl + 左ドラッグ : 値のリセット。 +- ホイールドラッグ : 値を最小値に設定。 +- Ctrl + ホイールドラッグ : 値を最大値に設定。 + +操作できる箇所を右クリックすると DAW によって提供されているコンテキストメニューを開くことができます。 + +## パラメータ +### Gain +#### Boost, Gain +どちらも音量を調整します。出力のピーク値は `Boost * Gain` となります。 + +`Note` 、 `Chord` 、 `Overtone` のゲインを調整すると音がかなり小さくなることがあります。そんなときに `Boost` が使えます。 + +#### ADSR +音量エンベロープのパラメータです。 + +- `A` (Attack) : 鍵盤を押した瞬間から最大音量になるまでのアタック時間。 +- `D` (Decay) : 最大音量からサステイン音量になるまでのディケイ時間。 +- `S` (Sustain) : アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。 +- `R` (Release) : 鍵盤から指を離したあとに音量が 0 になるまでのリリース時間。 + +#### Curve +音量エンベロープのアタックの曲線を変更するパラメータ。 + +### Shelving +`Low` と `High` の 2 つのシェルビングができます。 + +カットオフ周波数はノートの音程を基準として、 `Semi` で指定した半音単位で相対的に決まります。例えば音程が C4 、 `Semi` が 12.000 のときは カットオフ周波数は `C4 + 12 半音 = C5` になります。 + +変更する音量は `Gain` で調整できます。 + +- `Low` シェルビングは `Semi` で指定したカットオフ周波数**以下**のサイン波の音量を変更します。 +- `High` シェルビングは `Semi` で指定したカットオフ周波数**以上**のサイン波の音量を変更します。 + +### Pitch +#### Add Aliasing +チェックを入れると、ナイキスト周波数より高い周波数が指定されたサイン波もレンダリングします。 + +ナイキスト周波数とは、ざっくりいえば録音したデータが再現可能な最高周波数のことです。音を生成するときはナイキスト周波数以上の値を指定することができますが、折り返し(エイリアシング)と呼ばれる現象によって計算結果は予期しない周波数になってしまいます。 `Add Aliasing` は、こうしたエイリアシングノイズを足し合わせるオプションです。 + +#### Reverse Semi +チェックを入れると、 `Semi` の符号を逆転させます。たとえば `7.000` は `-7.000` として処理されます。 + +#### Octave +ノートのオクターブです。 + +#### ET +平均律の値です。この値によって `Semi` と `Milli` の調律を変更できます。例えば `ET` が 12 なら 12 平均律になります。 `ET` は Equal Temperament の略です。 + +ホスト側から送られてくるノートの調律を変更するわけではないので注意してください。 + +#### Multiply, Modulo +サイン波の周波数を変更します。 + +計算式は `ノートの周波数 * (1 + fmod(Multiply * pitch, Modulo))` のようになっています。 `pitch` は `Note` 、 `Chord` 、 `Overtone` で指定した値から計算されるピッチです。 `fmod(a, b)` は `a` を `b` で割った余りを計算する関数です。 + +### Smooth +特定の値を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。 + +`Smooth` と関連するパラメータのリストです。 `*` はワイルドカードです。 + +- `Gain` セクションの全て +- `Chord.Pan` +- `Chorus` の `Key Follow` 以外 + +他のパラメータはノートオンのタイミングで指定されていた値をノートの発音が終わるまで続けて使います。 + +### nVoice +最大同時発音数です。 + +### Random +#### Retrigger +チェックを入れると、ノートオンごとに乱数シードをリセットします。 + +#### Seed +乱数のシード値です。この値を変えると生成される乱数が変わります。 + +#### To Gain +ノートオンごとに各サイン波の音量をランダマイズする度合いです。 + +#### To Pitch +ノートオンごとに各サイン波の周波数をランダマイズする度合いです。 + +### Note, Chord, Overtone +サイン波のピッチと音量を指定します。 + +1つの `Note` あたり 16 の `Overtone` が発音されます。8つの `Note` で 1 つの `Chord` になります。そして 4 つの `Chord` が使えます。 + +`Note` と `Chord` に共通のパラメータです。 + +- `Gain` : サイン波の音量。 +- `Semi` : ノートの基本周波数からの距離。単位は半音。 +- `Milli` : ノートの基本周波数からの距離。単位は 1 / 1000 半音。 1 / 10 セント。 + +`Overtone` は左端が基本周波数(第1倍音)の音量で、右に一つ進むごとに第2倍音、第3倍音、 ... 、第16倍音の音量を表しています。 + +サイン波の周波数の計算式は次のようになっています。 + +``` +function toneToPitch(semi, milli): + return 2 ^ (1000 * semi + milli) / (ET * 1000) + +for each Chord: + chordPitch = toneToPitch(Chord.semi, Chord.milli) + for each Note: + notePitch = toneToPitch(Note.semi, Note.milli) + for each Overtone: + frequency = midiNoteFrequency + * (1 + mod(Multiply * Overtone * notePitch * chordPitch, Modulo)) +``` + +### Chorus +#### Mix +Dry/Wet の比率を調整します。 + +#### Freq +コーラスの LFO の周波数です。中央から右に回すと正、左に回すと負の周波数を指定できます。 + +#### Depth +左右の広がりを調整します。 + +#### Range +LFO によってディレイ時間を変調する度合いです。 3 つのディレイが用意されています。 + +#### Time +ディレイ時間です。 + +#### Phase +LFO の位相です。 + +#### Offset +ディレイの間での位相差です。 + +#### Feedback +ディレイのフィードバックです。 + +#### Key Follow +チェックを入れると、ディレイ時間をノートの音程に応じて変更します。 + +## チェンジログ +- 0.1.0 + - 初期リリース + +## ライセンス +IterativeSinCluster のライセンスは 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. diff --git a/docs/manual/IterativeSinCluster/img/VST_Compatible_Logo_Steinberg_negative.svg b/docs/manual/IterativeSinCluster/img/VST_Compatible_Logo_Steinberg_negative.svg new file mode 100644 index 00000000..f03d67ac --- /dev/null +++ b/docs/manual/IterativeSinCluster/img/VST_Compatible_Logo_Steinberg_negative.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manual/IterativeSinCluster/img/iterativesincluster.png b/docs/manual/IterativeSinCluster/img/iterativesincluster.png new file mode 100644 index 0000000000000000000000000000000000000000..f0115cd64efaf8875ef61524de7722d29f3a2a40 GIT binary patch literal 39318 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 KpUXO@geCxa3pQu~ literal 0 HcmV?d00001 diff --git a/docs/manual/SevenDelay/SevenDelay_en.html b/docs/manual/SevenDelay/SevenDelay_en.html index 0aaccf97..8e237b54 100644 --- a/docs/manual/SevenDelay/SevenDelay_en.html +++ b/docs/manual/SevenDelay/SevenDelay_en.html @@ -252,7 +252,7 @@

SevenDelay

SevenDelay is a stereo delay with 7th order lagrange interpolated fractional delay and 7x oversampling.

    -
  • Download SevenDelay 0.1.3 - VST® 3 (github.com) Download SevenDelay 0.1.4 - VST® 3 (github.com) VST compatible logo.Hold

    Toggle LFO phase hold. This may be useful for live performance.

    Change Log

      +
    • 0.1.4 +
        +
      • Added support for synchronization between multiple GUI instances.
      • +
      • Fixed a bug that opening splash screen causes crash.
      • +
      • Fixed a bug that crash plugin when reloading.
      • +
      • Fixed GUI to follow host automation.
      • +
    • 0.1.3
      • Fixed smoothing algorithm to prevent blow up.
      • diff --git a/docs/manual/SevenDelay/SevenDelay_en.md b/docs/manual/SevenDelay/SevenDelay_en.md index c520371e..6874dbfb 100644 --- a/docs/manual/SevenDelay/SevenDelay_en.md +++ b/docs/manual/SevenDelay/SevenDelay_en.md @@ -3,7 +3,7 @@ SevenDelay is a stereo delay with 7th order lagrange interpolated fractional delay and 7x oversampling. -- [Download SevenDelay 0.1.3 - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/FDNCymbal0.1.0/SevenDelay0.1.3.zip) VST compatible logo.SevenDelay

        SevenDelayセブンディレイ は7次のラグランジュ補間による分数ディレイと7倍のオーバーサンプリングを使ったステレオディレイです。

          -
        • SevenDelay 0.1.3 をダウンロード - VST® 3 (github.com) SevenDelay 0.1.4 をダウンロード - VST® 3 (github.com) VST compatible logo.Hold

          LFO の位相のホールドの切り替え。ライブ演奏などで役に立つかもしれません。

          チェンジログ

            +
          • 0.1.4 +
              +
            • 複数の GUI インスタンス間で表示を同期するように変更。
            • +
            • スプラッシュスクリーンを開くとクラッシュするバグを修正。
            • +
            • リロード時にクラッシュするバグを修正。
            • +
            • GUI がホストのオートメーションに応じて更新されるように修正。
            • +
          • 0.1.3
            • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
            • diff --git a/docs/manual/SevenDelay/SevenDelay_ja.md b/docs/manual/SevenDelay/SevenDelay_ja.md index 852480a4..ddce340e 100644 --- a/docs/manual/SevenDelay/SevenDelay_ja.md +++ b/docs/manual/SevenDelay/SevenDelay_ja.md @@ -3,7 +3,7 @@ SevenDelayセブンディレイ は7次のラグランジュ補間による分数ディレイと7倍のオーバーサンプリングを使ったステレオディレイです。 -- [SevenDelay 0.1.3 をダウンロード - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/FDNCymbal0.1.0/SevenDelay0.1.3.zip) VST compatible logo.SyncSawSynth

              SyncSawSynth is a 32 voice polyphonic synthesizer using up to 10th order PTR sawtooth oscillator. Just a basic synthesizer but very easy to make a noise similar to low battery sound of some toys.

                -
              • Download SyncSawSynth 0.1.6 - VST® 3 (github.com) Download SyncSawSynth 0.1.7 - VST® 3 (github.com) VST compatible logo.Key->Feed

                Modulation from MIDI note number to feedback. Range is -1.0 to 1.0.

                Change Log

                  +
                • 0.1.7 +
                    +
                  • Added support for synchronization between multiple GUI instances.
                  • +
                  • Fixed a bug that opening splash screen causes crash.
                  • +
                  • Fixed GUI to follow host automation.
                  • +
                • 0.1.6
                  • Fixed note on/off event to be triggered at exact timing.
                  • diff --git a/docs/manual/SyncSawSynth/SyncSawSynth_en.md b/docs/manual/SyncSawSynth/SyncSawSynth_en.md index 024d97cd..f7982691 100644 --- a/docs/manual/SyncSawSynth/SyncSawSynth_en.md +++ b/docs/manual/SyncSawSynth/SyncSawSynth_en.md @@ -3,7 +3,7 @@ SyncSawSynth is a 32 voice polyphonic synthesizer using up to 10th order PTR sawtooth oscillator. Just a basic synthesizer but very easy to make a noise similar to low battery sound of some toys. -- [Download SyncSawSynth 0.1.6 - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/MidiNoteTriggerFix/SyncSawSynth0.1.6.zip) VST compatible logo.SyncSawSynth

                    SyncSawSynthシンクソウシンセは10次までのPTR鋸歯波オシレータが使える32ボイスのポリフォニックシンセサイザです。主にハードシンクと周波数変調で電池が切れかけのおもちゃのような音を作る用途に向いています。もちろん普通の音も出ます。

                      -
                    • SyncSawSynth 0.1.6 をダウンロード - VST® 3 (github.com) SyncSawSynth 0.1.7 をダウンロード - VST® 3 (github.com) VST compatible logo.Key->Feed

                      ノートの MIDI ノート番号によるフィードバックの変調。範囲は -1.0 から 1.0 。

                      チェンジログ

                        +
                      • 0.1.7 +
                          +
                        • 複数の GUI インスタンス間で表示を同期するように変更。
                        • +
                        • スプラッシュスクリーンを開くとクラッシュするバグを修正。
                        • +
                        • GUI がホストのオートメーションに応じて更新されるように修正。
                        • +
                      • 0.1.6
                        • ノートオン・オフが正確なタイミングでトリガされるように修正。
                        • diff --git a/docs/manual/SyncSawSynth/SyncSawSynth_ja.md b/docs/manual/SyncSawSynth/SyncSawSynth_ja.md index 5fcd5000..9323eb83 100644 --- a/docs/manual/SyncSawSynth/SyncSawSynth_ja.md +++ b/docs/manual/SyncSawSynth/SyncSawSynth_ja.md @@ -3,7 +3,7 @@ SyncSawSynthシンクソウシンセは10次までのPTR鋸歯波オシレータが使える32ボイスのポリフォニックシンセサイザです。主にハードシンクと周波数変調で電池が切れかけのおもちゃのような音を作る用途に向いています。もちろん普通の音も出ます。 -- [SyncSawSynth 0.1.6 をダウンロード - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/MidiNoteTriggerFix/SyncSawSynth0.1.6.zip) VST compatible logo.Offset

                          Oscillator 2 slide time with respect to Oscillator 1 slide time.

                          Change Log

                            +
                          • 0.1.2 +
                              +
                            • Added support for synchronization between multiple GUI instances.
                            • +
                            • Fixed a bug that opening splash screen causes crash.
                            • +
                            • Fixed GUI to follow host automation.
                            • +
                          • 0.1.1
                            • Fixed mistake in oscillator implementation.
                            • diff --git a/docs/manual/TrapezoidSynth/TrapezoidSynth_en.md b/docs/manual/TrapezoidSynth/TrapezoidSynth_en.md index bbf69c7d..9b7b99a2 100644 --- a/docs/manual/TrapezoidSynth/TrapezoidSynth_en.md +++ b/docs/manual/TrapezoidSynth/TrapezoidSynth_en.md @@ -258,6 +258,10 @@ Time of pitch sliding. Oscillator 2 slide time with respect to Oscillator 1 slide time. ## Change Log +- 0.1.2 + - Added support for synchronization between multiple GUI instances. + - Fixed a bug that opening splash screen causes crash. + - Fixed GUI to follow host automation. - 0.1.1 - Fixed mistake in oscillator implementation. - 0.1.0 diff --git a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html index 3ef2e8e6..133d7d5b 100644 --- a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html +++ b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html @@ -501,6 +501,12 @@

                              Offset

                              Oscillator 1 のスライド時間に対する Oscillator 2 のスライド時間の比率です。

                              チェンジログ

                                +
                              • 0.1.2 +
                                  +
                                • 複数の GUI インスタンス間で表示を同期するように変更。
                                • +
                                • スプラッシュスクリーンを開くとクラッシュするバグを修正。
                                • +
                                • GUI がホストのオートメーションに応じて更新されるように修正。
                                • +
                              • 0.1.1
                                • オシレータの実装の誤りを修正。
                                • diff --git a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.md b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.md index f911c23d..9c057daf 100644 --- a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.md +++ b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.md @@ -258,6 +258,10 @@ LFO による `Filter.Cut` の変調量です。 Oscillator 1 のスライド時間に対する Oscillator 2 のスライド時間の比率です。 ## チェンジログ +- 0.1.2 + - 複数の GUI インスタンス間で表示を同期するように変更。 + - スプラッシュスクリーンを開くとクラッシュするバグを修正。 + - GUI がホストのオートメーションに応じて更新されるように修正。 - 0.1.1 - オシレータの実装の誤りを修正。 - 0.1.0 diff --git a/docs/manual/WaveCymbal/WaveCymbal_en.html b/docs/manual/WaveCymbal/WaveCymbal_en.html index 5c3d6949..86aca06b 100644 --- a/docs/manual/WaveCymbal/WaveCymbal_en.html +++ b/docs/manual/WaveCymbal/WaveCymbal_en.html @@ -263,7 +263,7 @@

                                  WaveCymbal

                                  WaveCymbal is an attempt to make a cymbal synthesizer with banded wave-guide model. The result is more like dragging bunch of empty cans or thin metal plate on asphalt rather than cymbal.

                                    -
                                  • Download WaveCymbal 0.1.2 - VST® 3 (github.com) Download WaveCymbal 0.1.3 - VST® 3 (github.com) VST compatible logo.Smoothness

                                    Transition time from previous value to current value in seconds. Gain, Excitation.Time, Random.Amount, Bandpass.MinCutoff, Bandpass.MaxCutoff will be affected. Slide effect of OscType.Sustain can be tuned by Smoothness.

                                    Change Log

                                      +
                                    • 0.1.3 +
                                        +
                                      • Added support for synchronization between multiple GUI instances.
                                      • +
                                      • Fixed a bug that opening splash screen causes crash.
                                      • +
                                      • Fixed a bug that crash plugin when reloading.
                                      • +
                                      • Fixed GUI to follow host automation.
                                      • +
                                    • 0.1.2
                                      • Fixed note on/off event to be triggered at exact timing.
                                      • diff --git a/docs/manual/WaveCymbal/WaveCymbal_en.md b/docs/manual/WaveCymbal/WaveCymbal_en.md index 4e36b15b..e05e8123 100644 --- a/docs/manual/WaveCymbal/WaveCymbal_en.md +++ b/docs/manual/WaveCymbal/WaveCymbal_en.md @@ -3,7 +3,7 @@ WaveCymbal is an attempt to make a cymbal synthesizer with banded wave-guide model. The result is more like dragging bunch of empty cans or thin metal plate on asphalt rather than cymbal. -- [Download WaveCymbal 0.1.2 - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/MidiNoteTriggerFix/WaveCymbal0.1.2.zip) VST compatible logo.WaveCymbal

                                        WaveCymbalウェイブシンバルは banded wave-guide という手法を用いてシンバルの音が鳴るはずだったシンセサイザです。実際のところはシンバルというよりも、アスファルトの上でトタン板や紐につないだ空き缶を引きずったときのような音が出ます。

                                          -
                                        • WaveCymbal 0.1.2 をダウンロード - VST® 3 (github.com) WaveCymbal 0.1.3 をダウンロード - VST® 3 (github.com) VST compatible logo.Smoothness

                                          Gain, Excitation.Time, Random.Amount, Bandpass.MinCutoff, Bandpass.MaxCutoff を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。 OscType.Sustain のスライドの長さも Smoothness で調整できます。

                                          チェンジログ

                                            +
                                          • 0.1.3 +
                                              +
                                            • 複数の GUI インスタンス間で表示を同期するように変更。
                                            • +
                                            • スプラッシュスクリーンを開くとクラッシュするバグを修正。
                                            • +
                                            • リロード時にクラッシュするバグを修正。
                                            • +
                                            • GUI がホストのオートメーションに応じて更新されるように修正。
                                            • +
                                          • 0.1.2
                                            • ノートオン・オフが正確なタイミングでトリガされるように修正。
                                            • diff --git a/docs/manual/WaveCymbal/WaveCymbal_ja.md b/docs/manual/WaveCymbal/WaveCymbal_ja.md index 9a073ab7..4f5ece33 100644 --- a/docs/manual/WaveCymbal/WaveCymbal_ja.md +++ b/docs/manual/WaveCymbal/WaveCymbal_ja.md @@ -3,7 +3,7 @@ WaveCymbalウェイブシンバルは banded wave-guide という手法を用いてシンバルの音が鳴るはずだったシンセサイザです。実際のところはシンバルというよりも、アスファルトの上でトタン板や紐につないだ空き缶を引きずったときのような音が出ます。 -- [WaveCymbal 0.1.2 をダウンロード - VST® 3 (github.com)](https://github.com/ryukau/VSTPlugins/releases/download/MidiNoteTriggerFix/WaveCymbal0.1.2.zip)