From b221bc3c07f763be3eaa7c07ca6c1a22a5d48936 Mon Sep 17 00:00:00 2001 From: Takamitsu Endo Date: Sun, 11 Aug 2024 14:37:26 +0900 Subject: [PATCH] Update documentation --- docs/_config.yml | 2 + docs/build.py | 24 +- docs/dev_note/vst3_dev.html | 2616 +++++++------ docs/img/favicon/favicon.png | Bin 0 -> 820 bytes docs/img/favicon/favicon.svg | 118 + docs/img/thumbnail_ArcDark.png | Bin 0 -> 17705 bytes docs/img/thumbnail_BB.png | Bin 0 -> 12570 bytes docs/img/thumbnail_BlackOnWhite.png | Bin 0 -> 16832 bytes docs/img/thumbnail_BlackOnWhiteInvert.png | Bin 0 -> 18685 bytes docs/img/thumbnail_Leaf.png | Bin 0 -> 17727 bytes docs/img/thumbnail_LightOnDark.png | Bin 0 -> 19353 bytes docs/img/thumbnail_OrangeOnBlack.png | Bin 0 -> 18215 bytes docs/img/thumbnail_Orbit.png | Bin 0 -> 17792 bytes docs/img/thumbnail_SoftBlue.png | Bin 0 -> 17248 bytes docs/img/thumbnail_Warmth.png | Bin 0 -> 17302 bytes docs/index.html | 2308 ++++++----- docs/index.md | 360 +- .../AccumulativeRingMod_en.html | 1646 ++++---- .../AccumulativeRingMod_ja.html | 1627 ++++---- docs/manual/BasicLimiter/BasicLimiter_en.html | 2115 +++++----- docs/manual/BasicLimiter/BasicLimiter_ja.html | 2107 +++++----- docs/manual/ClangSynth/ClangSynth_en.html | 3406 +++++++++-------- docs/manual/ClangSynth/ClangSynth_ja.html | 3363 ++++++++-------- .../CollidingCombSynth_en.html | 2276 +++++------ .../CollidingCombSynth_ja.html | 2269 +++++------ .../CombDistortion/CombDistortion_en.html | 1656 ++++---- .../CombDistortion/CombDistortion_ja.html | 1659 ++++---- .../CubicPadSynth/CubicPadSynth_en.html | 2885 +++++++------- .../CubicPadSynth/CubicPadSynth_ja.html | 2891 +++++++------- .../EnvelopedSine/EnvelopedSine_en.html | 2393 ++++++------ .../EnvelopedSine/EnvelopedSine_ja.html | 2386 ++++++------ docs/manual/EsPhaser/EsPhaser_en.html | 1738 +++++---- docs/manual/EsPhaser/EsPhaser_ja.html | 1765 ++++----- docs/manual/FDN64Reverb/FDN64Reverb_en.html | 2366 ++++++------ docs/manual/FDN64Reverb/FDN64Reverb_ja.html | 2371 ++++++------ docs/manual/FDNCymbal/FDNCymbal_en.html | 2025 +++++----- docs/manual/FDNCymbal/FDNCymbal_ja.html | 2027 +++++----- .../FeedbackPhaser/FeedbackPhaser_en.html | 1818 ++++----- .../FeedbackPhaser/FeedbackPhaser_ja.html | 1807 ++++----- docs/manual/GenericDrum/GenericDrum_en.html | 2255 +++++------ docs/manual/GenericDrum/GenericDrum_ja.html | 2169 ++++++----- .../GlitchSprinkler/GlitchSprinkler.json | 14 + .../GlitchSprinkler/GlitchSprinkler_en.html | 1134 ++++++ .../GlitchSprinkler/GlitchSprinkler_en.md | 387 ++ .../GlitchSprinkler/GlitchSprinkler_ja.html | 1115 ++++++ .../GlitchSprinkler/GlitchSprinkler_ja.md | 389 ++ .../GlitchSprinkler/img/GlitchSprinkler.odg | Bin 0 -> 14224 bytes .../GlitchSprinkler/img/GlitchSprinkler.png | Bin 0 -> 51446 bytes .../GlitchSprinkler/img/GlitchSprinkler.svg | 251 ++ ...VST_Compatible_Logo_Steinberg_negative.svg | 82 + .../IterativeSinCluster_en.html | 2415 ++++++------ .../IterativeSinCluster_ja.html | 2419 ++++++------ docs/manual/L4Reverb/L4Reverb_en.html | 2547 ++++++------ docs/manual/L4Reverb/L4Reverb_ja.html | 2553 ++++++------ .../LatticeReverb/LatticeReverb_en.html | 2207 +++++------ .../LatticeReverb/LatticeReverb_ja.html | 2211 +++++------ .../LightPadSynth/LightPadSynth_en.html | 2772 +++++++------- .../LightPadSynth/LightPadSynth_ja.html | 2599 +++++++------ docs/manual/LongPhaser/LongPhaser_en.html | 2071 +++++----- docs/manual/LongPhaser/LongPhaser_ja.html | 2078 +++++----- docs/manual/MaybeSnare/MaybeSnare_en.html | 2357 ++++++------ docs/manual/MaybeSnare/MaybeSnare_ja.html | 2351 ++++++------ .../MembraneSynth/MembraneSynth_en.html | 2205 +++++------ .../MembraneSynth/MembraneSynth_ja.html | 2199 +++++------ docs/manual/MiniCliffEQ/MiniCliffEQ_en.html | 1639 ++++---- docs/manual/MiniCliffEQ/MiniCliffEQ_ja.html | 1645 ++++---- .../NarrowingDelay/NarrowingDelay_en.html | 1706 +++++---- .../NarrowingDelay/NarrowingDelay_ja.html | 1691 ++++---- .../OrdinaryPhaser/OrdinaryPhaser_en.html | 2101 +++++----- .../OrdinaryPhaser/OrdinaryPhaser_ja.html | 2107 +++++----- docs/manual/ParallelComb/ParallelComb_en.html | 2018 +++++----- docs/manual/ParallelComb/ParallelComb_ja.html | 2031 +++++----- .../ParallelDetune/ParallelDetune_en.html | 2043 +++++----- .../ParallelDetune/ParallelDetune_ja.html | 2038 +++++----- .../PitchShiftDelay/PitchShiftDelay_en.html | 2128 +++++----- .../PitchShiftDelay/PitchShiftDelay_ja.html | 2131 ++++++----- .../RingModSpacer/RingModSpacer_en.html | 1507 ++++---- .../RingModSpacer/RingModSpacer_ja.html | 1498 ++++---- docs/manual/SevenDelay/SevenDelay_en.html | 1944 +++++----- docs/manual/SevenDelay/SevenDelay_ja.html | 1961 +++++----- docs/manual/SyncSawSynth/SyncSawSynth_en.html | 2230 +++++------ docs/manual/SyncSawSynth/SyncSawSynth_ja.html | 2213 +++++------ .../TrapezoidSynth/TrapezoidSynth_en.html | 2292 +++++------ .../TrapezoidSynth/TrapezoidSynth_ja.html | 2295 +++++------ docs/manual/UltraSynth/UltraSynth_en.html | 1913 ++++----- docs/manual/UltraSynth/UltraSynth_ja.html | 1906 ++++----- .../UltrasonicRingMod_en.html | 1662 ++++---- .../UltrasonicRingMod_ja.html | 1678 ++++---- docs/manual/WaveCymbal/WaveCymbal_en.html | 1991 +++++----- docs/manual/WaveCymbal/WaveCymbal_ja.html | 1989 +++++----- docs/manual/common/gui_barbox_en.md | 4 +- docs/pandocfilter.lua | 24 + docs/style.css | 178 - docs/template.html | 377 +- package/style/ColorConfig.md | 2 +- package/style/invert.py | 42 + package/style/style.json | 18 - package/style/themes/ArcDark.json | 31 +- package/style/themes/BB.json | 31 +- package/style/themes/BlackOnWhite.json | 31 +- package/style/themes/BlackOnWhiteInvert.json | 17 + package/style/themes/Leaf.json | 31 +- package/style/themes/LightOnDark.json | 31 +- package/style/themes/OrangeOnBlack.json | 33 +- package/style/themes/Orbit.json | 31 +- package/style/themes/SoftBlue.json | 33 +- package/style/themes/Warmth.json | 17 + 107 files changed, 76897 insertions(+), 69195 deletions(-) create mode 100644 docs/img/favicon/favicon.png create mode 100644 docs/img/favicon/favicon.svg create mode 100644 docs/img/thumbnail_ArcDark.png create mode 100644 docs/img/thumbnail_BB.png create mode 100644 docs/img/thumbnail_BlackOnWhite.png create mode 100644 docs/img/thumbnail_BlackOnWhiteInvert.png create mode 100644 docs/img/thumbnail_Leaf.png create mode 100644 docs/img/thumbnail_LightOnDark.png create mode 100644 docs/img/thumbnail_OrangeOnBlack.png create mode 100644 docs/img/thumbnail_Orbit.png create mode 100644 docs/img/thumbnail_SoftBlue.png create mode 100644 docs/img/thumbnail_Warmth.png create mode 100644 docs/manual/GlitchSprinkler/GlitchSprinkler.json create mode 100644 docs/manual/GlitchSprinkler/GlitchSprinkler_en.html create mode 100644 docs/manual/GlitchSprinkler/GlitchSprinkler_en.md create mode 100644 docs/manual/GlitchSprinkler/GlitchSprinkler_ja.html create mode 100644 docs/manual/GlitchSprinkler/GlitchSprinkler_ja.md create mode 100644 docs/manual/GlitchSprinkler/img/GlitchSprinkler.odg create mode 100644 docs/manual/GlitchSprinkler/img/GlitchSprinkler.png create mode 100644 docs/manual/GlitchSprinkler/img/GlitchSprinkler.svg create mode 100644 docs/manual/GlitchSprinkler/img/VST_Compatible_Logo_Steinberg_negative.svg create mode 100644 docs/pandocfilter.lua delete mode 100644 docs/style.css create mode 100644 package/style/invert.py delete mode 100644 package/style/style.json create mode 100644 package/style/themes/BlackOnWhiteInvert.json create mode 100644 package/style/themes/Warmth.json diff --git a/docs/_config.yml b/docs/_config.yml index 3398ed5a..50998b94 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -26,6 +26,8 @@ exclude: - manual/FeedbackPhaser/FeedbackPhaser_ja.md - manual/GenericDrum/GenericDrum_en.md - manual/GenericDrum/GenericDrum_ja.md +- manual/GlitchSprinkler/GlitchSprinkler_en.md +- manual/GlitchSprinkler/GlitchSprinkler_ja.md - manual/IterativeSinCluster/IterativeSinCluster_en.md - manual/IterativeSinCluster/IterativeSinCluster_ja.md - manual/L4Reverb/L4Reverb_en.md diff --git a/docs/build.py b/docs/build.py index 85e9686d..49c31a83 100644 --- a/docs/build.py +++ b/docs/build.py @@ -123,6 +123,11 @@ def dump_config_yml(): yaml.dump({"exclude": md_list}, outfile, default_flow_style=False) +def get_relpath(source, target): + """Ensure forward slashes.""" + return os.path.relpath(source, target).replace(os.sep, "/") + + if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("-r", "--rebuild", action="store_true", help="rebuild all file") @@ -134,10 +139,12 @@ def dump_config_yml(): dump_config_yml() index_path = Path("index.html").resolve() - css_path = Path("style.css").resolve() + # css_path = Path("style.css").resolve() template_path = Path("template.html").resolve() + favicon_svg_path = Path("img/favicon/favicon.svg").resolve() + favicon_png_path = Path("img/favicon/favicon.svg").resolve() if os == "nt": - css_path = css_path.as_uri() + # css_path = css_path.as_uri() template_path = template_path.as_uri() section = {lang: loadCommonSection(lang) for lang in getLanguages()} @@ -159,12 +166,16 @@ def dump_config_yml(): print(f"Processing {md}") - index_relpath = os.path.relpath(str(index_path), str(md.parent.resolve())) + favicon_svg_relpath = get_relpath(favicon_svg_path, md.parent.resolve()) + favicon_png_relpath = get_relpath(favicon_png_path, md.parent.resolve()) + index_relpath = get_relpath(index_path, md.parent.resolve()) if index_relpath == "index.html": index_relpath = "" pandoc_command = [ "pandoc", + "--lua-filter", + "./pandocfilter.lua", "--standalone", "--toc", "--toc-depth=4", @@ -174,8 +185,13 @@ def dump_config_yml(): f"date-meta={time.strftime('%F')}", "--metadata", f"index-relative-path={index_relpath}", + "--metadata", + f"favicon-svg-path={favicon_svg_relpath}", + "--metadata", + f"favicon-png-path={favicon_png_relpath}" + f"index-relative-path={index_relpath}", f"--template={str(template_path)}", - f"--include-in-header={str(css_path)}", + # f"--include-in-header={str(css_path)}", f"--output={html}", ] diff --git a/docs/dev_note/vst3_dev.html b/docs/dev_note/vst3_dev.html index e3504dd0..f356eb75 100644 --- a/docs/dev_note/vst3_dev.html +++ b/docs/dev_note/vst3_dev.html @@ -2,661 +2,697 @@ - - - - -vst3_dev - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2023-12-28 -

-
- Table of Contents - -
-
-

VST 3 の開発

-

VST 3 の開発についてまとめました。何かあれば GitHub のリポジトリに -issue を作ってもらえれば対応します。

-

初版を書いたときは VST 3 SDK 3.6.13 と VSTGUI 4.8 -を使っていました。最後に動作を確認したバージョンは VST 3 SDK 3.6.14 と -VSTGUI 4.9 です。

-

最後に編集したときのバージョンは VST 3 SDK 3.7.5 と VSTGUI 4.11 -です。ところどころ廃止 (depricated) -になったメソッドなどが紛れているかもしれないので注意してください。そのままコピペすることは推奨しません。

-

最新版の SDK は Steinberg のページからダウンロードできます。

- -

GitHub のリポジトリからクローンすることもできます。

- -

この文章では Steinberg のページからダウンロードできる SDK -を使います。 GitHub のリポジトリには helloworld や VST3PluginTestHost -が含まれていないからです。 my_plugins -から始まるパスは開発中のプラグイン内のパスを表しています。それ以外のパスは特に断りがないときは -VST3_SDK 以下の部分だけを書いています。

-

ライセンス

-

VST3_SDK 以下の各ディレクトリのライセンスです。

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ディレクトリライセンス
baseBSD 3-Clause License
cmakeProprietary Steinberg VST 3 License あるいは GPLv3
docProprietary Steinberg VST 3 License あるいは GPLv3
pluginterfacesProprietary Steinberg VST 3 License あるいは GPLv3
public.sdkBSD 3-Clause License
vstgui4BSD 3-Clause License
-

Steinberg にメールを送信して確認したところ、 Proprietary Steinberg -VST 3 License あるいは GPLv3 のどちらを選択するかに関わらず -VST3_License_Agreement.pdf に署名して Steinberg -に送信する必要があります。

-

選択したライセンスに関わらず VST compatible logo -の表示が義務付けられています。 VST compatible logo は -doc/artwork に入っています。また VST compatible logo -の正しい表示方法が VST3_Usage_Guidelines.pdf -に書いてあります。

-

ソースコードを公開するときは GPLv3 -で配布することができます。利用したライブラリのライセンスはバイナリの配布時に同梱する必要があります。ユーザマニュアルや -GUI -のクレジット画面でも利用したライセンスを参照できるようにすることが推奨されています。

-

ソースコードを公開しないときは Proprietary Steinberg VST 3 License と -BSD 3-Clause License に従って配布することになります。 Proprietary -Steinberg VST 3 License の詳細は VST3_License_Agreement.pdf -に書いてあります。

- -

リソース

-

VST 3 SDK -の主な学習リソースは同梱されているサンプルプラグインのコードになります。サンプルプラグインは -public.sdk/samples/vst に入っています。とりあえず -againnote_expression_synth -を押さえておけば何とかなります。

-

VST 3 SDK -に付属してくるドキュメンテーションはダウンロードしたディレクトリの -doc/index.html から開けます。次のリンクは GitHub -でホストされているドキュメンテーションです。

- -

VSTGUI4 のドキュメンテーションが 404 -ですが、次のリンクが使えます。

- -

ドキュメンテーション内をまとめて検索する方法が提供されていません。検索窓からクラスなどを探すときはトップページからのリンク先ごとに検索結果が異なるので注意してください。

-

開発者フォーラムもあります。

- -

外部のリソースとしてはうつぼかずらさんによるC++でVST作りがとても参考になります。

- -

プラグインホストについて

-

VST 3 -はホストによっては実装が中途半端なようです。ここではホストごとの特徴的な挙動や不具合をまとめています。

-

VST3PluginTestHost

- -

FL Studio 20.6

- -

不具合というより仕様ですが、プラグインの GUI -ウィンドウの大きさを変更できないので VST3Editor の UI -エディタで編集をするときにワークアラウンドが必要です。

- -

Reaper 5.980

- -

Live 10.1.6

- -

開発環境の構築

-

VST 3 SDK を編集してビルドできるように開発環境を構築します。

-

ここでは CMake + VS Code + PowerShell を使っています。 Visual Studio -や Qt Creater などの IDE は使っていません。

-

開発用ソフトウェアのインストール

-

Windows 10

-

次のソフトウェアをインストールします。

- -

Visual Studio Community 2019 のインストール時には「C++ -によるデスクトップ開発」にチェックが入っていることを確認して、あとはデフォルトにしておきました。

-

Linux

-

次のリンクに VST 3 SDK -のビルドに必要なパッケージが書いてあります。

- -

Ubuntu か Mint -なら上のドキュメンテーションのコマンドをコピペで動きます。

-

バグレポートをしていただいた方からの情報によると Debian buster -でもドキュメンテーションのコマンドでビルド環境が整うようです。ただし -libxcb-util のバージョンが Ubuntu -とは異なるため、バイナリの互換性はないようです。

- -

Fedora 31 -でもビルドできることを確認しました。パッケージの名前が一部異なります。パッケージを探すときは -rpmfind.net -が使えます。

-

VS Code のエクステンション

-

次の VS Code のエクステンションをインストールしました。

- -

XML と Bookmarks は無くても何とかなります。

-

XML のプラグインは GUI が記述された uidesc というファイルが XML -だったのでフォーマットするためにインストールしました。 Red Hat -のプラグインにしたのは要素の属性ごとに改行するフォーマットオプションがあったからです。 -OpenJDK -が必要なのでインストールには手間がかかります。

-

Bookmarks -はパラメータ追加で複数のファイルを行ったり来たりするときに便利です。

-

ripgrep

-

ドキュメンテーションなどの検索ツールとして ripgrep -をインストールしました。まず Rust をインストールしてから -PowerShell で次のコマンドを実行します。

-
cargo install ripgrep
-

検索コマンドの例です。

-
rg "How to use cmake"
-

ファイル名だけを表示するときは -l -オプションが使えます。

-
rg -l "ParamID"
-

特定のファイルを除外したいときは glob オプションの -g -が使えます。

-
rg -g "!*.html" -g "!*.js" "EditController"
-

今回はこれだけでなんとかなりました。他のオプションは -h -で確認できます。

-
rg -h
-

ビルド

-

ビルド方法はドキュメンテーションと vst3sdk リポジトリの README.md -に書いてあります。

- -

新規プラグインの作り方は変わったようです (2022-12-28) -。以下のドキュメンテーションについては検証していません。

- -

Windows 10

-

my_plugins/helloworld -にテンプレートが入っているのでコピーして適当に名前を付けることでプロジェクトを作成します。 -my_pluginsVST3_SDK -の1階層上のディレクトリに入っています。

-

プロジェクト作成後のディレクトリ構造の例です。関係ないディレクトリは省略しています。

-
VST_SDK
+  

+

my_plugins/helloworld + にテンプレートが入っているのでコピーして適当に名前を付けることでプロジェクトを作成します。 + my_pluginsVST3_SDK + の1階層上のディレクトリに入っています。

+

プロジェクト作成後のディレクトリ構造の例です。関係ないディレクトリは省略しています。

+
VST_SDK
 +---my_plugins
 |   +---helloworld
 |   +---helloworld_with_VSTGUI
@@ -669,126 +705,134 @@ 

Windows 10

+---pluginterfaces +---public.sdk \---vstgui4
-

my_plugins/CMakeLists.txtSomeFX -を追加します。

-
add_subdirectory(helloworld)
+  

my_plugins/CMakeLists.txtSomeFX + を追加します。

+
add_subdirectory(helloworld)
 add_subdirectory(helloworld_with_VSTGUI)
 add_subdirectory(SomeFX)
-

PowerShell を開いて VST3_SDK -で次のコマンドを実行します。 cmake のオプションで -SMTG_MYPLUGINS_SRC_PATH -を指定することでプロジェクトのパスを追加できます。

-
mkdir build
+  

PowerShell を開いて VST3_SDK + で次のコマンドを実行します。 cmake のオプションで + SMTG_MYPLUGINS_SRC_PATH + を指定することでプロジェクトのパスを追加できます。

+
mkdir build
 cd build
 cmake -G"Visual Studio 16 2019" -DSMTG_MYPLUGINS_SRC_PATH="../../my_plugins" ..
 cmake --build .
-

これでデバッグビルドが始まります。コードを変更したときは -build ディレクトリに移動して cmake --build . -でリビルドできます。

-

ビルドのコンフィグを変更するときは cmake-gui -が使えます。

-
cmake-gui # build ディレクトリ内で実行する。
-

リリースビルド

-

--config Release を追加します。

-
cmake --build . --config Release
-

32bit (x86) ビルド

-

32bit (x86) でビルドするときは一つ目の cmake のコマンドに --A Win32 を追加します。

-
mkdir build32 # 64bit 版と同じディレクトリを使わない。
+  

これでデバッグビルドが始まります。コードを変更したときは + build ディレクトリに移動して cmake --build . + でリビルドできます。

+

ビルドのコンフィグを変更するときは cmake-gui + が使えます。

+
cmake-gui # build ディレクトリ内で実行する。
+

+

--config Release を追加します。

+
cmake --build . --config Release
+

+

32bit (x86) でビルドするときは一つ目の cmake のコマンドに + -A Win32 を追加します。

+
mkdir build32 # 64bit 版と同じディレクトリを使わない。
 cd build32
 cmake -G"Visual Studio 16 2019" -A Win32 -DSMTG_MYPLUGINS_SRC_PATH="../../my_plugins" ..
 cmake --build .
-

ビルドターゲットを 64bit から 32bit -に変更するとビルドに失敗するときがあります。ビルドが失敗するときは -build ディレクトリを消して作り直してみてください。

- -

デプロイ

-

VST 3 プラグインのデバッグビルドは build\VST3\Debug -、リリースビルドは build\VST3\Release -に配置されます。ビルドされたプラグインは *.vst3 -という名前のディレクトリにパッケージされています。

-

VST 3 プラグインは OS -ごとにインストールする場所が決まっています。詳細は Plug-in -Locations - VST 3 Developer Portal に書いてあります。 Windows 10 -では C:\Program Files\Common Files\VST3 -に配置すれば使えるようになります。

-

PowerShell -で関数を作って任意のプラグインをコマンド一つでデプロイできるようにします。 -$PROFILE を開きます。 $PROFILE は bash の -.bashrc に相当します。

-
code $PROFILE
-

次のコードを $PROFILE に追加します。

-
function cpvst($name, [switch] $release) {
+  

ビルドターゲットを 64bit から 32bit + に変更するとビルドに失敗するときがあります。ビルドが失敗するときは + build ディレクトリを消して作り直してみてください。

+ +

+

VST 3 プラグインのデバッグビルドは build\VST3\Debug + 、リリースビルドは build\VST3\Release + に配置されます。ビルドされたプラグインは *.vst3 + という名前のディレクトリにパッケージされています。

+

VST 3 プラグインは OS + ごとにインストールする場所が決まっています。詳細は Plug-in + Locations - VST 3 Developer Portal に書いてあります。 Windows 10 + では C:\Program Files\Common Files\VST3 + に配置すれば使えるようになります。

+

PowerShell + で関数を作って任意のプラグインをコマンド一つでデプロイできるようにします。 + $PROFILE を開きます。 $PROFILE は bash の + .bashrc に相当します。

+
code $PROFILE
+

次のコードを $PROFILE に追加します。

+
function cpvst($name, [switch] $release) {
   $target_dir = if ($release) { "Release" } else { "Debug" }
   $vst_path = ".\VST3\$target_dir\$name.vst3"
   Copy-Item $vst_path -Destination "C:\Program Files\Common Files\VST3" -Force -Recurse
 }
-

$PROFILE を読み込んで更新します。 bash の -source と同じような操作です。

-
.$PROFILE
-

C:\Program Files\Common Files\VST3 -にファイルをコピーするには管理者権限が必要ですが、手間を省くために開発を行っているユーザに書き込み権限を与えます。エクスプローラーで -VST3 -を右クリックしてプロパティを開きます。タブからセキュリティを選んで「アクセス許可を変更するには[編集]をクリックします。」というテキストの横にある編集ボタンをクリックします。上のほうにあるグループ名またはユーザ名のリストから開発を行っているユーザを選択します。私の環境では -Users (DESKTOP-****) -のような名前がついていました。ユーザを選択したら下のほうにあるアクセス許可のリストの書き込みにチェックを入れて -OK で VST3 への書き込みができるようになります。

-

これで cpvst が使えるようになりました。

-
cpvst helloworld      # build/VST3/Debug/helloworld.vst3 をデプロイ。
+  

$PROFILE を読み込んで更新します。 bash の + source と同じような操作です。

+
.$PROFILE
+

C:\Program Files\Common Files\VST3 + にファイルをコピーするには管理者権限が必要ですが、手間を省くために開発を行っているユーザに書き込み権限を与えます。エクスプローラーで + VST3 + を右クリックしてプロパティを開きます。タブからセキュリティを選んで「アクセス許可を変更するには[編集]をクリックします。」というテキストの横にある編集ボタンをクリックします。上のほうにあるグループ名またはユーザ名のリストから開発を行っているユーザを選択します。私の環境では + Users (DESKTOP-****) + のような名前がついていました。ユーザを選択したら下のほうにあるアクセス許可のリストの書き込みにチェックを入れて + OK で VST3 への書き込みができるようになります。

+

これで cpvst が使えるようになりました。

+
cpvst helloworld      # build/VST3/Debug/helloworld.vst3 をデプロイ。
 cpvst SomeFX -release # build/VST3/Release/SomeFX.vst3 をデプロイ。
-

Linux

-

Windows 10 の手順とほとんど同じですが cmake -に渡す引数が変わります。

-
mkdir build
+  

+

Windows 10 の手順とほとんど同じですが cmake + に渡す引数が変わります。

+
mkdir build
 cd build
 cmake -DCMAKE_BUILD_TYPE=Debug -DSMTG_MYPLUGINS_SRC_PATH="../../my_plugins" ..
 cmake --build .
-

リリースビルドのときは -DCMAKE_BUILD_TYPE=Debug を --DCMAKE_BUILD_TYPE=Release に変えます。

-

cmake でビルドするとデプロイを自動的に行ってくれます。 -VST3_SDK/build/VST3/Debug/ あるいは -VST3_SDK/build/VST3/Release/ 内のディレクトリが -~/.vst3 にリンクされます。

-

CMake のオプション

-

サンプルプロジェクトのビルドを無効にする

-

サンプルプロジェクトのビルドを無効にするときは -SMTG_ADD_VST3_HOSTING_SAMPLES と -SMTG_ADD_VST3_PLUGINS_SAMPLESFALSE -を指定します。

-
# ` (backtick) は powershell で次の行に続くという意味。 bash の \ と同じ。
+  

リリースビルドのときは -DCMAKE_BUILD_TYPE=Debug を + -DCMAKE_BUILD_TYPE=Release に変えます。

+

cmake でビルドするとデプロイを自動的に行ってくれます。 + VST3_SDK/build/VST3/Debug/ あるいは + VST3_SDK/build/VST3/Release/ 内のディレクトリが + ~/.vst3 にリンクされます。

+

+

+

サンプルプロジェクトのビルドを無効にするときは + SMTG_ADD_VST3_HOSTING_SAMPLES と + SMTG_ADD_VST3_PLUGINS_SAMPLESFALSE + を指定します。

+
# ` (backtick) は powershell で次の行に続くという意味。 bash の \ と同じ。
 cmake -G"Visual Studio 16 2019" `
   -DSMTG_MYPLUGINS_SRC_PATH="../../Plugins" `
   -DSMTG_ADD_VST3_HOSTING_SAMPLES=FALSE `
   -DSMTG_ADD_VST3_PLUGINS_SAMPLES=FALSE `
   ..
-

コンパイラオプションの変更

-

プラグインのコンパイラオプションを指定するときは -my_plugins/SomePlugin/CMakeLists.txt に -target_compile_options を追加します。次の例では AVX2 -を有効にするオプションを指定しています。

-
# C++17 を有効化。
+  

+

プラグインのコンパイラオプションを指定するときは + my_plugins/SomePlugin/CMakeLists.txt に + target_compile_options を追加します。次の例では AVX2 + を有効にするオプションを指定しています。

+
# C++17 を有効化。
 set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED True)
 
@@ -804,62 +848,70 @@ 

コンパイラオプション target_compile_options(${target} PRIVATE -O3 -fPIC -mfma -mavx2) endif() endif()

-

テスト

-

ビルドを終えたらプラグインの動作をテストします。

-

自動テスト

-

VST 3 SDK -はプラグインのビルドのたびに自動でいくつかのテストを行ってくれます。 API -の使い方を間違えているなどの明らかなミスは、このテストで捉えられます。

-

VST3PluginTestHost

-

GUI とプラグイン情報のチェックには VST3PluginTestHost -が使えます。

-

VST3PluginTestHost のインストーラは VST_SDK/VST3_SDK/bin -以下のディレクトリに入っています。 Linux 版は無いようです。 GitHub -のリポジトリには VST3PluginTestHost -が含まれていないようなので注意してください。

-

簡易なシーケンサがついていますが MIDI -キーボードがあれば演奏することができます。 wav -を読み込んでエフェクタに音を送ることができますが、モノラルになってしまいます。音のレンダリングができないので、チューニングなどの細かい確認をするには向いていません。

-

REAPER

-

音をレンダリングして確認したいときは REAPER が使えます。 Linux -でも動きます。

-

VST3 -プラグインの大まかな仕組み

-

VST3 プラグインは大きく次の3つの部品に分けることができます。

-
    -
  • Edit Controller (コントローラ)
  • -
  • Processor (プロセッサ)
  • -
  • Editor View (エディタ)
  • -
-

コントローラはパラメータとユーザインタフェースの橋渡し役です。

-

プロセッサでは信号処理を行います。

-

コントローラからプロセッサ、あるいはプロセッサからコントローラへとパラメータを直接を伝えることはありません。コントローラとプロセッサの間でのパラメータの伝達は、DAWなどの -VST3 ホストの仕事です。

-

エディタでは GUI -に関する処理を行います。エディタはコントローラの下にぶら下がるような関係になっています。

-

-

コントローラとプロセッサをファクトリに登録することで VST3 -プラグインが使えるようになります。ファクトリのコードはテンプレートが用意されているのでほとんど書くことはありません。

-

デバッグ

-
    -
  • TODO: テスト
  • -
-

ここに書いてある内容は動作確認していないので間違いがあるかもしれません。 -noteexpressionsynth のコードから辿って見つけました。

-

ブレークポイント

-

FDebugBreak が使えます。

-

FDebugPrint の引数は printf -と同じです。

-
    -
  • 未検証: Windows では build/WIN_PDB64 に入っている -プラグイン名.pdb ファイルを -build/VST3/Debug/プラグイン名.vst3/Contents/x86_64-win -にコピーしておけば、 FDebugBreak -が呼ばれたときにデバッガが起動するはず。
  • -
-
#include "base/source/fdebug.h"
+  

+

ビルドを終えたらプラグインの動作をテストします。

+

+

VST 3 SDK + はプラグインのビルドのたびに自動でいくつかのテストを行ってくれます。 + API + の使い方を間違えているなどの明らかなミスは、このテストで捉えられます。

+

+

GUI とプラグイン情報のチェックには VST3PluginTestHost + が使えます。

+

VST3PluginTestHost のインストーラは + VST_SDK/VST3_SDK/bin 以下のディレクトリに入っています。 + Linux 版は無いようです。 GitHub のリポジトリには VST3PluginTestHost + が含まれていないようなので注意してください。

+

簡易なシーケンサがついていますが MIDI + キーボードがあれば演奏することができます。 wav + を読み込んでエフェクタに音を送ることができますが、モノラルになってしまいます。音のレンダリングができないので、チューニングなどの細かい確認をするには向いていません。

+

+

音をレンダリングして確認したいときは REAPER が使えます。 Linux + でも動きます。

+

+

VST3 プラグインは大きく次の3つの部品に分けることができます。

+
    +
  • Edit Controller (コントローラ)
  • +
  • Processor (プロセッサ)
  • +
  • Editor View (エディタ)
  • +
+

コントローラはパラメータとユーザインタフェースの橋渡し役です。

+

プロセッサでは信号処理を行います。

+

コントローラからプロセッサ、あるいはプロセッサからコントローラへとパラメータを直接を伝えることはありません。コントローラとプロセッサの間でのパラメータの伝達は、DAWなどの + VST3 ホストの仕事です。

+

エディタでは GUI + に関する処理を行います。エディタはコントローラの下にぶら下がるような関係になっています。

+

+

コントローラとプロセッサをファクトリに登録することで VST3 + プラグインが使えるようになります。ファクトリのコードはテンプレートが用意されているのでほとんど書くことはありません。

+

+
    +
  • TODO: テスト
  • +
+

ここに書いてある内容は動作確認していないので間違いがあるかもしれません。 + noteexpressionsynth のコードから辿って見つけました。

+

+

FDebugBreak が使えます。

+

FDebugPrint の引数は printf + と同じです。

+
    +
  • 未検証: Windows では build/WIN_PDB64 に入っている + プラグイン名.pdb ファイルを + build/VST3/Debug/プラグイン名.vst3/Contents/x86_64-win + にコピーしておけば、 FDebugBreak + が呼ばれたときにデバッガが起動するはず。
  • +
+
#include "base/source/fdebug.h"
 
 // ...
 void somewhere(float value)
@@ -869,21 +921,22 @@ 

ブレークポイント

#endif } // ...
- -

プリント

-

FDebugPrint が使えます。

-

出力を見るには DAW がデバッグ出力をサポートしている必要があります。 -FL Studio 20.5 では左上のメニューから OPTIONS -> Debugging log -でデバッグ出力を表示できます。

-

FDebugPrint の引数は printf -と同じです。

-
#include "base/source/fdebug.h"
+  
+  

+

FDebugPrint が使えます。

+

出力を見るには DAW がデバッグ出力をサポートしている必要があります。 + FL Studio 20.5 では左上のメニューから OPTIONS -> Debugging log + でデバッグ出力を表示できます。

+

FDebugPrint の引数は printf + と同じです。

+
#include "base/source/fdebug.h"
 
 // ...
 void somewhere(float value)
@@ -893,11 +946,11 @@ 

プリント

#endif } // ...
-

base/source/fdebug.h のコメントによると -FDebugPrint を直接使わずに、 FDebugPrint -をラップしたマクロを使うことが推奨されています。

-
// base/source/fdebug.h
+  

base/source/fdebug.h のコメントによると + FDebugPrint を直接使わずに、 FDebugPrint + をラップしたマクロを使うことが推奨されています。

+
// base/source/fdebug.h
 
 /** Send "comment" string to the debugger for display. */
 #define SMTG_WARNING(comment) FDebugPrint ("%s(%d) : %s\n", __FILE__, __LINE__, comment);
@@ -914,25 +967,27 @@ 

プリント

#define SMTG_DBPRT4(a, b, c, d, e) FDebugPrint (a, b, c, d, e); #define SMTG_DBPRT5(a, b, c, d, e, f) FDebugPrint (a, b, c, d, e, f); ///@}
- -

helloworld -プラグインを何とかする

-

テンプレートとして用意されている my_plugins/helloworld -をリファクタリングしつつ、パラメータ追加のワークフローを作っていきます。

-

ビルドの節で my_plugins/helloworld をコピーして作成した -my_plugins/SomeFX に変更を加えていきます。 -my_plugins/SomeFX/** に該当するパスは -my_plugins を省略して SomeFX/** -のように書いています。

-

ファイルの配置の変更

-

コードが書いてあるファイルが7個しかないので、ディレクトリ移動の煩雑さを減らすために一つのディレクトリにまとめてしまいます。

-
+---CMakeLists.txt
+  
+  

+

テンプレートとして用意されている my_plugins/helloworld + をリファクタリングしつつ、パラメータ追加のワークフローを作っていきます。

+

ビルドの節で my_plugins/helloworld + をコピーして作成した my_plugins/SomeFX + に変更を加えていきます。 my_plugins/SomeFX/** + に該当するパスは my_plugins を省略して + SomeFX/** のように書いています。

+

+

コードが書いてあるファイルが7個しかないので、ディレクトリ移動の煩雑さを減らすために一つのディレクトリにまとめてしまいます。

+
+---CMakeLists.txt
 +---resource
 |   +---Info.plist
 |   \---plug.rc
@@ -944,10 +999,10 @@ 

ファイルの配置の変更

+---plugprocessor.cpp +---plugprocessor.hpp \---version.hpp
-

ここではヘッダの拡張子に “.hpp” を使っています。

-

SomeFX/CMakeList.txt を変更します。

-
set(plug_sources
+  

ここではヘッダの拡張子に “.hpp” を使っています。

+

SomeFX/CMakeList.txt を変更します。

+
set(plug_sources
     source/plugcontroller.hpp
     source/plugids.hpp
     source/plugprocessor.hpp
@@ -956,28 +1011,29 @@ 

ファイルの配置の変更

source/plugcontroller.cpp source/plugprocessor.cpp )
-

SomeFX/resource/plug.rcversion.h -のインクルードパスを version.hpp に変更します。

-
#include "../source/version.hpp"
-

名前やFUIDの設定

-

この項の内容は doc/vstinterfaces/addownplugs.html -に書いてあることと同じなので、あわせて参照することをお勧めします。

-

SomeFX/CMakeLists.txt を変更します。

-
set(target SomeFX)
-

SomeFX/source/plugids.hpp にある 2 つの -FUID を変更します。コメントにあるように Online GUID Generator -を使って生成できます。

-

次のコードの ID をコピーして使わないでください。 ID が競合すると DAW -で予期しないプラグインがロードされる不具合につながります。

-
static const FUID MyProcessorUID(0x00000000, 0x00000000, 0x00000000, 0x00000000);
+  

SomeFX/resource/plug.rcversion.h + のインクルードパスを version.hpp に変更します。

+
#include "../source/version.hpp"
+

+

この項の内容は doc/vstinterfaces/addownplugs.html + に書いてあることと同じなので、あわせて参照することをお勧めします。

+

SomeFX/CMakeLists.txt を変更します。

+
set(target SomeFX)
+

SomeFX/source/plugids.hpp にある 2 つの + FUID を変更します。コメントにあるように Online GUID Generator + を使って生成できます。

+

次のコードの ID をコピーして使わないでください。 ID が競合すると + DAW で予期しないプラグインがロードされる不具合につながります。

+
static const FUID MyProcessorUID(0x00000000, 0x00000000, 0x00000000, 0x00000000);
 static const FUID MyControllerUID(0x11111111, 0x11111111, 0x11111111, 0x11111111);
-

プラグインの名前などは SomeFX/source/version.hpp -で変更できます。

-
#define stringPluginName "Hello World"
+  

プラグインの名前などは SomeFX/source/version.hpp + で変更できます。

+
#define stringPluginName "Hello World"
 
 #define stringOriginalFilename "SomeFX.vst3"
 #if SMTG_PLATFORM_64
@@ -991,22 +1047,23 @@ 

名前やFUIDの設定

#define stringLegalCopyright "(c) 2019 Someone" #define stringLegalTrademarks "VST is a trademark of Steinberg Media Technologies GmbH"
-

プラグインの名前を変えるときは Info.plist の -SomeFX の部分を変更します。

-
    -
  • 10行目: <string>SomeFX</string>
  • -
  • 14行目: -<string>com.steinberg.vst3.SomeFX</string>
  • -
-

あとは各ファイルで定義されている名前空間 HelloWorld -を適当に変更します。

-

音を出す

-

SomeFX を変更して音が出るようにします。

-

SomeFX/source/plugprocessor.cpp の -PlugProcessor::process -で音のデータをバッファに書き込みます。

-
//--- Process Audio---------------------
+  

プラグインの名前を変えるときは Info.plist の + SomeFX の部分を変更します。

+
    +
  • 10行目: <string>SomeFX</string>
  • +
  • 14行目: + <string>com.steinberg.vst3.SomeFX</string>
  • +
+

あとは各ファイルで定義されている名前空間 HelloWorld + を適当に変更します。

+

+

SomeFX を変更して音が出るようにします。

+

SomeFX/source/plugprocessor.cpp の + PlugProcessor::process + で音のデータをバッファに書き込みます。

+
//--- Process Audio---------------------
 //--- ----------------------------------
 if (data.numInputs == 0) return kResultOk;
 if (data.numOutputs == 0) return kResultOk;
@@ -1029,47 +1086,51 @@ 

音を出す

out0[i] = in0[i]; out1[i] = in1[i]; }
-

このコードは入力と出力のチャンネル数が同じであることを仮定しています。入出力のチャンネル数は -PlugProcessor::initialize で指定できます。

-

kResultOk は 0 で kResultFalse は 1 なので -if の条件で出てくるときは注意してください。 VST3 SDK では -if (isIt() == kResultFalse) doIt(); のように -== でチェックしている箇所があります。

-

パラメータの追加

-

このままだとパラメータの管理が手間になるのでリファクタリングします。

-

VST3 のパラメータ

-

VST3 -では1つのパラメータをコントローラとプロセッサの2か所で保持させることになります。

-
    -
  • TODO 図の追加
  • -
-

パラメータ用のヘッダとソースの作成

-

TODO 変更

-
    -
  • SomeFX/source/plugid.hpp
  • -
  • SomeFX/source/plugcontroller.cpp
  • -
  • SomeFX/source/plugprocessor.hpp
  • -
  • SomeFX/source/plugprocessor.cpp
  • -
-

Hello GUI

-

VSTGUI 4.8 ではコードで直接 GUI を書く方法と、 VST3 inline UI editor -を使って GUI を作る方法があります。ここでは VST3 inline UI editor -という名前を短くして UI エディタと呼ぶことにします。

-

本格的な開発をするならコードで直接 GUI -を書く方法をお勧めします。私が試した限りでは FL Studio 20.5 と Reaper -5.980 では UI エディタを使う方法に不具合がありました。不具合については -GUI -> VST3 inline UI editor を使った GUI の作成 -> -ワークアラウンド にまとめています。

-

ここでは例として手軽でコードが少ない UI エディタを使う方法で GUI -を作ります。

-

SomeFX/source/plugcontroller.hpp を変更します。

-
    -
  • vst3editor.h をインクルード。
  • -
  • createView を追加。
  • -
-
#include "vstgui/plugin-bindings/vst3editor.h"
+  

このコードは入力と出力のチャンネル数が同じであることを仮定しています。入出力のチャンネル数は + PlugProcessor::initialize で指定できます。

+

kResultOk は 0 で kResultFalse は 1 + なので if の条件で出てくるときは注意してください。 VST3 SDK では + if (isIt() == kResultFalse) doIt(); のように + == でチェックしている箇所があります。

+

+

このままだとパラメータの管理が手間になるのでリファクタリングします。

+

+

VST3 + では1つのパラメータをコントローラとプロセッサの2か所で保持させることになります。

+
    +
  • TODO 図の追加
  • +
+

+

TODO 変更

+
    +
  • SomeFX/source/plugid.hpp
  • +
  • SomeFX/source/plugcontroller.cpp
  • +
  • SomeFX/source/plugprocessor.hpp
  • +
  • SomeFX/source/plugprocessor.cpp
  • +
+

+

VSTGUI 4.8 ではコードで直接 GUI を書く方法と、 VST3 inline UI + editor を使って GUI を作る方法があります。ここでは VST3 inline UI + editor という名前を短くして UI エディタと呼ぶことにします。

+

本格的な開発をするならコードで直接 GUI + を書く方法をお勧めします。私が試した限りでは FL Studio 20.5 と Reaper + 5.980 では UI エディタを使う方法に不具合がありました。不具合については + GUI -> VST3 inline UI editor を使った GUI の作成 -> + ワークアラウンド にまとめています。

+

ここでは例として手軽でコードが少ない UI エディタを使う方法で GUI + を作ります。

+

SomeFX/source/plugcontroller.hpp を変更します。

+
    +
  • vst3editor.h をインクルード。
  • +
  • createView を追加。
  • +
+
#include "vstgui/plugin-bindings/vst3editor.h"
 
 class PlugController : public Vst::EditController {
 public:
@@ -1083,9 +1144,9 @@ 

Hello GUI

return 0; } };
-

SomeFX/CMakeLists.txt を変更します。

-
# ...
+  

SomeFX/CMakeLists.txt を変更します。

+
# ...
 
 smtg_add_vst3plugin(${target} ${plug_sources})
 set_target_properties(${target} PROPERTIES ${SDK_IDE_MYPLUGINS_FOLDER})
@@ -1093,22 +1154,22 @@ 

Hello GUI

target_link_libraries(${target} PRIVATE base sdk vstgui_support) # vstgui_support を追加。 # ...
-

ビルドしたプラグインを開くと真っ黒の画面が表示されます。黒い部分を右クリックするとコンテクストメニューが開いて -UI エディタでの編集が選択できます。

-

UI エディタの使い方は -vstgui4/vstgui/Documentation/html/page_uidescription_editor.html -に書いてあります。

-
    -
  • TODO 画像
  • -
  • TODO tag の設定。
  • -
-

UI エディタでの編集が終わったらの左上にあるメニューから File -> -Save As を選んで plug.uidesc を保存します。保存した -plug.uidesc を適当なディレクトリにおいて -SomeFX/CMakeLists.txt の -smtg_add_vst3_resource -でパスを指定することでリソースに追加できます。

-
# ...
+  

ビルドしたプラグインを開くと真っ黒の画面が表示されます。黒い部分を右クリックするとコンテクストメニューが開いて + UI エディタでの編集が選択できます。

+

UI エディタの使い方は + vstgui4/vstgui/Documentation/html/page_uidescription_editor.html + に書いてあります。

+
    +
  • TODO 画像
  • +
  • TODO tag の設定。
  • +
+

UI エディタでの編集が終わったらの左上にあるメニューから File -> + Save As を選んで plug.uidesc を保存します。保存した + plug.uidesc を適当なディレクトリにおいて + SomeFX/CMakeLists.txt の + smtg_add_vst3_resource + でパスを指定することでリソースに追加できます。

+
# ...
 target_link_libraries(${target} PRIVATE base sdk vstgui_support) # 上で変更した行。
 
 # リソースの追加。
@@ -1116,23 +1177,26 @@ 

Hello GUI

smtg_add_vst3_resource(${target} "resource/plug.uidesc") # ...
-

画像ファイルを使うときも smtg_add_vst3_resource -でリソースに追加できます。

-

リファクタリング

-
    -
  • TODO
  • -
-

ポインタの扱いについて

-

vst3sdk -では生ポインタを扱う場面が出てきますが、参照カウンタが使えるので use -after free を防ぐことができます。

-

new したインスタンスを生ポインタに格納した後は -remember() -で参照カウントを増やします。また、メモリリークを防ぐためにクラスのデストラクタで必ず -forget() -を呼んで参照カウントを減らします。以下は私が実際に書いて動いた適当な例です。

-
class PlugController : public Vst::EditController, public Vst::IMidiMapping {
+  

画像ファイルを使うときも smtg_add_vst3_resource + でリソースに追加できます。

+

+
    +
  • TODO
  • +
+

+

vst3sdk + では生ポインタを扱う場面が出てきますが、参照カウンタが使えるので use + after free を防ぐことができます。

+

new したインスタンスを生ポインタに格納した後は + remember() + で参照カウントを増やします。また、メモリリークを防ぐためにクラスのデストラクタで必ず + forget() + を呼んで参照カウントを減らします。以下は私が実際に書いて動いた適当な例です。

+
class PlugController : public Vst::EditController, public Vst::IMidiMapping {
 public:
   Steinberg::Vst::PlugEditor *editor = nullptr;
 
@@ -1155,25 +1219,29 @@ 

ポインタの扱いについて

} return 0; }
-

CMake では C++14 -のフラグを立てていながらスマートポインタを使っていないのが疑問でしたが、 -Wikipedia によると VST -3 がリリースされたのは 2008 年なので C++11 -が使えなかったのだろうと思います。

-

GUI

-

主にカスタムビューの作成についてまとめています。

-

VST3 inline UI editor -を使った GUI の作成

-

オプションメニュー -(コンボボックス) の追加

-

オプションメニューのアイテムは StringListParameter -を使うことで設定できます。

-

オプションメニューとリンクするパラメータを -SomeFX/source/plugcontroller.cppinitialize -に追加します。

-
#include "public.sdk/source/vst/vstparameters.h"
+  

CMake では C++14 + のフラグを立てていながらスマートポインタを使っていないのが疑問でしたが、 + Wikipedia によると VST + 3 がリリースされたのは 2008 年なので C++11 + が使えなかったのだろうと思います。

+

+

主にカスタムビューの作成についてまとめています。

+

+

+

オプションメニューのアイテムは StringListParameter + を使うことで設定できます。

+

オプションメニューとリンクするパラメータを + SomeFX/source/plugcontroller.cpp の + initialize に追加します。

+
#include "public.sdk/source/vst/vstparameters.h"
 
 // ...
 
@@ -1186,42 +1254,44 @@ 

オプシ parameterType->appendString(USTRING("yey")); parameters.addParameter(parameterType); }

-

あとは UI エディタで StringListParameter -として追加したパラメータのIDをオプションメニューの control-tag -として指定すれば設定完了です。

-
    -
  • public.sdk/samples/vst/note_expression_synth/source/note_expression_synth_controller.cpp
  • -
  • public.sdk/source/vst/vstparameters.*
  • -
-

ワークアラウンド

-

FL Studio 20.5 -ではプラグインのウィンドウの大きさを変更できないので編集が困難です。ワークアラウンドとして -plug.uidesc -を直接編集して編集画面の大きさを変更することができます。

-

いったん UI エディタを開いて何も編集せずにメニューの Save as で -plug.uidesc を保存します。 plug.uidesc -をテキストエディタで開いて custom -> attributes -> EditorSize -を変更することでGUI エディタのウィンドウの大きさを設定できます。 -EditorSize のフォーマットは "x, y, width, height" -となっています。変更した plug.uidesc -をリソースとしてプラグインに追加すると次回から UI -エディタのウィンドウが設定した大きさになります。

-

Reaper v5.980 では UI -エディタを開こうとするとクラッシュするので使えません。

-

カスタムビューの追加

-

カスタムビューの概要については コードでGUI -> -カスタムビューの実装と関連するコントロールの表示の変更 -を参照してください。

-

サイン波を表示するカスタムビューを作ります。

-

次の3つのファイルを作成します。

-
    -
  • SomeFX/source/gui/waveview.hpp
  • -
  • SomeFX/source/gui/waveview.cpp
  • -
  • SomeFX/source/gui/waveviewcreator.cpp
  • -
-

SomeFX/source/gui/waveview.hpp の内容です。

-
#pragma once
+  

あとは UI エディタで StringListParameter + として追加したパラメータのIDをオプションメニューの control-tag + として指定すれば設定完了です。

+
    +
  • public.sdk/samples/vst/note_expression_synth/source/note_expression_synth_controller.cpp
  • +
  • public.sdk/source/vst/vstparameters.*
  • +
+

+

FL Studio 20.5 + ではプラグインのウィンドウの大きさを変更できないので編集が困難です。ワークアラウンドとして + plug.uidesc + を直接編集して編集画面の大きさを変更することができます。

+

いったん UI エディタを開いて何も編集せずにメニューの Save as で + plug.uidesc を保存します。 plug.uidesc + をテキストエディタで開いて custom -> attributes -> EditorSize + を変更することでGUI エディタのウィンドウの大きさを設定できます。 + EditorSize のフォーマットは "x, y, width, height" + となっています。変更した plug.uidesc + をリソースとしてプラグインに追加すると次回から UI + エディタのウィンドウが設定した大きさになります。

+

Reaper v5.980 では UI + エディタを開こうとするとクラッシュするので使えません。

+

+

カスタムビューの概要については コードでGUI -> + カスタムビューの実装と関連するコントロールの表示の変更 + を参照してください。

+

サイン波を表示するカスタムビューを作ります。

+

次の3つのファイルを作成します。

+
    +
  • SomeFX/source/gui/waveview.hpp
  • +
  • SomeFX/source/gui/waveview.cpp
  • +
  • SomeFX/source/gui/waveviewcreator.cpp
  • +
+

SomeFX/source/gui/waveview.hpp の内容です。

+
#pragma once
 
 #include "vstgui4/vstgui/vstgui.h"
 
@@ -1247,9 +1317,9 @@ 

カスタムビューの追加

}; } // namespace VSTGUI
-

SomeFX/source/gui/waveview.cpp の内容です。

-
#include "waveview.hpp"
+  

SomeFX/source/gui/waveview.cpp の内容です。

+
#include "waveview.hpp"
 #include <cmath>
 
 namespace VSTGUI {
@@ -1302,9 +1372,9 @@ 

カスタムビューの追加

} } // namespace VSTGUI
-

SomeFX/source/gui/waveviewcreator.cpp の内容です。

-
#pragma once
+  

SomeFX/source/gui/waveviewcreator.cpp の内容です。

+
#pragma once
 
 #include "waveview.hpp"
 
@@ -1444,8 +1514,8 @@ 

カスタムビューの追加

} // namespace UIViewCreator } // namespace VSTGUI
-

+  

 `SomeFX/CMakeLists.txt` にファイルを追加します。
 
 ```cmake
@@ -1461,29 +1531,30 @@ 

カスタムビューの追加

source/gui/waveview.cpp # 追加 source/gui/waveviewcreator.cpp # 追加 )
-
    -
  • vstgui4/vstgui/Documentation/html/md_page_create_your_own_ui_view.html
  • -
  • vstgui4/vstgui/Documentation/html/class_v_s_t_g_u_i_1_1_i_view_creator.html
  • -
  • vstgui4/vstgui/uidescription/uiattributes.h
  • -
  • vstgui4/vstgui/uidescription/detail/uiviewcreatorattributes.h
  • -
-

パラメータの連動

-
    -
  • TODO 検証
  • -
-

ここに書いてある内容は手持ちの DAW -では動かなかったので検証できていません。同じ仕組みを使っている -noteexpressionsynth のキーボード UI もうまく動いていなかったので、 DAW -側で実装されていない可能性が高いと判断して掲載しています。

-

UI エディタで、パラメータを受け取る側のビューの sub-controller -に適当な文字列を設定します。ここでは WaveViewController -としています。

-

コントロールクラスに VST3EditorDelegate を継承させて -createSubController を実装します。 -SomeFX/source/plugcontroller.hpp -でメソッドを追加します。

-
class PlugController : public Vst::EditController, public VSTGUI::VST3EditorDelegate {
+  
    +
  • vstgui4/vstgui/Documentation/html/md_page_create_your_own_ui_view.html
  • +
  • vstgui4/vstgui/Documentation/html/class_v_s_t_g_u_i_1_1_i_view_creator.html
  • +
  • vstgui4/vstgui/uidescription/uiattributes.h
  • +
  • vstgui4/vstgui/uidescription/detail/uiviewcreatorattributes.h
  • +
+

+
    +
  • TODO 検証
  • +
+

ここに書いてある内容は手持ちの DAW + では動かなかったので検証できていません。同じ仕組みを使っている + noteexpressionsynth のキーボード UI もうまく動いていなかったので、 DAW + 側で実装されていない可能性が高いと判断して掲載しています。

+

UI エディタで、パラメータを受け取る側のビューの sub-controller + に適当な文字列を設定します。ここでは WaveViewController + としています。

+

コントロールクラスに VST3EditorDelegate を継承させて + createSubController を実装します。 + SomeFX/source/plugcontroller.hpp + でメソッドを追加します。

+
class PlugController : public Vst::EditController, public VSTGUI::VST3EditorDelegate {
 public:
   // ...
 
@@ -1492,10 +1563,10 @@ 

パラメータの連動

const VSTGUI::IUIDescription *description, VSTGUI::VST3Editor *editor) SMTG_OVERRIDE; };
-

SomeFX/source/plugcontroller.cpp -に実装を追加します。

-
class WaveViewController : public DelegationController {
+  

SomeFX/source/plugcontroller.cpp + に実装を追加します。

+
class WaveViewController : public DelegationController {
 public:
   WaveViewController(IController *controller) : DelegationController(controller) {}
 
@@ -1542,100 +1613,109 @@ 

パラメータの連動

} return nullptr; }
-

これで動くはずですが、コメントで書いたように -DelegationControllervalueChanged -がホストから呼び出されていないようです。ドキュメンテーションの -vstgui4/vstgui/Documentation/html/page_uidescription_editor.html -では DelegationControllernotify -を使っていますが、 CControl::kMessageValueChanged は VSTGUI -4.8 で廃止されたので動きません。

-
    -
  • vstgui4/vstgui/Documentation/html/page_uidescription_editor.html
  • -
  • vstgui4/vstgui/Documentation/html/page_news_and_changes.html
  • -
-

コードでGUI

-

VSTGUIEditor をベースにしてコードでGUIを作ります。

-

VSTGUIEditor を使った GUI -の作成についてはうつぼかずらさんによるC++でVST作りが参考になります。ここではC++でVST作りで紹介されていない内容について扱っています。

- -

カスタムフォント

-

VSTGUI でカスタムフォントを使うにはプラグインバンドルの -Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

プラグインの CMakeLists.txt に以下の行を追加します。 -${target} -はプラグイン名あるいはプロジェクト名です。ライセンスファイルもまとめて同梱しています。

-
smtg_add_plugin_resource(${target} "../common/resource/Fonts/Tinos-BoldItalic.ttf" "Fonts")
+  

これで動くはずですが、コメントで書いたように + DelegationControllervalueChanged + がホストから呼び出されていないようです。ドキュメンテーションの + vstgui4/vstgui/Documentation/html/page_uidescription_editor.html + では DelegationControllernotify + を使っていますが、 CControl::kMessageValueChanged は + VSTGUI 4.8 で廃止されたので動きません。

+
    +
  • vstgui4/vstgui/Documentation/html/page_uidescription_editor.html
  • +
  • vstgui4/vstgui/Documentation/html/page_news_and_changes.html
  • +
+

+

VSTGUIEditor をベースにしてコードでGUIを作ります。

+

VSTGUIEditor を使った GUI + の作成についてはうつぼかずらさんによるC++でVST作りが参考になります。ここではC++でVST作りで紹介されていない内容について扱っています。

+ +

+

VSTGUI でカスタムフォントを使うにはプラグインバンドルの + Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

プラグインの CMakeLists.txt に以下の行を追加します。 + ${target} + はプラグイン名あるいはプロジェクト名です。ライセンスファイルもまとめて同梱しています。

+
smtg_add_plugin_resource(${target} "../common/resource/Fonts/Tinos-BoldItalic.ttf" "Fonts")
 smtg_add_plugin_resource(${target} "../common/resource/Fonts/LICENSE.txt" "Fonts")
-

コード側では CFontDesc -でフォントファミリの文字列とスタイルを指定すれば使えます。

-
SharedPointer<CFontDesc> font = new CFontDesc(
+  

コード側では CFontDesc + でフォントファミリの文字列とスタイルを指定すれば使えます。

+
SharedPointer<CFontDesc> font = new CFontDesc(
   "Tinos",                                    // フォントファミリ名。
   10.0,                                       // サイズ。
   CTxtFace::kBoldFace | CTxtFace::kItalicFace // スタイル。
 );
-

太字とイタリックは使えました。 Noto フォントなどが提供している demi -light などのより細かい文字の太さが使えるかどうかは確認していません。

-

フォントファミリ名あるいはスタイルの指定が正しくないときは VSTGUI -が設定した kSystemFont がデフォルトとして使われます。 macOS -では 12 ポイントの Helvetica 、 それ以外の OS では 12 -ポイントの Arial がデフォルトです。詳細は -vst3sdk/vstgui4/vstgui/lib/cfont.cpp -を参照してみてください。

-

ホストのオートメーションに応じて表示を更新

-

ホストがオートメーションによってパラメータを変更したときは -EditController.setParamNormalized() -に変更された値が渡されます。 setParamNormalized() -をオーバーライドして GUI に値を渡すことができます。

-
    -
  1. VSTGUIEditor を継承したエディタクラスに ID -と値を受け取って CControl -などの要素を更新するメソッドを作る。
  2. -
  3. EditController -を継承したコントローラクラスにエディタクラスのポインタを持たせる。
  4. -
  5. setParamNormalized() -をオーバーライドしてエディタクラスのポインタから GUI に値を渡す。
  6. -
- -

リフレッシュレートの設定

-

VSTGUIEditorsetIdleRate -でリフレッシュレートを変更できます。指定する値の単位は ms (ミリ秒) -で、デフォルト値は 100ms (10Hz) -です。カスタムビューの更新が遅く感じるときなどに変更してみてください。

-
bool PlugEditor::open(void *parent, const PlatformType &platformType)
+  

太字とイタリックは使えました。 Noto フォントなどが提供している demi + light + などのより細かい文字の太さが使えるかどうかは確認していません。

+

フォントファミリ名あるいはスタイルの指定が正しくないときは VSTGUI + が設定した kSystemFont がデフォルトとして使われます。 + macOS では 12 ポイントの Helvetica 、 それ以外の OS では + 12 ポイントの Arial がデフォルトです。詳細は + vst3sdk/vstgui4/vstgui/lib/cfont.cpp + を参照してみてください。

+

+

ホストがオートメーションによってパラメータを変更したときは + EditController.setParamNormalized() + に変更された値が渡されます。 setParamNormalized() + をオーバーライドして GUI に値を渡すことができます。

+
    +
  1. VSTGUIEditor を継承したエディタクラスに ID + と値を受け取って CControl + などの要素を更新するメソッドを作る。
  2. +
  3. EditController + を継承したコントローラクラスにエディタクラスのポインタを持たせる。
  4. +
  5. setParamNormalized() + をオーバーライドしてエディタクラスのポインタから GUI に値を渡す。
  6. +
+ +

+

VSTGUIEditorsetIdleRate + でリフレッシュレートを変更できます。指定する値の単位は ms (ミリ秒) + で、デフォルト値は 100ms (10Hz) + です。カスタムビューの更新が遅く感じるときなどに変更してみてください。

+
bool PlugEditor::open(void *parent, const PlatformType &platformType)
 {
   setIdleRate(1000 / 60);
 
   // ...
 }
-
    -
  • public.sdk/source/vst/vstguieditor.cpp
  • -
  • vstgui4/vstgui/lib/cvstguitimer.h
  • -
-

キーボードイベントの受け取り

-

キーボードイベントは CView::onKeyboardEvent() -をオーバーライドして受け取ります。 onKeyboardEvent -が呼ばれるためにはビューがフォーカスを取る必要があります。

-

CControl を継承したクラスでは -setWantsFocus(true) -をコンストラクタで呼ぶだけで、マウスクリックなどでフォーカスが取れるようになります。

-
struct SomeControl : public CControl {
+  
    +
  • public.sdk/source/vst/vstguieditor.cpp
  • +
  • vstgui4/vstgui/lib/cvstguitimer.h
  • +
+

+

キーボードイベントは CView::onKeyboardEvent() + をオーバーライドして受け取ります。 onKeyboardEvent + が呼ばれるためにはビューがフォーカスを取る必要があります。

+

CControl を継承したクラスでは + setWantsFocus(true) + をコンストラクタで呼ぶだけで、マウスクリックなどでフォーカスが取れるようになります。

+
struct SomeControl : public CControl {
 public:
   explicit SomeControl(const CRect &size)
     : CControl(size)
@@ -1648,16 +1728,16 @@ 

キーボードイベント // ここでキーボードイベントをハンドル。 } };

-

CControl を継承したクラスは Ctrl + -左クリック -のイベントが奪われてしまうという問題があります。この問題を避けるためには -CView が使えます。

-

CView -を継承したクラスではフォーカスを明示的に取る必要があります。フォーカスを取るには -CFrame::setFocusView() が使えます。 CFrame は -VSTGUIEditor::getFrame() から取得できます。

-
struct SomeView : public CView {
+  

CControl を継承したクラスは Ctrl + + 左クリック + のイベントが奪われてしまうという問題があります。この問題を避けるためには + CView が使えます。

+

CView + を継承したクラスではフォーカスを明示的に取る必要があります。フォーカスを取るには + CFrame::setFocusView() が使えます。 CFrame + は VSTGUIEditor::getFrame() から取得できます。

+
struct SomeView : public CView {
 public:
   // VSTGUIEditor::getFrame() を使うので editor としてコンストラクタで受け取る。
   Steinberg::Vst::VSTGUIEditor *editor = nullptr;
@@ -1708,31 +1788,33 @@ 

キーボードイベント // ここでキーボードイベントをハンドル。 } };

-

以下は公式ドキュメンテーションへのリンクです。キーボードイベントを受け取る条件については書いてありますが、どうすればその条件を満たせるのか -(どう実装すればいいのか) -について書いていないので、あまり役には立ちません。

- -

カスタムビューの実装と関連するコントロールの表示の変更

-

あるコントロールの値を変更したときに、連動して別のコントロールの値や表示を変更したい時があります。ここでは例としてコントロールの値に応じてカスタムビューで波形を表示するようにします。

-

カスタムビューは CView -を継承したクラスならどれを継承しても作ることができます。例えばスライダーの見た目を変更したいなら -CSlider -を継承する、テキストを表示するカスタムビューを作りたいときは -CParamDisplay -を継承するといった形で実装の手間を減らせるときがあります。継承して使えるクラスを探すときは -vstgui4/vstgui/lib と -vstgui4/vstgui/lib/controls を覗いてみてください。

-

ここでは波形を表示するだけなので CControl を継承して -draw をオーバーライドしただけの WaveView -というカスタムビューを作ります。 waveview.hpp -の内容です。

-
#pragma once
+  

以下は公式ドキュメンテーションへのリンクです。キーボードイベントを受け取る条件については書いてありますが、どうすればその条件を満たせるのか + (どう実装すればいいのか) + について書いていないので、あまり役には立ちません。

+ +

+

あるコントロールの値を変更したときに、連動して別のコントロールの値や表示を変更したい時があります。ここでは例としてコントロールの値に応じてカスタムビューで波形を表示するようにします。

+

カスタムビューは CView + を継承したクラスならどれを継承しても作ることができます。例えばスライダーの見た目を変更したいなら + CSlider + を継承する、テキストを表示するカスタムビューを作りたいときは + CParamDisplay + を継承するといった形で実装の手間を減らせるときがあります。継承して使えるクラスを探すときは + vstgui4/vstgui/lib と + vstgui4/vstgui/lib/controls を覗いてみてください。

+

ここでは波形を表示するだけなので CControl を継承して + draw をオーバーライドしただけの WaveView + というカスタムビューを作ります。 waveview.hpp + の内容です。

+
#pragma once
 
 #include "vstgui/vstgui.h"
 
@@ -1758,15 +1840,16 @@ 

キーボードイベント }; } // namespace VSTGUI

-

waveview.cpp -の内容です。ここでは描画する波形が簡単なので WaveView::lfo -として GUI 側で実装しています。コードがより複雑になるときは GUI -側に波形を生成するコードを書かずに、プロセッサクラスから信号処理の部分をヘッダにまとめてインクルードすることをお勧めします。

-
    -
  • TODO
  • -
-
#include "waveview.hpp"
+  

waveview.cpp + の内容です。ここでは描画する波形が簡単なので + WaveView::lfo として GUI + 側で実装しています。コードがより複雑になるときは GUI + 側に波形を生成するコードを書かずに、プロセッサクラスから信号処理の部分をヘッダにまとめてインクルードすることをお勧めします。

+
    +
  • TODO
  • +
+
#include "waveview.hpp"
 
 #include <cmath>
 
@@ -1824,9 +1907,9 @@ 

キーボードイベント } } // namespace VSTGUI

-

エディタクラスに関数を追加します。

-
class PlugEditor : public VSTGUIEditor, public IControlListener {
+  

エディタクラスに関数を追加します。

+
class PlugEditor : public VSTGUIEditor, public IControlListener {
 // ...
 
   void addWaveView(const CRect &size);
@@ -1841,10 +1924,10 @@ 

キーボードイベント // ... };

-

addWaveView の実装です。 parameter.hpp -で定義したパラメータIDを使ってコントローラから初期値を取得しています。

-
#include "parameter.hpp"
+  

addWaveView の実装です。 parameter.hpp + で定義したパラメータIDを使ってコントローラから初期値を取得しています。

+
#include "parameter.hpp"
 
 void PlugEditor::addWaveView(const CRect &size)
 {
@@ -1859,9 +1942,9 @@ 

キーボードイベント auto normalized = controller->getParamNormalized(tag); return controller->normalizedParamToPlain(tag, normalized); };

-

openWaveView を作成します。

-
bool PlugEditor::open(void *parent, const PlatformType &platformType)
+  

openWaveView を作成します。

+
bool PlugEditor::open(void *parent, const PlatformType &platformType)
 {
   // ...
 
@@ -1869,15 +1952,15 @@ 

キーボードイベント // ... }

-

エディタクラスの valueChanged -で関連するコントロールの変更を検知して WaveView -を更新します。ここでは VSTGUIEditor::open -で作成したコントロールを取得するために getViewAt -を使っています。 getViewAt に渡している -WaveViewPos はエディタクラスのメンバとして定義した -WaveView の位置です。

-
void PlugEditor::valueChanged(CControl *pControl)
+  

エディタクラスの valueChanged + で関連するコントロールの変更を検知して WaveView + を更新します。ここでは VSTGUIEditor::open + で作成したコントロールを取得するために getViewAt + を使っています。 getViewAt に渡している + WaveViewPos はエディタクラスのメンバとして定義した + WaveView の位置です。

+
void PlugEditor::valueChanged(CControl *pControl)
 {
   ParamID tag = pControl->getTag();
   ParamValue value = pControl->getValueNormalized();
@@ -1896,41 +1979,43 @@ 

キーボードイベント some->setDirty(true); } }

-

コントロールを取得する別の方法としては frame->getView -があります。引数の index -がどういう値なのかドキュメンテーションに書いていなかったのでここでは使っていません。興味のある方は -vstgui4/vstgui/lib/cviewcontainer.* -を読んでみてください。

-

スプラッシュスクリーンの追加

-

CSplashScreen -でスプラッシュスクリーンを作成できます。

-

エディタクラスにスプラッシュスクリーンを追加する関数を作ります。

-
class PlugEditor : public VSTGUIEditor, public IControlListener {
+  

コントロールを取得する別の方法としては + frame->getView があります。引数の index + がどういう値なのかドキュメンテーションに書いていなかったのでここでは使っていません。興味のある方は + vstgui4/vstgui/lib/cviewcontainer.* + を読んでみてください。

+

+

CSplashScreen + でスプラッシュスクリーンを作成できます。

+

エディタクラスにスプラッシュスクリーンを追加する関数を作ります。

+
class PlugEditor : public VSTGUIEditor, public IControlListener {
   // ...
 
   void addSplashScreen(CRect &buttonRect, CRect splashRect);
 
   // ...
 };
-

addSplashScreen -の実装です。ここではスプラッシュスクリーンとしてカスタムビューの -CreditView -が表示されるようにしています。開いたスプラッシュスクリーンをクリックしたときに閉じるようにするにはカスタムビュー側の -setListenerCSplashScreen -を渡しておく必要があります。 setListener は -CControl で実装されています。

-
void PlugEditor::addSplashScreen(CRect &buttonRect, CRect splashRect)
+  

addSplashScreen + の実装です。ここではスプラッシュスクリーンとしてカスタムビューの + CreditView + が表示されるようにしています。開いたスプラッシュスクリーンをクリックしたときに閉じるようにするにはカスタムビュー側の + setListenerCSplashScreen + を渡しておく必要があります。 setListener は + CControl で実装されています。

+
void PlugEditor::addSplashScreen(CRect &buttonRect, CRect splashRect)
 {
   auto credit = new CreditView(splashRect, nullptr);
   auto splash = new CSplashScreen(buttonRect, this, -666, credit);
   credit->setListener(splash);
   frame->addView(splash);
 }
-

open でスプラッシュスクリーンを追加します。

-
bool PlugEditor::open(void *parent, const PlatformType &platformType)
+  

open でスプラッシュスクリーンを追加します。

+
bool PlugEditor::open(void *parent, const PlatformType &platformType)
 {
   // ...
 
@@ -1945,10 +2030,10 @@ 

スプラッシュスクリ // ... }

-

source/gui/splash.hpp を作って CreditView -を実装します。

-
#pragma once
+  

source/gui/splash.hpp を作って CreditView + を実装します。

+
#pragma once
 
 #include "vstgui/vstgui.h"
 
@@ -1981,9 +2066,9 @@ 

スプラッシュスクリ } // namespace Vst } // namespace Steinberg

-

source/gui/splash.cpp を作ります。

-
#include "splash.hpp"
+  

source/gui/splash.cpp を作ります。

+
#include "splash.hpp"
 
 namespace Steinberg {
 namespace Vst {
@@ -2027,18 +2112,20 @@ 

スプラッシュスクリ } // namespace Vst } // namespace Steinberg

-

SomeFX/CMakeLists.txt にファイルを追加します。

-
set(plug_sources
+  

SomeFX/CMakeLists.txt にファイルを追加します。

+
set(plug_sources
     //...
     source/gui/splash.hpp # 追加
     source/gui/splash.cpp # 追加
 )
-

ホストが提供するコンテキストメニューの追加

-

エディタクラスに IMouseObserver を継承させます。

-
class PlugEditor : public VSTGUIEditor, public IControlListener, public IMouseObserver {
+  

+

エディタクラスに IMouseObserver を継承させます。

+
class PlugEditor : public VSTGUIEditor, public IControlListener, public IMouseObserver {
 // ...
 
   // IMouseObserver の実装。
@@ -2054,10 +2141,10 @@ 

スプラッシュスクリ // ... };

-

エディタクラスの open メソッド内で frame -からマウスイベントを伝えるように指定します。

-
bool PlugEditor::open(void *parent, const PlatformType &platformType)
+  

エディタクラスの open メソッド内で frame + からマウスイベントを伝えるように指定します。

+
bool PlugEditor::open(void *parent, const PlatformType &platformType)
 {
   // ...
 
@@ -2065,9 +2152,9 @@ 

スプラッシュスクリ // ... }

-

onMouseDown を実装します。

-
void PlugEditor::onMouseEvent(MouseEvent &event, CFrame *frame) override
+  

onMouseDown を実装します。

+
void PlugEditor::onMouseEvent(MouseEvent &event, CFrame *frame) override
   {
     if (!event.buttonState.isRight()) return;
 
@@ -2092,20 +2179,22 @@ 

スプラッシュスクリ event.consumed = true; };

-

0 あるいは負の tag -が指定されたコントロールではコンテキストメニューを表示したくないので、 -id の条件を id < 1 || id >= LONG_MAX -としています。 LONG_MAX を使っているのは -ParamIDunsigned long の typedef -だからです。

-

コンテキストメニューが開かないときは event.consumed -を変えずにリターンすることで、他のコントロールにマウスイベントが伝わるようにしています。

-

Linux で VSTGUI を利用

-

RunLoop クラスを VST3Editor -のコードからコピーして x11runloop.hpp -というヘッダにします。

-
#pragma once
+  

0 あるいは負の tag + が指定されたコントロールではコンテキストメニューを表示したくないので、 + id の条件を id < 1 || id >= LONG_MAX + としています。 LONG_MAX を使っているのは + ParamIDunsigned long の typedef + だからです。

+

コンテキストメニューが開かないときは event.consumed + を変えずにリターンすることで、他のコントロールにマウスイベントが伝わるようにしています。

+

+

RunLoop クラスを VST3Editor + のコードからコピーして x11runloop.hpp + というヘッダにします。

+
#pragma once
 
 #if LINUX
 
@@ -2213,10 +2302,10 @@ 

Linux で VSTGUI を利用

} // namespace Steinberg #endif
-

PlugEditor のコードに x11runloop.hpp -をインクルードします。また CFrame の初期化が変わります。

-
//...
+  

PlugEditor のコードに x11runloop.hpp + をインクルードします。また CFrame の初期化が変わります。

+
//...
 
 #include "x11runloop.hpp"
 
@@ -2243,23 +2332,25 @@ 

Linux で VSTGUI を利用

// ... }
-

コンテキストメニューにズーム機能を追加

-

この項の内容は実装をあきらめたので中途半端です。次の問題が解決されていないので注意してください。

-
    -
  • コンテキストメニューはコントロールの上でしか表示されない。
  • -
  • 入れ子になったメニューの登録がうまくできない。
  • -
  • VSTGUI 4.11 で導入された新しいイベントハンドラを使っていない。
  • -
-

FL Studio 20.5 -でズーム後にプラグインのウィンドウがリサイズされなかったことが、あきらめた理由です。

-
-

ズーム機能は GUI を任意の倍率で拡大する機能です。 VSTGUI4 -で高解像度ディスプレイへ対応するときに使えます。

-

まずはエディタクラスに CommandMenuItemTargetAdapter -を継承させて、ユーザがコンテキストメニューのアイテムを選択したときに通知されるようにします。

-
class PlugEditor : public VSTGUIEditor,
+  

+

この項の内容は実装をあきらめたので中途半端です。次の問題が解決されていないので注意してください。

+
    +
  • コンテキストメニューはコントロールの上でしか表示されない。
  • +
  • 入れ子になったメニューの登録がうまくできない。
  • +
  • VSTGUI 4.11 + で導入された新しいイベントハンドラを使っていない。
  • +
+

FL Studio 20.5 + でズーム後にプラグインのウィンドウがリサイズされなかったことが、あきらめた理由です。

+
+

ズーム機能は GUI を任意の倍率で拡大する機能です。 VSTGUI4 + で高解像度ディスプレイへ対応するときに使えます。

+

まずはエディタクラスに CommandMenuItemTargetAdapter + を継承させて、ユーザがコンテキストメニューのアイテムを選択したときに通知されるようにします。

+
class PlugEditor : public VSTGUIEditor,
                    public IControlListener,
                    public IMouseObserver,
                    public CommandMenuItemTargetAdapter {
@@ -2274,12 +2365,12 @@ 

Linux で VSTGUI を利用

// ... };
-

onCommandMenuItemSelected の実装です。 2 -つのメニューアイテムを用意して、 1.0 倍と 2.0 -倍を切り替えられるようにしています。倍率の切り替えには -CFramesetZoom を使います。

-
bool PlugEditor::onCommandMenuItemSelected(CCommandMenuItem *item)
+  

onCommandMenuItemSelected の実装です。 2 + つのメニューアイテムを用意して、 1.0 倍と 2.0 + 倍を切り替えられるようにしています。倍率の切り替えには + CFramesetZoom を使います。

+
bool PlugEditor::onCommandMenuItemSelected(CCommandMenuItem *item)
 {
   if (item->getCommandCategory() != "Scale") return false;
   if (frame == nullptr) return true;
@@ -2296,15 +2387,15 @@ 

Linux で VSTGUI を利用

return true; }
-

onMouseDown -を変更してマウスが右クリックされたときに表示されるコンテキストメニューにズームを行うアイテムを追加します。

-

アイテムが選択されると ContextMenuTarget の -executeMenuItem が呼び出されます。さらに -item->execute() から -CommandMenuItemTargetAdapter の -onCommandMenuItemSelected が呼び出されます。

-
class ContextMenuTarget : public IContextMenuTarget, public FObject {
+  

onMouseDown + を変更してマウスが右クリックされたときに表示されるコンテキストメニューにズームを行うアイテムを追加します。

+

アイテムが選択されると ContextMenuTarget の + executeMenuItem が呼び出されます。さらに + item->execute() から + CommandMenuItemTargetAdapter の + onCommandMenuItemSelected が呼び出されます。

+
class ContextMenuTarget : public IContextMenuTarget, public FObject {
 public:
   ContextMenuTarget(CCommandMenuItem *item) : item(item)
   {
@@ -2380,20 +2471,21 @@ 

Linux で VSTGUI を利用

contextMenu->release(); return kMouseEventHandled; }
-

コメントにも書いていますが、 kIsGroupStart と -kIsGroupEnd を設定してもメニューが入れ子になりません。

-

どこを右クリックしてもメニューが開くようにするには -COptionMenu -でメニューを作っておいて、コントロール上で右クリックされているときは -IContextMenu に変換する、そうでなければ -COptionMenu -をそのままポップアップする、という処理が考えられます。 -vstgui4/vstgui/plugin-bindings/vst3editor.* -に実装例があります。

+

コメントにも書いていますが、 kIsGroupStart と + kIsGroupEnd + を設定してもメニューが入れ子になりません。

+

どこを右クリックしてもメニューが開くようにするには + COptionMenu + でメニューを作っておいて、コントロール上で右クリックされているときは + IContextMenu に変換する、そうでなければ + COptionMenu + をそのままポップアップする、という処理が考えられます。 + vstgui4/vstgui/plugin-bindings/vst3editor.* + に実装例があります。

- - + + diff --git a/docs/img/favicon/favicon.png b/docs/img/favicon/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..967b812893a9a25270c9a1f95e2da69a1ff92501 GIT binary patch literal 820 zcmeAS@N?(olHy`uVBq!ia0vp^3Lwk@BpAX3RW*PVOS+@4BLl<6e(pbstRTr`k04(L zhAK4%hK3dfhF?ITh8GMBr3MTPuM!v-tY$DUh!@P+6=(yLU`q0KcVYP7-hXC4kjGiz z5n0T@5aR~Ij3QH?io?-t-jM*XR*ZJ!9RV+{MzLc8B7E-B@ zUdWo7v}R=nGgI%LJ4^Ezygq7PV~gO}bJHl`U;+CYzl}Z34ZC;mEDrTEsLuN#w{Dd~ zZIWQTnZ;9e_os@*yHzK8uL#z=`XiK4DErFcNuh4fjFNAA^`GV}DlYclKkrx3rVGOL zZ%?ZQDsAn(Wf~waz4F`p8xyA9t8I?H9vgFKOM3NM^FC!pv9yG;pu$66|IAE2|D#Z& z`giHvsSD<;%oHg$wu_b6cQobu1@}99MW+PoT+Xl)d%S5*`+_Yz7F)CL&pK!pVX@(# z<-w?roDClnO?EtP46psYUwBSE?Ix^3l7W zVXDb1arNMx+ABfdU9@LEo%#LdTq*aLT-zBOk39Zw{ZCvVzSMKk*7$q&>1QOQbX1Ce z0Hav7#5JNMC9x#cD!C{XNHG{07#ZstnCluFgcurF83B>8wt<0_fx)bIaat%Ea`RI% z(<*Umc)j`AG@yp?s*s41pu}>8f};Gi%$!t(lFEWqh0KDIWCn(cIgdZ_a1@4VXq@st zea7=?5CgL^w_Y;0u(GiCWD#az1(ybs!zs+ln?n>%-?(z($eANDN7zp{cr5VJV|XPl VSn|oqbSlsa22WQ%mvv4FO#o_aMh*Y~ literal 0 HcmV?d00001 diff --git a/docs/img/favicon/favicon.svg b/docs/img/favicon/favicon.svg new file mode 100644 index 00000000..21b41f84 --- /dev/null +++ b/docs/img/favicon/favicon.svg @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/img/thumbnail_ArcDark.png b/docs/img/thumbnail_ArcDark.png new file mode 100644 index 0000000000000000000000000000000000000000..42bef74792d0d1a4644ab626c222ed7e781d819c GIT binary patch literal 17705 zcmcF~RZtyW&~4Bh+}+(>gNB2<202)8hu{t$!QI`1Lk{lF!QI_0xVvAfZq=>(_CNg( z)3a-;W_nM}n(p3f^$u52l14!!MEvsQ3yQ3agxcr1{_}_ez<=8Ly};`)UnDMNCB!s5 zvd%gV5~&B%|2;XQB@5Is%2zBP9!kMjTK+ecM{Cg{?$o?;+6i7?UT@-A?bzhxZHO9!Bh=lnt^EC9&0-abL9aBwnsb=r? z?f2)GcHrqZmrS=)eh`yeb>JjZP+YSC%xsNG-)Qwd zOhF#heWQ2Wa2x{cDEq$JD9)TCQ9*(L&&Fq zTg>_eSg|jlf-j@>An1CKie3{Gq_1Wi9IR#|v>6)&vZ+T0fB`uCF)+4T060)EcZNu@ zozc*K@ce@wkmZ-{3*vTv7AJ)BlYuZG zIPEffd(rmLma7|uiDdMU?>0RFy0M9IC`x`FysZPdEh-lPZt|k;JK(v;A%oW#+=ig; zR($BiZi~NH$S@FvB;yT$44&`Jy<1QN=^llcyPd3A9+;jNrcK9m3=My zkN*S4*nru9MJ9k`CygRtl^PvU1;8-PC_#wZXtw3aDrcoI3#nCDGY{OJ7A9Wj>qGPV zfbZn}1OZZ5k@q(N)5~+g5_T-yQj&o8y3jAL-GeU3=9BtcPn+)n!qV>+=Pf7bqVFZ5 zPN$C~{E+=yI;=j^ZfUGknFnOY(RU2k47pyqM0WnC9)f$aw&>tdi*%M?jRSL!6Uevs zol84~Y@t!z61+{vTY7V#FCVnBv}HZITm{NgNX0%jzX9{JPsn zXre=XNABsYJT(e1I6>5$R>=FDf^{;Ci8NA)NL-Rm%hY6@FBF|s{0~=Fg!2M*MVMb> zNQ=LTj$ioQaXa{P2bg361eIuyRP4PJaz5flCCBv#(J<))T_DE!+7g5VF+z1zQ}I8< zL8luXc)HfLz1~kFsbss?p$<3y+Dfdrg|j5GBsgU+ev*YOXyD@3v^{(7A-S6{#(LF_ zo%$ePEPUe=3CD6)F$&wJUhZ-yD-Pog3%A9S9qi*ab}2!QFp%+g2nmiD+`9Z?&?4tp z6NV8PFGCwX$o!j}JVyZwi}eOBbv1^>{2HPIZ4|FiTrDY6w$#l|eVTTT9vZU&7ECTw zk&8bW!HT4@KiBvP3N)Ht&la}~wpxB1XXJ8*L+cojvt8xr>4Ii z*4-O3SenFi+O^NmmD}Fi2ZUMWRFO0K=Gf|FRj<|@E%1Ynd^0&;)$ZpC?HwrElu@xk zlQ#Vv*ycLIllqndk&S%^L(bSD2{+GpqD89%gpaGvbM7JZy% zLpLY3|Mw!%2gRM~8W9Xvm~2O(KT%2nCqt%p6W>LDj(D`3hBR1(m_Bk(LsU zC=R_@;{7wK?VKOduTFM3TtvXU3aVAM0Rw)cqsxdJ0|Ll`@IxdRqK#xA?0xJC5ccnY za3g@vq%=N!v5^F=P1_kQN6;H!9JQ2U$cCR*G~*j%(I zjIDH@`(I)f+p*^(9M0BPud@fmIxgqtd;ifo_XCrXO#nrWorxl}SHQaQS9gsAGh5av zU^hxvk|ftbE+OHctK-M~jmJ70et+u09RatG0sK)E3ToX32dn_x!){4$K5HFB6iAqM zT!itnD<;!Rj5%h8DKHaSL> zO!ZRuv_^KM>&!;~&?NYFq^zkVxaznO4n%1mV!7J$>>2C%)745lQ64+s5lh6+a21H65{26}^fXr52KVeE?(@%T51j3>F0Q8ST>e&ZDOY zcTipW?N50#Fx_0mui+JYF^XsdέL|0V?mG$$2|054NM_#LwXU~E)T=$SKM&Al% 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 DY+aPI literal 0 HcmV?d00001 diff --git a/docs/img/thumbnail_BB.png b/docs/img/thumbnail_BB.png new file mode 100644 index 0000000000000000000000000000000000000000..0549101314164640f3c74ae13e5d7bf798a9402e GIT binary patch literal 12570 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 %R^vUXHi!rmV8C zlr-8}5i|P(GbDDOUMZdy@&Sg+)~dR`Z{*heoI|BO*AVQwb!o@P7C9f2Y?nUQzHg;Z zbtYa&ncdDmGeE|bMnC{K!DlKJmIMZaEJje@E+39OUXK~J-ulBhZ#QdJW>fV|f|9HK z)1@tqH#yfQ3)&sI#L3dsE_T(oIO43mvCO#8iga~}6Vg&pY6ZLU&YPHBOD=X#R zNJ2ox7)2Ep#&q*TnLGaDY0Hcuu-8hx(Olt&0u(GKu7`$1-Z%Htg=B*S5CR zdNzJPSY6%BEcNsSPfLeP_PK-QnL|x3ZqM-8hwB%wj#<1W??szo_CuqsOs(ULaCy}h zf86S}Z&xD_{W=#cO;d$EujsI%{gy6sPS-ZN>%3E2-cOnC+Nyw)_140vnEYf4FC;vJ z-Z>SHNz}T$xcBdII~G~uT28-s$>UHNTQwFmf9DGaO?`Wz+49(B*ke@p7`>%r-dYh7 z@;Ba*&in}93_!W;dh#9W5-tNmC1xq|;?TGA4WDY+ z8a`=hSyW0w<(VQ?k8Uq(OXv5hPL;^&i85))qrq0U?!w8qendqY%tfKR8PKAcJ4Gm=(=bY&kn#)Xsvf)n!! zRj3jJWt@eJ3%^|xeEw{bwOOXI-+w6dz9Z=F1sx>wJk96MFrpHk5*QL<^@GavYx4SR zO2@VjR`l!+&T#F-C8{NA5ZiG%fv&R{;DbNLGmo;5$F z?fA$3rsfXR?%HBDsn)*sldv?gF!C(N%~}ueqnM1|O51D1FlU)F!SYV{998_Tvy$I+ zV%Hhm%;v7^pk|bSQ>}<`Cyp#IU(Uu@SX7?iEB?)Pzh*)b6GItF^R$58*)*s0MWB$j zDO$Jvk~w|LR{QgLl(<1P4xDdsadEjHrkgpMD#^|>V8vkb!y=biqORzRC;4Jld`W@^)u!CP1jFak9Z?VL*c|1n$;Y zTj~gIqL5ZgG*FFTZOKR#p~`J_d4>=}1)h?9aQWpgx5N#E?iB^Qjw1#H2^wQ}tt(~C z`{{6}6OVvXa!gJRAF3Eygn5z|n@^NgDtj?n;>3jW$zJP9oedIgi(k;+5-#75J%a6O z8(9kyA%(0~YbB|nb!SV&u_aClz12+t?$gb3dd*o( zqv;w1yUmlh?csmHr&3E;t`-S`YQxL(EgF#K=hp21|L*|U-F)oIgIU8r~K3c*j z8^2Ghnqj81{7NX{LWj<~s;XkplgE@a93^~Gq4TcIX2Y<3$IeW~qTi>bsf3FMI`8h= be}MlVKMKsmohLw300000NkvXXu0mjfM34(7 literal 0 HcmV?d00001 diff --git a/docs/img/thumbnail_BlackOnWhiteInvert.png b/docs/img/thumbnail_BlackOnWhiteInvert.png new file mode 100644 index 0000000000000000000000000000000000000000..e66a449aed9c9049915ecf91d8df6ed85e446b43 GIT binary patch literal 18685 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 sKrt^yf@Q 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 literal 0 HcmV?d00001 diff --git a/docs/img/thumbnail_SoftBlue.png b/docs/img/thumbnail_SoftBlue.png new file mode 100644 index 0000000000000000000000000000000000000000..1797dbaf816d61586cc18bd1eb307c0ae84695d2 GIT binary patch literal 17248 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 WBTBfQ%Hoy)0000 - - - - -index - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -

-

- Update: 2024-03-03 +

+

+ Update: 2024-08-11 +

+
+ Table of Contents + +
+
+ +

+

VST® 3 プラグインを公開しています。

+

何かあれば GitHub + のリポジトリに issue を投げるか ryukau@gmail.com + にメールを送信してもらえれば対応します。お気軽にお問い合わせください。

+

paypal.me/ryukau + から開発資金を投げ銭することもできます。

+

This page is publishing VST® 3 plugins.

+

If you find a bug, feel free to report the issue at GitHub repository or + send email to ryukau@gmail.com. Note that I’m not native + in English.

+

You can fund the development via paypal.me/ryukau.

+

+
+
+ +
+ ArcDark +
+
+
+ +
+ BB +
+
+
+ +
+ BlackOnWhite +
+
+
+ +
+ BlackOnWhiteInvert +
+
+
+ +
+ Leaf +
+
+
+ +
+ LightOnDark +
+
+
+ +
+ OrangeOnBlack +
+
+
+ +
+ Orbit +
+
+
+ +
+ SoftBlue +
+
+
+ +
+ Warmth +
+
+
+

GUI の色は変更できます。マニュアルの「GUI + の見た目の設定」を参照してください。上はプリセットのテーマの一覧です。

+

GUI colors can be configured. Refer to “GUI Style Configuration” + section in the manual. Above is the list of preset themes.

+

+

以下のリリースページからプラグインをまとめてダウンロードできます。

+ +

All the plugin download link can be found at release page on + following link.

+ +

+

+ + ClangSynthhクラング シンセ + CollidingCombSynthコライディング コム シンセ + + CubicPadSynthキュービック パッドシンセ + + EnvelopedSineエンベロープド サイン + + FDNCymbalエフディーエヌ シンバル + + GenericDrumジェネリック ドラム + GlitchSprinklerグリッチ スプリンクラー + + IterativeSinClusterイテレイティブ サイン + クラスタ + MaybeSnareメイビー スネア + MembraneSynthメンブレイン シンセ + + LightPadSynthライト パッド シンセ + + SyncSawSynthシンク ソウ シンセ + TrapezoidSynthトラピゾイド シンセ + + UltraSynthウルトラ シンセ WaveCymbalウェイブ + シンバル

-
- Table of Contents - -
-
-

Uhhyou Plugins

-

VST® 3 プラグインを公開しています。

-

何かあれば GitHub -のリポジトリに issue を投げるか ryukau@gmail.com -にメールを送信してもらえれば対応します。お気軽にお問い合わせください。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

This page is publishing VST® 3 plugins.

-

If you found some part of manual is not clear and/or found typo, -please file issue at GitHub repository or -send email to ryukau@gmail.com. Note that I’m not native in -English and it’s most likely that the manual contains some weird -sentences. I’d like to fix it, so feel free to report those issues.

-

You can fund the development via paypal.me/ryukau.

-

プラグイン一覧 | Plugin List

- -

以下のリリースページからプラグインをまとめてダウンロードできます。

- -

All the plugin download link can be found at release page on -following link.

- -

Synthesizers

- - - - - - - - - - - - - - -

Effects

- - - - - - - - - - - - - - - - - - -

GenericDrum

-
-Image of GenericDrum graphical user interface. -
-

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

- -

GenericDrum is a generic drum synthesizer using delays. This one can -make convincing snare and bass drum sounds. Cymbal sounds can be made, -but it’s not as good as lower pitched drum sounds.

- -

FeedbackPhaser

-
-Image of FeedbackPhaser graphical user interface. -
-

FeedbackPhaser は LFO -ではなくフィードバックによってオールパスフィルタのカットオフ周波数を変調するフェイザです。主に歪み系の音が出ます。

- -

FeedbackPhaser is a phaser but the modulation source is feedback -signal rather than an LFO. It sounds more like a distortion rather than -a phaser most of times.

- -

AccumulativeRingMod

-
-Image of AccumulativeRingMod graphical user interface. -
-

AccumulativeRingMod -は入力信号の振幅を積算した値を位相として使うリングモジュレータです。サイン波のようなシンプルな波形にかけると -FM のような音がでます。

- -

AccumulativeRingMod is a ring modulator that uses accumulated -amplitude of input signal as the phase. When applied to simple waveforms -like a sine wave, it sounds similar to FM.

- -

RingModSpacer

-
-Image of RingModSpacer graphical user interface. -
-

RingModSpacer -は激しい歪みを生じるサイドチェインリミッタです。全波整流したサイドチェイン入力によってメインの入力を振幅変調することで、サイドチェインを足し合わせてもクリッピングしないような隙間をメインの入力にこじ開けることができます。当然、隙間をこじ開けられたメインの入力は歪むので使いどころが難しいです。

- -

RingModSpacer is a sidechain limiter that adds severe distortion. -First, full-wave rectification is applied to sidechain input. Then -rectified signal modulates amplitude of main input. The sum of modulated -main signal and raw sidechain signal won’t clip, when both peak -amplitudes are under 0 dB. That’s the theory. The hard part is to figure -out when to use this effect.

- -

ParallelDetune

-
-Image of ParallelDetune graphical user interface. -
-

ParallelDetune は 8 -つのピッチシフタを並列につないだエフェクタです。モノラルの音に薄くかけてコーラスのようにパンを左右に広げることもできます。

- -

ParallelDetune is a detuning effect with 8 pitch shifters connected -in parallel. It can be used to spread stereo image similar to chorus -effect.

- -

OrdinaryPhaser

-
-Image of OrdinaryPhaser graphical user interface. -
-

OrdinaryPhaser -はフィードバック経路にディレイが搭載されている点を除けば、普通のフェイザです。ノートイベントによってオールパスフィルタのカットオフ周波数とディレイ時間を制御できます。

- -

OrdinaryPhaser is an ordinary phaser with a delay on feedback path. -Note events can be used to control all-pass cutoff frequencies and delay -time.

- -

NarrowingDelay

-
-Image of NarrowingDelay graphical user interface. -
-

NarrowingDelay -は直列につないだピッチシフタと周波数シフタがフィードバック経路に設けられたディレイです。フィードバックのたびに音のスペクトラムを周波数軸の方向に広げる、あるいは狭めることができます。どちらかと言えばピッチが一定しない音との相性がいいです。ノートイベントで周波数シフタのシフト量を制御することもできます。

- -

NarrowingDelay is a delay with serially connected pitch shifter and -frequency shifter on feedback path. The spectrum of input signal can be -narrowed or expanded for each feedback. It is more suitable for sound -without stable pitch. Note event can be used to control frequency shift -amount.

- -

LongPhaser

-
-Image of LongPhaser graphical user interface. -
-

LongPhaser は遅延時間を長くできる Schroeder -オールパスフィルタを使ったフェイザです。ディレイとフェイザを足して 2 -で割ったような音が出ます。 2 で割った物足りなさを補うために LFO -やノートイベントで変調をかけることができます。

- -

LongPhaser is a phaser using Schroeder all-pass filters which is able -to set some long delay time. The sound is like somewhere between delay -and phaser. It feels a bit underwhelming, however modulation with LFO -and note events may be used to compensate the lack of character.

- -

CombDistortion

-
-Image of CombDistortion graphical user interface. -
-

CombDistortion -は自己変調するコムフィルタを使ったディストーションです。そのままの出力はざらざらと耳障りなので、キャビネットのインパルス応答と併せて使うことを想定しています。ノートイベントでコムフィルタのディレイ時間を制御できます。

- -

CombDistortion is a distortion using self-modulating comb filter. Raw -output sounds harsh, and it is better to use with external cabinet -impulse response. Note event can be used to control delay time of comb -filter.

- -

MaybeSnare

-
-Image of MaybeSnare graphical user interface. -
-

MaybeSnare はスネアドラムのような音が出るシンセサイザです。中身は 2 -つの MembraneSynth -が相互にフィードバックをかけるような構造になっています。スナッピーはついていませんが、変調のかけすぎによるノイズによって似たような音が出ます。

- -

MaybeSnare is a synthesizer that resembles sound of snare drum. This -is basically 2 MembraneSynth coupled by cross feedback. Snare wire is -not included. However, the noise of modulation adds rattling texture -similar to snare wire.

- -

MembraneSynth

-
-Image of MembraneSynth graphical user interface. -
-

MembraneSynth は自己変調するフィードバック・ディレイ・ネットワーク -(FDN) -を用いた膜を張った打楽器のような音がでるシンセサイザです。バスドラムやタムタムのような低めの打楽器の音が得意ですが、自己変調による発振によって変な音を作ることもできます。

- -

MembraneSynth is a synthesizer that resembles sound of percussions -with membrane, like bass drum or tom tom. The texture comes from -self-modulating feedback delay network (FDN). Some strange noise can -also be made by utilizing oscillation caused by self-modulation.

- -

UltraSynth

-
-Image of UltraSynth graphical user interface. -
-

UltraSynth は UltrasonicRingMod と同じく 64 -倍のオーバーサンプリングを行っていることを除けば、これといった特長のないモノフォニックのシンセサイザです。オーバーサンプリングの倍率が高いので変調をかけた音が得意ですが、 -CPU 負荷は高めです。

- -

UltraSynth is an ordinary synthesizer except 64-fold oversampling -that is the same one used in UltrasonicRingMod. Because of the high -oversampling ratio, modulation sound is okay. However CPU load is -high.

- -

UltrasonicRingMod

-
-Image of UltrasonicRingMod graphical user interface. -
-

UltrasonicRingMod は 64 -倍のオーバーサンプリングを行うリングモジュレータで、最高 1 MHz -のサイン波による変調をかけることができます。とは言っても単に変調すると可聴域外なので何も聞こえなくなってしまいますが、フィードバックによる位相変調やハードクリッピングができるので、いくらかノイズが出せます。

- -

UltrasonicRingMod is a ring modulator with 64-fold oversampling. -Maximum modulator frequency is 1 MHz. That said, just modulating with -ultrasonic frequency doesn’t produce anything audible. Therefore, phase -modulation and hard clipping are added to make some noise in audible -frequency.

- -

ClangSynth

-
-Image of ClangSynth graphical user interface. -
-

ClangSynth -は金属的なパーカッションの音が得意なシンセサイザです。金属的な質感はフィードバック・ディレイ・ネットワーク -(FDN) を用いたディレイ間のクロスフィードバックによるものです。 -WaveCymbal や FDNCymbal よりはシンバルに似た音が出ます。 FDN -をより大きくしてシンバルの合成に特化した ClangCymbal もあります。

- -

ClangSynth is a synthesizer suitable for percussion sounds. Each -voice equips an 8 * 8 feedback delay network (FDN) as a resonator. -Oscillator is static wavetable with controls specialized to make pulse -train. For better cymbal sound, ClangCymbal is also available.

- -

MiniCliffEQ

-
-Image of MiniCliffEQ graphical user interface. -
-

MiniCliffEQ はタップ数 2^15 = 32768 の FIR -フィルタです。初期バージョンからは改善しましたが、それでもタップ数が多いのでレイテンシがサンプリング周波数 -48000 Hz のときに 0.34 秒を超えます。主な用途は直流信号 (DC) -の抑制ですが、とても急峻なローパス、ハイパス、ローシェルフ、ハイシェルフフィルタとしても使えます。

- -

MiniCliffEQ is a linear phase FIR filter with 2^15 = 32768 taps. -Latency is improved from initial version, however it still exceeds 0.34 -seconds in 48000 Hz sampling rate. The primary purpose is to suppress -direct current. It can also be used as very sharp low-pass, high-pass, -low-shelf, and high-shelf filter.

- -

PitchShiftDelay

-
-Image of PitchShiftDelay graphical user interface. -
-

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

- -

PitchShiftDelay is a time domain pitch shifter based on usual delay. -The quirk of pitch shifter is somewhat reduced by 16x oversampling. Also -the internal buffer length can be changed in real time. PitchShiftDelay -doesn’t equipped with formant correction. So applying to voice may -sounds strange, like Helium is inhaled.

- -

ParallelComb

-
-Image of ParallelComb graphical user interface. -
-

ParallelComb は 1 つバッファの異なる 4 -つの時点をフィードバックするコムフィルタです。フィードバック経路にリミッタが挟んであるので、それなりにクリーンな音が出ます。フィードバックの振幅でディレイ時間を変調することで、変な歪みを出すこともできます。

- -

ParallelComb is a comb filter which has 4 different delay time and 1 -shared buffer. A limiter is inserted on feedback path to make the output -somewhat clean. Weird distorsion can be added by modulating delay time -using feedback signal amplitude.

- -

FDN64Reverb

-
-Image of FDN64Reverb graphical user interface. -
-

FDN64Reverb はフィードバック・ディレイ・ネットワーク (FDN) を 1 -つだけ搭載したリバーブです。しかしながら、フィードバック行列の大きさは -64 です。

- -

FDN64Reverb is a reverb equipped with a feedback delay network (FDN). -However, the size of feedback matrix is 64.

- -

BasicLimiter

-
-Image of BasicLimiter graphical user interface. -
-

BasicLimiter -は名前の通りベーシックなシングルバンドリミッタです。目新しい音は出ませんが、トゥルーピークモードはやや贅沢に設計しています。

- -

BasicLimiter is a basic single band limiter. The sound is nothing -new, but the design of true peak mode is a bit luxurious.

- -

CollidingCombSynth

-
-Image of CollidingCombSynth graphical user interface. -
-

CollidingCombSynth は Karplus-Strong -アルゴリズムによる弦の物理モデルをぶつけることで、弦を擦ったときのような音が出る実験的なシンセサイザです。音程はでますがチューニングが難しいので、どちらかと言うと効果音に向いています。

- -

CollidingCombSynth is an experimental synthesizer which sounds like -bowed string. Equipped with 24 Karplus-Strong string models which -collide to each other. Tuning of pitch is possible, but difficult. So -mostly suitable for sound effects.

- -

L4Reverb

-
-Image of L4Reverb graphical user interface. -
-

L4Reverb は LatticeReverb -の拡張版です。今回の格子構造はチャンネル毎に 4 * 4 * 4 * 4 = 256 -のセクションが設けてあります。

- -

L4Reverb is an extended version of LatticeReverb. This time, lattice -structure has 4 * 4 * 4 * 4 = 256 sections per channel.

- -

LatticeReverb

-
-Image of LatticeReverb graphical user interface. -
-

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

- -

LatticeReverb is a reverb using lattice structure. Equipped with 16 -delays per channel.

- -

LightPadSynth

-
-Image of LightPadSynth graphical user interface. -
-

LightPadSynth はピッチ変調を無くして補間を線形補完に変えた -CubicPadSynth -の軽量版です。ピッチ変調ができなくなった代わりに、各ボイスにディレイを追加しています。

- -

LightPadSynth is a lightweight version of CubicPadSynth. For -efficiency, interpolation is changed to linear. Also pitch modulation is -omitted. Instead, a delay is added for each voice.

- -

CubicPadSynth

-
-Image of CubicPadSynth graphical user interface. -
-

CubicPadSynth は PADsynth -アルゴリズムを使ってオシレータのウェーブテーブルを生成するシンセサイザです。キュービック補間を使っているので、可聴域以下の低い周波数でもわりと滑らかな音が出ます。波形を直接描画できる -LFO もついています。

- -

CubicPadSynth is a wavetable synthesizer which uses PADsynth -algorithm to generate oscillator tables. Cubic interpolation is used to -get smooth sound even at inaudible low frequency range. LFO waveform can -be directly drawn.

- -

EsPhaser

-
-Image of EsPhaser graphical user interface. -
-

EsPhaser は最大 4096 の 2 次 Thiran -オールパスフィルタを直列につなぐことができるフェイザです。 EnvelopedSine -のフェイザと同じアルゴリズムを使っています。

- -

EsPhaser is a phaser with up to 4096 stages of order 2 Thiran -all-pass filters. This is the same phaser used in EnvelopedSine.

- -

EnvelopedSine

-
-Image of EnvelopedSine graphical user interface. -
-

EnvelopedSineはノート 1 つあたり 64 -のサイン波を計算する加算合成シンセサイザです。各サイン波に AD -エンベロープとサチュレータがついているので IterativeSinCluster -よりもパーカッシブな音が得意です。

- -

EnvelopedSine is an additive synthesizer that computes 64 sine waves -for each note. Difference to IterativeSinCluster is that this synth has -AD envelope and saturator for each oscillator. EnvelopedSine is better -suited for percussive sounds.

- -

IterativeSinCluster

-
-Image of IterativeSinCluster graphical user interface. -
-

IterativeSinCluster はノート 1 つあたりで 512 -のサイン波を計算する加算合成シンセサイザです。このページで配布しているバイナリを利用するには -AVX2 をサポートしている CPU が必要です。

- -

IterativeSinCluster is an additive synthesizer. This synth computes -512 sine waves for each note to make tone cluster. Requires CPU that -support AVX2 instructions.

- -

TrapezoidSynth

-
-Image of TrapezoidSynth graphical user interface. -
-

TrapezoidSynth は 4 つの PTR -ランプ関数を継ぎ接ぎした台形オシレータを使ったモノフォニックシンセサイザです。継ぎ接ぎしたのが仇をなしてピッチが高くなるとノイズが乗る欠点があったので8倍にオーバーサンプリングしました。結果としてやたら重たくなっています。

- -

TrapezoidSynth is a monophonic synthesizer equipped with trapezoid -oscillator which is a piecewise function of 4 PTR ramp function. For -being piecewise, it has a drawback that increase noise when playing -higher tone. Therefore 8 times oversampled and hogging up more CPU.

- -

FDNCymbal

-
-Image of FDNCymbal graphical user interface. -
-

FDNCymbal は WaveCymbal -に続いてシンバルのような音を作ろうとしたプラグインです。今回は FDN -(Feedback Delay Network) と Schroeder allpass -を使っています。名前とは裏腹に、金属的な質感はほとんど Schroeder allpass -によって加えられています。シンバルの揺れをシミュレートするためにトレモロもついています。

- -

FDNCymbal is another attempt to make cymbal sound. This time FDN -(Feedback Delay Network) and Schroeder allpass are used. Most of -metallic tone comes from Schroeder allpass rather than FDN. Tremolo is -added to simulate wobbling of cymbal.

- -

WaveCymbal

-
-Image of WaveCymbal graphical user interface. -
-

WaveCymbal は banded wave-guide -という物理モデリングの手法でシンバルの音を作ろうとしたプラグインです。シンバルというよりも、薄い金属板をアスファルトの上で引きずったときのような音が出ます。シンセサイザ、エフェクトのどちらとしても使えます。

- -

WaveCymbal is an attempt to make cymbal sound with banded wave-guide -which is a method for physical modeling. It sounds more like dragging -thin metal plate on asphalt rather than cymbal. WaveCymbal can be used -as both synthesizer/FX.

- -

SyncSawSynth

-
-Image of SyncSawSynth graphical user interface. -
-

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

- -

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.

- -

SevenDelay

-
-Image of SevenDelay graphical user interface. -
-

SevenDelayはステレオディレイです。分数ディレイに7次のラグランジュ補間を使って7倍のオーバーサンプリングをしています。オートメーションなどでディレイ時間を積極的に動かして音を作る用途に向いています。

- -

SevenDelay is a stereo delay using 7th order lagurange interpolated -fractional delay. Also 7 times oversampled. Suitable for making sound -with actively changing delay time by hand or DAW automation.

- -

Web シンセサイザ | Web -Synthesizers

-

以下のリンク先ではブラウザ上で動作するサンプルに特化したシンセサイザが使えます。 -ClangCymbal 、 FDN64Reverb 、 L4Reverb -などの重たいプラグインの移植版も使えます。

- -

Following link is a list of sample generators that run on web -browser. Ported version of heavy plugins like ClangCymbal, FDN64Reverb, -and L4Reverb are available.

- -

開発ノート

-

VST3 -の開発中に分かりにくかったことをまとめました。あまり整理されていません。何かあれば -issue を作ってもらえれば対応します。 DAW -ごとの問題やワークアラウンドについては追加情報を歓迎します。

- -

こちらはアルゴリズムなどについてまとめたノートです。もともとは波のシミュレーションについて調べていました。

- -

These links are notes I took while development. Written in -Japanese.

-

ブログ | Blog

-

主にリリースのアナウンスを行うブログです。リンク先のページ下部から -Atom/RSS フィードの登録ができます。

- -

This blog is mostly used for release announcement. Atom/RSS feed is -available on the bottom of following link.

- -

VST について

-

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

+

+

+ + AccumulativeRingModアキュミュレーティブ リング + モッド + BasicLimiterベーシック リミッタ + + CombDistortionコム ディストーション + EsPhaserエス + フェイザ + FDN64Reverbエフディーエヌ 64 リバーブ + + FeedbackPhaserフィードバック フェイザ + + L4Reverbエル フォー リバーブ + LatticeReverbラティス リバーブ LongPhaserロング + フェイザ MiniCliffEQミニ + クリフ イーキュー + NarrowingDelayナロウイング ディレイ + + OrdinaryPhaserオーディナリ フェイザ + + ParallelCombパラレル コム + ParallelDetuneパラレル デチューン + + PitchShiftDelayピッチ シフト ディレイ + + RingModSpacerリング モッド スペーサ + + SevenDelayセブン ディレイ + UltrasonicRingModウルトラソニック リング モッド + +

+

+
+ Image of GlitchSprinkler graphical user interface. +
+

GlitchSprinkler + は速いアルペジオに特化したシンセサイザです。オシレータの周期を整数のサンプル数のみとすることで安価にアンチエイリアシングを行っています。このアンチエイリアシングの副作用により、特に音程が高いときにピッチがずれて独特の音律が現れます。

+ +

GlitchSprinkler is a synthesizer specialized to play fast + arpeggios. It is using a cheap anti-aliasing trick that is to restrict + the oscillator period only to integer sample counts. This + anti-aliasing has a side effect to make the pitches out of tune, + especially at higher notes, which makes a unique texture.

+ +

+
+ Image of GenericDrum graphical user interface. +
+

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

+ +

GenericDrum is a generic drum synthesizer using delays. This one + can make convincing snare and bass drum sounds. Cymbal sounds can be + made, but it’s not as good as lower pitched drum sounds.

+ +

+
+ Image of FeedbackPhaser graphical user interface. +
+

FeedbackPhaser は LFO + ではなくフィードバックによってオールパスフィルタのカットオフ周波数を変調するフェイザです。主に歪み系の音が出ます。

+ +

FeedbackPhaser is a phaser but the modulation source is feedback + signal rather than an LFO. It sounds more like a distortion rather + than a phaser most of times.

+ +

+
+ Image of AccumulativeRingMod graphical user interface. +
+

AccumulativeRingMod + は入力信号の振幅を積算した値を位相として使うリングモジュレータです。サイン波のようなシンプルな波形にかけると + FM のような音がでます。

+ +

AccumulativeRingMod is a ring modulator that uses accumulated + amplitude of input signal as the phase. When applied to simple + waveforms like a sine wave, it sounds similar to FM.

+ +

+
+ Image of RingModSpacer graphical user interface. +
+

RingModSpacer + は激しい歪みを生じるサイドチェインリミッタです。全波整流したサイドチェイン入力によってメインの入力を振幅変調することで、サイドチェインを足し合わせてもクリッピングしないような隙間をメインの入力にこじ開けることができます。当然、隙間をこじ開けられたメインの入力は歪むので使いどころが難しいです。

+ +

RingModSpacer is a sidechain limiter that adds severe distortion. + First, full-wave rectification is applied to sidechain input. Then + rectified signal modulates amplitude of main input. The sum of + modulated main signal and raw sidechain signal won’t clip, when both + peak amplitudes are under 0 dB. That’s the theory. The hard part is to + figure out when to use this effect.

+ +

+
+ Image of ParallelDetune graphical user interface. +
+

ParallelDetune は 8 + つのピッチシフタを並列につないだエフェクタです。モノラルの音に薄くかけてコーラスのようにパンを左右に広げることもできます。

+ +

ParallelDetune is a detuning effect with 8 pitch shifters connected + in parallel. It can be used to spread stereo image similar to chorus + effect.

+ +

+
+ Image of OrdinaryPhaser graphical user interface. +
+

OrdinaryPhaser + はフィードバック経路にディレイが搭載されている点を除けば、普通のフェイザです。ノートイベントによってオールパスフィルタのカットオフ周波数とディレイ時間を制御できます。

+ +

OrdinaryPhaser is an ordinary phaser with a delay on feedback path. + Note events can be used to control all-pass cutoff frequencies and + delay time.

+ +

+
+ Image of NarrowingDelay graphical user interface. +
+

NarrowingDelay + は直列につないだピッチシフタと周波数シフタがフィードバック経路に設けられたディレイです。フィードバックのたびに音のスペクトラムを周波数軸の方向に広げる、あるいは狭めることができます。どちらかと言えばピッチが一定しない音との相性がいいです。ノートイベントで周波数シフタのシフト量を制御することもできます。

+ +

NarrowingDelay is a delay with serially connected pitch shifter and + frequency shifter on feedback path. The spectrum of input signal can + be narrowed or expanded for each feedback. It is more suitable for + sound without stable pitch. Note event can be used to control + frequency shift amount.

+ +

+
+ Image of LongPhaser graphical user interface. +
+

LongPhaser は遅延時間を長くできる Schroeder + オールパスフィルタを使ったフェイザです。ディレイとフェイザを足して 2 + で割ったような音が出ます。 2 で割った物足りなさを補うために LFO + やノートイベントで変調をかけることができます。

+ +

LongPhaser is a phaser using Schroeder all-pass filters which is + able to set some long delay time. The sound is like somewhere between + delay and phaser. It feels a bit underwhelming, however modulation + with LFO and note events may be used to compensate the lack of + character.

+ +

+
+ Image of CombDistortion graphical user interface. +
+

CombDistortion + は自己変調するコムフィルタを使ったディストーションです。そのままの出力はざらざらと耳障りなので、キャビネットのインパルス応答と併せて使うことを想定しています。ノートイベントでコムフィルタのディレイ時間を制御できます。

+ +

CombDistortion is a distortion using self-modulating comb filter. + Raw output sounds harsh, and it is better to use with external cabinet + impulse response. Note event can be used to control delay time of comb + filter.

+ +

+
+ Image of MaybeSnare graphical user interface. +
+

MaybeSnare はスネアドラムのような音が出るシンセサイザです。中身は 2 + つの MembraneSynth + が相互にフィードバックをかけるような構造になっています。スナッピーはついていませんが、変調のかけすぎによるノイズによって似たような音が出ます。

+ +

MaybeSnare is a synthesizer that resembles sound of snare drum. + This is basically 2 MembraneSynth coupled by cross feedback. Snare + wire is not included. However, the noise of modulation adds rattling + texture similar to snare wire.

+ +

+
+ Image of MembraneSynth graphical user interface. +
+

MembraneSynth は自己変調するフィードバック・ディレイ・ネットワーク + (FDN) + を用いた膜を張った打楽器のような音がでるシンセサイザです。バスドラムやタムタムのような低めの打楽器の音が得意ですが、自己変調による発振によって変な音を作ることもできます。

+ +

MembraneSynth is a synthesizer that resembles sound of percussions + with membrane, like bass drum or tom tom. The texture comes from + self-modulating feedback delay network (FDN). Some strange noise can + also be made by utilizing oscillation caused by self-modulation.

+ +

+
+ Image of UltraSynth graphical user interface. +
+

UltraSynth は UltrasonicRingMod と同じく 64 + 倍のオーバーサンプリングを行っていることを除けば、これといった特長のないモノフォニックのシンセサイザです。オーバーサンプリングの倍率が高いので変調をかけた音が得意ですが、 + CPU 負荷は高めです。

+ +

UltraSynth is an ordinary synthesizer except 64-fold oversampling + that is the same one used in UltrasonicRingMod. Because of the high + oversampling ratio, modulation sound is okay. However CPU load is + high.

+ +

+
+ Image of UltrasonicRingMod graphical user interface. +
+

UltrasonicRingMod は 64 + 倍のオーバーサンプリングを行うリングモジュレータで、最高 1 MHz + のサイン波による変調をかけることができます。とは言っても単に変調すると可聴域外なので何も聞こえなくなってしまいますが、フィードバックによる位相変調やハードクリッピングができるので、いくらかノイズが出せます。

+ +

UltrasonicRingMod is a ring modulator with 64-fold oversampling. + Maximum modulator frequency is 1 MHz. That said, just modulating with + ultrasonic frequency doesn’t produce anything audible. Therefore, + phase modulation and hard clipping are added to make some noise in + audible frequency.

+ +

+
+ Image of ClangSynth graphical user interface. +
+

ClangSynth + は金属的なパーカッションの音が得意なシンセサイザです。金属的な質感はフィードバック・ディレイ・ネットワーク + (FDN) を用いたディレイ間のクロスフィードバックによるものです。 + WaveCymbal や FDNCymbal よりはシンバルに似た音が出ます。 FDN + をより大きくしてシンバルの合成に特化した ClangCymbal もあります。

+ +

ClangSynth is a synthesizer suitable for percussion sounds. Each + voice equips an 8 * 8 feedback delay network (FDN) as a resonator. + Oscillator is static wavetable with controls specialized to make pulse + train. For better cymbal sound, ClangCymbal is also available.

+ +

+
+ Image of MiniCliffEQ graphical user interface. +
+

MiniCliffEQ はタップ数 2^15 = 32768 の FIR + フィルタです。初期バージョンからは改善しましたが、それでもタップ数が多いのでレイテンシがサンプリング周波数 + 48000 Hz のときに 0.34 秒を超えます。主な用途は直流信号 (DC) + の抑制ですが、とても急峻なローパス、ハイパス、ローシェルフ、ハイシェルフフィルタとしても使えます。

+ +

MiniCliffEQ is a linear phase FIR filter with 2^15 = 32768 taps. + Latency is improved from initial version, however it still exceeds + 0.34 seconds in 48000 Hz sampling rate. The primary purpose is to + suppress direct current. It can also be used as very sharp low-pass, + high-pass, low-shelf, and high-shelf filter.

+ +

+
+ Image of PitchShiftDelay graphical user interface. +
+

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

+ +

PitchShiftDelay is a time domain pitch shifter based on usual + delay. The quirk of pitch shifter is somewhat reduced by 16x + oversampling. Also the internal buffer length can be changed in real + time. PitchShiftDelay doesn’t equipped with formant correction. So + applying to voice may sounds strange, like Helium is inhaled.

+ +

+
+ Image of ParallelComb graphical user interface. +
+

ParallelComb は 1 つバッファの異なる 4 + つの時点をフィードバックするコムフィルタです。フィードバック経路にリミッタが挟んであるので、それなりにクリーンな音が出ます。フィードバックの振幅でディレイ時間を変調することで、変な歪みを出すこともできます。

+ +

ParallelComb is a comb filter which has 4 different delay time and + 1 shared buffer. A limiter is inserted on feedback path to make the + output somewhat clean. Weird distorsion can be added by modulating + delay time using feedback signal amplitude.

+ +

+
+ Image of FDN64Reverb graphical user interface. +
+

FDN64Reverb はフィードバック・ディレイ・ネットワーク (FDN) を 1 + つだけ搭載したリバーブです。しかしながら、フィードバック行列の大きさは + 64 です。

+ +

FDN64Reverb is a reverb equipped with a feedback delay network + (FDN). However, the size of feedback matrix is 64.

+ +

+
+ Image of BasicLimiter graphical user interface. +
+

BasicLimiter + は名前の通りベーシックなシングルバンドリミッタです。目新しい音は出ませんが、トゥルーピークモードはやや贅沢に設計しています。

+ +

BasicLimiter is a basic single band limiter. The sound is nothing + new, but the design of true peak mode is a bit luxurious.

+ +

+
+ Image of CollidingCombSynth graphical user interface. +
+

CollidingCombSynth は Karplus-Strong + アルゴリズムによる弦の物理モデルをぶつけることで、弦を擦ったときのような音が出る実験的なシンセサイザです。音程はでますがチューニングが難しいので、どちらかと言うと効果音に向いています。

+ +

CollidingCombSynth is an experimental synthesizer which sounds like + bowed string. Equipped with 24 Karplus-Strong string models which + collide to each other. Tuning of pitch is possible, but difficult. So + mostly suitable for sound effects.

+ +

+
+ Image of L4Reverb graphical user interface. +
+

L4Reverb は LatticeReverb + の拡張版です。今回の格子構造はチャンネル毎に 4 * 4 * 4 * 4 = 256 + のセクションが設けてあります。

+ +

L4Reverb is an extended version of LatticeReverb. This time, + lattice structure has 4 * 4 * 4 * 4 = 256 sections per channel.

+ +

+
+ Image of LatticeReverb graphical user interface. +
+

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

+ +

LatticeReverb is a reverb using lattice structure. Equipped with 16 + delays per channel.

+ +

+
+ Image of LightPadSynth graphical user interface. +
+

LightPadSynth はピッチ変調を無くして補間を線形補完に変えた + CubicPadSynth + の軽量版です。ピッチ変調ができなくなった代わりに、各ボイスにディレイを追加しています。

+ +

LightPadSynth is a lightweight version of CubicPadSynth. For + efficiency, interpolation is changed to linear. Also pitch modulation + is omitted. Instead, a delay is added for each voice.

+ +

+
+ Image of CubicPadSynth graphical user interface. +
+

CubicPadSynth は PADsynth + アルゴリズムを使ってオシレータのウェーブテーブルを生成するシンセサイザです。キュービック補間を使っているので、可聴域以下の低い周波数でもわりと滑らかな音が出ます。波形を直接描画できる + LFO もついています。

+ +

CubicPadSynth is a wavetable synthesizer which uses PADsynth + algorithm to generate oscillator tables. Cubic interpolation is used + to get smooth sound even at inaudible low frequency range. LFO + waveform can be directly drawn.

+ +

+
+ Image of EsPhaser graphical user interface. +
+

EsPhaser は最大 4096 の 2 次 Thiran + オールパスフィルタを直列につなぐことができるフェイザです。 + EnvelopedSine のフェイザと同じアルゴリズムを使っています。

+ +

EsPhaser is a phaser with up to 4096 stages of order 2 Thiran + all-pass filters. This is the same phaser used in EnvelopedSine.

+ +

+
+ Image of EnvelopedSine graphical user interface. +
+

EnvelopedSineはノート 1 つあたり 64 + のサイン波を計算する加算合成シンセサイザです。各サイン波に AD + エンベロープとサチュレータがついているので IterativeSinCluster + よりもパーカッシブな音が得意です。

+ +

EnvelopedSine is an additive synthesizer that computes 64 sine + waves for each note. Difference to IterativeSinCluster is that this + synth has AD envelope and saturator for each oscillator. EnvelopedSine + is better suited for percussive sounds.

+ +

+
+ Image of IterativeSinCluster graphical user interface. +
+

IterativeSinCluster はノート 1 つあたりで 512 + のサイン波を計算する加算合成シンセサイザです。このページで配布しているバイナリを利用するには + AVX2 をサポートしている CPU が必要です。

+ +

IterativeSinCluster is an additive synthesizer. This synth computes + 512 sine waves for each note to make tone cluster. Requires CPU that + support AVX2 instructions.

+ +

+
+ Image of TrapezoidSynth graphical user interface. +
+

TrapezoidSynth は 4 つの PTR + ランプ関数を継ぎ接ぎした台形オシレータを使ったモノフォニックシンセサイザです。継ぎ接ぎしたのが仇をなしてピッチが高くなるとノイズが乗る欠点があったので8倍にオーバーサンプリングしました。結果としてやたら重たくなっています。

+ +

TrapezoidSynth is a monophonic synthesizer equipped with trapezoid + oscillator which is a piecewise function of 4 PTR ramp function. For + being piecewise, it has a drawback that increase noise when playing + higher tone. Therefore 8 times oversampled and hogging up more + CPU.

+ +

+
+ Image of FDNCymbal graphical user interface. +
+

FDNCymbal は WaveCymbal + に続いてシンバルのような音を作ろうとしたプラグインです。今回は FDN + (Feedback Delay Network) と Schroeder allpass + を使っています。名前とは裏腹に、金属的な質感はほとんど Schroeder + allpass + によって加えられています。シンバルの揺れをシミュレートするためにトレモロもついています。

+ +

FDNCymbal is another attempt to make cymbal sound. This time FDN + (Feedback Delay Network) and Schroeder allpass are used. Most of + metallic tone comes from Schroeder allpass rather than FDN. Tremolo is + added to simulate wobbling of cymbal.

+ +

+
+ Image of WaveCymbal graphical user interface. +
+

WaveCymbal は banded wave-guide + という物理モデリングの手法でシンバルの音を作ろうとしたプラグインです。シンバルというよりも、薄い金属板をアスファルトの上で引きずったときのような音が出ます。シンセサイザ、エフェクトのどちらとしても使えます。

+ +

WaveCymbal is an attempt to make cymbal sound with banded + wave-guide which is a method for physical modeling. It sounds more + like dragging thin metal plate on asphalt rather than cymbal. + WaveCymbal can be used as both synthesizer/FX.

+ +

+
+ Image of SyncSawSynth graphical user interface. +
+

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

+ +

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.

+ +

+
+ Image of SevenDelay graphical user interface. +
+

SevenDelayはステレオディレイです。分数ディレイに7次のラグランジュ補間を使って7倍のオーバーサンプリングをしています。オートメーションなどでディレイ時間を積極的に動かして音を作る用途に向いています。

+ +

SevenDelay is a stereo delay using 7th order lagurange interpolated + fractional delay. Also 7 times oversampled. Suitable for making sound + with actively changing delay time by hand or DAW automation.

+ +

+

以下のリンク先ではブラウザ上で動作するサンプルに特化したシンセサイザが使えます。 + ClangCymbal 、 FDN64Reverb 、 L4Reverb + などの重たいプラグインの移植版も使えます。

+ +

Following link is a list of sample generators that run on web + browser. Ported version of heavy plugins like ClangCymbal, + FDN64Reverb, and L4Reverb are available.

+ +

+

VST3 + の開発中に分かりにくかったことをまとめました。あまり整理されていません。何かあれば + issue を作ってもらえれば対応します。 DAW + ごとの問題やワークアラウンドについては追加情報を歓迎します。

+ +

こちらはアルゴリズムなどについてまとめたノートです。もともとは波のシミュレーションについて調べていました。

+ +

These links are notes I took while development. Written in + Japanese.

+

+

主にリリースのアナウンスを行うブログです。リンク先のページ下部から + Atom/RSS フィードの登録ができます。

+ +

This blog is mostly used for release announcement. Atom/RSS feed is + available on the bottom of following link.

+ +

+

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

-
-
- +
+
+ diff --git a/docs/index.md b/docs/index.md index 8253db0e..454d6346 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,6 +2,25 @@ lang: ja ... + + # Uhhyou Plugins [VST®](#vst_logo) 3 プラグインを公開しています。 @@ -11,20 +30,59 @@ lang: ja This page is publishing [VST®](#vst_logo) 3 plugins. -If you found some part of manual is not clear and/or found typo, please file issue at [GitHub repository](https://github.com/ryukau/VSTPlugins) or send email to `ryukau@gmail.com`. Note that I'm not native in English and it's most likely that the manual contains some weird sentences. I'd like to fix it, so feel free to report those issues. +If you find a bug, feel free to report the issue at [GitHub repository](https://github.com/ryukau/VSTPlugins) or send email to `ryukau@gmail.com`. Note that I'm not native in English. You can fund the development via [paypal.me/ryukau](https://www.paypal.com/paypalme/ryukau). -# プラグイン一覧 | Plugin List +## GUI の色について | Color Configuration +
+
+ +
ArcDark
+
+
+ +
BB
+
+
+ +
BlackOnWhite
+
+
+ +
BlackOnWhiteInvert
+
+
+ +
Leaf
+
+
+ +
LightOnDark
+
+
+ +
OrangeOnBlack
+
+
+ +
Orbit
+
+
+ +
SoftBlue
+
+
+ +
Warmth
+
+
- +GUI の色は変更できます。マニュアルの「GUI の見た目の設定」を参照してください。上はプリセットのテーマの一覧です。 +GUI colors can be configured. Refer to "GUI Style Configuration" section in the manual. Above is the list of preset themes. + +## プラグイン一覧 | Plugin List 以下のリリースページからプラグインをまとめてダウンロードできます。 - [Releases · ryukau/VSTPlugins · GitHub](https://github.com/ryukau/VSTPlugins/releases) @@ -34,108 +92,128 @@ All the plugin download link can be found at release page on following link. - [Releases · ryukau/VSTPlugins · GitHub](https://github.com/ryukau/VSTPlugins/releases) #### Synthesizers - - - - - - - - - - - - - - + +

#### Effects - - - - - - - - - - - - - - - - - - + +

+ +### GlitchSprinkler +
+Image of GlitchSprinkler graphical user interface. +
+ +GlitchSprinkler は速いアルペジオに特化したシンセサイザです。オシレータの周期を整数のサンプル数のみとすることで安価にアンチエイリアシングを行っています。このアンチエイリアシングの副作用により、特に音程が高いときにピッチがずれて独特の音律が現れます。 + +- [GlitchSprinkler のマニュアル (日本語)](manual/GlitchSprinkler/GlitchSprinkler_ja.html) + +GlitchSprinkler is a synthesizer specialized to play fast arpeggios. It is using a cheap anti-aliasing trick that is to restrict the oscillator period only to integer sample counts. This anti-aliasing has a side effect to make the pitches out of tune, especially at higher notes, which makes a unique texture. + +- [GlitchSprinkler Manual (English)](manual/GlitchSprinkler/GlitchSprinkler_en.html) -## GenericDrum +### GenericDrum
-Image of GenericDrum graphical user interface. +Image of GenericDrum graphical user interface.
GenericDrum はディレイを使った汎用ドラムシンセサイザです。バスドラムやスネアドラムについては良い音が出ます。シンバルの音も出せますが、低いドラムの音ほど良くはありません。 @@ -146,9 +224,9 @@ GenericDrum is a generic drum synthesizer using delays. This one can make convin - [GenericDrum Manual (English)](manual/GenericDrum/GenericDrum_en.html) -## FeedbackPhaser +### FeedbackPhaser
-Image of FeedbackPhaser graphical user interface. +Image of FeedbackPhaser graphical user interface.
FeedbackPhaser は LFO ではなくフィードバックによってオールパスフィルタのカットオフ周波数を変調するフェイザです。主に歪み系の音が出ます。 @@ -159,9 +237,9 @@ FeedbackPhaser is a phaser but the modulation source is feedback signal rather t - [FeedbackPhaser Manual (English)](manual/FeedbackPhaser/FeedbackPhaser_en.html) -## AccumulativeRingMod +### AccumulativeRingMod
-Image of AccumulativeRingMod graphical user interface. +Image of AccumulativeRingMod graphical user interface.
AccumulativeRingMod は入力信号の振幅を積算した値を位相として使うリングモジュレータです。サイン波のようなシンプルな波形にかけると FM のような音がでます。 @@ -172,9 +250,9 @@ AccumulativeRingMod is a ring modulator that uses accumulated amplitude of input - [AccumulativeRingMod Manual (English)](manual/AccumulativeRingMod/AccumulativeRingMod_en.html) -## RingModSpacer +### RingModSpacer
-Image of RingModSpacer graphical user interface. +Image of RingModSpacer graphical user interface.
RingModSpacer は激しい歪みを生じるサイドチェインリミッタです。全波整流したサイドチェイン入力によってメインの入力を振幅変調することで、サイドチェインを足し合わせてもクリッピングしないような隙間をメインの入力にこじ開けることができます。当然、隙間をこじ開けられたメインの入力は歪むので使いどころが難しいです。 @@ -185,9 +263,9 @@ RingModSpacer is a sidechain limiter that adds severe distortion. First, full-wa - [RingModSpacer Manual (English)](manual/RingModSpacer/RingModSpacer_en.html) -## ParallelDetune +### ParallelDetune
-Image of ParallelDetune graphical user interface. +Image of ParallelDetune graphical user interface.
ParallelDetune は 8 つのピッチシフタを並列につないだエフェクタです。モノラルの音に薄くかけてコーラスのようにパンを左右に広げることもできます。 @@ -198,9 +276,9 @@ ParallelDetune is a detuning effect with 8 pitch shifters connected in parallel. - [ParallelDetune Manual (English)](manual/ParallelDetune/ParallelDetune_en.html) -## OrdinaryPhaser +### OrdinaryPhaser
-Image of OrdinaryPhaser graphical user interface. +Image of OrdinaryPhaser graphical user interface.
OrdinaryPhaser はフィードバック経路にディレイが搭載されている点を除けば、普通のフェイザです。ノートイベントによってオールパスフィルタのカットオフ周波数とディレイ時間を制御できます。 @@ -211,9 +289,9 @@ OrdinaryPhaser is an ordinary phaser with a delay on feedback path. Note events - [OrdinaryPhaser Manual (English)](manual/OrdinaryPhaser/OrdinaryPhaser_en.html) -## NarrowingDelay +### NarrowingDelay
-Image of NarrowingDelay graphical user interface. +Image of NarrowingDelay graphical user interface.
NarrowingDelay は直列につないだピッチシフタと周波数シフタがフィードバック経路に設けられたディレイです。フィードバックのたびに音のスペクトラムを周波数軸の方向に広げる、あるいは狭めることができます。どちらかと言えばピッチが一定しない音との相性がいいです。ノートイベントで周波数シフタのシフト量を制御することもできます。 @@ -224,9 +302,9 @@ NarrowingDelay is a delay with serially connected pitch shifter and frequency sh - [NarrowingDelay Manual (English)](manual/NarrowingDelay/NarrowingDelay_en.html) -## LongPhaser +### LongPhaser
-Image of LongPhaser graphical user interface. +Image of LongPhaser graphical user interface.
LongPhaser は遅延時間を長くできる Schroeder オールパスフィルタを使ったフェイザです。ディレイとフェイザを足して 2 で割ったような音が出ます。 2 で割った物足りなさを補うために LFO やノートイベントで変調をかけることができます。 @@ -237,9 +315,9 @@ LongPhaser is a phaser using Schroeder all-pass filters which is able to set som - [LongPhaser Manual (English)](manual/LongPhaser/LongPhaser_en.html) -## CombDistortion +### CombDistortion
-Image of CombDistortion graphical user interface. +Image of CombDistortion graphical user interface.
CombDistortion は自己変調するコムフィルタを使ったディストーションです。そのままの出力はざらざらと耳障りなので、キャビネットのインパルス応答と併せて使うことを想定しています。ノートイベントでコムフィルタのディレイ時間を制御できます。 @@ -250,9 +328,9 @@ CombDistortion is a distortion using self-modulating comb filter. Raw output sou - [CombDistortion Manual (English)](manual/CombDistortion/CombDistortion_en.html) -## MaybeSnare +### MaybeSnare
-Image of MaybeSnare graphical user interface. +Image of MaybeSnare graphical user interface.
MaybeSnare はスネアドラムのような音が出るシンセサイザです。中身は 2 つの MembraneSynth が相互にフィードバックをかけるような構造になっています。スナッピーはついていませんが、変調のかけすぎによるノイズによって似たような音が出ます。 @@ -263,9 +341,9 @@ MaybeSnare is a synthesizer that resembles sound of snare drum. This is basicall - [MaybeSnare Manual (English)](manual/MaybeSnare/MaybeSnare_en.html) -## MembraneSynth +### MembraneSynth
-Image of MembraneSynth graphical user interface. +Image of MembraneSynth graphical user interface.
MembraneSynth は自己変調するフィードバック・ディレイ・ネットワーク (FDN) を用いた膜を張った打楽器のような音がでるシンセサイザです。バスドラムやタムタムのような低めの打楽器の音が得意ですが、自己変調による発振によって変な音を作ることもできます。 @@ -276,9 +354,9 @@ MembraneSynth is a synthesizer that resembles sound of percussions with membrane - [MembraneSynth Manual (English)](manual/MembraneSynth/MembraneSynth_en.html) -## UltraSynth +### UltraSynth
-Image of UltraSynth graphical user interface. +Image of UltraSynth graphical user interface.
UltraSynth は UltrasonicRingMod と同じく 64 倍のオーバーサンプリングを行っていることを除けば、これといった特長のないモノフォニックのシンセサイザです。オーバーサンプリングの倍率が高いので変調をかけた音が得意ですが、 CPU 負荷は高めです。 @@ -289,9 +367,9 @@ UltraSynth is an ordinary synthesizer except 64-fold oversampling that is the sa - [UltraSynth Manual (English)](manual/UltraSynth/UltraSynth_en.html) -## UltrasonicRingMod +### UltrasonicRingMod
-Image of UltrasonicRingMod graphical user interface. +Image of UltrasonicRingMod graphical user interface.
UltrasonicRingMod は 64 倍のオーバーサンプリングを行うリングモジュレータで、最高 1 MHz のサイン波による変調をかけることができます。とは言っても単に変調すると可聴域外なので何も聞こえなくなってしまいますが、フィードバックによる位相変調やハードクリッピングができるので、いくらかノイズが出せます。 @@ -302,9 +380,9 @@ UltrasonicRingMod is a ring modulator with 64-fold oversampling. Maximum modulat - [UltrasonicRingMod Manual (English)](manual/UltrasonicRingMod/UltrasonicRingMod_en.html) -## ClangSynth +### ClangSynth
-Image of ClangSynth graphical user interface. +Image of ClangSynth graphical user interface.
ClangSynth は金属的なパーカッションの音が得意なシンセサイザです。金属的な質感はフィードバック・ディレイ・ネットワーク (FDN) を用いたディレイ間のクロスフィードバックによるものです。 WaveCymbal や FDNCymbal よりはシンバルに似た音が出ます。 FDN をより大きくしてシンバルの合成に特化した ClangCymbal もあります。 @@ -315,9 +393,9 @@ ClangSynth is a synthesizer suitable for percussion sounds. Each voice equips an - [ClangSynth Manual (English)](manual/ClangSynth/ClangSynth_en.html) -## MiniCliffEQ +### MiniCliffEQ
-Image of MiniCliffEQ graphical user interface. +Image of MiniCliffEQ graphical user interface.
MiniCliffEQ はタップ数 2^15 = 32768 の FIR フィルタです。初期バージョンからは改善しましたが、それでもタップ数が多いのでレイテンシがサンプリング周波数 48000 Hz のときに 0.34 秒を超えます。主な用途は直流信号 (DC) の抑制ですが、とても急峻なローパス、ハイパス、ローシェルフ、ハイシェルフフィルタとしても使えます。 @@ -328,9 +406,9 @@ MiniCliffEQ is a linear phase FIR filter with 2^15 = 32768 taps. Latency is impr - [MiniCliffEQ Manual (English)](manual/MiniCliffEQ/MiniCliffEQ_en.html) -## PitchShiftDelay +### PitchShiftDelay
-Image of PitchShiftDelay graphical user interface. +Image of PitchShiftDelay graphical user interface.
PitchShiftDelay はディレイを使った時間領域ピッチシフタです。 16 倍のオーバーサンプリングによってピッチシフタ特有の癖を多少抑えています。また内部のバッファ長をリアルタイムで変更できます。フォルマント補正がないので、声に使うとヘリウムを吸ったときのような音になります。 @@ -341,9 +419,9 @@ PitchShiftDelay is a time domain pitch shifter based on usual delay. The quirk o - [PitchShiftDelay Manual (English)](manual/PitchShiftDelay/PitchShiftDelay_en.html) -## ParallelComb +### ParallelComb
-Image of ParallelComb graphical user interface. +Image of ParallelComb graphical user interface.
ParallelComb は 1 つバッファの異なる 4 つの時点をフィードバックするコムフィルタです。フィードバック経路にリミッタが挟んであるので、それなりにクリーンな音が出ます。フィードバックの振幅でディレイ時間を変調することで、変な歪みを出すこともできます。 @@ -354,9 +432,9 @@ ParallelComb is a comb filter which has 4 different delay time and 1 shared buff - [ParallelComb Manual (English)](manual/ParallelComb/ParallelComb_en.html) -## FDN64Reverb +### FDN64Reverb
-Image of FDN64Reverb graphical user interface. +Image of FDN64Reverb graphical user interface.
FDN64Reverb はフィードバック・ディレイ・ネットワーク (FDN) を 1 つだけ搭載したリバーブです。しかしながら、フィードバック行列の大きさは 64 です。 @@ -367,9 +445,9 @@ FDN64Reverb is a reverb equipped with a feedback delay network (FDN). However, t - [FDN64Reverb Manual (English)](manual/FDN64Reverb/FDN64Reverb_en.html) -## BasicLimiter +### BasicLimiter
-Image of BasicLimiter graphical user interface. +Image of BasicLimiter graphical user interface.
BasicLimiter は名前の通りベーシックなシングルバンドリミッタです。目新しい音は出ませんが、トゥルーピークモードはやや贅沢に設計しています。 @@ -380,9 +458,9 @@ BasicLimiter is a basic single band limiter. The sound is nothing new, but the d - [BasicLimiter Manual (English)](manual/BasicLimiter/BasicLimiter_en.html) -## CollidingCombSynth +### CollidingCombSynth
-Image of CollidingCombSynth graphical user interface. +Image of CollidingCombSynth graphical user interface.
CollidingCombSynth は Karplus-Strong アルゴリズムによる弦の物理モデルをぶつけることで、弦を擦ったときのような音が出る実験的なシンセサイザです。音程はでますがチューニングが難しいので、どちらかと言うと効果音に向いています。 @@ -393,9 +471,9 @@ CollidingCombSynth is an experimental synthesizer which sounds like bowed string - [CollidingCombSynth Manual (English)](manual/CollidingCombSynth/CollidingCombSynth_en.html) -## L4Reverb +### L4Reverb
-Image of L4Reverb graphical user interface. +Image of L4Reverb graphical user interface.
L4Reverb は LatticeReverb の拡張版です。今回の格子構造はチャンネル毎に 4 * 4 * 4 * 4 = 256 のセクションが設けてあります。 @@ -406,9 +484,9 @@ L4Reverb is an extended version of LatticeReverb. This time, lattice structure h - [L4Reverb Manual (English)](manual/L4Reverb/L4Reverb_en.html) -## LatticeReverb +### LatticeReverb
-Image of LatticeReverb graphical user interface. +Image of LatticeReverb graphical user interface.
LatticeReverb はディレイを使った高次のオールパスフィルタを格子状につないで入れ子にしたリバーブです。 1 チャンネルあたり 16 のオールパスフィルタを備えています。 @@ -419,9 +497,9 @@ LatticeReverb is a reverb using lattice structure. Equipped with 16 delays per c - [LatticeReverb Manual (English)](manual/LatticeReverb/LatticeReverb_en.html) -## LightPadSynth +### LightPadSynth
-Image of LightPadSynth graphical user interface. +Image of LightPadSynth graphical user interface.
LightPadSynth はピッチ変調を無くして補間を線形補完に変えた CubicPadSynth の軽量版です。ピッチ変調ができなくなった代わりに、各ボイスにディレイを追加しています。 @@ -432,9 +510,9 @@ LightPadSynth is a lightweight version of CubicPadSynth. For efficiency, interpo - [LightPadSynth Manual (English)](manual/LightPadSynth/LightPadSynth_en.html) -## CubicPadSynth +### CubicPadSynth
-Image of CubicPadSynth graphical user interface. +Image of CubicPadSynth graphical user interface.
CubicPadSynth は PADsynth アルゴリズムを使ってオシレータのウェーブテーブルを生成するシンセサイザです。キュービック補間を使っているので、可聴域以下の低い周波数でもわりと滑らかな音が出ます。波形を直接描画できる LFO もついています。 @@ -445,9 +523,9 @@ CubicPadSynth is a wavetable synthesizer which uses PADsynth algorithm to genera - [CubicPadSynth Manual (English)](manual/CubicPadSynth/CubicPadSynth_en.html) -## EsPhaser +### EsPhaser
-Image of EsPhaser graphical user interface. +Image of EsPhaser graphical user interface.
EsPhaser は最大 4096 の 2 次 Thiran オールパスフィルタを直列につなぐことができるフェイザです。 EnvelopedSine のフェイザと同じアルゴリズムを使っています。 @@ -458,9 +536,9 @@ EsPhaser is a phaser with up to 4096 stages of order 2 Thiran all-pass filters. - [EsPhaser Manual (English)](manual/EsPhaser/EsPhaser_en.html) -## EnvelopedSine +### EnvelopedSine
-Image of EnvelopedSine graphical user interface. +Image of EnvelopedSine graphical user interface.
EnvelopedSineはノート 1 つあたり 64 のサイン波を計算する加算合成シンセサイザです。各サイン波に AD エンベロープとサチュレータがついているので IterativeSinCluster よりもパーカッシブな音が得意です。 @@ -471,9 +549,9 @@ EnvelopedSine is an additive synthesizer that computes 64 sine waves for each no - [EnvelopedSine Manual (English)](manual/EnvelopedSine/EnvelopedSine_en.html) -## IterativeSinCluster +### IterativeSinCluster
-Image of IterativeSinCluster graphical user interface. +Image of IterativeSinCluster graphical user interface.
IterativeSinCluster はノート 1 つあたりで 512 のサイン波を計算する加算合成シンセサイザです。このページで配布しているバイナリを利用するには AVX2 をサポートしている CPU が必要です。 @@ -484,9 +562,9 @@ IterativeSinCluster is an additive synthesizer. This synth computes 512 sine wav - [IterativeSinCluster Manual (English)](manual/IterativeSinCluster/IterativeSinCluster_en.html) -## TrapezoidSynth +### TrapezoidSynth
-Image of TrapezoidSynth graphical user interface. +Image of TrapezoidSynth graphical user interface.
TrapezoidSynth は 4 つの PTR ランプ関数を継ぎ接ぎした台形オシレータを使ったモノフォニックシンセサイザです。継ぎ接ぎしたのが仇をなしてピッチが高くなるとノイズが乗る欠点があったので8倍にオーバーサンプリングしました。結果としてやたら重たくなっています。 @@ -497,9 +575,9 @@ TrapezoidSynth is a monophonic synthesizer equipped with trapezoid oscillator wh - [TrapezoidSynth Manual (English)](manual/TrapezoidSynth/TrapezoidSynth_en.html) -## FDNCymbal +### FDNCymbal
-Image of FDNCymbal graphical user interface. +Image of FDNCymbal graphical user interface.
FDNCymbal は WaveCymbal に続いてシンバルのような音を作ろうとしたプラグインです。今回は FDN (Feedback Delay Network) と Schroeder allpass を使っています。名前とは裏腹に、金属的な質感はほとんど Schroeder allpass によって加えられています。シンバルの揺れをシミュレートするためにトレモロもついています。 @@ -510,9 +588,9 @@ FDNCymbal is another attempt to make cymbal sound. This time FDN (Feedback Delay - [FDNCymbal Manual (English)](manual/FDNCymbal/FDNCymbal_en.html) -## WaveCymbal +### WaveCymbal
-Image of WaveCymbal graphical user interface. +Image of WaveCymbal graphical user interface.
WaveCymbal は banded wave-guide という物理モデリングの手法でシンバルの音を作ろうとしたプラグインです。シンバルというよりも、薄い金属板をアスファルトの上で引きずったときのような音が出ます。シンセサイザ、エフェクトのどちらとしても使えます。 @@ -523,9 +601,9 @@ WaveCymbal is an attempt to make cymbal sound with banded wave-guide which is a - [WaveCymbal Manual (English)](manual/WaveCymbal/WaveCymbal_en.html) -## SyncSawSynth +### SyncSawSynth
-Image of SyncSawSynth graphical user interface. +Image of SyncSawSynth graphical user interface.
SyncSawSynthは10次までのPTR鋸歯波オシレータが使える32ボイスのポリフォニックシンセサイザです。主にハードシンクと周波数変調で電池が切れかけのおもちゃのような音を作る用途に向いています。もちろん普通の音も出ます。 @@ -536,9 +614,9 @@ SyncSawSynth is a 32 voice polyphonic synthesizer using up to 10th order PTR saw - [SyncSawSynth Manual (English)](manual/SyncSawSynth/SyncSawSynth_en.html) -## SevenDelay +### SevenDelay
-Image of SevenDelay graphical user interface. +Image of SevenDelay graphical user interface.
SevenDelayはステレオディレイです。分数ディレイに7次のラグランジュ補間を使って7倍のオーバーサンプリングをしています。オートメーションなどでディレイ時間を積極的に動かして音を作る用途に向いています。 @@ -549,7 +627,7 @@ SevenDelay is a stereo delay using 7th order lagurange interpolated fractional d - [SevenDelay Manual (English)](manual/SevenDelay/SevenDelay_en.html) -# Web シンセサイザ | Web Synthesizers +## Web シンセサイザ | Web Synthesizers 以下のリンク先ではブラウザ上で動作するサンプルに特化したシンセサイザが使えます。 ClangCymbal 、 FDN64Reverb 、 L4Reverb などの重たいプラグインの移植版も使えます。 - [UhhyouWebSynthesizers](https://ryukau.github.io/UhhyouWebSynthesizers/) @@ -560,7 +638,7 @@ Following link is a list of sample generators that run on web browser. Ported ve - [UhhyouWebSynthesizers](https://ryukau.github.io/UhhyouWebSynthesizers/) - [Source Code](https://github.com/ryukau/UhhyouWebSynthesizers) -# 開発ノート +## 開発ノート VST3 の開発中に分かりにくかったことをまとめました。あまり整理されていません。何かあれば issue を作ってもらえれば対応します。 DAW ごとの問題やワークアラウンドについては追加情報を歓迎します。 - [VST3 の開発](dev_note/vst3_dev.html) @@ -571,7 +649,7 @@ VST3 の開発中に分かりにくかったことをまとめました。あま These links are notes I took while development. Written in Japanese. -# ブログ | Blog +## ブログ | Blog 主にリリースのアナウンスを行うブログです。リンク先のページ下部から Atom/RSS フィードの登録ができます。 - [Uhhyou (ブログ)](https://ryukau.blogspot.com/) @@ -580,6 +658,6 @@ This blog is mostly used for release announcement. Atom/RSS feed is available on - [Uhhyou (blog)](https://ryukau.blogspot.com/) -# VST について +## VST について VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries. diff --git a/docs/manual/AccumulativeRingMod/AccumulativeRingMod_en.html b/docs/manual/AccumulativeRingMod/AccumulativeRingMod_en.html index 537374aa..75c72fad 100644 --- a/docs/manual/AccumulativeRingMod/AccumulativeRingMod_en.html +++ b/docs/manual/AccumulativeRingMod/AccumulativeRingMod_en.html @@ -2,543 +2,578 @@ - - - - -AccumulativeRingMod_en - - - - + + + + + AccumulativeRingMod_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

AccumulativeRingMod

-

-

AccumulativeRingMod is a ring modulator that uses accumulated -amplitude of input signal as the phase. When applied to simple waveforms -like a sine wave, it sounds similar to FM.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -558,274 +593,295 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

In some DAW, main input is fed to sidechain input, when sidechain -input is not routed.

-

Usage

-

AccumulativeRingMod is good at adding variation to simple waveforms -such as sine wave and sawtooth wave. It is recommended to lower -Modulation and Warp -> Amount when applying -to recorded instrument sounds.

-

It might make some nice sounds by automating Modulation -and Warp -> Amount with an external envelope generator -or LFO. Also, it may sounds better with decaying sound because the -amount of modulation changes depending on the amplitude of input -signal.

-

To modulate using a part of pre-mixed sounds, such as snare drum in a -drum loop, try following steps.

-
    -
  1. Narrow down target frequency band by changing Lowpass -and Highpass.
  2. -
  3. Increase Gate to silence unnecessary parts.
  4. -
  5. Enable Envelope to adjust the texture.
  6. -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in AccumulativeRingMod.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [Hz] : Frequency in Hertz.
  • -
-

Gain

-
-
Output
-
-

Output gain.

-
-
Mix
-
-

Mixing ratio of input and output.

-
-
-

Stereo

-
-
Link [Hz]
-
-

Cutoff frequency of lowpass filter used to synchronize phase of 2 -ring modulators on left (L) and right (R) channels.

-

When signal of L and R are different, phase of ring modulator will -become out of sync. After that, the difference of the phases stays there -even if the L and R signal goes back to the same. Sometimes this results -in undesired stereo spread. Link can be used to suppress -this stereo spread.

-

Higher values of Link will synchronize faster, lower -values will synchronize more slowly. When Link is 0, -synchronization is disabled.

-
-
Cross
-
-

Amount to swap stereo channels.

-

When Cross is 0, it stays the same, when it’s 0.5 it -mixes left and right evenly, and when it’s 1 it completely swaps left -and right.

-
-
Offset
-
-

Offset between phase of two ring modulators on stereo.

-

Setting Offset other than 0 spreads stereo image of -output.

-
-
-

Warp

-
-
Amount
-
-

Amount to warp the phase of ring modulator.

-

Beware that CPU load increases when Warp -> Amount is -not 0.

-
-
-

Misc.

-
-
Smoothing [s]
-
-

Time to reach new value after change of parameter.

-
-
Oversampling
-
-

Oversampling ratio.

-

Increasing oversampling ratio may suppress gritty noise that appears -when Modulation value is high. However, CPU load increases -with higher oversampling ratio.

-
-
-

Main Input, Side Chain

-

Same set of parameters are available for main input and sidechain -input.

-
-
Modulation
-
-

Intensity of modulation.

-
-
Lowpass [Hz]
-
-

Cutoff frequency of lowpass filter applied to modulation signal.

-
-
Highpass [Hz]
-
-

Cutoff frequency of highpass filter applied to modulation signal.

-
-
Gate [dB]
-
-

Gate amplitude threshold for modulation signal.

-

Modulation stops when amplitude of filtered modulation signal goes -below threshold set by Gate.

-
-
Envelope [s]
-
-

Lighting up Envelope button enables envelope follower. -The value on right side is release time of envelope.

-
-
Asymmetry - X Pre
-
-

Mixing ratio of raw and full-wave rectified modulation signal before -passing filters.

-
-
Asymmetry - Y Post
-
-

Mixing ratio of raw and full-wave rectified modulation signal after -passing filters.

-
-
-

Change Log

-
    -
  • 0.1.3 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.2 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.1 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

AccumulativeRingMod 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

In some DAW, main input is fed to sidechain input, when sidechain + input is not routed.

+

+

AccumulativeRingMod is good at adding variation to simple waveforms + such as sine wave and sawtooth wave. It is recommended to lower + Modulation and Warp -> Amount when + applying to recorded instrument sounds.

+

It might make some nice sounds by automating + Modulation and Warp -> Amount with an + external envelope generator or LFO. Also, it may sounds better with + decaying sound because the amount of modulation changes depending on + the amplitude of input signal.

+

To modulate using a part of pre-mixed sounds, such as snare drum in + a drum loop, try following steps.

+
    +
  1. Narrow down target frequency band by changing Lowpass + and Highpass.
  2. +
  3. Increase Gate to silence unnecessary parts.
  4. +
  5. Enable Envelope to adjust the texture.
  6. +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in AccumulativeRingMod.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [Hz] : Frequency in Hertz.
  • +
+

+
+
Output
+
+

Output gain.

+
+
Mix
+
+

Mixing ratio of input and output.

+
+
+

+
+
Link [Hz]
+
+

Cutoff frequency of lowpass filter used to synchronize phase of 2 + ring modulators on left (L) and right (R) channels.

+

When signal of L and R are different, phase of ring modulator will + become out of sync. After that, the difference of the phases stays + there even if the L and R signal goes back to the same. Sometimes this + results in undesired stereo spread. Link can be used to + suppress this stereo spread.

+

Higher values of Link will synchronize faster, lower + values will synchronize more slowly. When Link is 0, + synchronization is disabled.

+
+
Cross
+
+

Amount to swap stereo channels.

+

When Cross is 0, it stays the same, when it’s 0.5 it + mixes left and right evenly, and when it’s 1 it completely swaps left + and right.

+
+
Offset
+
+

Offset between phase of two ring modulators on stereo.

+

Setting Offset other than 0 spreads stereo image of + output.

+
+
+

+
+
Amount
+
+

Amount to warp the phase of ring modulator.

+

Beware that CPU load increases when Warp -> Amount + is not 0.

+
+
+

+
+
Smoothing [s]
+
+

Time to reach new value after change of parameter.

+
+
Oversampling
+
+

Oversampling ratio.

+

Increasing oversampling ratio may suppress gritty noise that + appears when Modulation value is high. However, CPU load + increases with higher oversampling ratio.

+
+
+

+

Same set of parameters are available for main input and sidechain + input.

+
+
Modulation
+
+

Intensity of modulation.

+
+
Lowpass [Hz]
+
+

Cutoff frequency of lowpass filter applied to modulation + signal.

+
+
Highpass [Hz]
+
+

Cutoff frequency of highpass filter applied to modulation + signal.

+
+
Gate [dB]
+
+

Gate amplitude threshold for modulation signal.

+

Modulation stops when amplitude of filtered modulation signal goes + below threshold set by Gate.

+
+
Envelope [s]
+
+

Lighting up Envelope button enables envelope follower. + The value on right side is release time of envelope.

+
+
Asymmetry - X Pre
+
+

Mixing ratio of raw and full-wave rectified modulation signal + before passing filters.

+
+
Asymmetry - Y Post
+
+

Mixing ratio of raw and full-wave rectified modulation signal after + passing filters.

+
+
+

+
    +
  • 0.1.3 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.2 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.1 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

AccumulativeRingMod is licensed under GPLv3. Complete licenses are + linked below.

+ +

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

+

+

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

+ + + diff --git a/docs/manual/AccumulativeRingMod/AccumulativeRingMod_ja.html b/docs/manual/AccumulativeRingMod/AccumulativeRingMod_ja.html index e680242e..af0d3218 100644 --- a/docs/manual/AccumulativeRingMod/AccumulativeRingMod_ja.html +++ b/docs/manual/AccumulativeRingMod/AccumulativeRingMod_ja.html @@ -2,544 +2,580 @@ - - - - -AccumulativeRingMod_ja - - - - + + + + + AccumulativeRingMod_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

AccumulativeRingMod

-

-

AccumulativeRingModアキュミュレーティブ リング -モッド -は入力信号の振幅を積算した値を位相として使うリングモジュレータです。サイン波のようなシンプルな波形にかけると -FM のような音がでます。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -559,264 +595,283 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

一部の DAW -では、サイドチェーン入力がルーティングされていないとき、メイン入力がサイドチェーン入力に送られます。

-

使い方

-

AccumulativeRingMod -はサイン波やのこぎり波などの波形が単純な音に変化をつけることが得意です。録音した楽器の音などにかけるときは -Modulation と Warp -> Amount -を低めにすることを推奨します。

-

外部のエンベロープジェネレータや LFO によって Modulation -や Warp -> Amount -をオートメーションすることで面白い変化をつけることができます。また、入力信号の振幅に応じて変調量が変わるので、時間とともに音量が変わる音と組み合わせることもお勧めです。

-

既にミックスされたドラムループなどの一部の音に応じて変調をかけたい、例えばスネアの音が鳴ったときだけ音が変わってほしい、というときは以下の手順を試してみてください。

-
    -
  1. LowpassHighpass -を変えて変調に使いたい音の帯域だけを切り取る。
  2. -
  3. Gate -を上げて使いたい音以外の部分が無音となるようにする。
  4. -
  5. Envelope を有効にして質感を整える。
  6. -
-

ブロック線図

-

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

-

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

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
  • [Hz] : 周波数 (Hertz) 。
  • -
-

Gain

-
-
Output
-
-

出力ゲインです。

-
-
Mix
-
-

入出力の混合比です。

-
-
-

Stereo

-
-
Link [Hz]
-
-

左右のリングモジュレータの位相を同期するために使われる、ローパスフィルタのカットオフ周波数です。

-

左右のチャンネルに異なる信号が入力されると、リングモジュレータの位相がずれた状態になります。そして位相がずれた状態で左右に同じ信号が入力されるとステレオの広がりが出てしまいます。このステレオの広がりを抑えたいときに -Link が使えます。

-

Link -の値が大きいほど素早く、小さいほど緩やかに同期します。 Link -が 0 のときは同期を行いません。

-
-
Cross
-
-

出力信号のステレオの左右を反転させる割合です。

-

Cross が 0 のときはそのまま、 0.5 -のときは左右が均等に混ざった状態、 1 -のときは左右が完全に入れ替わった状態になります。

-
-
Offset
-
-

左右のリングモジュレータの位相のずれです。

-

ステレオの広がりを出したいときに使えます。

-
-
-

Warp

-
-
Amount
-
-

リングモジュレータの位相を歪ませる量です。

-

Warp -> Amount が 0 でないときだけ CPU -負荷が上がるので注意してください。

-
-
-

Misc.

-
-
Smoothing [s]
-
-

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

-
-
Oversampling
-
-

オーバーサンプリングの倍率です。

-

オーバーサンプリングの倍率を上げると、 Modulation -の値が大きいときに乗る、ざらざらとしたノイズが抑えられることがあります。ただし -CPU 負荷は倍率に応じて上がります。

-
-
-

Main Input, Side Chain

-

AccumulativeRingMod -ではメインの入力とサイドチェイン入力それぞれで独立してパラメータを設定できます。

-
-
Modulation
-
-

変調の強さです。

-
-
Lowpass [Hz]
-
-

変調信号が通るローパスフィルタのカットオフ周波数です。

-
-
Highpass [Hz]
-
-

変調信号が通るハイパスフィルタのカットオフ周波数です。

-
-
Gate [dB]
-
-

変調信号が通るゲートのしきい値です。

-

フィルタを通過した後の変調信号の振幅が Gate -の値を下回ると、変調が止まります。

-
-
Envelope [s]
-
-

左側のボタンが点灯しているときは変調信号を通すことができるエンベロープフォロワが有効になります。右側はリリース時間です。

-
-
Asymmetry - X Pre
-
-

フィルタの通過前に、そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

-
-
Asymmetry - Y Post
-
-

フィルタの通過後に、そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

-
-
-

チェンジログ

-
    -
  • 0.1.3 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.2 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.1 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

一部の DAW + では、サイドチェーン入力がルーティングされていないとき、メイン入力がサイドチェーン入力に送られます。

+

+

AccumulativeRingMod + はサイン波やのこぎり波などの波形が単純な音に変化をつけることが得意です。録音した楽器の音などにかけるときは + Modulation と Warp -> Amount + を低めにすることを推奨します。

+

外部のエンベロープジェネレータや LFO によって + Modulation や Warp -> Amount + をオートメーションすることで面白い変化をつけることができます。また、入力信号の振幅に応じて変調量が変わるので、時間とともに音量が変わる音と組み合わせることもお勧めです。

+

既にミックスされたドラムループなどの一部の音に応じて変調をかけたい、例えばスネアの音が鳴ったときだけ音が変わってほしい、というときは以下の手順を試してみてください。

+
    +
  1. LowpassHighpass + を変えて変調に使いたい音の帯域だけを切り取る。
  2. +
  3. Gate + を上げて使いたい音以外の部分が無音となるようにする。
  4. +
  5. Envelope を有効にして質感を整える。
  6. +
+

+

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

+

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

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
  • [Hz] : 周波数 (Hertz) 。
  • +
+

+
+
Output
+
+

出力ゲインです。

+
+
Mix
+
+

入出力の混合比です。

+
+
+

+
+
Link [Hz]
+
+

左右のリングモジュレータの位相を同期するために使われる、ローパスフィルタのカットオフ周波数です。

+

左右のチャンネルに異なる信号が入力されると、リングモジュレータの位相がずれた状態になります。そして位相がずれた状態で左右に同じ信号が入力されるとステレオの広がりが出てしまいます。このステレオの広がりを抑えたいときに + Link が使えます。

+

Link + の値が大きいほど素早く、小さいほど緩やかに同期します。 + Link が 0 のときは同期を行いません。

+
+
Cross
+
+

出力信号のステレオの左右を反転させる割合です。

+

Cross が 0 のときはそのまま、 0.5 + のときは左右が均等に混ざった状態、 1 + のときは左右が完全に入れ替わった状態になります。

+
+
Offset
+
+

左右のリングモジュレータの位相のずれです。

+

ステレオの広がりを出したいときに使えます。

+
+
+

+
+
Amount
+
+

リングモジュレータの位相を歪ませる量です。

+

Warp -> Amount が 0 でないときだけ CPU + 負荷が上がるので注意してください。

+
+
+

+
+
Smoothing [s]
+
+

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

+
+
Oversampling
+
+

オーバーサンプリングの倍率です。

+

オーバーサンプリングの倍率を上げると、 Modulation + の値が大きいときに乗る、ざらざらとしたノイズが抑えられることがあります。ただし + CPU 負荷は倍率に応じて上がります。

+
+
+

+

AccumulativeRingMod + ではメインの入力とサイドチェイン入力それぞれで独立してパラメータを設定できます。

+
+
Modulation
+
+

変調の強さです。

+
+
Lowpass [Hz]
+
+

変調信号が通るローパスフィルタのカットオフ周波数です。

+
+
Highpass [Hz]
+
+

変調信号が通るハイパスフィルタのカットオフ周波数です。

+
+
Gate [dB]
+
+

変調信号が通るゲートのしきい値です。

+

フィルタを通過した後の変調信号の振幅が Gate + の値を下回ると、変調が止まります。

+
+
Envelope [s]
+
+

左側のボタンが点灯しているときは変調信号を通すことができるエンベロープフォロワが有効になります。右側はリリース時間です。

+
+
Asymmetry - X Pre
+
+

フィルタの通過前に、そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

+
+
Asymmetry - Y Post
+
+

フィルタの通過後に、そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

+
+
+

+
    +
  • 0.1.3 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.2 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.1 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

+ + + diff --git a/docs/manual/BasicLimiter/BasicLimiter_en.html b/docs/manual/BasicLimiter/BasicLimiter_en.html index a9d9a250..53725717 100644 --- a/docs/manual/BasicLimiter/BasicLimiter_en.html +++ b/docs/manual/BasicLimiter/BasicLimiter_en.html @@ -2,566 +2,602 @@ - - - - -BasicLimiter_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

BasicLimiter

-

-

BasicLimiter is a basic single band limiter. The sound is nothing -new, but the design of true peak mode is a bit luxurious.

- -

An extended version BasicLimiterAutoMake is also available. Added -features are automatic make up gain, sidechain, and switching between -left-right (L-R) and mid-side (M-S). Note that CPU load is over 1.5 -times heavier than BasicLimiter.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -581,527 +617,548 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

The algorithm used in BasicLimiter causes over-limiting when input -amplitude is extremely high. When over-limiting happens, higher input -amplitude turns into lower output amplitude. This problems is expected -to happen when input amplitude exceeds 2^53, or +319 -dB.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-
-
Threshold [dB]
-
-

Threshold of limiter output amplitude.

-

When True Peak is off, output amplitude is limited under -Threshold.

-

When True Peak is on, output amplitude might exceeds -Threshold. This is due to the limitation of real-time -algorithm.

-
-
Gate [dB]
-
-

Threshold of gate. When input amplitude is less than the value of -Gate for the duration of Attack, output -amplitude becomes 0.

-
-
Attack [s]
-
-

Transition time of smoothing filter which applies to internal -envelope. The value of Attack also adds to the latency.

-

For the sound with sharp transitions like drums, recommend to set -Attack under 0.02 seconds. This value, 0.02 seconds, is -based on a psychoacoustic effect called temporal -masking.

-
-
Release [s]
-
-

Smoothness to reset internal envelope to neutral position.

-

Internally, the inverse value of Release is used as -cutoff frequency. This means that the value of Release is -not exact. Because of temporal masking, setting the sum of -Release and Sustain under 0.2 seconds is -recommended.

-
-
Sustain [s]
-
-

Additional peak hold time for the internal envelope.

-

Sustain causes more ducking when applied to sounds like -drums. For sounds like distorted guitar or sustaining synthesizer, -Sustain might sound cleaner than Release, -because it works similar to auto-gain. Note that when sustain is longer, -it deviates from the curve of temporal masking.

-
-
Stereo Link
-
-

When Stereo Link is set to 0.0, limiter for each channel -works independently. When set to 1.0, maximum of all the input amplitude -is used for both limiter. Following snippet shows the calculation of -Stereo Link

-
absL = fabs(leftInput).
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

The algorithm used in BasicLimiter causes over-limiting when input + amplitude is extremely high. When over-limiting happens, higher input + amplitude turns into lower output amplitude. This problems is expected + to happen when input amplitude exceeds 2^53, or +319 + dB.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+
+
Threshold [dB]
+
+

Threshold of limiter output amplitude.

+

When True Peak is off, output amplitude is limited + under Threshold.

+

When True Peak is on, output amplitude might exceeds + Threshold. This is due to the limitation of real-time + algorithm.

+
+
Gate [dB]
+
+

Threshold of gate. When input amplitude is less than the value of + Gate for the duration of Attack, output + amplitude becomes 0.

+
+
Attack [s]
+
+

Transition time of smoothing filter which applies to internal + envelope. The value of Attack also adds to the + latency.

+

For the sound with sharp transitions like drums, recommend to set + Attack under 0.02 seconds. This value, 0.02 seconds, is + based on a psychoacoustic effect called temporal + masking.

+
+
Release [s]
+
+

Smoothness to reset internal envelope to neutral position.

+

Internally, the inverse value of Release is used as + cutoff frequency. This means that the value of Release is + not exact. Because of temporal masking, setting the sum of + Release and Sustain under 0.2 seconds is + recommended.

+
+
Sustain [s]
+
+

Additional peak hold time for the internal envelope.

+

Sustain causes more ducking when applied to sounds + like drums. For sounds like distorted guitar or sustaining + synthesizer, Sustain might sound cleaner than + Release, because it works similar to auto-gain. Note that + when sustain is longer, it deviates from the curve of temporal + masking.

+
+
Stereo Link
+
+

When Stereo Link is set to 0.0, limiter for each + channel works independently. When set to 1.0, maximum of all the input + amplitude is used for both limiter. Following snippet shows the + calculation of Stereo Link

+
absL = fabs(leftInput).
 absR = fabs(rightInput).
 
 absMax = max(absL, absR).
 
 amplitudeL = absL + stereoLink * (absMax - absL).
 amplitudeR = absR + stereoLink * (absMax - absR).
-

When Stereo Link is set to 0.0, and input amplitude is -leaned to left or right, it may sounds like the pan is wobbling. To -reduce wobbling, set the value to 0.0, then gradually increase the value -to 1.0. Stop increasing the value when pan wobbling becomes -inaudible.

-
-
True Peak
-
-

Enables true peak mode when checked.

-

While true peak mode is enabled, lowpass filter is applied to remove -the components near nyquist frequency. This lowpass filter is designed -to only change the gain over 18000 Hz when sampling rate is 48000 -Hz.

-

Sample peak might exceeds Threshold. Especially when -sample peak exceeds 0 dB, the value of Overshoot becomes -greater than 0. Lower Threshold in this case.

-

True peak restoration at nyquist frequency requires infinite length -FIR filter (sinc interpolation). Therefore, it’s impossible to compute -in real time. This is the reason that lowpass is applied, and true peak -mode overshoots.

-
-
Reset Overshoot
-
-

Resets Overshoot to 0 when clicked.

-

When output sample peak exceeds 0 dB, the value of -Overshoots changes to greater than 0, and -Reset Overshoot will be lit.

-
-
-

BasicLimiterAutoMake -Specific Parameters

-
-
Auto Make Up
-
-

Enable automatic make up gain when checked.

-

When Auto Make Up is enabled, output amplitude become -lower when Threshold is greater than -Auto Make Up Target Gain.

-

When Auto Make Up is enabled, and Threshold -is increasing, overshoot may occur. Recommend to set the target gain to --0.1 dB (default) or lower in this case.

-

If Threshold needs to be changed when input signal is -hot, insert another limiter for safe guard.

-
-
Auto Make Up Target Gain
-
-

Maximum amplitude after automatic make up gain is applied. This is a -control placed on the right side of Auto Make Up. Unit is -decibel.

-

When Channel Type is set to M-S, maximum -amplitude is +6 dB of Auto Make Up Target Gain.

-
-
Sidechain
-
-

When checked, enables sidechain and disables -Auto Make Up.

-

Auto Make Up is disabled because source amplitude is not -affected by Threshold while sidechain is activated.

-

BasicLimiterAutoMake has 2 stereo input. No. 1 is source, and No. 2 -is sidechain. For routing, refer to your DAW manual.

-
-
Channel Type
-
-

Switch the type of stereo channel between left-right -(L-R) and mid-side (M-S).

-

When the type is M-S, sample peak becomes -2 * Threshold, or +6.02 dB over Threshold. -Therefore, when using Auto Make Up with M-S, -it is recommended to set Auto Make Up Target Gain to -6.1 -dB or lower. This behavior aims to provide the same loudness when -comparing L-R and M-S.

-
-
-

Change Log

-

BasicLimiter

-
    -
  • 0.1.20 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.18 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.17 -
      -
    • Changed limiter Attack number slider to update value at -mouse up, instead of mouse move.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.15 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.14 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.13 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.12 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.11 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.10 -
      -
    • Fixed resetting of release filter coefficient. This fix removes -fade-in effect after resetting when release time is long.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed a potential bug that breaks limiter when internal delay buffer -length and attack time are set to same value.
    • -
  • -
  • 0.1.8 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.4 -
      -
    • Added custom font options for style.json.
    • -
    • Changed to disable Gate when the value is set to -inf -dB.
    • -
  • -
  • 0.1.3 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.2 -
      -
    • Initial release.
    • -
  • -
-

BasicLimiterAutoMake

-
    -
  • 0.1.20 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.18 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.17 -
      -
    • Changed limiter Attack number slider to update value at -mouse up, instead of mouse move.
    • -
    • Fixed a bug that side chain input was not recognized on Renoise. -Vst::BusTypes::kAux flag is added for side chain -input.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.15 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.14 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.13 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.12 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.11 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.10 -
      -
    • Changed parameter smoothing time from 0.2 seconds to 0.5 -seconds.
    • -
    • Fixed resetting of release filter coefficient. This fix removes -fade-in effect after resetting when release time is long.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed a potential bug that breaks limiter when internal delay buffer -length and attack time are set to same value.
    • -
  • -
  • 0.1.8 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.7 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.6 -
      -
    • Added highEliminator for sidechain input to reduce overshoot in true -peak mode.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.4 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

-

BasicLimiter

- -

BasicLimiterAutoMake

- -

License

-

BasicLimiter 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.

+

When Stereo Link is set to 0.0, and input amplitude is + leaned to left or right, it may sounds like the pan is wobbling. To + reduce wobbling, set the value to 0.0, then gradually increase the + value to 1.0. Stop increasing the value when pan wobbling becomes + inaudible.

+
+
True Peak
+
+

Enables true peak mode when checked.

+

While true peak mode is enabled, lowpass filter is applied to + remove the components near nyquist frequency. This lowpass filter is + designed to only change the gain over 18000 Hz when sampling rate is + 48000 Hz.

+

Sample peak might exceeds Threshold. Especially when + sample peak exceeds 0 dB, the value of Overshoot becomes + greater than 0. Lower Threshold in this case.

+

True peak restoration at nyquist frequency requires infinite length + FIR filter (sinc interpolation). Therefore, it’s impossible to compute + in real time. This is the reason that lowpass is applied, and true + peak mode overshoots.

+
+
Reset Overshoot
+
+

Resets Overshoot to 0 when clicked.

+

When output sample peak exceeds 0 dB, the value of + Overshoots changes to greater than 0, and + Reset Overshoot will be lit.

+
+
+

+
+
Auto Make Up
+
+

Enable automatic make up gain when checked.

+

When Auto Make Up is enabled, output amplitude become + lower when Threshold is greater than + Auto Make Up Target Gain.

+

When Auto Make Up is enabled, and + Threshold is increasing, overshoot may occur. Recommend + to set the target gain to -0.1 dB (default) or lower in this case.

+

If Threshold needs to be changed when input signal is + hot, insert another limiter for safe guard.

+
+
Auto Make Up Target Gain
+
+

Maximum amplitude after automatic make up gain is applied. This is + a control placed on the right side of Auto Make Up. Unit + is decibel.

+

When Channel Type is set to M-S, maximum + amplitude is +6 dB of Auto Make Up Target Gain.

+
+
Sidechain
+
+

When checked, enables sidechain and disables + Auto Make Up.

+

Auto Make Up is disabled because source amplitude is + not affected by Threshold while sidechain is + activated.

+

BasicLimiterAutoMake has 2 stereo input. No. 1 is source, and No. 2 + is sidechain. For routing, refer to your DAW manual.

+
+
Channel Type
+
+

Switch the type of stereo channel between left-right + (L-R) and mid-side (M-S).

+

When the type is M-S, sample peak becomes + 2 * Threshold, or +6.02 dB over Threshold. + Therefore, when using Auto Make Up with M-S, + it is recommended to set Auto Make Up Target Gain to -6.1 + dB or lower. This behavior aims to provide the same loudness when + comparing L-R and M-S.

+
+
+

+

+
    +
  • 0.1.20 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.18 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.17 +
      +
    • Changed limiter Attack number slider to update value + at mouse up, instead of mouse move.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.15 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.14 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.13 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.12 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.11 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.10 +
      +
    • Fixed resetting of release filter coefficient. This fix removes + fade-in effect after resetting when release time is long.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed a potential bug that breaks limiter when internal delay + buffer length and attack time are set to same value.
    • +
  • +
  • 0.1.8 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.4 +
      +
    • Added custom font options for style.json.
    • +
    • Changed to disable Gate when the value is set to -inf + dB.
    • +
  • +
  • 0.1.3 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.2 +
      +
    • Initial release.
    • +
  • +
+

+
    +
  • 0.1.20 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.18 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.17 +
      +
    • Changed limiter Attack number slider to update value + at mouse up, instead of mouse move.
    • +
    • Fixed a bug that side chain input was not recognized on Renoise. + Vst::BusTypes::kAux flag is added for side chain + input.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.15 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.14 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.13 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.12 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.11 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.10 +
      +
    • Changed parameter smoothing time from 0.2 seconds to 0.5 + seconds.
    • +
    • Fixed resetting of release filter coefficient. This fix removes + fade-in effect after resetting when release time is long.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed a potential bug that breaks limiter when internal delay + buffer length and attack time are set to same value.
    • +
  • +
  • 0.1.8 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.7 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.6 +
      +
    • Added highEliminator for sidechain input to reduce overshoot in + true peak mode.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.4 +
      +
    • Initial release.
    • +
  • +
+

+

+ +

+ +

+

BasicLimiter is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/BasicLimiter/BasicLimiter_ja.html b/docs/manual/BasicLimiter/BasicLimiter_ja.html index f50066b5..ad90badb 100644 --- a/docs/manual/BasicLimiter/BasicLimiter_ja.html +++ b/docs/manual/BasicLimiter/BasicLimiter_ja.html @@ -2,566 +2,605 @@ - - - - -BasicLimiter_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

BasicLimiter

-

-

BasicLimiterベーシック リミッタ -は名前の通りベーシックなシングルバンドリミッタです。目新しい音は出ませんが、トゥルーピークモードはやや贅沢に設計しています。

- -

自動メイクアップゲイン、サイドチェイン、左右 (L-R) とミッド-サイド -(M-S) の切り替えを追加した BasicLimiterAutoMake もあります。ただし CPU -負荷は 1.5 倍強に上がります。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -581,523 +620,541 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

アルゴリズムの問題で、入力振幅がとんでもなく大きいと過剰に振幅が制限されることがあります -(オーバーリミッティング) -。オーバーリミッティングが起こると、入力振幅が大きくなるほど出力振幅が小さくなります。振幅が -2^53 、つまり約 319 dB -を超えたときに問題が起こることが想定されます。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-
-
Threshold [dB]
-
-

リミッタのしきい値です。

-

True Peak -がオフのとき、出力振幅はしきい値以下に制限されます。

-

True Peak -がオンのとき、出力振幅は完全にしきい値以下に制限されません。これはリアルタイムで使えるアルゴリズムには限界があるからです。

-
-
Gate [dB]
-
-

ゲートのしきい値です。 Attack -で指定した時間を超えて入力振幅が Gate -の値を下回ると、出力振幅が 0 になります。

-
-
Attack [s]
-
-

リミッタのエンベロープを滑らかにするフィルタの遷移時間です。 -Attack の値はそのままレイテンシに加算されます。

-

ドラムなどの振幅の変化が急峻な音にかけるときは 0.02 -秒以下に設定することを推奨します。 0.02 秒という値は継時マスキングという人間の耳の聞こえ方の性質に基づいています。

-
-
Release [s]
-
-

リミッタのエンベロープが振幅を制限しない状態に戻るときの滑らかさです。

-

内部では Release -で設定された時間の逆数をカットオフ周波数として使っているので、表示されている値はあくまでも目安です。普段は -Sustain と足し合わせた値が 0.2 -秒以下になるよう設定することを推奨します。この値は継時マスキングに基づいています。

-
-
Sustain [s]
-
-

リミッタのエンベロープが Attack -で設定した時間に加えて振幅のピークをホールドする時間です。

-

ドラムなどにかけると Release -よりもダッキングが目立つ傾向があります。歪ませたギターやサステイン中のシンセサイザなど、振幅が一定な音に対してはオートゲインと同じように働くので -Release よりクリーンな出力が得られます。普段は -Sustain と足し合わせた値が 0.2 -秒以下になるよう設定することを推奨します。サステインを長くすると継時マスキングの曲線から乖離するので注意してください。

-
-
Stereo Link
-
-

Stereo Link が 0.0 -のとき、左右のリミッタは独立して動作します。 1.0 -のとき、すべてのチャンネルの振幅の最大値がすべてのリミッタに入力されます。以下は -Stereo Link の計算式です。

-
absL = fabs(leftInput).
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

アルゴリズムの問題で、入力振幅がとんでもなく大きいと過剰に振幅が制限されることがあります + (オーバーリミッティング) + 。オーバーリミッティングが起こると、入力振幅が大きくなるほど出力振幅が小さくなります。振幅が + 2^53 、つまり約 319 dB + を超えたときに問題が起こることが想定されます。

+

+

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

+

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

+

+

+
+
Threshold [dB]
+
+

リミッタのしきい値です。

+

True Peak + がオフのとき、出力振幅はしきい値以下に制限されます。

+

True Peak + がオンのとき、出力振幅は完全にしきい値以下に制限されません。これはリアルタイムで使えるアルゴリズムには限界があるからです。

+
+
Gate [dB]
+
+

ゲートのしきい値です。 Attack + で指定した時間を超えて入力振幅が Gate + の値を下回ると、出力振幅が 0 になります。

+
+
Attack [s]
+
+

リミッタのエンベロープを滑らかにするフィルタの遷移時間です。 + Attack の値はそのままレイテンシに加算されます。

+

ドラムなどの振幅の変化が急峻な音にかけるときは 0.02 + 秒以下に設定することを推奨します。 0.02 秒という値は継時マスキングという人間の耳の聞こえ方の性質に基づいています。

+
+
Release [s]
+
+

リミッタのエンベロープが振幅を制限しない状態に戻るときの滑らかさです。

+

内部では Release + で設定された時間の逆数をカットオフ周波数として使っているので、表示されている値はあくまでも目安です。普段は + Sustain と足し合わせた値が 0.2 + 秒以下になるよう設定することを推奨します。この値は継時マスキングに基づいています。

+
+
Sustain [s]
+
+

リミッタのエンベロープが Attack + で設定した時間に加えて振幅のピークをホールドする時間です。

+

ドラムなどにかけると Release + よりもダッキングが目立つ傾向があります。歪ませたギターやサステイン中のシンセサイザなど、振幅が一定な音に対してはオートゲインと同じように働くので + Release よりクリーンな出力が得られます。普段は + Sustain と足し合わせた値が 0.2 + 秒以下になるよう設定することを推奨します。サステインを長くすると継時マスキングの曲線から乖離するので注意してください。

+
+
Stereo Link
+
+

Stereo Link が 0.0 + のとき、左右のリミッタは独立して動作します。 1.0 + のとき、すべてのチャンネルの振幅の最大値がすべてのリミッタに入力されます。以下は + Stereo Link の計算式です。

+
absL = fabs(leftInput).
 absR = fabs(rightInput).
 
 absMax = max(absL, absR).
 
 amplitudeL = absL + stereoLink * (absMax - absL).
 amplitudeR = absR + stereoLink * (absMax - absR).
-

細かく設定するときは、まず Stereo Link を 0.0 -に設定します。すると左右のどちらかに偏った信号が入力されたときに、中央に位置する信号が押し出されて、パンがふらつくように聞こえることがあります。このようなパンのふらつきが聞き取れなくなるまで -Stereo Link -の値を少しづつ増やしていけば、そのうち適切な値にたどり着きます。

-
-
True Peak
-
-

チェックを入れるとトゥルーピークモードがオンになります。トゥルーピークモードがオンのときは -94 サンプルのレイテンシが加わります。

-

トゥルーピークモードがオンのときはナイキスト周波数に近い成分を落とすためのローパスフィルタがかかります。サンプリング周波数が -48000 Hz のときに、およそ 18000 Hz -以下の成分についてはローパスフィルタの影響が及ばないように設計しています。

-

サンプルピークが Threshold -で指定した値を超えることがあります。特にサンプルピークが 0 dB -を超えたときは Overshoot の値が 0 -でなくなります。このときは Threshold -の値を下げてください。

-

ナイキスト周波数のトゥルーピークの復元には無限の長さの FIR -フィルタが必要です (sinc 補間) -。したがってリアルタイムでの厳密な復元は不可能です。ローパスをかけていたり、トゥルーピークモードでオーバーシュートが起こったりと問題点があるのは、この無理をなんとかしようとしていることが原因です。

-
-
Reset Overshoot
-
-

クリックすると Overshoot の値を 0 にリセットします。

-

出力のサンプルピークが 0 dB を超えると Overshoot の値が -0 でなくなり、 Reset Overshoot が点灯します。

-
-
-

BasicLimiterAutoMake -の固有パラメータ

-
-
Auto Make Up
-
-

チェックを入れると自動メイクアップゲインが有効になります。

-

自動メイクアップゲインが有効のときに Threshold の値が -Auto Make Up Target Gain -を超えると出力振幅が小さくなります。

-

自動メイクアップゲインが有効のときに、手やオートメーションで -Threshold -を上げると、オーバーシュートすることがあります。オーバーシュートでの歪みを防ぐためには -Auto Make Up Target Gain を -0.1 dB -以下に設定することを推奨します。

-

入力信号があるときに Threshold を動かすのであれば -BasicLimiterAutoMake -の後にお守りとしてさらにもう一つリミッタを挿入することを推奨します。

-
-
Auto Make Up Target Gain
-
-

自動メイクアップゲインが適用された後の最大振幅です。 -Auto Make Up -の右側に配置されているコントロールで、単位はデシベルです。

-

Channel TypeM-S のときは設定値の +6 dB -が最大振幅となります。

-
-
Sidechain
-
-

チェックを入れるとサイドチェインが有効になります。サイドチェインが有効のとき、ソース信号の振幅は -Threshold に影響されないので Auto Make Up -は無効になります。

-

BasicLimiterAutoMake は 2 つのステレオ入力を備えています。 1 -番がソース信号、 2 -番がサイドチェイン信号の入力です。ルーティングについてはお使いの DAW -のマニュアルを参照してください。

-
-
Channel Type
-
-

ステレオチャンネルの種類を左右 (L-R) とミッド-サイド -(M-S) で切り替えます。

-

種類を M-S に設定すると、サンプルピークが -Threshold の 2 倍 (+6.02 dB) に達することがあります。そこで -Auto Make Up を有効にして M-S を使うときは、 -Auto Make Up Target Gain の値を -6.1 dB -以下に設定することを推奨します。この仕様は L-R と -M-S -を切り替えて比較するときに聴感上の音の大きさが同じになることを狙っています。

-
-
-

チェンジログ

-

BasicLimiter

-
    -
  • 0.1.20 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.19 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.18 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.17 -
      -
    • Attack -の数値スライダが値を更新するタイミングを、マウスボタンを押下しながら動かしている間から、マウスボタンの押下を止めた時点に変更。
    • -
  • -
  • 0.1.16 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.15 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.14 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.13 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.12 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.11 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.10 -
      -
    • リリースフィルタのリセットを修正。リリース時間が長めに設定されているとき、リセット直後にフェードインする効果が出なくなった。
    • -
  • -
  • 0.1.9 -
      -
    • 内部で使われているディレイのバッファ長とアタック時間が一致したときに、巻き戻しによってリミッタの動作が壊れる潜在的な不具合を修正。
    • -
  • -
  • 0.1.8 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.6 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.5 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.4 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
    • Gate が -inf dB -のときにゲートがかからないように変更。
    • -
  • -
  • 0.1.3 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.2 -
      -
    • 初期リリース。
    • -
  • -
-

BasicLimiterAutoMake

-
    -
  • 0.1.20 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.19 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.18 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.17 -
      -
    • Attack -の数値スライダが値を更新するタイミングを、マウスボタンを押下しながら動かしている間から、マウスボタンの押下を止めた時点に変更。
    • -
    • Renoise でサイドチェイン入力が認識されていなかったバグを修正。 -Vst::BusTypes::kAux -フラグをサイドチェイン入力に追加した。
    • -
  • -
  • 0.1.16 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.15 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.14 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.13 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.12 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.11 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.10 -
      -
    • パラメータ平滑化時間を 0.2 秒から 0.5 秒に変更。
    • -
    • リリースフィルタのリセットを修正。リリース時間が長めに設定されているとき、リセット直後にフェードインする効果が出なくなった。
    • -
  • -
  • 0.1.9 -
      -
    • 内部で使われているディレイのバッファ長とアタック時間が一致したときに、巻き戻しによってリミッタの動作が壊れる潜在的な不具合を修正。
    • -
  • -
  • 0.1.8 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.7 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.6 -
      -
    • トゥルーピークモードのオーバーシュートを減らすために、サイドチェイン入力の高域除去フィルタを追加。
    • -
  • -
  • 0.1.5 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.4 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

BasicLimiter

- -

BasicLimiterAutoMake

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

細かく設定するときは、まず Stereo Link を 0.0 + に設定します。すると左右のどちらかに偏った信号が入力されたときに、中央に位置する信号が押し出されて、パンがふらつくように聞こえることがあります。このようなパンのふらつきが聞き取れなくなるまで + Stereo Link + の値を少しづつ増やしていけば、そのうち適切な値にたどり着きます。

+
+
True Peak
+
+

チェックを入れるとトゥルーピークモードがオンになります。トゥルーピークモードがオンのときは + 94 サンプルのレイテンシが加わります。

+

トゥルーピークモードがオンのときはナイキスト周波数に近い成分を落とすためのローパスフィルタがかかります。サンプリング周波数が + 48000 Hz のときに、およそ 18000 Hz + 以下の成分についてはローパスフィルタの影響が及ばないように設計しています。

+

サンプルピークが Threshold + で指定した値を超えることがあります。特にサンプルピークが 0 dB + を超えたときは Overshoot の値が 0 + でなくなります。このときは Threshold + の値を下げてください。

+

ナイキスト周波数のトゥルーピークの復元には無限の長さの FIR + フィルタが必要です (sinc 補間) + 。したがってリアルタイムでの厳密な復元は不可能です。ローパスをかけていたり、トゥルーピークモードでオーバーシュートが起こったりと問題点があるのは、この無理をなんとかしようとしていることが原因です。

+
+
Reset Overshoot
+
+

クリックすると Overshoot の値を 0 + にリセットします。

+

出力のサンプルピークが 0 dB を超えると Overshoot + の値が 0 でなくなり、 Reset Overshoot が点灯します。

+
+
+

+
+
Auto Make Up
+
+

チェックを入れると自動メイクアップゲインが有効になります。

+

自動メイクアップゲインが有効のときに Threshold の値が + Auto Make Up Target Gain + を超えると出力振幅が小さくなります。

+

自動メイクアップゲインが有効のときに、手やオートメーションで + Threshold + を上げると、オーバーシュートすることがあります。オーバーシュートでの歪みを防ぐためには + Auto Make Up Target Gain を -0.1 dB + 以下に設定することを推奨します。

+

入力信号があるときに Threshold を動かすのであれば + BasicLimiterAutoMake + の後にお守りとしてさらにもう一つリミッタを挿入することを推奨します。

+
+
Auto Make Up Target Gain
+
+

自動メイクアップゲインが適用された後の最大振幅です。 + Auto Make Up + の右側に配置されているコントロールで、単位はデシベルです。

+

Channel TypeM-S のときは設定値の +6 + dB が最大振幅となります。

+
+
Sidechain
+
+

チェックを入れるとサイドチェインが有効になります。サイドチェインが有効のとき、ソース信号の振幅は + Threshold に影響されないので Auto Make Up + は無効になります。

+

BasicLimiterAutoMake は 2 つのステレオ入力を備えています。 1 + 番がソース信号、 2 + 番がサイドチェイン信号の入力です。ルーティングについてはお使いの DAW + のマニュアルを参照してください。

+
+
Channel Type
+
+

ステレオチャンネルの種類を左右 (L-R) とミッド-サイド + (M-S) で切り替えます。

+

種類を M-S に設定すると、サンプルピークが + Threshold の 2 倍 (+6.02 dB) + に達することがあります。そこで Auto Make Up を有効にして + M-S を使うときは、 Auto Make Up Target Gain + の値を -6.1 dB 以下に設定することを推奨します。この仕様は + L-RM-S + を切り替えて比較するときに聴感上の音の大きさが同じになることを狙っています。

+
+
+

+

+
    +
  • 0.1.20 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.19 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.18 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.17 +
      +
    • Attack + の数値スライダが値を更新するタイミングを、マウスボタンを押下しながら動かしている間から、マウスボタンの押下を止めた時点に変更。
    • +
  • +
  • 0.1.16 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.15 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.14 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.13 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.12 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.11 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.10 +
      +
    • リリースフィルタのリセットを修正。リリース時間が長めに設定されているとき、リセット直後にフェードインする効果が出なくなった。
    • +
  • +
  • 0.1.9 +
      +
    • 内部で使われているディレイのバッファ長とアタック時間が一致したときに、巻き戻しによってリミッタの動作が壊れる潜在的な不具合を修正。
    • +
  • +
  • 0.1.8 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.6 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.5 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.4 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
    • Gate が -inf dB + のときにゲートがかからないように変更。
    • +
  • +
  • 0.1.3 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.2 +
      +
    • 初期リリース。
    • +
  • +
+

+
    +
  • 0.1.20 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.19 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.18 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.17 +
      +
    • Attack + の数値スライダが値を更新するタイミングを、マウスボタンを押下しながら動かしている間から、マウスボタンの押下を止めた時点に変更。
    • +
    • Renoise でサイドチェイン入力が認識されていなかったバグを修正。 + Vst::BusTypes::kAux + フラグをサイドチェイン入力に追加した。
    • +
  • +
  • 0.1.16 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.15 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.14 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.13 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.12 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.11 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.10 +
      +
    • パラメータ平滑化時間を 0.2 秒から 0.5 秒に変更。
    • +
    • リリースフィルタのリセットを修正。リリース時間が長めに設定されているとき、リセット直後にフェードインする効果が出なくなった。
    • +
  • +
  • 0.1.9 +
      +
    • 内部で使われているディレイのバッファ長とアタック時間が一致したときに、巻き戻しによってリミッタの動作が壊れる潜在的な不具合を修正。
    • +
  • +
  • 0.1.8 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.7 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.6 +
      +
    • トゥルーピークモードのオーバーシュートを減らすために、サイドチェイン入力の高域除去フィルタを追加。
    • +
  • +
  • 0.1.5 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.4 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/ClangSynth/ClangSynth_en.html b/docs/manual/ClangSynth/ClangSynth_en.html index bfdf342d..fba692ce 100644 --- a/docs/manual/ClangSynth/ClangSynth_en.html +++ b/docs/manual/ClangSynth/ClangSynth_en.html @@ -2,586 +2,630 @@ - - - - -ClangSynth_en - - - - + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ClangSynth

-

-

ClangSynth is a synthesizer suitable for percussion sounds. Each -voice equips an 8 * 8 feedback delay network (FDN) as a resonator. -Oscillator is static wavetalble with controls specialized to make pulse -train.

- -

ClangCymbal is a spin off of ClangSynth. FDN size is expended to 64 * -64 to provide more rich harmonics. However it is monophonic due to -increased CPU load. Oscillator is changed for noise/pulse mix which is -more suitable to make cymbal sounds. It can also make sound of manhole -dragged on asphalt.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
-xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -601,508 +645,525 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Output amplitude varies greatly. Recommend to insert limiter after -ClangSynth.

-

FDN may blow up if some parameters change too fast. Use LFO and -envelope with caution. When parameter is changed while playing, it -breaks the assumption of linear time-invariant (LTI) system which FDN -relies on. Following is a list of parameter which potentially blow up -FDN.

-
    -
  • LFO -
      -
    • Amount > FDN Pitch
    • -
  • -
  • Envelope -
      -
    • > LP Cut
    • -
    • > HP Cut
    • -
    • > FDN Pitch
    • -
    • > FDN OT +
    • -
  • -
-

Refresh Wavetable button refreshes wavetable. Beware -that while refreshing, CPU load becomes high and it will most likely -stop the DAW output for a moment.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

ClangSynth

-

-

ClangCymbal

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in ClangSynth.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [st.] : Semitone.
  • -
  • [Hz] : Hertz.
  • -
  • [rad/pi] : Radian / π.
  • -
-

ClangSynth

-

Gain

-
-
Output [dB]
-
-

Output gain.

-
-
Attack [s]
-
-

Output gain smoothing time. Increasing Attack also -increases release time.

-

Note that the value is not exact. It converts to filter cutoff -frequency.

-

Attack is introduced to prevent pop noise at note-on, -when Reset to Note On is not checked. When lowpass cutoff -in FDN is lowered, reducing Attack may cause pop noise. If -the sound is dense at high frequency, like cymbal, it may be possible to -set Attack to 0, because pop noise is unnoticeable.

-
-
Release [s]
-
-

Release time after note-off.

-

Note that the value is not exact. It converts to filter cutoff -frequency.

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

Changes master pitch.

-

Milli is 1/1000 of semitone or 1/10 cent.

-
-
ET, A4 [Hz]
-
-

Changes tuning.

-

ET stands for equal temperament. Note that when -ET is less than 12, some notes becomes silent due to -frequency becomes too high or too low.

-

A4 [Hz] is frequency of note A4.

-
-
P.Bend Range
-
-

Pitch bend range. Unit is semitone.

-
-
-

Unison/Chord

-
-
nUnison
-
-

Number of voices a unison uses.

-
-
Pan
-
-

Amount of pan width in a unison.

-

At first note-on, pan is allocated from right to left. Rightmost has -lowest pitch, and leftmost has highest. After that, the allocation -rotates to left for each note-on.

-
-
Pitch *
-
-

Multiplier to unison pitch.

-

When the value of Pitch * is 0, Interval do -nothing.

-
-
ET
-
-

Equal temperament fineness specific for Interval.

-
-
Interval [st.], Cycle At
-
-

Interval is the amount of offset to the note pitch.

-

Cycle At is modulo of Interval index.

-

For example, considier the following values are set to -Interval.

-
1, 2, 3, 4
-

The value of Pitch * multiplies each -Interval. Now we consider the value of Pitch * -is set to 0.1. The values change to the following.

-
0.1, 0.2, 0.3, 0.4
-

The above values turns into a sequence. The sequence starts from -index 0, and increases 1 for each voice. When index reaches the value -set at Cycle At, it goes back to 0. Now, we set -Cycle At to 1.

-
0.1, 0.2, 0.1, 0.2, ...
-

Then we send note number 60 to the synthesizer. The pitch for each -voice becomes following.

-
60,                         // 60
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Output amplitude varies greatly. Recommend to insert limiter after + ClangSynth.

+

FDN may blow up if some parameters change too fast. Use LFO and + envelope with caution. When parameter is changed while playing, it + breaks the assumption of linear time-invariant (LTI) system which FDN + relies on. Following is a list of parameter which potentially blow up + FDN.

+
    +
  • LFO +
      +
    • Amount > FDN Pitch
    • +
  • +
  • Envelope +
      +
    • > LP Cut
    • +
    • > HP Cut
    • +
    • > FDN Pitch
    • +
    • > FDN OT +
    • +
  • +
+

Refresh Wavetable button refreshes wavetable. Beware + that while refreshing, CPU load becomes high and it will most likely + stop the DAW output for a moment.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in ClangSynth.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [st.] : Semitone.
  • +
  • [Hz] : Hertz.
  • +
  • [rad/pi] : Radian / π.
  • +
+

+

+
+
Output [dB]
+
+

Output gain.

+
+
Attack [s]
+
+

Output gain smoothing time. Increasing Attack also + increases release time.

+

Note that the value is not exact. It converts to filter cutoff + frequency.

+

Attack is introduced to prevent pop noise at note-on, + when Reset to Note On is not checked. When lowpass cutoff + in FDN is lowered, reducing Attack may cause pop noise. + If the sound is dense at high frequency, like cymbal, it may be + possible to set Attack to 0, because pop noise is + unnoticeable.

+
+
Release [s]
+
+

Release time after note-off.

+

Note that the value is not exact. It converts to filter cutoff + frequency.

+
+
+

+
+
Octave, Semi, Milli
+
+

Changes master pitch.

+

Milli is 1/1000 of semitone or 1/10 cent.

+
+
ET, A4 [Hz]
+
+

Changes tuning.

+

ET stands for equal temperament. Note that when + ET is less than 12, some notes becomes silent due to + frequency becomes too high or too low.

+

A4 [Hz] is frequency of note A4.

+
+
P.Bend Range
+
+

Pitch bend range. Unit is semitone.

+
+
+

+
+
nUnison
+
+

Number of voices a unison uses.

+
+
Pan
+
+

Amount of pan width in a unison.

+

At first note-on, pan is allocated from right to left. Rightmost + has lowest pitch, and leftmost has highest. After that, the allocation + rotates to left for each note-on.

+
+
Pitch *
+
+

Multiplier to unison pitch.

+

When the value of Pitch * is 0, Interval + do nothing.

+
+
ET
+
+

Equal temperament fineness specific for Interval.

+
+
Interval [st.], Cycle At
+
+

Interval is the amount of offset to the note + pitch.

+

Cycle At is modulo of Interval index.

+

For example, considier the following values are set to + Interval.

+
1, 2, 3, 4
+

The value of Pitch * multiplies each + Interval. Now we consider the value of + Pitch * is set to 0.1. The values change to the + following.

+
0.1, 0.2, 0.3, 0.4
+

The above values turns into a sequence. The sequence starts from + index 0, and increases 1 for each voice. When index reaches the value + set at Cycle At, it goes back to 0. Now, we set + Cycle At to 1.

+
0.1, 0.2, 0.1, 0.2, ...
+

Then we send note number 60 to the synthesizer. The pitch for each + voice becomes following.

+
60,                         // 60
 60 + 0.1,                   // 60.1
 60 + 0.1 + 0.2,             // 60.3
 60 + 0.1 + 0.2 + 0.1,       // 60.4
 60 + 0.1 + 0.2 + 0.1 + 0.2, // 60.6
 ...
-

Below is a code of above procedure.

-
modulo = cycleAt + 1;
+  

Below is a code of above procedure.

+
modulo = cycleAt + 1;
 accumulator = 0;
 for index in [0, nUnison) {
   voice[index].pitch = notePitch + pitchMultiplier * accumulator;
   accumulator += interval[index % modulo];
 }
-
-
-

Misc.

-
-
nVoice
-
-

Maximum number of voices to play at the same time.

-

Decresing nVoice reduces the CPU load.

-
-
Smoothing [s]
-
-

Parameter smoothing time.

-

Note that the value is not exact. It converts to filter cutoff -frequency.

-
-
-

Oscillator

-
-
Impulse [dB]
-
-

Gain of impulse which is triggered at note-on.

-

Impulse can be used as a spice for cymbal sound. Also, impulse is not -affected by velocity, so it can be used to control intensity of impact -to cymbal independent to wavetable oscillator.

-

TODO プリセットの紹介

-
-
Gain [dB]
-
-

Oscillator output gain.

-
-
Attack [s], Decay [s]
-
-

Oscillator AD envelope attack time and decay time.

-

When Decay is short, increasing Attack -almost doesn’t change the sound.

-

Note that the value is not exact. It converts to filter cutoff -frequency.

-
-
Octave, Semitone
-
-

Oscillator pitch tuning in octave or semitone.

-
-
Denom. Slope, Rot. Slope, Rot. Offset, Interval
-
-

Parameters to generate source spectrum for wavetable.

-
    -
  • Denom. Slope : Slope of denominator of frequency -amplitude.
  • -
  • Rot. Slope : Slope of phase rotation.
  • -
  • Rot. Offset : Offset of phase rotation.
  • -
  • Interval : Frequency index interval to write a -value.
  • -
-

When Denom. Slope is greater than 1, it acts like -lowpass filter. At less than 1, it acts like highpass filter. At exactly -1, it generates amplitude of sawtooth wave spectrum.

-

Interval creates 0 in specrum. For example, when -Interval is 3, amplitude of index 1, 4, 7, 10, 13, … -becomes non 0, and amplitude of other indices becomes 0. When -Denom. Slope is 1 and Interval is 2, resulting -waveform becomes square wave.

-

Following is source spectrum generation procedure.

-
for index in [1, numberOfHarmonics] {
+  
+
+

+
+
nVoice
+
+

Maximum number of voices to play at the same time.

+

Decresing nVoice reduces the CPU load.

+
+
Smoothing [s]
+
+

Parameter smoothing time.

+

Note that the value is not exact. It converts to filter cutoff + frequency.

+
+
+

+
+
Impulse [dB]
+
+

Gain of impulse which is triggered at note-on.

+

Impulse can be used as a spice for cymbal sound. Also, impulse is + not affected by velocity, so it can be used to control intensity of + impact to cymbal independent to wavetable oscillator.

+

TODO プリセットの紹介

+
+
Gain [dB]
+
+

Oscillator output gain.

+
+
Attack [s], Decay [s]
+
+

Oscillator AD envelope attack time and decay time.

+

When Decay is short, increasing Attack + almost doesn’t change the sound.

+

Note that the value is not exact. It converts to filter cutoff + frequency.

+
+
Octave, Semitone
+
+

Oscillator pitch tuning in octave or semitone.

+
+
Denom. Slope, Rot. Slope, Rot. Offset, Interval
+
+

Parameters to generate source spectrum for wavetable.

+
    +
  • Denom. Slope : Slope of denominator of frequency + amplitude.
  • +
  • Rot. Slope : Slope of phase rotation.
  • +
  • Rot. Offset : Offset of phase rotation.
  • +
  • Interval : Frequency index interval to write a + value.
  • +
+

When Denom. Slope is greater than 1, it acts like + lowpass filter. At less than 1, it acts like highpass filter. At + exactly 1, it generates amplitude of sawtooth wave spectrum.

+

Interval creates 0 in specrum. For example, when + Interval is 3, amplitude of index 1, 4, 7, 10, 13, … + becomes non 0, and amplitude of other indices becomes 0. When + Denom. Slope is 1 and Interval is 2, + resulting waveform becomes square wave.

+

Following is source spectrum generation procedure.

+
for index in [1, numberOfHarmonics] {
     if (index % interval != 0) continue;
     sourceSpectrum[index].amp = 1 / (denominatorSlope * index);
     sourceSpectrum[index].phase = rotationOffset + rotationSlope * index;
 }
-
-
Harmonic HP
-
-

Frequency index of highpass filter which applies to source spectrum -amplitude.

-

Amplitude of frequency, which index is below the -Harmonic HP, will be reduced. When Harmonic HP -is 0, highpass filter is bypassed.

-

Following shows the computation of Harmonic HP.

-
for index in [0, harmonicHighpass) {
+  
+
Harmonic HP
+
+

Frequency index of highpass filter which applies to source spectrum + amplitude.

+

Amplitude of frequency, which index is below the + Harmonic HP, will be reduced. When + Harmonic HP is 0, highpass filter is bypassed.

+

Following shows the computation of Harmonic HP.

+
for index in [0, harmonicHighpass) {
   sourceSpectrum[index].amp *= index / harmonicHighpass;
 }
-
-
Blur
-
-

Coefficient of lowpass filter which applies to source spectrum -amplitude.

-

Reducing Blur diffuses frequency amplitude to adjacent -indices. It means that the resulting sound becomes close to impulse when -ignoring phase rotations.

-

When Blur is 1, lowpass filter is bypassed.

-

TODO 図

-
-
OT Amp., Rot. [rad/pi]
-
-

Amplitude and phase rotation to add source spectrum as overtone.

-
    -
  • OT Amp. : Overtone amplitude.
  • -
  • Rot. \[rad/pi\] : Overtone phase rotation.
  • -
-

Following shows the procedure to make final spectrum using -OT Amp. and Rot.

-
targetSpectrum.fill(0);
+  
+
Blur
+
+

Coefficient of lowpass filter which applies to source spectrum + amplitude.

+

Reducing Blur diffuses frequency amplitude to adjacent + indices. It means that the resulting sound becomes close to impulse + when ignoring phase rotations.

+

When Blur is 1, lowpass filter is bypassed.

+

TODO 図

+
+
OT Amp., Rot. [rad/pi]
+
+

Amplitude and phase rotation to add source spectrum as + overtone.

+
    +
  • OT Amp. : Overtone amplitude.
  • +
  • Rot. \[rad/pi\] : Overtone phase rotation.
  • +
+

Following shows the procedure to make final spectrum using + OT Amp. and Rot.

+
targetSpectrum.fill(0);
 
 for i in [0, nOvertone) {
   for k in [0, nFrequency) {
@@ -1111,96 +1172,98 @@ 

Oscillator

targetSpectrum[index] += sourceSpectrum[k] * complexFromPolar(otAmp[i], otRot[i]); } }
-
-
Refresh Wavetable
-
-

When the button is pressed, wavetable starts refreshing.

-

Beware that refreshing increases CPU load, and it will likely stop -the sound for a moment.

-

Following parameters are only applied after -Refresh Wavetable is pressed.

-
    -
  • Denom. Slope
  • -
  • Rot. Slope
  • -
  • Rot. Offset
  • -
  • Interval
  • -
  • Harmonic HP
  • -
  • Blur
  • -
  • OT Amp.
  • -
  • Rot. [rad/pi]
  • -
-
-
-

FDN

-
-
FDN
-
-

When lit, oscillator output goes through FDN.

-

It is useful to bypass FDN when checking the raw oscillator -output.

-
-
Identity
-
-

Cross feedback amount between delays.

-

When Identitiy is 0, feedback matrix becomes identity -matrix. This means that it behaves as a bunch of comb filters. -Increasing Identity means to increase cross feedback amount -between delays. More cross feedback adds more non-integer harmonics, -which sounds more metallic.

-
-
Feedback
-
-

Feedback amount of the entire FDN.

-

Even if the Feedback is set ot 1, output decays due to -the linear interpolation used inside of delay.

-
-
Interp. Rate
-
-

Rate limiting amount to the change of delay time.

-
-
Interp. LP [s]
-
-

Inverse of cutoff frequency of lowpass filter, which is used to -interpolate delay time.

-

On delay time interpolation, the value first goes into lowpass -filter, then rate limiter.

-
-
Seed
-
-

Seed value of psuedo-random number generator (PRNG) used for matrix -randomization.

-
-
Randomize
-
-

Ratio of feedback matrix randomization for each note-on.

-

Internally, ClangSynth is holding two pairs of matrix randomization -seed values. One of the pair is fixed when DAW starts playing. Another -is generated at each note-on. Randomize is the ratio to mix -those 2 pairs.

-

When Randomize is 0, harmonics of FDN only depends on -Seed value, and it doesn’t changed by note-on. When -Randomize is 1, each note-on changes the harmonics of -FDN.

-
-
OT +, OT *, OT Offset, OT Modulo, OT Random
-
-

This group of parameters changes delay times as overtone of note -pitch.

-
    -
  • OT + : Incrementation to previous harmonic value.
  • -
  • OT * : Multiplier to previous harmonic value.
  • -
  • OT Offset : Amount of harmonic shift.
  • -
  • OT Modulo : Modulo of the harmonic value calculated -from OT + and OT *.
  • -
  • OT Random : Harmonics randomization amount for each -note-on.
  • -
-

Setting OT + and OT Offset as non-integer -value makes the resulting sound close to some percussion.

-

OT * and OT Modulo creates unnatural -harmonics.

-

Followins is the procedure to determine delay times.

-
// At note on.
+  
+
Refresh Wavetable
+
+

When the button is pressed, wavetable starts refreshing.

+

Beware that refreshing increases CPU load, and it will likely stop + the sound for a moment.

+

Following parameters are only applied after + Refresh Wavetable is pressed.

+
    +
  • Denom. Slope
  • +
  • Rot. Slope
  • +
  • Rot. Offset
  • +
  • Interval
  • +
  • Harmonic HP
  • +
  • Blur
  • +
  • OT Amp.
  • +
  • Rot. [rad/pi]
  • +
+
+
+

+
+
FDN
+
+

When lit, oscillator output goes through FDN.

+

It is useful to bypass FDN when checking the raw oscillator + output.

+
+
Identity
+
+

Cross feedback amount between delays.

+

When Identitiy is 0, feedback matrix becomes identity + matrix. This means that it behaves as a bunch of comb filters. + Increasing Identity means to increase cross feedback + amount between delays. More cross feedback adds more non-integer + harmonics, which sounds more metallic.

+
+
Feedback
+
+

Feedback amount of the entire FDN.

+

Even if the Feedback is set ot 1, output decays due to + the linear interpolation used inside of delay.

+
+
Interp. Rate
+
+

Rate limiting amount to the change of delay time.

+
+
Interp. LP [s]
+
+

Inverse of cutoff frequency of lowpass filter, which is used to + interpolate delay time.

+

On delay time interpolation, the value first goes into lowpass + filter, then rate limiter.

+
+
Seed
+
+

Seed value of psuedo-random number generator (PRNG) used for matrix + randomization.

+
+
Randomize
+
+

Ratio of feedback matrix randomization for each note-on.

+

Internally, ClangSynth is holding two pairs of matrix randomization + seed values. One of the pair is fixed when DAW starts playing. Another + is generated at each note-on. Randomize is the ratio to + mix those 2 pairs.

+

When Randomize is 0, harmonics of FDN only depends on + Seed value, and it doesn’t changed by note-on. When + Randomize is 1, each note-on changes the harmonics of + FDN.

+
+
OT +, OT *, OT Offset, OT Modulo, OT Random
+
+

This group of parameters changes delay times as overtone of note + pitch.

+
    +
  • OT + : Incrementation to previous harmonic + value.
  • +
  • OT * : Multiplier to previous harmonic value.
  • +
  • OT Offset : Amount of harmonic shift.
  • +
  • OT Modulo : Modulo of the harmonic value calculated + from OT + and OT *.
  • +
  • OT Random : Harmonics randomization amount for each + note-on.
  • +
+

Setting OT + and OT Offset as non-integer + value makes the resulting sound close to some percussion.

+

OT * and OT Modulo creates unnatural + harmonics.

+

Followins is the procedure to determine delay times.

+
// At note on.
 for idnex in [0, fdnMatrixSize) {
     overtoneRandomness[idx] = randomUniform(-1, 1) * otRandom;
 }
@@ -1213,562 +1276,585 @@ 

FDN

overtone = overtone * otMul + otAdd; overtone = fmod(overtone, 1 + otModulo); }
-
-
Reset at Note ON
-
-

When checked, each note-on resets FDN internal state.

-

Beware the CPU load spike caused by reset. If the sound stops at -note-on, decreasing nVoice might help to reduce CPU -load.

-
-
Cutoff [st.]
-
-

Cutoff frequency of lowpass or highpass filter.

-
-
Q
-
-

Q factor of lowpass or highpass filter.

-
-
Key Follow
-
-

When checked, cutoff frequency changes by following the pitch of a -note.

-
-
-

LFO

-
-
LFO Wave
-
-

The waveform of LFO wavetable.

-

Wavetable is shared between all voices.

-
-
Retrigger
-
-

When Retrigger is checked, note-on resets LFO phase.

-

When Retrigger is not checked, all the voices uses same -LFO phase.

-

If 1 voice represents 1 object, check Retrigger. If -note-on represents impact to the same object again and again, do not -check Retrigger.

-
-
Wave Interp.
-
-

LFO wave form interpolation method.

-
    -
  • Step: Holding.
  • -
  • Linear: Linear interpolation.
  • -
  • PCHIP: Monotonic cubic interpolation.
  • -
-

Step makes LFO to act like a sequencer. -Linear sounds similar to PCHIP, and the -computation cost is lower. PCHIP is the most smooth among -all 3.

-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

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

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Pitch Amount
-
-

Modulation amount to oscillator or FDN pitch. Unit is semitone.

-

> Osc. Pitch row modulates oscillator, and -> FDN Pitch row modulates FDN.

-
-
Pitch Alignment
-
-

Modulation amount from LFO to pitch only uses the multiple of -Alignment. For example, if current Amount is -12.345 and Alignment is 6, actual modulation amount becomes -12.

-

When Alignment is 0, the value of Amount is -used directly without alignment.

-

Following is procedure of LFO to pitch modulation.

-
if (alignment == 0)
+  
+
Reset at Note ON
+
+

When checked, each note-on resets FDN internal state.

+

Beware the CPU load spike caused by reset. If the sound stops at + note-on, decreasing nVoice might help to reduce CPU + load.

+
+
Cutoff [st.]
+
+

Cutoff frequency of lowpass or highpass filter.

+
+
Q
+
+

Q factor of lowpass or highpass filter.

+
+
Key Follow
+
+

When checked, cutoff frequency changes by following the pitch of a + note.

+
+
+

+
+
LFO Wave
+
+

The waveform of LFO wavetable.

+

Wavetable is shared between all voices.

+
+
Retrigger
+
+

When Retrigger is checked, note-on resets LFO + phase.

+

When Retrigger is not checked, all the voices uses + same LFO phase.

+

If 1 voice represents 1 object, check Retrigger. If + note-on represents impact to the same object again and again, do not + check Retrigger.

+
+
Wave Interp.
+
+

LFO wave form interpolation method.

+
    +
  • Step: Holding.
  • +
  • Linear: Linear interpolation.
  • +
  • PCHIP: Monotonic cubic interpolation.
  • +
+

Step makes LFO to act like a sequencer. + Linear sounds similar to PCHIP, and the + computation cost is lower. PCHIP is the most smooth among + all 3.

+
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

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

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Pitch Amount
+
+

Modulation amount to oscillator or FDN pitch. Unit is semitone.

+

> Osc. Pitch row modulates oscillator, and + > FDN Pitch row modulates FDN.

+
+
Pitch Alignment
+
+

Modulation amount from LFO to pitch only uses the multiple of + Alignment. For example, if current Amount is + 12.345 and Alignment is 6, actual modulation amount + becomes 12.

+

When Alignment is 0, the value of Amount + is used directly without alignment.

+

Following is procedure of LFO to pitch modulation.

+
if (alignment == 0)
   modulation = amount * lfo;
 else
   modulation = alignment * floor(lfo * amount / alignment + 0.5);
-
-
-

Envelope

-
-
Envelope Wave
-
-

The waveform of envelope wavetable.

-

Wavetable is shared between all voices.

-
-
Time [s]
-
-

Duration of envelope from the start of a note.

-

When envelope reaches the end, all the modulation amounts becomes -0.

-
-
Wave Interp.
-
-

Envelope wave form interpolation method.

-

This parameter works as same as Wave Interp. in LFO. -Refer to the Wave Interp. in LFO section for details.

-
-
> LP Cut
-
-

Modulation amount to cutoff frequency of FDN lowpass filters. Unit is -semitone.

-
-
> HP Cut
-
-

Modulation amount to cutoff frequency of FDN highpass filters. Unit -is semitone.

-
-
> Osc. Pitch
-
-

Modulation amount to oscillator pitch. Unit is semitone.

-
-
> FDN Pitch
-
-

Modulation amount to FDN pitch. Unit is semitone.

-
-
> FDN OT +
-
-

Modulation amount to OT + in FDN section.

-

> FDN OT + changes pitch using overtone structure, -while > FDN Pitch moves entire pitch.

-
-
-

ClangCymbal

-

This section only lists the parameters different to ClangSynth.

-

Tremolo

-

Intention of tremolo is to crudely imitate the distance from -vibrating object to microphone. Modulation signal is sine wave.

-
-
Mix
-
-

Mixing ratio of input and delay output.

-

When the value is 0.0, input is bypassed.

-
-
Depth
-
-

Modulation amount to the gain of delay output.

-
-
Delay [s]
-
-

Maximum delay time.

-
-
Delay Offset
-
-

Amount of DC offset which adds to the delay time modulation -signal.

-

On top of Misc.->Smoothing, extra smoothing is -applied to Delay Offset.

-
-
Rate [Hz]
-
-

Frequency of modulation sine wave.

-
-
-

Misc.

-

Pitch slide options are the difference to ClangSynth.

-
-
Slide [s]
-
-

Pitch slide time.

-
-
Slide Type
-
-

3 types of pitch slide are available.

-
    -
  • Always : Always slide from the pitch of last note.
  • -
  • Sustain : Only slide when 2 or more keys are -pressed.
  • -
  • Reset to 0 : When number of pressed key is changed from -0 to 1, or 1 to 0, pitch will be slide to 0 Hz. Otherwise, slide behaves -same as other 2 options. On release, slide time follows the value of -Gain->Release, instead of -Misc.->Slide.
  • -
-
-
2x Sampling
-
-

When checked, it enables 2-fold oversampling.

-

Recommend to turn on for better metallic texture. However it doubles -the CPU load.

-

When turned off, it reduces CPU load. However it also degrades -metallic texture because of the high frequency loss caused by linear -interpolation used in delays inside of FDN. It might be better to use -external equalizer to compensate the high frequency loss.

-
-
-

Oscillator

-

ClangCymbal uses mix of noise and pulse train as an oscillator.

-

Noise generation step is following:

-
    -
  1. Generate naive pulse train.
  2. -
  3. Input 1 to integrator.
  4. -
  5. Multiply 2 to normal distribution noise.
  6. -
-

Integrator here is not the exact one used in theory, but behaves -similarly.

-

Pulse train is generated by BLIT (band-limited impulse train) -algorithm. The naive pulse train used in noise generation is not related -to this one.

-
-
Noise/Pulse
-
-

Mixing ratio of noise and pulse train.

-
-
LP Cutoff [st.]
-
-

Lowpass filter cutoff frequency.

-
-
LP Q
-
-

Lowpass filter Q.

-
-
LP Key
-
-

Key follow amount to LP Cutoff.

-

When LP Cutoff is set to 0, Q is set to -maximum, and LP Key is set to 1, the oscillator outputs -sine wave.

-
-
Density [Hz]
-
-

Density of noise and pulse train.

-

To match the tuning to FDN, set the value of Density to -the same value of Tuning->A4, then set -Density key to 1.

-
-
Density Key
-
-

Key follow amount to Density.

-
-
Noise Decay
-
-

Decay time of a noise burst.

-

When the value of Noise Decay is small, it sounds like -pulse train. However, the naive pulse train used for noise generator is -not anti-aliased. Therefore it has different texture to BLIT.

-
-
Bounce
-
-

Amount of bouncing effect.

-

The bouncing effect is tied to AD envelope output, and bouncing -interval becomes shorter when AD envelope amplitude becomes lower. The -effect is disabled when Bounce is 0.0.

-

Bounce can be used to simulate the bounce of a stick on -a surface.

-
-
Bounce Curve
-
-

The curve parameter of Bounce effect.

-

Increasing Bounce Curve shorten the interval of -bounce.

-
-
Jitter
-
-

Randomness of pulse interval.

-
-
Amp. Rand.
-
-

Randomness of the amplitude of a naive pulse on noise generator.

-
-
-

FDN

-

Individual control for each filter is added compared to ClangSynth. -This increases flexibility, and CPU load.

-
-
Cutoff Slope
-
-

Amount of increment or decrement to the filter cutoff. The amount is -proportional to the order of harmonics.

-
-
Q Slope
-
-

Amount of increment or decrement to the filter Q. The amount is -proportional to the order of harmonics.

-
-
LP/HP Cut Offset [st.]
-
-

The value added to filter cutoff frequency, which is calculated from -Cutoff and Cutoff Slope.

-

On the control, the order of harmonics becomes lower towards left, -and higher towards right. Note that higher harmonics may affects lower -frequency, and lower harmonics may affects higher frequency. This is due -to the cross feedback on FDN.

-
-
LP/HP Q Offset
-
-

The value added to filter Q, which is calculated from Q -and Q Slope.

-

As same as Cut Offset, left side of control represents -lower harmonics and right side represents higher harmonics.

-
-
-

Envelope

-
-
> Jitter
-
-

Modulation amount to Oscillator->Jitter.

-
-
> Noise/Pulse
-
-

Modulation amount to Oscillator->Noise/Pulse.

-
-
-

Change Log

-

ClangSynth

-
    -
  • 0.1.9 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.8 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.7 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.6 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.4 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.3 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.0.3 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.0.2 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.0.1 -
      -
    • β release.
    • -
  • -
-

ClangCymbal

-
    -
  • 0.1.10 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.9 -
      -
    • Added a button to randomize parameters.
    • -
    • Changed to include presets in plugin zip package.
    • -
  • -
  • 0.1.8 -
      -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.7 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.4 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.3 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.2 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.1 -
      -
    • Changed to reset random number generator when Seed is -changed. With this change, the same sound comes out when -Seed is changed and when full reset is done.
    • -
  • -
  • 0.1.0 -
      -
    • Added “2x Sampling” parameter.
    • -
    • Changed tremolo modulation signal from FDN output ot sine wave.
    • -
    • Changed plugin GUID. This change breaks backward compatibility.
    • -
    • Fixed a bug that the solver used in envelope doesn’t terminate when -reached to maximum iteration count.
    • -
  • -
  • 0.0.3 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.0.2 -
      -
    • Fix initialization failure on Bitwig and Live 11. Previously, -kNotInitialized was incorrectly returned when sampling rate -is changed.
    • -
  • -
  • 0.0.1 -
      -
    • β release.
    • -
  • -
-

Old Versions

-

ClangSynth

- -

ClangCymbal

- -

License

-

ClangSynth 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.

+
+
+

+
+
Envelope Wave
+
+

The waveform of envelope wavetable.

+

Wavetable is shared between all voices.

+
+
Time [s]
+
+

Duration of envelope from the start of a note.

+

When envelope reaches the end, all the modulation amounts becomes + 0.

+
+
Wave Interp.
+
+

Envelope wave form interpolation method.

+

This parameter works as same as Wave Interp. in LFO. + Refer to the Wave Interp. in LFO section for details.

+
+
> LP Cut
+
+

Modulation amount to cutoff frequency of FDN lowpass filters. Unit + is semitone.

+
+
> HP Cut
+
+

Modulation amount to cutoff frequency of FDN highpass filters. Unit + is semitone.

+
+
> Osc. Pitch
+
+

Modulation amount to oscillator pitch. Unit is semitone.

+
+
> FDN Pitch
+
+

Modulation amount to FDN pitch. Unit is semitone.

+
+
> FDN OT +
+
+

Modulation amount to OT + in FDN section.

+

> FDN OT + changes pitch using overtone structure, + while > FDN Pitch moves entire pitch.

+
+
+

+

This section only lists the parameters different to ClangSynth.

+

+

Intention of tremolo is to crudely imitate the distance from + vibrating object to microphone. Modulation signal is sine wave.

+
+
Mix
+
+

Mixing ratio of input and delay output.

+

When the value is 0.0, input is bypassed.

+
+
Depth
+
+

Modulation amount to the gain of delay output.

+
+
Delay [s]
+
+

Maximum delay time.

+
+
Delay Offset
+
+

Amount of DC offset which adds to the delay time modulation + signal.

+

On top of Misc.->Smoothing, extra smoothing is + applied to Delay Offset.

+
+
Rate [Hz]
+
+

Frequency of modulation sine wave.

+
+
+

+

Pitch slide options are the difference to ClangSynth.

+
+
Slide [s]
+
+

Pitch slide time.

+
+
Slide Type
+
+

3 types of pitch slide are available.

+
    +
  • Always : Always slide from the pitch of last + note.
  • +
  • Sustain : Only slide when 2 or more keys are + pressed.
  • +
  • Reset to 0 : When number of pressed key is changed + from 0 to 1, or 1 to 0, pitch will be slide to 0 Hz. Otherwise, slide + behaves same as other 2 options. On release, slide time follows the + value of Gain->Release, instead of + Misc.->Slide.
  • +
+
+
2x Sampling
+
+

When checked, it enables 2-fold oversampling.

+

Recommend to turn on for better metallic texture. However it + doubles the CPU load.

+

When turned off, it reduces CPU load. However it also degrades + metallic texture because of the high frequency loss caused by linear + interpolation used in delays inside of FDN. It might be better to use + external equalizer to compensate the high frequency loss.

+
+
+

+

ClangCymbal uses mix of noise and pulse train as an oscillator.

+

Noise generation step is following:

+
    +
  1. Generate naive pulse train.
  2. +
  3. Input 1 to integrator.
  4. +
  5. Multiply 2 to normal distribution noise.
  6. +
+

Integrator here is not the exact one used in theory, but behaves + similarly.

+

Pulse train is generated by BLIT (band-limited impulse train) + algorithm. The naive pulse train used in noise generation is not + related to this one.

+
+
Noise/Pulse
+
+

Mixing ratio of noise and pulse train.

+
+
LP Cutoff [st.]
+
+

Lowpass filter cutoff frequency.

+
+
LP Q
+
+

Lowpass filter Q.

+
+
LP Key
+
+

Key follow amount to LP Cutoff.

+

When LP Cutoff is set to 0, Q is set to + maximum, and LP Key is set to 1, the oscillator outputs + sine wave.

+
+
Density [Hz]
+
+

Density of noise and pulse train.

+

To match the tuning to FDN, set the value of Density + to the same value of Tuning->A4, then set + Density key to 1.

+
+
Density Key
+
+

Key follow amount to Density.

+
+
Noise Decay
+
+

Decay time of a noise burst.

+

When the value of Noise Decay is small, it sounds like + pulse train. However, the naive pulse train used for noise generator + is not anti-aliased. Therefore it has different texture to BLIT.

+
+
Bounce
+
+

Amount of bouncing effect.

+

The bouncing effect is tied to AD envelope output, and bouncing + interval becomes shorter when AD envelope amplitude becomes lower. The + effect is disabled when Bounce is 0.0.

+

Bounce can be used to simulate the bounce of a stick + on a surface.

+
+
Bounce Curve
+
+

The curve parameter of Bounce effect.

+

Increasing Bounce Curve shorten the interval of + bounce.

+
+
Jitter
+
+

Randomness of pulse interval.

+
+
Amp. Rand.
+
+

Randomness of the amplitude of a naive pulse on noise + generator.

+
+
+

+

Individual control for each filter is added compared to ClangSynth. + This increases flexibility, and CPU load.

+
+
Cutoff Slope
+
+

Amount of increment or decrement to the filter cutoff. The amount + is proportional to the order of harmonics.

+
+
Q Slope
+
+

Amount of increment or decrement to the filter Q. The amount is + proportional to the order of harmonics.

+
+
LP/HP Cut Offset [st.]
+
+

The value added to filter cutoff frequency, which is calculated + from Cutoff and Cutoff Slope.

+

On the control, the order of harmonics becomes lower towards left, + and higher towards right. Note that higher harmonics may affects lower + frequency, and lower harmonics may affects higher frequency. This is + due to the cross feedback on FDN.

+
+
LP/HP Q Offset
+
+

The value added to filter Q, which is calculated from + Q and Q Slope.

+

As same as Cut Offset, left side of control represents + lower harmonics and right side represents higher harmonics.

+
+
+

+
+
> Jitter
+
+

Modulation amount to Oscillator->Jitter.

+
+
> Noise/Pulse
+
+

Modulation amount to Oscillator->Noise/Pulse.

+
+
+

+

+
    +
  • 0.1.9 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.8 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.7 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.6 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.4 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.3 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.0.3 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.0.2 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.0.1 +
      +
    • β release.
    • +
  • +
+

+
    +
  • 0.1.10 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.9 +
      +
    • Added a button to randomize parameters.
    • +
    • Changed to include presets in plugin zip package.
    • +
  • +
  • 0.1.8 +
      +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.7 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.4 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.3 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.2 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.1 +
      +
    • Changed to reset random number generator when Seed is + changed. With this change, the same sound comes out when + Seed is changed and when full reset is done.
    • +
  • +
  • 0.1.0 +
      +
    • Added “2x Sampling” parameter.
    • +
    • Changed tremolo modulation signal from FDN output ot sine + wave.
    • +
    • Changed plugin GUID. This change breaks backward + compatibility.
    • +
    • Fixed a bug that the solver used in envelope doesn’t terminate + when reached to maximum iteration count.
    • +
  • +
  • 0.0.3 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.0.2 +
      +
    • Fix initialization failure on Bitwig and Live 11. Previously, + kNotInitialized was incorrectly returned when sampling + rate is changed.
    • +
  • +
  • 0.0.1 +
      +
    • β release.
    • +
  • +
+

+

+ +

+ +

+

ClangSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/ClangSynth/ClangSynth_ja.html b/docs/manual/ClangSynth/ClangSynth_ja.html index 4063eb21..25792f57 100644 --- a/docs/manual/ClangSynth/ClangSynth_ja.html +++ b/docs/manual/ClangSynth/ClangSynth_ja.html @@ -2,586 +2,633 @@ - - - - -ClangSynth_ja - - - - + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ClangSynth

-

-

ClangSynthクラング シンセ -は金属的なパーカッションの音が得意なシンセサイザです。金属的な質感はフィードバック・ディレイ・ネットワーク -(FDN) を用いたディレイ間のクロスフィードバックによるものです。 -WaveCymbal や FDNCymbal よりはシンバルに似た音が出ます。

- -

ClangCymbalクラング シンバル は ClangSynth -のスピンオフです。 FDN の大きさが 64 * 64 -に増えているので、よりリッチな倍音が出ます。ただし CPU -負荷も増えているのでモノフォニックです。オシレータはシンバルの合成に適したノイズとパルス列の混合に変更されています。マンホールをアスファルトの上で引きずったような音も出せます。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -601,503 +648,522 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

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

-

FDN のパラメータが短時間に大きく変わると発散することがあります。 LFO -やエンベロープを使うときは注意してください。発散はパラメータが時間とともに変わると線形時不変 -(linear time invariant, LTI) -なシステムではなくなるために起こります。以下は発散の原因となるパラメータの一覧です。

-
    -
  • LFO -
      -
    • Amount > FDN Pitch
    • -
  • -
  • Envelope -
      -
    • > LP Cut
    • -
    • > HP Cut
    • -
    • > FDN Pitch
    • -
    • > FDN OT +
    • -
  • -
-

Refresh Wavetable -ボタンを押すとウェーブテーブルが更新されます。更新中は CPU -負荷が上がり、ほぼ確実に音が止まるので注意してください。

-

ブロック線図

-

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

-

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

-

ClangSynth

-

-

ClangCymbal

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
  • [st.] : 半音 (semitone) 。
  • -
  • [Hz] : 周波数 (Hertz) 。
  • -
  • [rad/pi] : 正規化した位相 (radian / π) 。
  • -
-

ClangSynth

-

Gain

-
-
Output [dB]
-
-

出力のゲインです。

-
-
Attack [s]
-
-

出力直前のゲインをスムーシングする秒数です。値が大きくなるとアタック時間とともに、リリース時間も長くなります。

-

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

-

Attack は、FDN セクションの -Reset to Note On -がチェックされていないときに、ノートオンでポップノイズが起こることを防ぐために導入されました。 -FDN -セクションのローパスフィルタのカットオフ周波数を下げているときは、値を小さくしすぎるとポップノイズが目立つことがあります。シンバルなどの高い周波数成分が多い音を作るときは -0 まで値を下げても、ほとんど問題になりません。

-
-
Release [s]
-
-

ノートオフの後に続くリリース時間です。

-

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

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

-
    -
  • Octave: オクターブ
  • -
  • Semi: 半音
  • -
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • -
-
-
ET, A4 [Hz]
-
-

音律を変更します。

-

ET は Equal Temperament (平均律) の略です。 -ET が 12 のときは 12 平均律となります。 ET を -12 よりも小さくすると無音になる範囲が増えるので注意してください。

-

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

-
-
P.Bend Range
-
-

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

-
-
-

Unison/Chord

-
-
nUnison
-
-

ユニゾンにつかうボイスの数です。

-
-
Pan
-
-

パンを振る幅です。

-

初回のノートオンでは、右から左へ向かって、ピッチの低い音から高い音へと順番にパンが振られます。以降はノートオンごとにパンの割り当てを左に回転させます。

-
-
Pitch *
-
-

ユニゾンで変更されるピッチに乗算される値です。

-

Pitch * が 0 のとき、 Interval -の値は無効になります。

-
-
ET
-
-

Interval のみで使われる平均律の値です。

-
-
Interval [st.], Cycle At
-
-

Interval -はユニゾンで使われるボイスのピッチを、ノートオンで送られてきたピッチからどれだけずらすかを調整する値です。

-

Cycle AtInterval -の値を巻き戻すインデックスです。

-

例えば Interval が以下の値に設定されているとします。

-
1, 2, 3, 4
-

Interval には Pitch * -の値が乗算されます。仮に Pitch * の値が 0.1 -とすると以下の値へと変換されます。

-
0.1, 0.2, 0.3, 0.4
-

ここで Cycle At が 1 -に設定されているとすると、以下のようにインデックス 1 -で巻き戻しながら繰り返します。

-
0.1, 0.2, 0.1, 0.2, ...
-

さらにノートオンで MIDI ノート番号 60 -のピッチが入力されると、以下のようにピッチがボイスに割り当てられます。

-
60,                         // 60
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

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

+

FDN のパラメータが短時間に大きく変わると発散することがあります。 + LFO + やエンベロープを使うときは注意してください。発散はパラメータが時間とともに変わると線形時不変 + (linear time invariant, LTI) + なシステムではなくなるために起こります。以下は発散の原因となるパラメータの一覧です。

+
    +
  • LFO +
      +
    • Amount > FDN Pitch
    • +
  • +
  • Envelope +
      +
    • > LP Cut
    • +
    • > HP Cut
    • +
    • > FDN Pitch
    • +
    • > FDN OT +
    • +
  • +
+

Refresh Wavetable + ボタンを押すとウェーブテーブルが更新されます。更新中は CPU + 負荷が上がり、ほぼ確実に音が止まるので注意してください。

+

+

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

+

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

+

+

+

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
  • [st.] : 半音 (semitone) 。
  • +
  • [Hz] : 周波数 (Hertz) 。
  • +
  • [rad/pi] : 正規化した位相 (radian / π) 。
  • +
+

+

+
+
Output [dB]
+
+

出力のゲインです。

+
+
Attack [s]
+
+

出力直前のゲインをスムーシングする秒数です。値が大きくなるとアタック時間とともに、リリース時間も長くなります。

+

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

+

Attack は、FDN セクションの + Reset to Note On + がチェックされていないときに、ノートオンでポップノイズが起こることを防ぐために導入されました。 + FDN + セクションのローパスフィルタのカットオフ周波数を下げているときは、値を小さくしすぎるとポップノイズが目立つことがあります。シンバルなどの高い周波数成分が多い音を作るときは + 0 まで値を下げても、ほとんど問題になりません。

+
+
Release [s]
+
+

ノートオフの後に続くリリース時間です。

+

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

+
+
+

+
+
Octave, Semi, Milli
+
+

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

+
    +
  • Octave: オクターブ
  • +
  • Semi: 半音
  • +
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • +
+
+
ET, A4 [Hz]
+
+

音律を変更します。

+

ET は Equal Temperament (平均律) の略です。 + ET が 12 のときは 12 平均律となります。 ET + を 12 + よりも小さくすると無音になる範囲が増えるので注意してください。

+

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

+
+
P.Bend Range
+
+

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

+
+
+

+
+
nUnison
+
+

ユニゾンにつかうボイスの数です。

+
+
Pan
+
+

パンを振る幅です。

+

初回のノートオンでは、右から左へ向かって、ピッチの低い音から高い音へと順番にパンが振られます。以降はノートオンごとにパンの割り当てを左に回転させます。

+
+
Pitch *
+
+

ユニゾンで変更されるピッチに乗算される値です。

+

Pitch * が 0 のとき、 Interval + の値は無効になります。

+
+
ET
+
+

Interval のみで使われる平均律の値です。

+
+
Interval [st.], Cycle At
+
+

Interval + はユニゾンで使われるボイスのピッチを、ノートオンで送られてきたピッチからどれだけずらすかを調整する値です。

+

Cycle AtInterval + の値を巻き戻すインデックスです。

+

例えば Interval + が以下の値に設定されているとします。

+
1, 2, 3, 4
+

Interval には Pitch * + の値が乗算されます。仮に Pitch * の値が 0.1 + とすると以下の値へと変換されます。

+
0.1, 0.2, 0.3, 0.4
+

ここで Cycle At が 1 + に設定されているとすると、以下のようにインデックス 1 + で巻き戻しながら繰り返します。

+
0.1, 0.2, 0.1, 0.2, ...
+

さらにノートオンで MIDI ノート番号 60 + のピッチが入力されると、以下のようにピッチがボイスに割り当てられます。

+
60,                         // 60
 60 + 0.1,                   // 60.1
 60 + 0.1 + 0.2,             // 60.3
 60 + 0.1 + 0.2 + 0.1,       // 60.4
 60 + 0.1 + 0.2 + 0.1 + 0.2, // 60.6
 ...
-

以下は計算の手続きです。

-
modulo = cycleAt + 1;
+  

以下は計算の手続きです。

+
modulo = cycleAt + 1;
 accumulator = 0;
 for index in [0, nUnison) {
   voice[index].pitch = notePitch + pitchMultiplier * accumulator;
   accumulator += interval[index % modulo];
 }
-
-
-

Misc.

-
-
nVoice
-
-

最大同時発音数です。

-

CPU 負荷を下げるときは nVoice -の値を下げると効果的です。

-
-
Smoothing [s]
-
-

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

-

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

-
-
-

Oscillator

-
-
Impulse [dB]
-
-

ノートオンと同時に発音されるインパルスの振幅です。

-

インパルスはシンバルの音を作るときの味付けに使えます。またインパルスはベロシティに影響されないので、ばちとシンバルの衝突の強弱を演奏時に調整するときにも便利です。

-

TODO プリセットの紹介

-
-
Gain [dB]
-
-

オシレータ出力のゲインです。

-
-
Attack [s], Decay [s]
-
-

オシレータの AD エンベロープのアタック時間とディケイ時間です。

-

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

-

ディケイ時間が短いときは Attack -を長くしても音はほとんど変わりません。

-
-
Octave, Semitone
-
-

オクターブあるいは半音単位のオシレータのチューニングです。

-
-
Denom. Slope, Rot. Slope, Rot. Offset, Interval
-
-

オシレータのウェーブテーブルの基となるソース・スペクトラムを合成するパラメータです。

-
    -
  • Denom. Slope : 振幅の分子の係数。
  • -
  • Rot. Slope : 位相の傾き。
  • -
  • Rot. Offset : 位相の切片。
  • -
  • Interval : 書き込む間隔。
  • -
-

Denom. Slope の値が 1 より大きいときはローパス、 1 -より小さいときはハイパスのように機能します。値が 1 -のときは、のこぎり波と同じ振幅特性になります。

-

Interval を 1 より大きくするとソース・スペクトラムが 0 -となる箇所を作り出します。例えば Interval の値が 3 -なら、インデックス 1, 4, 7, 10, 13, … -の値だけが書き込まれて、それ以外のインデックスでの振幅は 0 となります。 -Denom. Slope の値が 1 かつ Interval の値が 2 -なら、矩形波が生成されます。

-

以下は Denom. SlopeRot. Slope 、 -Rot. OffsetInterval -を使ったソース・スペクトラムの計算方法です。

-
for index in [1, numberOfHarmonics] {
+  
+
+

+
+
nVoice
+
+

最大同時発音数です。

+

CPU 負荷を下げるときは nVoice + の値を下げると効果的です。

+
+
Smoothing [s]
+
+

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

+

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

+
+
+

+
+
Impulse [dB]
+
+

ノートオンと同時に発音されるインパルスの振幅です。

+

インパルスはシンバルの音を作るときの味付けに使えます。またインパルスはベロシティに影響されないので、ばちとシンバルの衝突の強弱を演奏時に調整するときにも便利です。

+

TODO プリセットの紹介

+
+
Gain [dB]
+
+

オシレータ出力のゲインです。

+
+
Attack [s], Decay [s]
+
+

オシレータの AD エンベロープのアタック時間とディケイ時間です。

+

フィルタのカットオフ周波数へと変換されるので、あくまでも目安となる値であって、正確な値ではありません。

+

ディケイ時間が短いときは Attack + を長くしても音はほとんど変わりません。

+
+
Octave, Semitone
+
+

オクターブあるいは半音単位のオシレータのチューニングです。

+
+
Denom. Slope, Rot. Slope, Rot. Offset, Interval
+
+

オシレータのウェーブテーブルの基となるソース・スペクトラムを合成するパラメータです。

+
    +
  • Denom. Slope : 振幅の分子の係数。
  • +
  • Rot. Slope : 位相の傾き。
  • +
  • Rot. Offset : 位相の切片。
  • +
  • Interval : 書き込む間隔。
  • +
+

Denom. Slope の値が 1 より大きいときはローパス、 1 + より小さいときはハイパスのように機能します。値が 1 + のときは、のこぎり波と同じ振幅特性になります。

+

Interval を 1 より大きくするとソース・スペクトラムが 0 + となる箇所を作り出します。例えば Interval の値が 3 + なら、インデックス 1, 4, 7, 10, 13, … + の値だけが書き込まれて、それ以外のインデックスでの振幅は 0 + となります。 Denom. Slope の値が 1 かつ + Interval の値が 2 なら、矩形波が生成されます。

+

以下は Denom. SlopeRot. Slope 、 + Rot. OffsetInterval + を使ったソース・スペクトラムの計算方法です。

+
for index in [1, numberOfHarmonics] {
     if (index % interval != 0) continue;
     sourceSpectrum[index].amp = 1 / (denominatorSlope * index);
     sourceSpectrum[index].phase = rotationOffset + rotationSlope * index;
 }
-
-
Harmonic HP
-
-

ソース・スペクトラムの振幅に適用されるハイパスフィルタです。

-

Harmonic HP -で指定された値よりインデックスが小さい低周波成分の振幅を下げます。値が 0 -のときはハイパスフィルタはかかりません。

-

以下は Harmonic HP の計算方法です。

-
for index in [0, harmonicHighpass) {
+  
+
Harmonic HP
+
+

ソース・スペクトラムの振幅に適用されるハイパスフィルタです。

+

Harmonic HP + で指定された値よりインデックスが小さい低周波成分の振幅を下げます。値が + 0 のときはハイパスフィルタはかかりません。

+

以下は Harmonic HP の計算方法です。

+
for index in [0, harmonicHighpass) {
   sourceSpectrum[index].amp *= index / harmonicHighpass;
 }
-
-
Blur
-
-

ソース・スペクトラムの振幅を通過させるローパスフィルタの係数です。

-

Blur -の値を下げると周波数領域で振幅の値が周囲のインデックスへと拡散するので、位相の回転を無視すると、時間領域に戻したときにはインパルスに近い音になります。

-

Blur が 1 のときはローパスフィルタはかかりません。

-

TODO 図

-
-
OT Amp., Rot. [rad/pi]
-
-

ソース・スペクトラムを、さらに倍音間隔で足し合わせるときの振幅と位相です。

-
    -
  • OT Amp. : 加算する倍音の振幅。
  • -
  • Rot. \[rad/pi\] : 加算する倍音の位相。
  • -
-

以下は OT Amp.Rot. -による最終的なスペクトラムの計算方法です。

-
targetSpectrum.fill(0);
+  
+
Blur
+
+

ソース・スペクトラムの振幅を通過させるローパスフィルタの係数です。

+

Blur + の値を下げると周波数領域で振幅の値が周囲のインデックスへと拡散するので、位相の回転を無視すると、時間領域に戻したときにはインパルスに近い音になります。

+

Blur が 1 のときはローパスフィルタはかかりません。

+

TODO 図

+
+
OT Amp., Rot. [rad/pi]
+
+

ソース・スペクトラムを、さらに倍音間隔で足し合わせるときの振幅と位相です。

+
    +
  • OT Amp. : 加算する倍音の振幅。
  • +
  • Rot. \[rad/pi\] : 加算する倍音の位相。
  • +
+

以下は OT Amp.Rot. + による最終的なスペクトラムの計算方法です。

+
targetSpectrum.fill(0);
 
 for i in [0, nOvertone) {
   for k in [0, nFrequency) {
@@ -1106,91 +1172,93 @@ 

Oscillator

targetSpectrum[index] += sourceSpectrum[k] * complexFromPolar(otAmp[i], otRot[i]); } }
-
-
Refresh Wavetable
-
-

ボタンを押すとウェーブテーブルを更新します。

-

更新中は CPU -負荷が上がり、ほぼ確実に音が止まるので注意してください。

-

Oscillator セクションの以下のパラメータは -Refresh Wavetable ボタンを押すまで更新されません。

-
    -
  • Denom. Slope
  • -
  • Rot. Slope
  • -
  • Rot. Offset
  • -
  • Interval
  • -
  • Harmonic HP
  • -
  • Blur
  • -
  • OT Amp.
  • -
  • Rot. [rad/pi]
  • -
-
-
-

FDN

-
-
FDN
-
-

点灯しているときはオシレータ出力が FDN を通過します。

-

オシレータの出力を確認するときには無効にすると便利です。

-
-
Identity
-
-

FDN 内のクロス・フィードバックの量を変更します。

-

Identity の値が 0 -から離れるほど、フィードバック行列が単位行列から離れてクロス・フィードバックが増えます。クロス・フィードバックが増えると非整数次倍音が増えて金属的な質感が出ます。

-
-
Feedback
-
-

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

-

ディレイ内部の線形補間の影響で、 Feedback の値が 1 -のときでも少しづつ減衰が起こります。

-
-
Interp. Rate
-
-

ディレイ時間が変更されたときのレート制限の量です。

-
-
Interp. LP [s]
-
-

ディレイ時間が変更されたときの補間に使われるローパスフィルタのカットオフ周波数の逆数です。

-

ディレイ時間の補間は、ローパスフィルタ、レート制限の順で行われます。

-
-
Seed
-
-

フィードバック行列のランダマイズに使われるシード値です。

-
-
Randomize
-
-

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

-

内部的には行列をランダマイズする基となる値の組を 2 つ持っています。 1 -つの組は再生開始の時点で固定されます。もう 1 -つの組はノートオンごとに生成されます。この 2 つの組を混ぜる割合が -Randomize です。

-

Randomize が 0 -のときは再生開始の時点で固定される組だけを使うので、ノートオンによって倍音が変わりません。 -Randomize が 1 -のときはノートオンのたびにフィードバック行列が変わるので、倍音も変わります。

-
-
OT +, OT *, OT Offset, OT Modulo, OT Random
-
-

FDN -のディレイ時間を、ノートオンで提供されるピッチの倍音として設定するパラメータです。

-
    -
  • OT + : -倍音のインデックスが進むたびに加算される値。
  • -
  • OT * : 倍音のインデックスが進むたびに 1 -つ前の値に乗算される値。
  • -
  • OT Offset : 倍音を高いほうに向かってシフトする量。
  • -
  • OT Modulo : OT +OT * -から計算される値を、巻き戻す点。
  • -
  • OT Random : -ノートオンごとに倍音をランダマイズする量。
  • -
-

OT +OT Offset -を整数でない値に設定することで打楽器のような音に近づきます。

-

OT *OT Modulo -はやや不自然な倍音になります。

-

以下は倍音の計算方法です。

-
// At note on.
+  
+
Refresh Wavetable
+
+

ボタンを押すとウェーブテーブルを更新します。

+

更新中は CPU + 負荷が上がり、ほぼ確実に音が止まるので注意してください。

+

Oscillator セクションの以下のパラメータは + Refresh Wavetable ボタンを押すまで更新されません。

+
    +
  • Denom. Slope
  • +
  • Rot. Slope
  • +
  • Rot. Offset
  • +
  • Interval
  • +
  • Harmonic HP
  • +
  • Blur
  • +
  • OT Amp.
  • +
  • Rot. [rad/pi]
  • +
+
+
+

+
+
FDN
+
+

点灯しているときはオシレータ出力が FDN を通過します。

+

オシレータの出力を確認するときには無効にすると便利です。

+
+
Identity
+
+

FDN 内のクロス・フィードバックの量を変更します。

+

Identity の値が 0 + から離れるほど、フィードバック行列が単位行列から離れてクロス・フィードバックが増えます。クロス・フィードバックが増えると非整数次倍音が増えて金属的な質感が出ます。

+
+
Feedback
+
+

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

+

ディレイ内部の線形補間の影響で、 Feedback の値が 1 + のときでも少しづつ減衰が起こります。

+
+
Interp. Rate
+
+

ディレイ時間が変更されたときのレート制限の量です。

+
+
Interp. LP [s]
+
+

ディレイ時間が変更されたときの補間に使われるローパスフィルタのカットオフ周波数の逆数です。

+

ディレイ時間の補間は、ローパスフィルタ、レート制限の順で行われます。

+
+
Seed
+
+

フィードバック行列のランダマイズに使われるシード値です。

+
+
Randomize
+
+

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

+

内部的には行列をランダマイズする基となる値の組を 2 つ持っています。 + 1 つの組は再生開始の時点で固定されます。もう 1 + つの組はノートオンごとに生成されます。この 2 つの組を混ぜる割合が + Randomize です。

+

Randomize が 0 + のときは再生開始の時点で固定される組だけを使うので、ノートオンによって倍音が変わりません。 + Randomize が 1 + のときはノートオンのたびにフィードバック行列が変わるので、倍音も変わります。

+
+
OT +, OT *, OT Offset, OT Modulo, OT Random
+
+

FDN + のディレイ時間を、ノートオンで提供されるピッチの倍音として設定するパラメータです。

+
    +
  • OT + : + 倍音のインデックスが進むたびに加算される値。
  • +
  • OT * : 倍音のインデックスが進むたびに 1 + つ前の値に乗算される値。
  • +
  • OT Offset : + 倍音を高いほうに向かってシフトする量。
  • +
  • OT Modulo : OT +OT * + から計算される値を、巻き戻す点。
  • +
  • OT Random : + ノートオンごとに倍音をランダマイズする量。
  • +
+

OT +OT Offset + を整数でない値に設定することで打楽器のような音に近づきます。

+

OT *OT Modulo + はやや不自然な倍音になります。

+

以下は倍音の計算方法です。

+
// At note on.
 for idnex in [0, fdnMatrixSize) {
     overtoneRandomness[idx] = randomUniform(-1, 1) * otRandom;
 }
@@ -1203,548 +1271,571 @@ 

FDN

overtone = overtone * otMul + otAdd; overtone = fmod(overtone, 1 + otModulo); }
-
-
Reset at Note ON
-
-

チェックを入れるとノートオンのたびに FDN の状態をリセットします。

-

リセットによる CPU -負荷のスパイクに注意してください。音が止まるなどの問題が出るときは -nVoice の値を小さくすることで CPU 負荷を軽減できます。

-
-
Cutoff [st.]
-
-

ディレイの出力が通るローパスフィルタとハイパスフィルタのカットオフ周波数です。

-
-
Q
-
-

ディレイの出力が通るローパスフィルタとハイパスフィルタの Q です。

-
-
Key Follow
-
-

チェックを入れるとフィルタのカットオフ周波数をノートのピッチに応じて変更します。

-
-
-

LFO

-
-
LFO Wave
-
-

LFO のウェーブテーブルの波形です。

-

ウェーブテーブルの波形はすべてのボイスで共有されます。

-
-
Retrigger
-
-

チェックを入れるとノートオンされたボイスの LFO -の位相をリセットします。

-

チェックを外すとすべてのボイスが同じ位相を使います。

-

1 つのボイスが 1 -つの物体を表すのであれば、チェックを入れたほうがそれらしく聞こえます。ノートオンによって同じ物体を叩く、例えば -8 -人が両手にばちをもって同じ中華鍋を叩いているとするなら、チェックを外してください。

-
-
Wave Interp.
-
-

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

-
    -
  • Step: ホールド。
  • -
  • Linear: 線形補間。
  • -
  • PCHIP: 単調な 3 次補間。
  • -
-

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

-
-
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 -の同期間隔を変えたいときに使えます。

-
-
Pitch Amount
-
-

LFO によるピッチの変調量です。単位は半音です。

-

> Osc. Pitch の行のパラメータはオシレータ、 -> FDN Pitch の行のパラメータは FDN への変調です。

-
-
Pitch Alignment
-
-

LFO のよるピッチの変調量は Alignment -で指定された値の倍数だけを使います。例えば現在の変調量が 12.345 で -Alignment が 6 とすると、実際の変調量は 12 になります。

-

Alignment が 0 のときは Amount -の値を直接使います。

-

以下は変調量の計算方法です。

-
if (alignment == 0)
+  
+
Reset at Note ON
+
+

チェックを入れるとノートオンのたびに FDN + の状態をリセットします。

+

リセットによる CPU + 負荷のスパイクに注意してください。音が止まるなどの問題が出るときは + nVoice の値を小さくすることで CPU + 負荷を軽減できます。

+
+
Cutoff [st.]
+
+

ディレイの出力が通るローパスフィルタとハイパスフィルタのカットオフ周波数です。

+
+
Q
+
+

ディレイの出力が通るローパスフィルタとハイパスフィルタの Q + です。

+
+
Key Follow
+
+

チェックを入れるとフィルタのカットオフ周波数をノートのピッチに応じて変更します。

+
+
+

+
+
LFO Wave
+
+

LFO のウェーブテーブルの波形です。

+

ウェーブテーブルの波形はすべてのボイスで共有されます。

+
+
Retrigger
+
+

チェックを入れるとノートオンされたボイスの LFO + の位相をリセットします。

+

チェックを外すとすべてのボイスが同じ位相を使います。

+

1 つのボイスが 1 + つの物体を表すのであれば、チェックを入れたほうがそれらしく聞こえます。ノートオンによって同じ物体を叩く、例えば + 8 + 人が両手にばちをもって同じ中華鍋を叩いているとするなら、チェックを外してください。

+
+
Wave Interp.
+
+

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

+
    +
  • Step: ホールド。
  • +
  • Linear: 線形補間。
  • +
  • PCHIP: 単調な 3 次補間。
  • +
+

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

+
+
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 + の同期間隔を変えたいときに使えます。

+
+
Pitch Amount
+
+

LFO によるピッチの変調量です。単位は半音です。

+

> Osc. Pitch の行のパラメータはオシレータ、 + > FDN Pitch の行のパラメータは FDN への変調です。

+
+
Pitch Alignment
+
+

LFO のよるピッチの変調量は Alignment + で指定された値の倍数だけを使います。例えば現在の変調量が 12.345 で + Alignment が 6 とすると、実際の変調量は 12 + になります。

+

Alignment が 0 のときは Amount + の値を直接使います。

+

以下は変調量の計算方法です。

+
if (alignment == 0)
   modulation = amount * lfo;
 else
   modulation = alignment * floor(lfo * amount / alignment + 0.5);
-
-
-

Envelope

-
-
Envelope Wave
-
-

エンベロープのウェーブテーブルの波形です。

-

ウェーブテーブルの波形はすべてのボイスで共有されます。

-
-
Time [s]
-
-

ノートオンからエンベロープの終了までにかかる時間です。

-

エンベロープが終了すると変調量はすべて 0 になります。

-
-
Wave Interp.
-
-

エンベロープのウェーブテーブルの補間方法です。

-

LFO と同じく StepLinear 、 -PCHIP の 3 つの補間方法から選択できます。補間方法の詳細は -LFO セクションの Wave Interp. を参照してください。

-
-
> LP Cut
-
-

FDN -のローパスフィルタのカットオフ周波数への変調量です。単位は半音です。

-
-
> HP Cut
-
-

FDN -のハイパスフィルタのカットオフ周波数への変調量です。単位は半音です。

-
-
> Osc. Pitch
-
-

オシレータのピッチの変調量です。単位は半音です。

-
-
> FDN Pitch
-
-

FDN のピッチの変調量です。単位は半音です。

-
-
> FDN OT +
-
-

FDN セクションの OT + への変調量です。

-

> FDN Pitch -とは異なり、倍音に基づいたピッチの変調を行います。

-
-
-

ClangCymbal

-

ClangSynth と異なるパラメータだけをリストしています。

-

Tremolo

-

トレモロは振動する物体とマイクとの距離をざっくりと表現するために追加されました。変調信号はサイン波です。

-
-
Mix
-
-

入力信号とディレイを通過した信号を混ぜる比率です。

-

値が 0.0 のときバイパス、 1.0 -のときディレイを通過した信号のみになります。

-
-
Depth
-
-

ディレイを通過した信号のゲインへの変調量です。

-
-
Delay [s]
-
-

ディレイ時間の最大値です。

-
-
Delay Offset
-
-

ディレイ時間への変調信号に加算される DC オフセットの量です。

-

Delay Offset の値は Misc.->Smoothing -に加えてさらなる平滑化が行われています。追加された平滑化によって、値を変えるといつでもフランジャーのような効果を出すことができます。

-
-
Rate [Hz]
-
-

変調信号のサイン波の周波数です。

-
-
-

Misc.

-

ClangSynth -と比べるとピッチスライドが追加されている点が異なります。

-
-
Slide [s]
-
-

ピッチスライドにかかる時間です。

-
-
Slide Type
-
-

ピッチスライドの種類です。

-
    -
  • Sustain : 2 -つ以上の鍵盤が同時に押されたときだけスライドします。
  • -
  • Always : -常に最後に演奏されたノートのピッチからスライドします。
  • -
  • Reset to 0 : 同時に押している鍵盤の数が 0 から 1 -、あるいは 1 から 0 になるときは 0 Hz -にスライドします。それ以外の場合は他の 2 -つと同じようにスライドします。押している鍵盤の数が 1 から 0 -になるときのスライド時間は Gain->Release -の値が使われます。
  • -
-
-
2x Sampling
-
-

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

-

よりシンバルらしい質感を得るためにはチェックを入れることを推奨します。ただし -CPU 負荷は 2 倍になります。

-

チェックを外すと CPU 負荷は下がりますが、 FDN -のディレイで行われる線形補間による高域の損失が大きくなるため、金属的な質感が損なわれます。外部のイコライザなどで高域を上げることで、いくらかは対処できます。

-
-
-

Oscillator

-

ClangCymbal -ではオシレータがノイズとパルス列の混合に変更されています。

-

ノイズは以下の手順で生成されます。

-
    -
  1. 素朴なパルス列を生成。
  2. -
  3. 1 を積分器に通してディケイを付与。
  4. -
  5. 2 を正規分布ノイズに乗算。
  6. -
-

ここで積分器と呼んでいる部品は、理論的な積分器とは別物ですが似たような動作をします。

-

パルス列は、ノイズ生成で使われるものとは別に、BLIT -アルゴリズムで生成されます。

-
-
Noise/Pulse
-
-

ノイズとパルス列を混ぜる割合です。

-
-
LP Cutoff [st.]
-
-

ローパスフィルタのカットオフ周波数です。

-
-
LP Q
-
-

ローパスフィルタの Q 値です。

-

デフォルト値の 0.7071 を超えるとレゾナンスが目立ち始めます。

-
-
LP Key
-
-

音程に応じて LP Cutoff を変える量です。

-

LP Cutoff を 0 、 Q を最大、 -LP Key を 1 -にすると、発振によってサイン波が出力されます。

-
-
Density [Hz]
-
-

ノイズとパルス列の密度です。

-

Density の値を Tuning->A4 -と同じにした上で、 Density Key を 1.0 -にすると鍵盤上の音程と一致させることができます。

-
-
Density Key
-
-

音程に応じて Density を変える量です。

-
-
Noise Decay
-
-

1 回のノイズが減衰する時間です。

-

Noise Decay の値が小さいときは、 -Noise/Pulse の値が 0 -でもパルス列に近い音になります。ノイズ生成器で使われているパルスはアンチエイリアシングが行われていないので質感の異なった音が出ます。

-
-
Bounce
-
-

AD -エンベロープの信号が小さくなるほど、パルスが現れる間隔を短くする効果の量です。値が -0.0 のときに無効、 1.0 のときに効果が最大になります。

-

力を入れずにスティックを打面に落としたときの、跳ね返りを表現するときに使えます。

-
-
Bounce Curve
-
-

Bounce 効果の曲線を変えるパラメータです。

-

値が大きいほど 1 回の跳ね返りにかかる時間が短くなります。

-
-
Jitter
-
-

パルスが現れる間隔のランダムさです。

-
-
Amp. Rand.
-
-

ノイズ生成器のパルスの振幅のランダムさです。

-
-
-

FDN

-

ClangSynth -とは異なり、各フィルタのパラメータを個別に変えることができます。より柔軟な設定ができますが、 -CPU 負荷も上がっています。

-
-
Cutoff Slope
-
-

倍音の次数に比例してカットオフ周波数を増やす、あるいは減らす量です。

-
-
Q Slope
-
-

倍音の次数に比例して Q を増やす、あるいは減らす量です。

-
-
LP/HP Cut Offset [st.]
-
-

CutoffCutoff Slope -から計算されたフィルタのカットオフ周波数へと、さらに加算される値です。

-

コントロールの左が低次、右が高次の倍音と対応します。ただし、クロスフィードバックの影響で、高次の倍音が低い周波数に、あるいは低次の倍音が高い周波数に影響を及ぼすことがあります。

-
-
LP/HP Q Offset
-
-

QQ Slope から計算されたフィルタの Q -値へと、さらに加算される値です。

-

Cut Offset -と同様に、コントロールの左が低次、右が高次の倍音と対応します。

-
-
-

Envelope

-
-
> Jitter
-
-

Oscillator->Jitter への変調量です。

-
-
> Noise/Pulse
-
-

Oscillator->Noise/Pulse への変調量です。

-
-
-

チェンジログ

-

ClangSynth

-
    -
  • 0.1.9 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.8 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.6 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.5 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.3 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.0.3 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.0.2 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.0.1 -
      -
    • β リリース。
    • -
  • -
-

ClangCymbal

-
    -
  • 0.1.10 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.9 -
      -
    • パラメータをランダム化するボタンを追加。
    • -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
  • -
  • 0.1.8 -
      -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.6 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.5 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.3 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.2 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.1 -
      -
    • Seed -変更時に乱数生成器をリセットするように変更。この変更により -Seed -変更時と、フルリセット時に同じ音が出るようになった。
    • -
  • -
  • 0.1.0 -
      -
    • オーバーサンプリングの設定を追加。
    • -
    • トレモロの変調信号を FDN の出力からサイン波に変更。
    • -
    • プラグインの GUID -を変更。以前のバージョンとは後方互換性がないので注意。
    • -
    • エンベロープで使用しているソルバが最大反復数に到達しても探索を終了しないバグを修正。
    • -
  • -
  • 0.0.3 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.0.2 -
      -
    • Bitwig と Live 11 -で初期化に失敗するバグを修正。修正前はサンプリング周波数が変更されたときに -kNotInitialized が誤って返されていた。
    • -
  • -
  • 0.0.1 -
      -
    • β リリース。
    • -
  • -
-

旧バージョン

-

ClangSynth

- -

ClangCymbal

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+
+
+

+
+
Envelope Wave
+
+

エンベロープのウェーブテーブルの波形です。

+

ウェーブテーブルの波形はすべてのボイスで共有されます。

+
+
Time [s]
+
+

ノートオンからエンベロープの終了までにかかる時間です。

+

エンベロープが終了すると変調量はすべて 0 になります。

+
+
Wave Interp.
+
+

エンベロープのウェーブテーブルの補間方法です。

+

LFO と同じく StepLinear 、 + PCHIP の 3 つの補間方法から選択できます。補間方法の詳細は + LFO セクションの Wave Interp. を参照してください。

+
+
> LP Cut
+
+

FDN + のローパスフィルタのカットオフ周波数への変調量です。単位は半音です。

+
+
> HP Cut
+
+

FDN + のハイパスフィルタのカットオフ周波数への変調量です。単位は半音です。

+
+
> Osc. Pitch
+
+

オシレータのピッチの変調量です。単位は半音です。

+
+
> FDN Pitch
+
+

FDN のピッチの変調量です。単位は半音です。

+
+
> FDN OT +
+
+

FDN セクションの OT + への変調量です。

+

> FDN Pitch + とは異なり、倍音に基づいたピッチの変調を行います。

+
+
+

+

ClangSynth と異なるパラメータだけをリストしています。

+

+

トレモロは振動する物体とマイクとの距離をざっくりと表現するために追加されました。変調信号はサイン波です。

+
+
Mix
+
+

入力信号とディレイを通過した信号を混ぜる比率です。

+

値が 0.0 のときバイパス、 1.0 + のときディレイを通過した信号のみになります。

+
+
Depth
+
+

ディレイを通過した信号のゲインへの変調量です。

+
+
Delay [s]
+
+

ディレイ時間の最大値です。

+
+
Delay Offset
+
+

ディレイ時間への変調信号に加算される DC オフセットの量です。

+

Delay Offset の値は Misc.->Smoothing + に加えてさらなる平滑化が行われています。追加された平滑化によって、値を変えるといつでもフランジャーのような効果を出すことができます。

+
+
Rate [Hz]
+
+

変調信号のサイン波の周波数です。

+
+
+

+

ClangSynth + と比べるとピッチスライドが追加されている点が異なります。

+
+
Slide [s]
+
+

ピッチスライドにかかる時間です。

+
+
Slide Type
+
+

ピッチスライドの種類です。

+
    +
  • Sustain : 2 + つ以上の鍵盤が同時に押されたときだけスライドします。
  • +
  • Always : + 常に最後に演奏されたノートのピッチからスライドします。
  • +
  • Reset to 0 : 同時に押している鍵盤の数が 0 から 1 + 、あるいは 1 から 0 になるときは 0 Hz + にスライドします。それ以外の場合は他の 2 + つと同じようにスライドします。押している鍵盤の数が 1 から 0 + になるときのスライド時間は Gain->Release + の値が使われます。
  • +
+
+
2x Sampling
+
+

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

+

よりシンバルらしい質感を得るためにはチェックを入れることを推奨します。ただし + CPU 負荷は 2 倍になります。

+

チェックを外すと CPU 負荷は下がりますが、 FDN + のディレイで行われる線形補間による高域の損失が大きくなるため、金属的な質感が損なわれます。外部のイコライザなどで高域を上げることで、いくらかは対処できます。

+
+
+

+

ClangCymbal + ではオシレータがノイズとパルス列の混合に変更されています。

+

ノイズは以下の手順で生成されます。

+
    +
  1. 素朴なパルス列を生成。
  2. +
  3. 1 を積分器に通してディケイを付与。
  4. +
  5. 2 を正規分布ノイズに乗算。
  6. +
+

ここで積分器と呼んでいる部品は、理論的な積分器とは別物ですが似たような動作をします。

+

パルス列は、ノイズ生成で使われるものとは別に、BLIT + アルゴリズムで生成されます。

+
+
Noise/Pulse
+
+

ノイズとパルス列を混ぜる割合です。

+
+
LP Cutoff [st.]
+
+

ローパスフィルタのカットオフ周波数です。

+
+
LP Q
+
+

ローパスフィルタの Q 値です。

+

デフォルト値の 0.7071 を超えるとレゾナンスが目立ち始めます。

+
+
LP Key
+
+

音程に応じて LP Cutoff を変える量です。

+

LP Cutoff を 0 、 Q を最大、 + LP Key を 1 + にすると、発振によってサイン波が出力されます。

+
+
Density [Hz]
+
+

ノイズとパルス列の密度です。

+

Density の値を Tuning->A4 + と同じにした上で、 Density Key を 1.0 + にすると鍵盤上の音程と一致させることができます。

+
+
Density Key
+
+

音程に応じて Density を変える量です。

+
+
Noise Decay
+
+

1 回のノイズが減衰する時間です。

+

Noise Decay の値が小さいときは、 + Noise/Pulse の値が 0 + でもパルス列に近い音になります。ノイズ生成器で使われているパルスはアンチエイリアシングが行われていないので質感の異なった音が出ます。

+
+
Bounce
+
+

AD + エンベロープの信号が小さくなるほど、パルスが現れる間隔を短くする効果の量です。値が + 0.0 のときに無効、 1.0 のときに効果が最大になります。

+

力を入れずにスティックを打面に落としたときの、跳ね返りを表現するときに使えます。

+
+
Bounce Curve
+
+

Bounce 効果の曲線を変えるパラメータです。

+

値が大きいほど 1 回の跳ね返りにかかる時間が短くなります。

+
+
Jitter
+
+

パルスが現れる間隔のランダムさです。

+
+
Amp. Rand.
+
+

ノイズ生成器のパルスの振幅のランダムさです。

+
+
+

+

ClangSynth + とは異なり、各フィルタのパラメータを個別に変えることができます。より柔軟な設定ができますが、 + CPU 負荷も上がっています。

+
+
Cutoff Slope
+
+

倍音の次数に比例してカットオフ周波数を増やす、あるいは減らす量です。

+
+
Q Slope
+
+

倍音の次数に比例して Q を増やす、あるいは減らす量です。

+
+
LP/HP Cut Offset [st.]
+
+

CutoffCutoff Slope + から計算されたフィルタのカットオフ周波数へと、さらに加算される値です。

+

コントロールの左が低次、右が高次の倍音と対応します。ただし、クロスフィードバックの影響で、高次の倍音が低い周波数に、あるいは低次の倍音が高い周波数に影響を及ぼすことがあります。

+
+
LP/HP Q Offset
+
+

QQ Slope から計算されたフィルタの Q + 値へと、さらに加算される値です。

+

Cut Offset + と同様に、コントロールの左が低次、右が高次の倍音と対応します。

+
+
+

+
+
> Jitter
+
+

Oscillator->Jitter への変調量です。

+
+
> Noise/Pulse
+
+

Oscillator->Noise/Pulse への変調量です。

+
+
+

+

+
    +
  • 0.1.9 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.8 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.6 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.5 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.3 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.0.3 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.0.2 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.0.1 +
      +
    • β リリース。
    • +
  • +
+

+
    +
  • 0.1.10 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.9 +
      +
    • パラメータをランダム化するボタンを追加。
    • +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
  • +
  • 0.1.8 +
      +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.6 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.5 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.3 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.2 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.1 +
      +
    • Seed + 変更時に乱数生成器をリセットするように変更。この変更により + Seed + 変更時と、フルリセット時に同じ音が出るようになった。
    • +
  • +
  • 0.1.0 +
      +
    • オーバーサンプリングの設定を追加。
    • +
    • トレモロの変調信号を FDN の出力からサイン波に変更。
    • +
    • プラグインの GUID + を変更。以前のバージョンとは後方互換性がないので注意。
    • +
    • エンベロープで使用しているソルバが最大反復数に到達しても探索を終了しないバグを修正。
    • +
  • +
  • 0.0.3 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.0.2 +
      +
    • Bitwig と Live 11 + で初期化に失敗するバグを修正。修正前はサンプリング周波数が変更されたときに + kNotInitialized が誤って返されていた。
    • +
  • +
  • 0.0.1 +
      +
    • β リリース。
    • +
  • +
+

+

+ +

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/CollidingCombSynth/CollidingCombSynth_en.html b/docs/manual/CollidingCombSynth/CollidingCombSynth_en.html index 95bf1272..10261a2a 100644 --- a/docs/manual/CollidingCombSynth/CollidingCombSynth_en.html +++ b/docs/manual/CollidingCombSynth/CollidingCombSynth_en.html @@ -2,543 +2,578 @@ - - - - -CollidingCombSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CollidingCombSynth

-

-

CollidingCombSynth is an experimental synthesizer which sounds like -bowed string. Equipped with 24 Karplus-Strong string models which -collide to each other. Tuning of pitch is possible, but difficult. So -mostly suitable for sound effects.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -558,627 +593,644 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Output amplitude varies a lot, even if Compressor is -turned on. Recommend to always insert limiter after -CollidingCombSynth.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Gain

-
-
Gain, Boost
-
-

Master gain. Value of Gain and value of -Boost will be multiplied.

-
masterGain = Gain * Boost
-
-
Compressor
-
-

Turn on/off the comporessors. Each voice has a compressor.

-
-
Time
-
-

Attack/Release time of compressor.

-

Larger Time value may sound more natural, but -compression becomes leaky. In this case, try turning down the value of -Threshold.

-
-
Threshold
-
-

Compressor starts compressing the signal when input amplitude exceeds -Threshold. Usually, Threshold is set to less -than 1.0.

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

Changes master pitch.

-
    -
  • Semi stands for semitone.
  • -
  • Milli is 1/1000 of semitone or 1/10 cent.
  • -
-
-
ET, A4 [Hz]
-
-

Changes tuning.

-

ET stands for equal temperament. Note that when -ET is less than 12, some notes may become silent due to -frequency becomes too high or too low.

-

A4 [Hz] is frequency of note A4.

-
-
-

Unison

-
-
nUnison
-
-

Number of voices used by unison.

-

To avoid interruption of release, increase the number of -Poly in Misc. section. Note that increasing -Poly consumes more resources.

-
-
Detune, Random Detune
-
-

Detune is the difference of pitch between voices used in -a unison.

-

When Random Detune is checked, amount of detune changes -for each note-on.

-
random = RandomDetune ? rand() : 1
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Output amplitude varies a lot, even if Compressor is + turned on. Recommend to always insert limiter after + CollidingCombSynth.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Gain, Boost
+
+

Master gain. Value of Gain and value of + Boost will be multiplied.

+
masterGain = Gain * Boost
+
+
Compressor
+
+

Turn on/off the comporessors. Each voice has a compressor.

+
+
Time
+
+

Attack/Release time of compressor.

+

Larger Time value may sound more natural, but + compression becomes leaky. In this case, try turning down the value of + Threshold.

+
+
Threshold
+
+

Compressor starts compressing the signal when input amplitude + exceeds Threshold. Usually, Threshold is set + to less than 1.0.

+
+
+

+
+
Octave, Semi, Milli
+
+

Changes master pitch.

+
    +
  • Semi stands for semitone.
  • +
  • Milli is 1/1000 of semitone or 1/10 cent.
  • +
+
+
ET, A4 [Hz]
+
+

Changes tuning.

+

ET stands for equal temperament. Note that when + ET is less than 12, some notes may become silent due to + frequency becomes too high or too low.

+

A4 [Hz] is frequency of note A4.

+
+
+

+
+
nUnison
+
+

Number of voices used by unison.

+

To avoid interruption of release, increase the number of + Poly in Misc. section. Note that increasing + Poly consumes more resources.

+
+
Detune, Random Detune
+
+

Detune is the difference of pitch between voices used + in a unison.

+

When Random Detune is checked, amount of detune + changes for each note-on.

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
Spread
-
-

Amount of stereo spread for a unison.

-
-
Gain
-
-

Amount of randomization of gain for voices used in a unison.

-
-
-

Random

-

Random section has configurations for 4 random number generators -(RNG).

-
    -
  • Noise: RNG for gaussian noise oscillator on exciter.
  • -
  • Comb: RNG to randomize Comb Time in -Exciter section.
  • -
  • Str.Freq: RNG to randomize Frequency in -String section.
  • -
  • Unison: RNG used in Detune and Gain in -Unison section.
  • -
-
-
Amount
-
-

Amount of randomization. Randomization is disabled when -Amount is set to 0.

-
-
Seed
-
-

Seed value. Different seed generates different sequence of pseudo -random number.

-
-
Retrigger
-
-

When checked, the synth resets seed for each note-on.

-
-
-

Exciter

-

Configuration of exciter. Excitation is some force to start physical -model. For example, picking of guitar, impact of piano string and -hammer, impact of stick and drumhead, are excitation.

-

The exciter of CollidingCombSynth consists of sawtooth/noise -oscillator and serially connected 8 comb filters.

-
-
LP Cutoff
-
-

Cutoff frequency of lowpass filter which applies to oscillator -output. Unit of display value is Hz.

-
-
Gain
-
-

オシレータの音量です。

-
-
A, D
-
-

A is the attack time of oscillator. D is -the decay time of oscillator.

-

Turning A knob to right makes sound softer.

-
-
Saw/Noise
-
-

Mixing ratio of sawtooth and gaussian noise in oscillator output. -When set to leftmost, oscillator only outputs sawtooth. When set to -rightmost, oscillator only outputs gaussian noise.

-
-
Comb Time
-
-

Delay time of comb filter. Unit of display value is seconds.

-
-
-

String

-

Configurations of Karplus-Strong strings.

-
-
LP Cutoff
-
-

Cutoff frequency of lowpass filter which is inserted in feedback path -of string model. Unit of display value is Hz.

-
-
HP Cutoff
-
-

Cutoff frequency of highpass filter which applies to string output. -Unit of display value is Hz.

-
-
Distance
-
-

Distance between strings. When an immediate amplitude of a string -exceeds Distance, exceeded amplitude will be propagated to -a neighbouring string.

-
-
Propagation
-
-

The value of Propagation changes the loss of force when -strings are collided. The bounce will be weaken if -Propagation is smaller.

-
-
Connection
-
-

Connection type of strings.

-
    -
  • Parallel: Connect strings in parallel. Input of -excitation starts from string 0, then incrementally going through the -rest of strings. Collided signal is accumulated to the excitation signal -incrementally.
  • -
  • Serial: Connect strings in serial. Excitation is only -input to string 0. Then output of string 0 goes to input of string 1, -output of string 1 goes to input of string 2, and so on. Beware that -output signal may become louder than Parallel, so take care -when turn off Compressor.
  • -
-
-
A, D, S, R
-
-

Envelope parameters which modulates LP Cutoff. This -envelope basically works as the gain envelope of CollidingCombSynth.

-
    -
  • A : Attack time which is the length from note-on to -reaching LP Cutoff value.
  • -
  • D : Decay time which is the length from -LP Cutoff value to reaching -(LP Cutoff) * S.
  • -
  • S : Sustain level which is the gain after decay.
  • -
  • R : Release time which is the length from note-off to -the LP Cutoff reaching to 0.
  • -
-
-
Frequency
-
-

Fundamental frequency of string. The final frequency of a string is -calculated by multiplying note pitch by Frequency.

-
noteFrequency = A4Hz * pow(2, Octave + (Semi - 69) / ET + Milli / (ET * 1000))
+  
+
Spread
+
+

Amount of stereo spread for a unison.

+
+
Gain
+
+

Amount of randomization of gain for voices used in a unison.

+
+
+

+

Random section has configurations for 4 random number generators + (RNG).

+
    +
  • Noise: RNG for gaussian noise oscillator on exciter.
  • +
  • Comb: RNG to randomize Comb Time in + Exciter section.
  • +
  • Str.Freq: RNG to randomize Frequency in + String section.
  • +
  • Unison: RNG used in Detune and Gain in + Unison section.
  • +
+
+
Amount
+
+

Amount of randomization. Randomization is disabled when + Amount is set to 0.

+
+
Seed
+
+

Seed value. Different seed generates different sequence of pseudo + random number.

+
+
Retrigger
+
+

When checked, the synth resets seed for each note-on.

+
+
+

+

Configuration of exciter. Excitation is some force to start + physical model. For example, picking of guitar, impact of piano string + and hammer, impact of stick and drumhead, are excitation.

+

The exciter of CollidingCombSynth consists of sawtooth/noise + oscillator and serially connected 8 comb filters.

+
+
LP Cutoff
+
+

Cutoff frequency of lowpass filter which applies to oscillator + output. Unit of display value is Hz.

+
+
Gain
+
+

オシレータの音量です。

+
+
A, D
+
+

A is the attack time of oscillator. D is + the decay time of oscillator.

+

Turning A knob to right makes sound softer.

+
+
Saw/Noise
+
+

Mixing ratio of sawtooth and gaussian noise in oscillator output. + When set to leftmost, oscillator only outputs sawtooth. When set to + rightmost, oscillator only outputs gaussian noise.

+
+
Comb Time
+
+

Delay time of comb filter. Unit of display value is seconds.

+
+
+

+

Configurations of Karplus-Strong strings.

+
+
LP Cutoff
+
+

Cutoff frequency of lowpass filter which is inserted in feedback + path of string model. Unit of display value is Hz.

+
+
HP Cutoff
+
+

Cutoff frequency of highpass filter which applies to string output. + Unit of display value is Hz.

+
+
Distance
+
+

Distance between strings. When an immediate amplitude of a string + exceeds Distance, exceeded amplitude will be propagated + to a neighbouring string.

+
+
Propagation
+
+

The value of Propagation changes the loss of force + when strings are collided. The bounce will be weaken if + Propagation is smaller.

+
+
Connection
+
+

Connection type of strings.

+
    +
  • Parallel: Connect strings in parallel. Input of + excitation starts from string 0, then incrementally going through the + rest of strings. Collided signal is accumulated to the excitation + signal incrementally.
  • +
  • Serial: Connect strings in serial. Excitation is only + input to string 0. Then output of string 0 goes to input of string 1, + output of string 1 goes to input of string 2, and so on. Beware that + output signal may become louder than Parallel, so take + care when turn off Compressor.
  • +
+
+
A, D, S, R
+
+

Envelope parameters which modulates LP Cutoff. This + envelope basically works as the gain envelope of + CollidingCombSynth.

+
    +
  • A : Attack time which is the length from note-on to + reaching LP Cutoff value.
  • +
  • D : Decay time which is the length from + LP Cutoff value to reaching + (LP Cutoff) * S.
  • +
  • S : Sustain level which is the gain after decay.
  • +
  • R : Release time which is the length from note-off to + the LP Cutoff reaching to 0.
  • +
+
+
Frequency
+
+

Fundamental frequency of string. The final frequency of a string is + calculated by multiplying note pitch by Frequency.

+
noteFrequency = A4Hz * pow(2, Octave + (Semi - 69) / ET + Milli / (ET * 1000))
 stringFrequency = Frequency * noteFrequency
-
-
-

Change Log

-
    -
  • 0.1.16 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.15 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.14 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.13 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.12 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.11 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.10 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.9 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.8 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.7 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.4 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.3 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.2 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

CollidingCombSynth 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.

+
+
+

+
    +
  • 0.1.16 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.15 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.14 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.13 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.12 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.11 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.10 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.9 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.8 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.7 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.4 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.3 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.2 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

CollidingCombSynth is licensed under GPLv3. Complete licenses are + linked below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/CollidingCombSynth/CollidingCombSynth_ja.html b/docs/manual/CollidingCombSynth/CollidingCombSynth_ja.html index d3891c12..56440e00 100644 --- a/docs/manual/CollidingCombSynth/CollidingCombSynth_ja.html +++ b/docs/manual/CollidingCombSynth/CollidingCombSynth_ja.html @@ -2,542 +2,578 @@ - - - - -CollidingCombSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CollidingCombSynth

-

-

CollidingCombSynthコライディング コム シンセ は -Karplus-Strong -アルゴリズムによる弦の物理モデルをぶつけることで、弦を擦ったときのような音が出る実験的なシンセサイザです。音程はでますがチューニングが難しいので、どちらかと言うと効果音に向いています。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -557,622 +593,643 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

Compressor を有効にしていても音量の変化が激しいので、 -CollidingCombSynth の後に必ずリミッタを挿入することをお勧めします。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

Gain

-
-
Gain, Boost
-
-

出力音量です。 Gain の値と Boost -の値は掛け合わされます。

-
masterGain = Gain * Boost
-
-
Compressor
-
-

ボイスごとに用意されたコンプレッサを有効・無効にします。

-
-
Time
-
-

コンプレッサのアタック・リリース時間です。

-

Time -の音を大きくするほうが自然な聞こえ方に近くなりますが、音量のピークが抑えきれないときがあります。このときは -Threshold の値を下げてみてください。

-
-
Threshold
-
-

コンプレッサが動作を始める音量です。通常は 1.0 -以下に設定することをお勧めします。

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

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

-
    -
  • Octave: オクターブ
  • -
  • Semi: 半音
  • -
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • -
-
-
ET, A4 [Hz]
-
-

音律を変更します。

-

ET は Equal Temperament (平均律) の略です。 -ET が 12 のときは 12 平均律となります。 ET を -12 よりも小さくすると無音になる範囲が増えるので注意してください。

-

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

-
-
-

Unison

-
-
nUnison
-
-

ユニゾンに使うボイスの数です。

-

Misc.Poly を増やすことで -nUnison -が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

-
-
Detune, Random Detune
-
-

Detune -はユニゾンに使われているボイスのピッチをずらす量です。

-

Random Detune -のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

-
random = RandomDetune ? rand() : 1
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

Compressor を有効にしていても音量の変化が激しいので、 + CollidingCombSynth + の後に必ずリミッタを挿入することをお勧めします。

+

+

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

+

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

+

+

+

+
+
Gain, Boost
+
+

出力音量です。 Gain の値と Boost + の値は掛け合わされます。

+
masterGain = Gain * Boost
+
+
Compressor
+
+

ボイスごとに用意されたコンプレッサを有効・無効にします。

+
+
Time
+
+

コンプレッサのアタック・リリース時間です。

+

Time + の音を大きくするほうが自然な聞こえ方に近くなりますが、音量のピークが抑えきれないときがあります。このときは + Threshold の値を下げてみてください。

+
+
Threshold
+
+

コンプレッサが動作を始める音量です。通常は 1.0 + 以下に設定することをお勧めします。

+
+
+

+
+
Octave, Semi, Milli
+
+

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

+
    +
  • Octave: オクターブ
  • +
  • Semi: 半音
  • +
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • +
+
+
ET, A4 [Hz]
+
+

音律を変更します。

+

ET は Equal Temperament (平均律) の略です。 + ET が 12 のときは 12 平均律となります。 ET + を 12 + よりも小さくすると無音になる範囲が増えるので注意してください。

+

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

+
+
+

+
+
nUnison
+
+

ユニゾンに使うボイスの数です。

+

Misc.Poly を増やすことで + nUnison + が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

+
+
Detune, Random Detune
+
+

Detune + はユニゾンに使われているボイスのピッチをずらす量です。

+

Random Detune + のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
Spread
-
-

ユニゾンの左右の広がりの量です。

-
-
Gain
-
-

ユニゾンに使われているボイスの音量をランダムに変更する量です。

-
-
-

Random

-

4 つの乱数生成器の設定です。

-
    -
  • Noise: エキサイタ (exciter) -のガウシアンノイズを生成する乱数です。
  • -
  • Comb: エキサイタの Comb Time -をランダマイズする乱数です。
  • -
  • Str.Freq: String セクションの Frequency -をランダマイズする乱数です。
  • -
  • Unison: Unison セクションの Detune と -Gain パラメータで使われる乱数です。
  • -
-
-
Amount
-
-

ランダマイズの度合いです。 0 -のときはランダマイズが無効になります。

-
-
Seed
-
-

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

-
-
Retrigger
-
-

チェックを入れるとノートオンのたびにシード値を設定しなおして、同じ乱数列を使用します。

-
-
-

Exciter

-

物理モデルを励起 (excite) -する信号の設定です。例えばギターのピッキング、ピアノの弦とハンマーの衝突、太鼓の打面とばちの衝突などが励起にあたります。

-

CollidingCombSynth -のエキサイタは鋸歯波・ノイズオシレータの出力を、直列につないだ 8 -個のコムフィルタに通しています。

-
-
LP Cutoff
-
-

オシレータ出力にかけるローパスフィルタのカットオフ周波数です。表示される値の単位は -Hz です。

-
-
Gain
-
-

オシレータの音量です。

-
-
A, D
-
-

A はオシレータのアタック時間 (attack) 、 D -はオシレータのディケイ時間 (decay) です。

-

A を右に回すことでアタックが緩やかな音が作れます。

-
-
Saw/Noise
-
-

鋸歯波 (saw) -オシレータとガウシアンノイズのミックスの比率です。左いっぱいに回すと鋸歯波のみ、右いっぱいに回すとノイズのみが出力されます。

-
-
Comb Time
-
-

オシレータから出力された信号が通るコムフィルタの時間です。表示される値の単位は秒です。

-
-
-

String

-

Karplus-Strong アルゴリズムによる弦の設定です。

-
-
LP Cutoff
-
-

各弦のフィードバックに用意されたローパスフィルタのカットオフ周波数です。表示される値の単位は -Hz です。

-
-
HP Cutoff
-
-

各弦の出力にかけるハイパスフィルタのカットオフ周波数です。表示される値の単位は -Hz です。

-
-
Distance
-
-

隣り合う弦の間の距離です。 1 つの弦の出力の瞬時値が -Distance を超えると、超えた音量が隣の弦に伝わります。

-
-
Propagation
-
-

弦が衝突したときに失う力を調整します。値が小さいほど衝突後の跳ね返りが弱くなります。

-
-
Connection
-
-

弦のつなげ方です。

-
    -
  • Parallel: 弦を並列につなぎます。励起信号は 0 -番目の弦から順に、衝突後の跳ね返りを加えつつ順に入力されます。
  • -
  • Serial: 弦を直列につなぎます。励起信号は 0 -番目の弦にだけに入力されます。あとは N 番目の弦の出力が N + 1 -番目の弦へと衝突を繰り返しながら伝わっていきます。 Parallel -に比べると音量の変化がより激しくなるので、 Compressor -をオフにするときは注意してください。
  • -
-
-
A, D, S, R
-
-

LP Cutoff -を変調するエンベロープのパラメータです。実質的に音量エンベロープと似たような働きをします。

-
    -
  • A (Attack) : 鍵盤を押した瞬間から -LP Cutoff の値に到達するまでのアタック時間。
  • -
  • D (Decay) : LP Cutoff の値から -(LP Cutoff) * S の値になるまでのディケイ時間。
  • -
  • S (Sustain) : -アタックとディケイが終わった後に鍵盤を押し続けているときのサステインの大きさ。
  • -
  • R (Release) : -鍵盤から指を離したあとにカットオフ周波数が 0 -になるまでのリリース時間。
  • -
-
-
Frequency
-
-

弦の基本周波数です。弦の最終的な周波数は音程と Frequency -を掛け合わせた値になります。

-
noteFrequency = A4Hz * pow(2, Octave + (Semi - 69) / ET + Milli / (ET * 1000))
+  
+
Spread
+
+

ユニゾンの左右の広がりの量です。

+
+
Gain
+
+

ユニゾンに使われているボイスの音量をランダムに変更する量です。

+
+
+

+

4 つの乱数生成器の設定です。

+
    +
  • Noise: エキサイタ (exciter) + のガウシアンノイズを生成する乱数です。
  • +
  • Comb: エキサイタの Comb Time + をランダマイズする乱数です。
  • +
  • Str.Freq: String セクションの Frequency + をランダマイズする乱数です。
  • +
  • Unison: Unison セクションの Detune と + Gain パラメータで使われる乱数です。
  • +
+
+
Amount
+
+

ランダマイズの度合いです。 0 + のときはランダマイズが無効になります。

+
+
Seed
+
+

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

+
+
Retrigger
+
+

チェックを入れるとノートオンのたびにシード値を設定しなおして、同じ乱数列を使用します。

+
+
+

+

物理モデルを励起 (excite) + する信号の設定です。例えばギターのピッキング、ピアノの弦とハンマーの衝突、太鼓の打面とばちの衝突などが励起にあたります。

+

CollidingCombSynth + のエキサイタは鋸歯波・ノイズオシレータの出力を、直列につないだ 8 + 個のコムフィルタに通しています。

+
+
LP Cutoff
+
+

オシレータ出力にかけるローパスフィルタのカットオフ周波数です。表示される値の単位は + Hz です。

+
+
Gain
+
+

オシレータの音量です。

+
+
A, D
+
+

A はオシレータのアタック時間 (attack) 、 + D はオシレータのディケイ時間 (decay) です。

+

A を右に回すことでアタックが緩やかな音が作れます。

+
+
Saw/Noise
+
+

鋸歯波 (saw) + オシレータとガウシアンノイズのミックスの比率です。左いっぱいに回すと鋸歯波のみ、右いっぱいに回すとノイズのみが出力されます。

+
+
Comb Time
+
+

オシレータから出力された信号が通るコムフィルタの時間です。表示される値の単位は秒です。

+
+
+

+

Karplus-Strong アルゴリズムによる弦の設定です。

+
+
LP Cutoff
+
+

各弦のフィードバックに用意されたローパスフィルタのカットオフ周波数です。表示される値の単位は + Hz です。

+
+
HP Cutoff
+
+

各弦の出力にかけるハイパスフィルタのカットオフ周波数です。表示される値の単位は + Hz です。

+
+
Distance
+
+

隣り合う弦の間の距離です。 1 つの弦の出力の瞬時値が + Distance を超えると、超えた音量が隣の弦に伝わります。

+
+
Propagation
+
+

弦が衝突したときに失う力を調整します。値が小さいほど衝突後の跳ね返りが弱くなります。

+
+
Connection
+
+

弦のつなげ方です。

+
    +
  • Parallel: 弦を並列につなぎます。励起信号は 0 + 番目の弦から順に、衝突後の跳ね返りを加えつつ順に入力されます。
  • +
  • Serial: 弦を直列につなぎます。励起信号は 0 + 番目の弦にだけに入力されます。あとは N 番目の弦の出力が N + 1 + 番目の弦へと衝突を繰り返しながら伝わっていきます。 + Parallel に比べると音量の変化がより激しくなるので、 + Compressor をオフにするときは注意してください。
  • +
+
+
A, D, S, R
+
+

LP Cutoff + を変調するエンベロープのパラメータです。実質的に音量エンベロープと似たような働きをします。

+
    +
  • A (Attack) : 鍵盤を押した瞬間から + LP Cutoff の値に到達するまでのアタック時間。
  • +
  • D (Decay) : LP Cutoff の値から + (LP Cutoff) * S の値になるまでのディケイ時間。
  • +
  • S (Sustain) : + アタックとディケイが終わった後に鍵盤を押し続けているときのサステインの大きさ。
  • +
  • R (Release) : + 鍵盤から指を離したあとにカットオフ周波数が 0 + になるまでのリリース時間。
  • +
+
+
Frequency
+
+

弦の基本周波数です。弦の最終的な周波数は音程と + Frequency を掛け合わせた値になります。

+
noteFrequency = A4Hz * pow(2, Octave + (Semi - 69) / ET + Milli / (ET * 1000))
 stringFrequency = Frequency * noteFrequency
-
-
-

チェンジログ

-
    -
  • 0.1.16 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.15 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.14 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.13 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.12 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.11 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.10 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.9 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.8 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.7 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.6 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.5 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.4 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.3 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.2 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.1 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+
+
+

+
    +
  • 0.1.16 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.15 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.14 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.13 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.12 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.11 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.10 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.9 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.8 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.7 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.6 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.5 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.4 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.3 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.2 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.1 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/CombDistortion/CombDistortion_en.html b/docs/manual/CombDistortion/CombDistortion_en.html index ceb4c4d8..ad384da8 100644 --- a/docs/manual/CombDistortion/CombDistortion_en.html +++ b/docs/manual/CombDistortion/CombDistortion_en.html @@ -2,539 +2,574 @@ - - - - -CombDistortion_en - - - - + + + + + CombDistortion_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CombDistortion

-

-

CombDistortion is a distortion using self-modulating comb filter. Raw -output sounds harsh, and it is better to use with external cabinet -impulse response. Note event can be used to control delay time of comb -filter.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -554,280 +589,297 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Note Event Input

-

CombDistortion can receive note events to control the delay time of -feedback. This is an convenience feature to match the texture of -distortion to the input signal, by supplying the same note events used -to generate input signal.

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in CombDistortion.

-
    -
  • [s]: Second.
  • -
  • [st.]: Semitone.
  • -
  • [Hz]: Herz.
  • -
-

Comb

-
-
Output
-
-

Output gain.

-
-
Mix
-
-

Mixing ratio of input signal and distorted signal.

-

When set to leftmost, input signal will be bypassed. When the value -approaches to rightmost, feedback becomes stronger.

-
-
Feedback
-
-

Feedback gain.

-

Beware that Feedback doesn’t change output when -Mix is set to leftmost.

-
-
Delay
-
-

Delay time of comb filter.

-
-
AM Mix, AM Gain, AM Invert
-
-

The amount of amplitude modulation applied to feedback signal.

-
    -
  • AM Mix: Mixing ratio of the signal before and after the -modulation.
  • -
  • AM Gain: Gain of modulation signal.
  • -
  • AM Invert: When checked, invert the phase of modulation -signal.
  • -
-

To avoid blow up, tanh is used to limit the amplitude of -modulation signal. This means that the character of sound may differ -depending on the amplitude of input signal. However, when -AM Gain is high, the difference may be negligible.

-
-
FM Mix, FM Amount, FM Clip
-
-

The amount of delay time modulation applied to feedback signal.

-
    -
  • FM Mix: Mixing ratio of the signal before and after the -modulation.
  • -
  • FM Gain: Gain of modulation signal.
  • -
  • FM Clip: Ceiling value of hard clipping applied to -modulation signal.
  • -
-

To avoid setting negative delay time, abs is applied to -modulation signal.

-
-
Highpass [Hz], Lowpass [Hz]
-
-

Cutoff frequency of highpass or lowpass filter on feedback path.

-
-
-

Note

-
-
Origin [st.]
-
-

Origin of MIDI note number.

-

Note event with this note number doesn’t change the sound.

-
-
Scaling
-
-

Scaling of note event modulation to delay time.

-

When set to 1.0, the modulation amount follows the pitch -of the note. When set to -1.0 pitch will be inverted.

-
-
Release [s]
-
-

Release time to resume to the original Delay time after -note-off. The value is rough indication and not exact.

-
-
-

Misc.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise. On the other hand, if the value of Smoothing is -set to 1.0 for example, the change of parameter is only -slowly followed.

-
-
Oversampling
-
-

Oversampling options.

-
    -
  • 1x: Disables oversampling.
  • -
  • 16x Halfway: Enables 16-fold oversampling, but with -incomplete up-sampling which adds some distortion.
  • -
  • 16x: Enables 16-fold oversampling.
  • -
-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.0.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

CombDistortion 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

CombDistortion can receive note events to control the delay time of + feedback. This is an convenience feature to match the texture of + distortion to the input signal, by supplying the same note events used + to generate input signal.

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in CombDistortion.

+
    +
  • [s]: Second.
  • +
  • [st.]: Semitone.
  • +
  • [Hz]: Herz.
  • +
+

+
+
Output
+
+

Output gain.

+
+
Mix
+
+

Mixing ratio of input signal and distorted signal.

+

When set to leftmost, input signal will be bypassed. When the value + approaches to rightmost, feedback becomes stronger.

+
+
Feedback
+
+

Feedback gain.

+

Beware that Feedback doesn’t change output when + Mix is set to leftmost.

+
+
Delay
+
+

Delay time of comb filter.

+
+
AM Mix, AM Gain, AM Invert
+
+

The amount of amplitude modulation applied to feedback signal.

+
    +
  • AM Mix: Mixing ratio of the signal before and after + the modulation.
  • +
  • AM Gain: Gain of modulation signal.
  • +
  • AM Invert: When checked, invert the phase of + modulation signal.
  • +
+

To avoid blow up, tanh is used to limit the amplitude + of modulation signal. This means that the character of sound may + differ depending on the amplitude of input signal. However, when + AM Gain is high, the difference may be negligible.

+
+
FM Mix, FM Amount, FM Clip
+
+

The amount of delay time modulation applied to feedback signal.

+
    +
  • FM Mix: Mixing ratio of the signal before and after + the modulation.
  • +
  • FM Gain: Gain of modulation signal.
  • +
  • FM Clip: Ceiling value of hard clipping applied to + modulation signal.
  • +
+

To avoid setting negative delay time, abs is applied + to modulation signal.

+
+
Highpass [Hz], Lowpass [Hz]
+
+

Cutoff frequency of highpass or lowpass filter on feedback + path.

+
+
+

+
+
Origin [st.]
+
+

Origin of MIDI note number.

+

Note event with this note number doesn’t change the sound.

+
+
Scaling
+
+

Scaling of note event modulation to delay time.

+

When set to 1.0, the modulation amount follows the + pitch of the note. When set to -1.0 pitch will be + inverted.

+
+
Release [s]
+
+

Release time to resume to the original Delay time + after note-off. The value is rough indication and not exact.

+
+
+

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise. On the other hand, if the value of + Smoothing is set to 1.0 for example, the + change of parameter is only slowly followed.

+
+
Oversampling
+
+

Oversampling options.

+
    +
  • 1x: Disables oversampling.
  • +
  • 16x Halfway: Enables 16-fold oversampling, but with + incomplete up-sampling which adds some distortion.
  • +
  • 16x: Enables 16-fold oversampling.
  • +
+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.0.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

CombDistortion is licensed under GPLv3. Complete licenses are + linked below.

+ +

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

+

+

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

+ + + diff --git a/docs/manual/CombDistortion/CombDistortion_ja.html b/docs/manual/CombDistortion/CombDistortion_ja.html index f1691623..b4c279d5 100644 --- a/docs/manual/CombDistortion/CombDistortion_ja.html +++ b/docs/manual/CombDistortion/CombDistortion_ja.html @@ -2,542 +2,579 @@ - - - - -CombDistortion_ja - - - - + + + + + CombDistortion_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CombDistortion

-

-

CombDistortionコム ディストーション -は自己変調するコムフィルタを使ったディストーションです。そのままの出力はざらざらと耳障りなので、キャビネットのインパルス応答と併せて使うことを想定しています。ノートイベントでコムフィルタのディレイ時間を制御できます。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -557,277 +594,297 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

ブロック線図

-

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

-

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

-

-

ノートイベントの入力

-

CombDistortion -はノートイベントによってフィードバックのディレイ時間を制御することができます。入力信号と同じノートイベントを使えば、どことなく音程にあった歪みがつけられます。

-

パラメータ

-

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

-
    -
  • [s]: 秒 (second) 。
  • -
  • [st.]: 半音 (semitone) 。
  • -
  • [Hz]: 周波数 (Herz) 。
  • -
-

Comb

-
-
Output
-
-

出力ゲインです。

-
-
Mix
-
-

入力信号と CombDistortion を通過した信号を混ぜる比率です。

-

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほどフィードバックが強くかかるようになります。

-
-
Feedback
-
-

フィードバックのゲインです。

-

Mix が左いっぱいのときは Feedback -によって音が変わらなくなるので注意してください。

-
-
Delay
-
-

フィードバック信号のディレイ時間です。

-
-
AM Mix, AM Gain, AM Invert
-
-

入力信号によってフィードバック信号に振幅変調をかける量です。

-
    -
  • AM Mix: 変調前の信号と変調後の信号を混ぜる比率。
  • -
  • AM Gain: 変調波のゲイン。
  • -
  • AM Invert: チェックを入れると変調波の位相を反転。
  • -
-

発散を防ぐため、 AM に使われる信号は tanh -によって値の範囲が制限されます。つまり、入力信号の振幅に応じて変調のかかり方が非線形に変化します。ただし -AM Gain -を大きくすると振幅による違いはほとんど無くなります。

-
-
FM Mix, FM Amount, FM Clip
-
-

入力信号によってフィードバック経路のディレイ時間を変調する量です。

-
    -
  • FM Mix: 変調前の信号と変調後の信号を混ぜる比率。
  • -
  • FM Gain: 変調波のゲイン。
  • -
  • FM Clip: -変調波にかけるハードクリッピングの上限の値。
  • -
-

負のディレイ時間を設定することを避けるため、 FM に使われる信号は -abs で全波整流されます。

-
-
Highpass [Hz], Lowpass [Hz]
-
-

フィードバック経路のハイパス (Highpass) あるいはローパス -(Lowpass) フィルタのカットオフ周波数です。

-
-
-

Note

-
-
Origin [st.]
-
-

変調量が 1 倍となる MIDI ノート番号です。

-

例えば Note Origin が 60 -であれば、入力されたノート番号が 60 のときに音が変わらなくなります。

-
-
Scaling
-
-

ノートイベントによるディレイ時間の変調量です。

-

1.0 のとき、ノートのピッチに完全に追従します。 -1.0 -にするとピッチの高低が逆転します。

-
-
Release [s]
-
-

ノートイベントによって変調されたディレイ時間が、ノートオフの時点から -Delay の値に戻るまでにかかる大まかな時間です。

-
-
-

Misc.

-
-
Smoothing [s]
-
-

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

-

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

-
-
Oversampling
-
-

オーバーサンプリングの設定です。

-
    -
  • 1x: オーバーサンプリングを行いません。
  • -
  • 16x Halfway: 不十分なアップサンプリングによる癖のついた -16 倍のオーバーサンプリングを行います。
  • -
  • 16x: 16 倍のオーバーサンプリングを行います。
  • -
-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.0.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

CombDistortion

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

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

+

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

+

+

+

CombDistortion + はノートイベントによってフィードバックのディレイ時間を制御することができます。入力信号と同じノートイベントを使えば、どことなく音程にあった歪みがつけられます。

+

+

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

+
    +
  • [s]: 秒 (second) 。
  • +
  • [st.]: 半音 (semitone) 。
  • +
  • [Hz]: 周波数 (Herz) 。
  • +
+

+
+
Output
+
+

出力ゲインです。

+
+
Mix
+
+

入力信号と CombDistortion を通過した信号を混ぜる比率です。

+

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほどフィードバックが強くかかるようになります。

+
+
Feedback
+
+

フィードバックのゲインです。

+

Mix が左いっぱいのときは Feedback + によって音が変わらなくなるので注意してください。

+
+
Delay
+
+

フィードバック信号のディレイ時間です。

+
+
AM Mix, AM Gain, AM Invert
+
+

入力信号によってフィードバック信号に振幅変調をかける量です。

+
    +
  • AM Mix: 変調前の信号と変調後の信号を混ぜる比率。
  • +
  • AM Gain: 変調波のゲイン。
  • +
  • AM Invert: + チェックを入れると変調波の位相を反転。
  • +
+

発散を防ぐため、 AM に使われる信号は tanh + によって値の範囲が制限されます。つまり、入力信号の振幅に応じて変調のかかり方が非線形に変化します。ただし + AM Gain + を大きくすると振幅による違いはほとんど無くなります。

+
+
FM Mix, FM Amount, FM Clip
+
+

入力信号によってフィードバック経路のディレイ時間を変調する量です。

+
    +
  • FM Mix: 変調前の信号と変調後の信号を混ぜる比率。
  • +
  • FM Gain: 変調波のゲイン。
  • +
  • FM Clip: + 変調波にかけるハードクリッピングの上限の値。
  • +
+

負のディレイ時間を設定することを避けるため、 FM に使われる信号は + abs で全波整流されます。

+
+
Highpass [Hz], Lowpass [Hz]
+
+

フィードバック経路のハイパス (Highpass) + あるいはローパス (Lowpass) + フィルタのカットオフ周波数です。

+
+
+

+
+
Origin [st.]
+
+

変調量が 1 倍となる MIDI ノート番号です。

+

例えば Note Origin が 60 + であれば、入力されたノート番号が 60 + のときに音が変わらなくなります。

+
+
Scaling
+
+

ノートイベントによるディレイ時間の変調量です。

+

1.0 のとき、ノートのピッチに完全に追従します。 -1.0 + にするとピッチの高低が逆転します。

+
+
Release [s]
+
+

ノートイベントによって変調されたディレイ時間が、ノートオフの時点から + Delay の値に戻るまでにかかる大まかな時間です。

+
+
+

+
+
Smoothing [s]
+
+

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

+

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

+
+
Oversampling
+
+

オーバーサンプリングの設定です。

+
    +
  • 1x: オーバーサンプリングを行いません。
  • +
  • 16x Halfway: + 不十分なアップサンプリングによる癖のついた 16 + 倍のオーバーサンプリングを行います。
  • +
  • 16x: 16 倍のオーバーサンプリングを行います。
  • +
+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.0.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

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

+ +

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

+

+

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

+ + + diff --git a/docs/manual/CubicPadSynth/CubicPadSynth_en.html b/docs/manual/CubicPadSynth/CubicPadSynth_en.html index 6f9984cd..b3f5a9e4 100644 --- a/docs/manual/CubicPadSynth/CubicPadSynth_en.html +++ b/docs/manual/CubicPadSynth/CubicPadSynth_en.html @@ -2,564 +2,602 @@ - - - - -CubicPadSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CubicPadSynth

-

-

CubicPadSynth is a wavetable synthesizer which uses PADsynth -algorithm to generate oscillator tables. Cubic interpolation is used to -get smooth sound even at inaudible low frequency range. LFO waveform can -be directly drawn.

- -

CubicPadSynth requires AVX or later SIMD instructions on x86_64 -environment.

-

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
-xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -579,365 +617,378 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Pressing Refresh LFO or Refresh Table -button stop sound. They also stop all midi notes.

-

Wavetable Specification

-

Length of a wavetable is 2^18 samples.

-

136 band-limited wavetables are generated for each MIDI note. Pitch -bending is supported as high as 21100 Hz. 21100 Hz is derived from MIDI -note number 136. Frequency of MIDI note number 137 is higher then 22050 -Hz. That’s why 136 is selected.

-

When fundamental frequency of a note is lower than 8.18 Hz, some -overtones on high frequency may lost. However, cubic interpolation may -cause noise which makes those frequency not to be 0.

-
noteToFreq(note) := 440 * Math.pow(2, (note - 69) / 12)
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Pressing Refresh LFO or Refresh Table + button stop sound. They also stop all midi notes.

+

+

Length of a wavetable is 2^18 samples.

+

136 band-limited wavetables are generated for each MIDI note. Pitch + bending is supported as high as 21100 Hz. 21100 Hz is derived from + MIDI note number 136. Frequency of MIDI note number 137 is higher then + 22050 Hz. That’s why 136 is selected.

+

When fundamental frequency of a note is lower than 8.18 Hz, some + overtones on high frequency may lost. However, cubic interpolation may + cause noise which makes those frequency not to be 0.

+
noteToFreq(note) := 440 * Math.pow(2, (note - 69) / 12)
 noteToFreq(0) = 8.175798915643707
 noteToFreq(136) = 21096.16364242367
 noteToFreq(137) = 22350.606811712252
-

Wavetable is represented as 2D array with size of -136 * 2^18. Bicubic interpolation is used to get the value -from the table. Coordinate on time/band-limit axis is determined by -phase and frequency of oscillator.

-

The size of wavetable is large for a synthesizer. Xrun may occur if memory is -slow. It may also consume more resources for higher notes because access -pattern becomes close to random.

- -

PADsynth Algorithm Overview

-

CubicPadSynth uses PADsynth algorithm, which is originated from ZynAddSubFX. Yoshimi is also using -PADsynth algorithm.

-

Passing phase randomized spectrum to IDFT (inverse discrete fourier -transform) generates a cyclic waveform which is smooth when connecting -an end to another end. PADsynth is utilizing this property.

-

“Profile” function is used to synthesize spectrum. CubicPadSynth uses -normal distribution curve for profile, which is same as original -PADsynth algorithm. Center frequency of profile can be set arbitrary. In -default, CubicPadSynth uses fundamental frequency set by -Base Freq. and its overtones.

-

- -

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Main Tab

-

-

Tuning

-
-
Octave, Semi, Milli
-
-

Changes master pitch.

-

Milli is 1/1000 of semitone or 1/10 cent.

-
-
ET, A4 [Hz]
-
-

Changes tuning.

-

ET stands for equal temperament. Note that when -ET is less than 12, some notes becomes silent due to -frequency becomes too high or too low.

-

A4 [Hz] is frequency of note A4.

-
-
-

Gain

-
-
A, D, S, R
-
-

Gain envelope parameters.

-
    -
  • 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.
  • -
-
-
Gain
-
-

Master output gain.

-
-
-

Lowpass

-

This is a psuedo low-pass filter. It shifts to wavetable which -contains less overtone to get low-passed output.

-

Equation to get cutoff frequency is following.

-
cut = Cutoff * 128
+  

Wavetable is represented as 2D array with size of + 136 * 2^18. Bicubic interpolation is used to get the + value from the table. Coordinate on time/band-limit axis is determined + by phase and frequency of oscillator.

+

The size of wavetable is large for a synthesizer. Xrun may occur if memory is + slow. It may also consume more resources for higher notes because + access pattern becomes close to random.

+ +

+

CubicPadSynth uses PADsynth algorithm, which is originated from ZynAddSubFX. Yoshimi is also using + PADsynth algorithm.

+

Passing phase randomized spectrum to IDFT (inverse discrete fourier + transform) generates a cyclic waveform which is smooth when connecting + an end to another end. PADsynth is utilizing this property.

+

“Profile” function is used to synthesize spectrum. CubicPadSynth + uses normal distribution curve for profile, which is same as original + PADsynth algorithm. Center frequency of profile can be set arbitrary. + In default, CubicPadSynth uses fundamental frequency set by + Base Freq. and its overtones.

+

+ +

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

+

+
+
Octave, Semi, Milli
+
+

Changes master pitch.

+

Milli is 1/1000 of semitone or 1/10 cent.

+
+
ET, A4 [Hz]
+
+

Changes tuning.

+

ET stands for equal temperament. Note that when + ET is less than 12, some notes becomes silent due to + frequency becomes too high or too low.

+

A4 [Hz] is frequency of note A4.

+
+
+

+
+
A, D, S, R
+
+

Gain envelope parameters.

+
    +
  • 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.
  • +
+
+
Gain
+
+

Master output gain.

+
+
+

+

This is a psuedo low-pass filter. It shifts to wavetable which + contains less overtone to get low-passed output.

+

Equation to get cutoff frequency is following.

+
cut = Cutoff * 128
 keyFollowRange = Cutoff * (nTable - pitch)
 lowpassPitch = (cut + KeyFollow * (keyFollowRange - cut)) - lowpassEnvelope * Amount;
 if (lowpassPitch < 0) lowpassPitch = 0
@@ -947,551 +998,575 @@ 

Lowpass

lpFreq = noteToFreq(midiNote + lowpassPitch) ntFreq = noteToFreq(midiNote) cutoffFrequency = (1 + (range - lpFreq) / range) * ntFreq
-

128 used to calculate lpCut is an arbitrary value which -came from MIDI note number range + 1. nTable is set to -136.

-
-
Cutoff
-
-

Changes filter cutoff frequency.

-
-
KeyFollow
-
-

When set to right-most, cutoff frequency is set to make the number of -overtone to be almost same regardless of pitch of note. When set to -left-most, it only use the value of Cutoff.

-
-
A, D, S, R, Amount
-
-

Filter envelope parameters. Amount changes the amount of -modulation to cutoff.

-
-
-

Pitch

-
-
A, D, S, R, Amount
-
-

Pitch envelope parameters.

-
-
Negative
-
-

Changes the sign of pitch envelope output.

-
-
-

Unison

-
-
nUnison
-
-

Number of voices used by unison.

-

To avoid interruption of release, increase the number of -nVoice in Misc. section. Note that increasing -nVoice consumes more resources.

-
-
Detune, Random Detune
-
-

Detune is the difference of pitch between voices used in -a unison.

-

When Random Detune is checked, amount of detune changes -for each note-on.

-
random = RandomDetune ? rand() : 1
+  

128 used to calculate lpCut is an arbitrary value + which came from MIDI note number range + 1. nTable is set + to 136.

+
+
Cutoff
+
+

Changes filter cutoff frequency.

+
+
KeyFollow
+
+

When set to right-most, cutoff frequency is set to make the number + of overtone to be almost same regardless of pitch of note. When set to + left-most, it only use the value of Cutoff.

+
+
A, D, S, R, Amount
+
+

Filter envelope parameters. Amount changes the amount + of modulation to cutoff.

+
+
+

+
+
A, D, S, R, Amount
+
+

Pitch envelope parameters.

+
+
Negative
+
+

Changes the sign of pitch envelope output.

+
+
+

+
+
nUnison
+
+

Number of voices used by unison.

+

To avoid interruption of release, increase the number of + nVoice in Misc. section. Note that increasing + nVoice consumes more resources.

+
+
Detune, Random Detune
+
+

Detune is the difference of pitch between voices used + in a unison.

+

When Random Detune is checked, amount of detune + changes for each note-on.

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
GainRnd
-
-

Amount of randomization of gain for voices used in a unison.

-
-
Phase
-
-

Amount of randomization of phase for voices used in a unison.

-

This parameter makes no effect when Reset in Phase -section is checked.

-
-
Spread, Spread Type
-
-

Spread is an amount of stereo spread for a unison.

-

Spread Type provides options to assign panpot values -according to voice pitch.

-
    -
  • Alternate L-R: Alternates Ascend L -> R -and Ascend R -> L.
  • -
  • Alternate M-S: Alternates HighOnMid and -HighOnSide.
  • -
  • Ascend L -> R: Ascend pitch from left to right.
  • -
  • Ascend R -> L: Ascend pitch from right to left.
  • -
  • HighOnMid: Ascend pitch from side to mid.
  • -
  • HighOnSide: Ascend pitch from mid to side.
  • -
  • Random: Randomize pan. May be biased.
  • -
  • RotateL: Rotate to left for each note-on.
  • -
  • RotateR: Rotate to right for each note-on.
  • -
  • Shuffle: Randomly assign pan which is evenly -ordered.
  • -
-
-
-

LFO

-
-
Refresh LFO
-
-

Refresh LFO wavetable based on current value of -LFO Wave.

-

Note that refreshing wavetable stops sound. It also interrupts MIDI -notes.

-
-
Interpolation
-
-

Type of LFO wavetable interpolation.

-

-
-
Tempo, Multiply
-
-

Sets LFO frequency according to current tempo. Lower numeral -represents the length of note. Upper numeral is the number of notes.

-

Value of Multiply is multiplied to the frequency -calculated from Tempo.

-
// (60 seconds) * (4 beat) = 240
+  
+
GainRnd
+
+

Amount of randomization of gain for voices used in a unison.

+
+
Phase
+
+

Amount of randomization of phase for voices used in a unison.

+

This parameter makes no effect when Reset in Phase + section is checked.

+
+
Spread, Spread Type
+
+

Spread is an amount of stereo spread for a unison.

+

Spread Type provides options to assign panpot values + according to voice pitch.

+
    +
  • Alternate L-R: Alternates + Ascend L -> R and Ascend R -> L.
  • +
  • Alternate M-S: Alternates HighOnMid and + HighOnSide.
  • +
  • Ascend L -> R: Ascend pitch from left to + right.
  • +
  • Ascend R -> L: Ascend pitch from right to + left.
  • +
  • HighOnMid: Ascend pitch from side to mid.
  • +
  • HighOnSide: Ascend pitch from mid to side.
  • +
  • Random: Randomize pan. May be biased.
  • +
  • RotateL: Rotate to left for each note-on.
  • +
  • RotateR: Rotate to right for each note-on.
  • +
  • Shuffle: Randomly assign pan which is evenly + ordered.
  • +
+
+
+

+
+
Refresh LFO
+
+

Refresh LFO wavetable based on current value of + LFO Wave.

+

Note that refreshing wavetable stops sound. It also interrupts MIDI + notes.

+
+
Interpolation
+
+

Type of LFO wavetable interpolation.

+

+
+
Tempo, Multiply
+
+

Sets LFO frequency according to current tempo. Lower numeral + represents the length of note. Upper numeral is the number of + notes.

+

Value of Multiply is multiplied to the frequency + calculated from Tempo.

+
// (60 seconds) * (4 beat) = 240
 lfoFrequency = Multiply * (BPM / 240) / (TempoUpperNumeral / TempoLowerNumeral)
-
-
Retrigger
-
-

When checked, resets LFO phase for each note-on.

-
-
Amount
-
-

LFO frequency modulation amount.

-
-
Lowpass
-
-

Changes cutoff freequency of low-pass filter for LFO.

-
-
LFO Wave
-
-

LFO waveform.

-
-
-

Phase

-
-
Phase
-
-

Initial phase of oscillator.

-
-
Reset
-
-

When checked, resets oscillator phase to the value set by -Phase.

-
-
Random
-
-

When checked, randomize phase for each note-on. In this case, value -of Phase becomes range of randomization.

-
-
-

Misc.

-
-
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 Tuning section.
  • -
  • Gain -
      -
    • S
    • -
    • Gain
    • -
  • -
  • Lowpass -
      -
    • Cutoff
    • -
    • KeyFollow
    • -
    • S
    • -
    • Amount
    • -
  • -
  • Pitch -
      -
    • S
    • -
    • Amount
    • -
    • Negative
    • -
  • -
  • LFO -
      -
    • Tempo
    • -
    • Multiply
    • -
    • Amount
    • -
    • Lowpass
    • -
  • -
  • Phase -
      -
    • Phase
    • -
  • -
-
-
nVoice
-
-

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

-
-
Pool
-
-

When checked, most quiet note is released when the number of active -voice is close to maximum polyphony. This can be used to reduce pop -noise which occurs on note-on.

-
-
-

Wavetable Tab

-

-

Overtone Controls

-
-
Gain
-
-

Gain of profile.

-
-
Width
-
-

Width of profile.

-
-
Pitch
-
-

This value is multiplied to profile center frequency.

-
-
Phase
-
-

Range of randomization for the phase of profile.

-
-
-

Pitch

-
-
Base Freq.
-
-

Fundamental frequency of wavetable. Note that if this value is small, -master pitch becomes out of tune.

-
-
Multiply, Modulo
-
-

Changes profile center frequency.

-
profileCenterFrequency = mod(
+  
+
Retrigger
+
+

When checked, resets LFO phase for each note-on.

+
+
Amount
+
+

LFO frequency modulation amount.

+
+
Lowpass
+
+

Changes cutoff freequency of low-pass filter for LFO.

+
+
LFO Wave
+
+

LFO waveform.

+
+
+

+
+
Phase
+
+

Initial phase of oscillator.

+
+
Reset
+
+

When checked, resets oscillator phase to the value set by + Phase.

+
+
Random
+
+

When checked, randomize phase for each note-on. In this case, value + of Phase becomes range of randomization.

+
+
+

+
+
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 Tuning section.
  • +
  • Gain +
      +
    • S
    • +
    • Gain
    • +
  • +
  • Lowpass +
      +
    • Cutoff
    • +
    • KeyFollow
    • +
    • S
    • +
    • Amount
    • +
  • +
  • Pitch +
      +
    • S
    • +
    • Amount
    • +
    • Negative
    • +
  • +
  • LFO +
      +
    • Tempo
    • +
    • Multiply
    • +
    • Amount
    • +
    • Lowpass
    • +
  • +
  • Phase +
      +
    • Phase
    • +
  • +
+
+
nVoice
+
+

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

+
+
Pool
+
+

When checked, most quiet note is released when the number of active + voice is close to maximum polyphony. This can be used to reduce pop + noise which occurs on note-on.

+
+
+

+

+

+
+
Gain
+
+

Gain of profile.

+
+
Width
+
+

Width of profile.

+
+
Pitch
+
+

This value is multiplied to profile center frequency.

+
+
Phase
+
+

Range of randomization for the phase of profile.

+
+
+

+
+
Base Freq.
+
+

Fundamental frequency of wavetable. Note that if this value is + small, master pitch becomes out of tune.

+
+
Multiply, Modulo
+
+

Changes profile center frequency.

+
profileCenterFrequency = mod(
   BaseFreq * profileIndex * overtonePitch * Multiply,
   440 * pow(2, (Modulo - 69) / 12)
 )
-
-
Random
-
-

When checked, randomize profile center frequency. Ignores values of -Pitch in overtone control.

-
-
-

Spectrum

-
-
Expand
-
-

Scaling factor to shrink/expand the spectrum along to frequency -axis.

-

-
-
Shift
-
-

Shift spectrum along to frequency axis.

-

-
-
Comb
-
-

When this value is higher than 1, it changes the shape of profile -like a comb. The value specifies interval between peaks.

-

-
-
Shape
-
-

Changes profile shapes by using the value of Shape as an -exponent.

-
shapedProfile = powf(profile, shape);
-
-
Invert
-
-

Invert spectrum to make the maximum of absolute value to 0, and 0 to -the max-abs value. Signs are preserved. Phases aren’t considered.

-
maxRe = max(abs(spectrumRe))
+  
+
Random
+
+

When checked, randomize profile center frequency. Ignores values of + Pitch in overtone control.

+
+
+

+
+
Expand
+
+

Scaling factor to shrink/expand the spectrum along to frequency + axis.

+

+
+
Shift
+
+

Shift spectrum along to frequency axis.

+

+
+
Comb
+
+

When this value is higher than 1, it changes the shape of profile + like a comb. The value specifies interval between peaks.

+

+
+
Shape
+
+

Changes profile shapes by using the value of Shape as + an exponent.

+
shapedProfile = powf(profile, shape);
+
+
Invert
+
+

Invert spectrum to make the maximum of absolute value to 0, and 0 + to the max-abs value. Signs are preserved. Phases aren’t + considered.

+
maxRe = max(abs(spectrumRe))
 maxIm = max(abs(spectrumIm))
 invertedSpectrumRe = spectrumRe - sgn(spectrumRe) * maxRe
 invertedSpectrumIm = spectrumIm - sgn(spectrumIm) * maxIm
-
-
-

Phase

-
-
UniformPhase
-
-

When checked, phase of a profile becomes an uniform value.

-
-
-

Random

-
-
Seed
-
-

Random seed. This value change random number sequence.

-
-
-

Modifier

-
-
Gain^
-
-

Exponent for Gain in overtone control.

-
profileGain = pow(Gain, Gain^)
-
-
Width*
-
-

Multiplier for Width in overtone control.

-
profileWidth = Width * (Width*)
-
-
-

Refresh Table

-

Refresh PADsynth wavetable based on current configuration of -Wavetable tab.

-

Note that refreshing wavetable stops sound. It also interrupts MIDI -notes.

-

Change Log

-
    -
  • 0.1.26 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.25 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.24 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.23 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.22 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.21 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.20 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
    • Added mutex around FFTW3. This may prevent crash by the call of -thread unsafe functions in FFTW3.
    • -
  • -
  • 0.1.19 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
    • Added code path for 64-bit ARM CPU (aarch64).
    • -
    • Removed x86_64 SIMD run-time dispatching. Supported instruction set -is now fixed to AVX.
    • -
  • -
  • 0.1.18 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.17 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed crash at plugin scan on some Windows environment. FFTW3 static -library for Windows is changed to build without SIMD flags.
    • -
  • -
  • 0.1.15 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.14 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.13 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.12 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.11 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.10 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.9 -
      -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.8 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.7 -
      -
    • Added scroll bar to dense BarBox.
    • -
    • Added undo/redo to BarBox.
    • -
  • -
  • 0.1.6 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.5 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed a bug that refreshing wavetable before parameters are loaded -at launch.
    • -
    • Fixed off by one error in LFO wavetable with cubic -interpolation.
    • -
  • -
  • 0.1.3 -
      -
    • Fixed a bug that some shortcuts are disabled for BarBox.
    • -
  • -
  • 0.1.2 -
      -
    • Changed Refresh Table and Refresh LFO from -VST message to parameter. This enables automation and midi mapping.
    • -
    • Changed BarBox shortcuts to be disabled when mouse cursor is on the -outside of BarBox.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

CubicPadSynth 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.

+
+
+

+
+
UniformPhase
+
+

When checked, phase of a profile becomes an uniform value.

+
+
+

+
+
Seed
+
+

Random seed. This value change random number sequence.

+
+
+

+
+
Gain^
+
+

Exponent for Gain in overtone control.

+
profileGain = pow(Gain, Gain^)
+
+
Width*
+
+

Multiplier for Width in overtone control.

+
profileWidth = Width * (Width*)
+
+
+

+

Refresh PADsynth wavetable based on current configuration of + Wavetable tab.

+

Note that refreshing wavetable stops sound. It also interrupts MIDI + notes.

+

+
    +
  • 0.1.26 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.25 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.24 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.23 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.22 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.21 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.20 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
    • Added mutex around FFTW3. This may prevent crash by the call of + thread unsafe functions in FFTW3.
    • +
  • +
  • 0.1.19 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
    • Added code path for 64-bit ARM CPU (aarch64).
    • +
    • Removed x86_64 SIMD run-time dispatching. Supported instruction + set is now fixed to AVX.
    • +
  • +
  • 0.1.18 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.17 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed crash at plugin scan on some Windows environment. FFTW3 + static library for Windows is changed to build without SIMD + flags.
    • +
  • +
  • 0.1.15 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.14 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.13 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.12 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.11 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.10 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.9 +
      +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.8 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.7 +
      +
    • Added scroll bar to dense BarBox.
    • +
    • Added undo/redo to BarBox.
    • +
  • +
  • 0.1.6 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.5 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed a bug that refreshing wavetable before parameters are loaded + at launch.
    • +
    • Fixed off by one error in LFO wavetable with cubic + interpolation.
    • +
  • +
  • 0.1.3 +
      +
    • Fixed a bug that some shortcuts are disabled for BarBox.
    • +
  • +
  • 0.1.2 +
      +
    • Changed Refresh Table and Refresh LFO + from VST message to parameter. This enables automation and midi + mapping.
    • +
    • Changed BarBox shortcuts to be disabled when mouse cursor is on + the outside of BarBox.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

CubicPadSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/CubicPadSynth/CubicPadSynth_ja.html b/docs/manual/CubicPadSynth/CubicPadSynth_ja.html index 9fb5fbb7..787a44c9 100644 --- a/docs/manual/CubicPadSynth/CubicPadSynth_ja.html +++ b/docs/manual/CubicPadSynth/CubicPadSynth_ja.html @@ -2,567 +2,604 @@ - - - - -CubicPadSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

CubicPadSynth

-

-

CubicPadSynthキュービック パッドシンセ は -PADsynth -アルゴリズムを使ってオシレータのウェーブテーブルを生成するシンセサイザです。キュービック補間を使っているので、可聴域以下の低い周波数でもわりと滑らかな音が出ます。波形を直接描画できる -LFO もついています

- -

x86_64 環境で CubicPadSynth を使うには AVX 以降の SIMD -命令セットをサポートする CPU が必要です。

-

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -582,372 +619,389 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

Refresh LFO あるいは Refresh Table -ボタンを押すと音が止まります。発音中のノートも全て停止します。

-

ウェーブテーブルの仕様

-

1 つのウェーブテーブルの長さは 2^18 サンプルです。

-

各 MIDI ノートと 20000Hz -までのピッチベンドができるように帯域制限された 136 -のウェーブテーブルが生成されます。約 21100 Hz -より音程が高くなると完全な無音になります。 21100 は MIDI ノート番号 136 -から求められた値です。 MIDI ノート番号 137 の周波数は 22050 Hz -よりも高いので、サンプリング周波数が 44100 Hz -のときにエイリアシングが起こります。したがって一つ小さい 136 -を使っています。

-

音程の基本周波数が 8.18 Hz (MIDI ノート番号 0) -より低くなると高域の周波数成分が失われた音になります。ただし、キュービック補間によって生じるノイズによって、周波数成分の値が完全に -0 にはならないことがあります。

-
noteToFreq(note) := 440 * pow(2, (note - 69) / 12)
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

Refresh LFO あるいは Refresh Table + ボタンを押すと音が止まります。発音中のノートも全て停止します。

+

+

1 つのウェーブテーブルの長さは 2^18 サンプルです。

+

各 MIDI ノートと 20000Hz + までのピッチベンドができるように帯域制限された 136 + のウェーブテーブルが生成されます。約 21100 Hz + より音程が高くなると完全な無音になります。 21100 は MIDI ノート番号 + 136 から求められた値です。 MIDI ノート番号 137 の周波数は 22050 Hz + よりも高いので、サンプリング周波数が 44100 Hz + のときにエイリアシングが起こります。したがって一つ小さい 136 + を使っています。

+

音程の基本周波数が 8.18 Hz (MIDI ノート番号 0) + より低くなると高域の周波数成分が失われた音になります。ただし、キュービック補間によって生じるノイズによって、周波数成分の値が完全に + 0 にはならないことがあります。

+
noteToFreq(note) := 440 * pow(2, (note - 69) / 12)
 noteToFreq(0) = 8.175798915643707
 noteToFreq(136) = 21096.16364242367
 noteToFreq(137) = 22350.606811712252
-

ウェーブテーブルは 136 * 2^18 の 2 -次元配列として表現されています。オシレータの位相と周波数から求められるテーブル上の座標についてバイキュービック補間で値を求めています。

-

ウェーブテーブルが大きめなので、メモリが遅いとフレーム落ち (xrun) -の可能性が高まります。音程が高くなるほどアクセスパターンがランダムに近くなるので、環境によっては重くなります。

- -

PADsynth アルゴリズムの概要

-

CubicPadSynth は ZynAddSubFXYoshimi で使われている -PADsynth アルゴリズムでウェーブテーブルを合成しています。

-

適当に位相をランダマイズした周波数成分を逆 DFT -すると一方の端ともう一方の端が滑らかにつながった周期的な波形になります。PADsynth -アルゴリズムはこの性質を使って滑らかにループするウェーブテーブルを合成します。

-

周波数成分の合成ではプロファイルと呼ばれている適当な関数をスペクトラム上に並べます。 -CubicPadSynth のプロファイルはオリジナルの PADsynth -アルゴリズムと同じ正規分布曲線を使っています。プロファイルの中心となる周波数は任意に決めることができます。 -CubicPadSynth ではデフォルトで Base Freq. -で指定した基本周波数とその倍音にあたる周波数を使います。

-

- -

ブロック線図

-

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

-

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

-

-

パラメータ

-

Main タブ

-

-

Tuning

-
-
Octave, Semi, Milli
-
-

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

-
    -
  • Octave: オクターブ
  • -
  • Semi: 半音
  • -
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • -
-
-
ET, A4 [Hz]
-
-

音律を変更します。

-

ET は Equal Temperament (平均律) の略です。 -ET が 12 のときは 12 平均律となります。 ET を -12 よりも小さくすると無音になる範囲が増えるので注意してください。

-

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

-
-
-

Gain

-
-
A, D, S, R
-
-

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

-
    -
  • A (Attack) : -鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • -
  • D (Decay) : -最大音量からサステイン音量になるまでのディケイ時間。
  • -
  • S (Sustain) : -アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • -
  • R (Release) : 鍵盤から指を離したあとに音量が 0 -になるまでのリリース時間。
  • -
-
-
Gain
-
-

音量を変更します。

-
-
-

Lowpass

-

現在の音程よりも倍音の少ないウェーブテーブルを使うことで疑似的にローパスフィルタを再現しています。

-

カットオフ周波数の計算式は次のようになっています。

-
cut = Cutoff * 128
+  

ウェーブテーブルは 136 * 2^18 の 2 + 次元配列として表現されています。オシレータの位相と周波数から求められるテーブル上の座標についてバイキュービック補間で値を求めています。

+

ウェーブテーブルが大きめなので、メモリが遅いとフレーム落ち (xrun) + の可能性が高まります。音程が高くなるほどアクセスパターンがランダムに近くなるので、環境によっては重くなります。

+ +

+

CubicPadSynth は ZynAddSubFXYoshimi で使われている + PADsynth アルゴリズムでウェーブテーブルを合成しています。

+

適当に位相をランダマイズした周波数成分を逆 DFT + すると一方の端ともう一方の端が滑らかにつながった周期的な波形になります。PADsynth + アルゴリズムはこの性質を使って滑らかにループするウェーブテーブルを合成します。

+

周波数成分の合成ではプロファイルと呼ばれている適当な関数をスペクトラム上に並べます。 + CubicPadSynth のプロファイルはオリジナルの PADsynth + アルゴリズムと同じ正規分布曲線を使っています。プロファイルの中心となる周波数は任意に決めることができます。 + CubicPadSynth ではデフォルトで Base Freq. + で指定した基本周波数とその倍音にあたる周波数を使います。

+

+ +

+

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

+

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

+

+

+

+

+

+
+
Octave, Semi, Milli
+
+

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

+
    +
  • Octave: オクターブ
  • +
  • Semi: 半音
  • +
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • +
+
+
ET, A4 [Hz]
+
+

音律を変更します。

+

ET は Equal Temperament (平均律) の略です。 + ET が 12 のときは 12 平均律となります。 ET + を 12 + よりも小さくすると無音になる範囲が増えるので注意してください。

+

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

+
+
+

+
+
A, D, S, R
+
+

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

+
    +
  • A (Attack) : + 鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • +
  • D (Decay) : + 最大音量からサステイン音量になるまでのディケイ時間。
  • +
  • S (Sustain) : + アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • +
  • R (Release) : 鍵盤から指を離したあとに音量が 0 + になるまでのリリース時間。
  • +
+
+
Gain
+
+

音量を変更します。

+
+
+

+

現在の音程よりも倍音の少ないウェーブテーブルを使うことで疑似的にローパスフィルタを再現しています。

+

カットオフ周波数の計算式は次のようになっています。

+
cut = Cutoff * 128
 keyFollowRange = Cutoff * (nTable - pitch)
 lowpassPitch = (cut + KeyFollow * (keyFollowRange - cut)) - lowpassEnvelope * Amount;
 if (lowpassPitch < 0) lowpassPitch = 0
@@ -957,544 +1011,565 @@ 

Lowpass

lpFreq = noteToFreq(midiNote + lowpassPitch) ntFreq = noteToFreq(midiNote) cutoffFrequency = (1 + (range - lpFreq) / range) * ntFreq
-

lpCut の計算に使っている 128 は MIDI ノート番号の範囲 + -1 から適当に決めた値です。また nTable = 136 です。

-
-
Cutoff
-
-

フィルタのカットオフ周波数を変更します。

-
-
KeyFollow
-
-

右いっぱいに回すと音程に関わらず倍音の数がだいたい等しくなるようにカットオフ周波数を調節します。左いっぱいに回すと音程に関わらず -Cutoff で設定されたカットオフ周波数を使います。

-
-
A, D, S, R, Amount
-
-

フィルタのカットオフ周波数を変調するエンベロープのパラメータです。 -AmountCutoff への変調量です。

-
-
-

Pitch

-
-
A, D, S, R, Amount
-
-

ノートごとにピッチを変調するエンベロープのパラメータです。

-
-
Negative
-
-

エンベロープの符号を反転します。

-
-
-

Unison

-
-
nUnison
-
-

ユニゾンに使うボイスの数です。

-

Misc.nVoice を増やすことで -nUnison -が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

-
-
Detune, Random Detune
-
-

Detune -はユニゾンに使われているボイスのピッチをずらす量です。

-

Random Detune -のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

-
random = RandomDetune ? rand() : 1
+  

lpCut の計算に使っている 128 は MIDI ノート番号の範囲 + + 1 から適当に決めた値です。また nTable = 136 です。

+
+
Cutoff
+
+

フィルタのカットオフ周波数を変更します。

+
+
KeyFollow
+
+

右いっぱいに回すと音程に関わらず倍音の数がだいたい等しくなるようにカットオフ周波数を調節します。左いっぱいに回すと音程に関わらず + Cutoff で設定されたカットオフ周波数を使います。

+
+
A, D, S, R, Amount
+
+

フィルタのカットオフ周波数を変調するエンベロープのパラメータです。 + AmountCutoff への変調量です。

+
+
+

+
+
A, D, S, R, Amount
+
+

ノートごとにピッチを変調するエンベロープのパラメータです。

+
+
Negative
+
+

エンベロープの符号を反転します。

+
+
+

+
+
nUnison
+
+

ユニゾンに使うボイスの数です。

+

Misc.nVoice を増やすことで + nUnison + が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

+
+
Detune, Random Detune
+
+

Detune + はユニゾンに使われているボイスのピッチをずらす量です。

+

Random Detune + のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
GainRnd
-
-

ユニゾンに使われているボイスの音量をランダムに変更する量です。

-
-
Phase
-
-

ユニゾンに使われているボイスの位相をランダムに変更する量です。

-

Phase セクションの Reset -にチェックが入っていないとき、この値は無視されます。

-
-
Spread, Spread Type
-
-

Spread はユニゾンの左右の広がりの量です。

-

Spread Type -でボイスのピッチに応じたパンの割り当て方を選択できます。

-
    -
  • Alternate L-R: Ascend L -> R と -Ascend R -> L を交互に変更。
  • -
  • Alternate M-S: HighOnMid と -HighOnSide を交互に変更。
  • -
  • Ascend L -> R: 左から右に向かってピッチが上昇。
  • -
  • Ascend R -> L: 右から左に向かってピッチが上昇。
  • -
  • HighOnMid: 端から中央に向かってピッチが上昇。
  • -
  • HighOnSide: 中央から端に向かってピッチが上昇。
  • -
  • Random: -ランダムに生成したパンを割り当て。偏ることがあります。
  • -
  • RotateL: ノートオンごとに割り当てを左に回転。
  • -
  • RotateR: ノートオンごとに割り当てを右に回転。
  • -
  • Shuffle: 均一に並べたパンをランダムに割り当て。
  • -
-
-
-

LFO

-
-
Refresh LFO
-
-

現在の LFO Wave のパラメータに基づいて LFO -のウェーブテーブルを更新します。

-

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

-
-
Interpolation
-
-

LFO のウェーブテーブルの補間の種類です。

-

-
-
Tempo, Multiply
-
-

LFO の周波数をテンポに応じた形で指定します。 Tempo -の下の数字が音符の長さ、上の数字が音符の数です。例えば上が 6 、下が 8 -なら 8 分音符の 6 個分の長さが LFO の 1 周期になります (6 / 8 -拍子)。

-

MultiplyTempo -から計算された周波数に掛け合わされる値です。

-
// (60 秒) * (4 拍子) = 240 。
+  
+
GainRnd
+
+

ユニゾンに使われているボイスの音量をランダムに変更する量です。

+
+
Phase
+
+

ユニゾンに使われているボイスの位相をランダムに変更する量です。

+

Phase セクションの Reset + にチェックが入っていないとき、この値は無視されます。

+
+
Spread, Spread Type
+
+

Spread はユニゾンの左右の広がりの量です。

+

Spread Type + でボイスのピッチに応じたパンの割り当て方を選択できます。

+
    +
  • Alternate L-R: Ascend L -> R と + Ascend R -> L を交互に変更。
  • +
  • Alternate M-S: HighOnMid と + HighOnSide を交互に変更。
  • +
  • Ascend L -> R: + 左から右に向かってピッチが上昇。
  • +
  • Ascend R -> L: + 右から左に向かってピッチが上昇。
  • +
  • HighOnMid: 端から中央に向かってピッチが上昇。
  • +
  • HighOnSide: 中央から端に向かってピッチが上昇。
  • +
  • Random: + ランダムに生成したパンを割り当て。偏ることがあります。
  • +
  • RotateL: ノートオンごとに割り当てを左に回転。
  • +
  • RotateR: ノートオンごとに割り当てを右に回転。
  • +
  • Shuffle: 均一に並べたパンをランダムに割り当て。
  • +
+
+
+

+
+
Refresh LFO
+
+

現在の LFO Wave のパラメータに基づいて LFO + のウェーブテーブルを更新します。

+

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

+
+
Interpolation
+
+

LFO のウェーブテーブルの補間の種類です。

+

+
+
Tempo, Multiply
+
+

LFO の周波数をテンポに応じた形で指定します。 Tempo + の下の数字が音符の長さ、上の数字が音符の数です。例えば上が 6 、下が 8 + なら 8 分音符の 6 個分の長さが LFO の 1 周期になります (6 / 8 + 拍子)。

+

MultiplyTempo + から計算された周波数に掛け合わされる値です。

+
// (60 秒) * (4 拍子) = 240 。
 lfoFrequency = Multiply * (BPM / 240) / (TempoUpperNumeral / TempoLowerNumeral)
-
-
Retrigger
-
-

チェックを入れると、ノートオンごとに LFO の位相をリセットします。

-
-
Amount
-
-

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

-
-
Lowpass
-
-

LFO にかけるローパスフィルタのカットオフ周波数を変更します。

-
-
LFO Wave
-
-

LFO の波形です。

-
-
-

Phase

-
-
Phase
-
-

オシレータの初期位相です。

-
-
Reset
-
-

チェックを入れると、ノートオンのたびにオシレータの位相を -Phase で指定した値にリセットします。

-
-
Random
-
-

チェックを入れると、ノートオンごとに位相をランダマイズします。 -Phase で指定した値がランダマイズの範囲になります。

-
-
-

Misc.

-
-
Smooth
-
-

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

-

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

-
    -
  • Tuning セクションの全て
  • -
  • Gain -
      -
    • S
    • -
    • Gain
    • -
  • -
  • Lowpass -
      -
    • Cutoff
    • -
    • KeyFollow
    • -
    • S
    • -
    • Amount
    • -
  • -
  • Pitch -
      -
    • S
    • -
    • Amount
    • -
    • Negative
    • -
  • -
  • LFO -
      -
    • Tempo
    • -
    • Multiply
    • -
    • Amount
    • -
    • Lowpass
    • -
  • -
  • Phase -
      -
    • Phase
    • -
  • -
-
-
nVoice
-
-

最大同時発音数です。

-
-
Pool
-
-

チェックを入れると、現在の発音数が同時最大発音数に近づいたときに、音量の最も小さいボイスをリリースします。ノートオン時に生じるプチノイズの低減に使えます。

-
-
-

Wavetable タブ

-

-

倍音コントロール

-
-
Gain
-
-

プロファイルの高さです。

-
-
Width
-
-

プロファイルの幅です。

-
-
Pitch
-
-

プロファイルの周波数にかけ合わせる値です。

-
-
Phase
-
-

プロファイルの位相をランダマイズする量です。

-
-
-

Pitch

-
-
Base Freq.
-
-

ウェーブテーブルのレンダリング時の基本周波数です。この値が小さいとマスターピッチのチューニングが狂うことがあるので注意してください。

-
-
Multiply, Modulo
-
-

プロファイルの周波数を変更します。

-
profileFrequency = mod(
+  
+
Retrigger
+
+

チェックを入れると、ノートオンごとに LFO + の位相をリセットします。

+
+
Amount
+
+

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

+
+
Lowpass
+
+

LFO にかけるローパスフィルタのカットオフ周波数を変更します。

+
+
LFO Wave
+
+

LFO の波形です。

+
+
+

+
+
Phase
+
+

オシレータの初期位相です。

+
+
Reset
+
+

チェックを入れると、ノートオンのたびにオシレータの位相を + Phase で指定した値にリセットします。

+
+
Random
+
+

チェックを入れると、ノートオンごとに位相をランダマイズします。 + Phase で指定した値がランダマイズの範囲になります。

+
+
+

+
+
Smooth
+
+

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

+

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

+
    +
  • Tuning セクションの全て
  • +
  • Gain +
      +
    • S
    • +
    • Gain
    • +
  • +
  • Lowpass +
      +
    • Cutoff
    • +
    • KeyFollow
    • +
    • S
    • +
    • Amount
    • +
  • +
  • Pitch +
      +
    • S
    • +
    • Amount
    • +
    • Negative
    • +
  • +
  • LFO +
      +
    • Tempo
    • +
    • Multiply
    • +
    • Amount
    • +
    • Lowpass
    • +
  • +
  • Phase +
      +
    • Phase
    • +
  • +
+
+
nVoice
+
+

最大同時発音数です。

+
+
Pool
+
+

チェックを入れると、現在の発音数が同時最大発音数に近づいたときに、音量の最も小さいボイスをリリースします。ノートオン時に生じるプチノイズの低減に使えます。

+
+
+

+

+

+
+
Gain
+
+

プロファイルの高さです。

+
+
Width
+
+

プロファイルの幅です。

+
+
Pitch
+
+

プロファイルの周波数にかけ合わせる値です。

+
+
Phase
+
+

プロファイルの位相をランダマイズする量です。

+
+
+

+
+
Base Freq.
+
+

ウェーブテーブルのレンダリング時の基本周波数です。この値が小さいとマスターピッチのチューニングが狂うことがあるので注意してください。

+
+
Multiply, Modulo
+
+

プロファイルの周波数を変更します。

+
profileFrequency = mod(
   BaseFreq * profileIndex * overtonePitch * Multiply,
   440 * pow(2, (Modulo - 69) / 12)
 )
-
-
Random
-
-

チェックを入れると、倍音コントロールの Pitch -で指定された値を無視して、プロファイルの周波数をランダマイズします。

-
-
-

Spectrum

-
-
Expand
-
-

スペクトラムを周波数軸に沿って拡大・縮小するスケーリング係数です。

-

-
-
Shift
-
-

スペクトラムを左右にシフトする量です。

-

-
-
Comb
-
-

Comb の値が 1 -以上のとき、プロファイルをくし状に変形します。値はくしのすき間の間隔です。

-

-
-
Shape
-
-

Shape -の値を指数として、プロファイルの形をべき乗によって変更します。

-
shapedProfile = powf(profile, shape);
-
-
Invert
-
-

スペクトラムの絶対値の最大値が 0 、 0 -が絶対値の最大値になるように反転します。符号は保持されます。位相は考慮していません。

-
maxRe = max(abs(spectrumRe))
+  
+
Random
+
+

チェックを入れると、倍音コントロールの Pitch + で指定された値を無視して、プロファイルの周波数をランダマイズします。

+
+
+

+
+
Expand
+
+

スペクトラムを周波数軸に沿って拡大・縮小するスケーリング係数です。

+

+
+
Shift
+
+

スペクトラムを左右にシフトする量です。

+

+
+
Comb
+
+

Comb の値が 1 + 以上のとき、プロファイルをくし状に変形します。値はくしのすき間の間隔です。

+

+
+
Shape
+
+

Shape + の値を指数として、プロファイルの形をべき乗によって変更します。

+
shapedProfile = powf(profile, shape);
+
+
Invert
+
+

スペクトラムの絶対値の最大値が 0 、 0 + が絶対値の最大値になるように反転します。符号は保持されます。位相は考慮していません。

+
maxRe = max(abs(spectrumRe))
 maxIm = max(abs(spectrumIm))
 invertedSpectrumRe = spectrumRe - sgn(spectrumRe) * maxRe
 invertedSpectrumIm = spectrumIm - sgn(spectrumIm) * maxIm
-
-
-

Phase

-
-
UniformPhase
-
-

チェックを入れると、プロファイル内での位相を均一にします。

-
-
-

Random

-
-
Seed
-
-

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

-
-
-

Modifier

-
-
Gain^
-
-

倍音コントロールの Gain をべき乗する値です。

-
profileGain = pow(Gain, Gain^)
-
-
Width*
-
-

倍音コントロールの Width にかけ合わせる値です。

-
profileWidth = Width * (Width*)
-
-
-

Refresh Table

-

現在の Wavetable -タブのパラメータに基づいてオシレータのウェーブテーブルを更新します。

-

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

-

チェンジログ

-
    -
  • 0.1.26 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.25 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.24 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.23 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.22 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.21 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.20 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
    • FFTW3 -のスレッドセーフでない関数呼び出しによるクラッシュを防止するために mutex -を追加。
    • -
  • -
  • 0.1.19 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • -
    • x86_64 CPU の SIMD -命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを -AVX に固定。
    • -
  • -
  • 0.1.18 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.17 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.16 -
      -
    • 一部の Windows -環境で発生していたプラグインスキャン時のクラッシュを修正。Windows 用の -FFTW3 静的ライブラリを SIMD フラグなしでビルドするように変更。
    • -
  • -
  • 0.1.15 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.14 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.13 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.12 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.11 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.10 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.9 -
      -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.8 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.7 -
      -
    • いくつかの BarBox にスクロールバーを追加。
    • -
    • BarBox に アンドゥ・リドゥの機能を追加。
    • -
  • -
  • 0.1.6 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.5 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.4 -
      -
    • 起動時にパラメータがロードされる前にウェーブテーブルが更新されるバグを修正。
    • -
    • LFO ウェーブテーブルの補間が Cubic のときにインデックスが 1 -つずれていたバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • BarBox のショートカットが効かないバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • オートメーションと MIDI マッピングを利用できるように -Refresh TableRefresh LFO を VST -のメッセージからパラメータへと変更。
    • -
    • BarBox -にフォーカスした後、マウスカーソルが領域外にあるときはショートカットが無効になるように変更。
    • -
  • -
  • 0.1.1 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

CubicPadSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは -ryukau@gmail.com にメールを送ってください。

- -

VST® について

-

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

+
+
+

+
+
UniformPhase
+
+

チェックを入れると、プロファイル内での位相を均一にします。

+
+
+

+
+
Seed
+
+

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

+
+
+

+
+
Gain^
+
+

倍音コントロールの Gain をべき乗する値です。

+
profileGain = pow(Gain, Gain^)
+
+
Width*
+
+

倍音コントロールの Width にかけ合わせる値です。

+
profileWidth = Width * (Width*)
+
+
+

+

現在の Wavetable + タブのパラメータに基づいてオシレータのウェーブテーブルを更新します。

+

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

+

+
    +
  • 0.1.26 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.25 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.24 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.23 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.22 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.21 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.20 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
    • FFTW3 + のスレッドセーフでない関数呼び出しによるクラッシュを防止するために + mutex を追加。
    • +
  • +
  • 0.1.19 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • +
    • x86_64 CPU の SIMD + 命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを + AVX に固定。
    • +
  • +
  • 0.1.18 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.17 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.16 +
      +
    • 一部の Windows + 環境で発生していたプラグインスキャン時のクラッシュを修正。Windows 用の + FFTW3 静的ライブラリを SIMD フラグなしでビルドするように変更。
    • +
  • +
  • 0.1.15 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.14 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.13 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.12 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.11 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.10 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.9 +
      +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.8 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.7 +
      +
    • いくつかの BarBox にスクロールバーを追加。
    • +
    • BarBox に アンドゥ・リドゥの機能を追加。
    • +
  • +
  • 0.1.6 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.5 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.4 +
      +
    • 起動時にパラメータがロードされる前にウェーブテーブルが更新されるバグを修正。
    • +
    • LFO ウェーブテーブルの補間が Cubic のときにインデックスが 1 + つずれていたバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • BarBox のショートカットが効かないバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • オートメーションと MIDI マッピングを利用できるように + Refresh TableRefresh LFO を VST + のメッセージからパラメータへと変更。
    • +
    • BarBox + にフォーカスした後、マウスカーソルが領域外にあるときはショートカットが無効になるように変更。
    • +
  • +
  • 0.1.1 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

CubicPadSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは + ryukau@gmail.com にメールを送ってください。

+ +

+

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

- - + + diff --git a/docs/manual/EnvelopedSine/EnvelopedSine_en.html b/docs/manual/EnvelopedSine/EnvelopedSine_en.html index cf5b9716..2cc14791 100644 --- a/docs/manual/EnvelopedSine/EnvelopedSine_en.html +++ b/docs/manual/EnvelopedSine/EnvelopedSine_en.html @@ -2,542 +2,578 @@ - - - - -EnvelopedSine_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

EnvelopedSine

-

-

EnvelopedSine is an additive synthesizer that computes 64 sine waves -for each note. Difference to IterativeSinCluster is that this synth has -AD envelope and saturator for each oscillator. EnvelopedSine is better -suited for percussive sounds.

- -

EnvelopedSine requires AVX or later SIMD instructions on x86_64 -environment.

-

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -557,684 +593,701 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Overtone

-

4 big controls on top right.

-
-
Attack, Decay
-
-

Gain envelope attack and decay for each oscillator.

-
-
Gain
-
-

Gain for each oscillator.

-
-
Saturation
-
-

Saturation gain for each oscillator.

-
-
-

Gain

-
-
Boost, Gain
-
-

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

-
-
-

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.

-
-
Octave
-
-

Note octave.

-
-
Multiply, Modulo
-
-

Change sine wave frequency.

-

Equation is -noteFrequency * (1 + fmod(Multiply * pitch, Modulo)). -pitch is calculated from note pitch and overtone index. -fmod(a, b) is a function that returns reminder of -a / b.

-
-
Expand
-
-

Scaling factor for overtone controls.

-

-
-
Shift
-
-

Amount of right shift to overtone controls.

-

-
-
-

Random

-

Randomize parameters. These are more effective when used with -Unison.

-
-
Retrigger
-
-

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

-
-
Seed
-
-

Random seed. This value change random number sequence.

-
-
To Gain, To Attack, To Decay, To Sat.
-
-

Amount of randomization to overtone controls. Equation is -value * random. Range of random is -[0.0, 1.0).

-
-
To Pitch
-
-

Amount of randomization to pitch.

-
-
To Phase
-
-

Amount of randomization to phase.

-
-
-

Misc.

-
-
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.
  • -
  • All parameters in Phaser section, except -nStages.
  • -
-

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

-
-
nVoices
-
-

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

-
-
Unison
-
-

When checked, unison is enabled.

-

When unison is enabled, 1 note uses 2 voices. 1 voice is placed on -left and other is placed on right. Combining Unison with -Random.To Phase, Random.To Pitch, etc. can be -used to make sound with stereo spread.

-
-
-

Modifier

-
-
Attack*, Decay*
-
-

Multiplier for Attack/Decay in overtone -control section.

-
-
Declick
-
-

When checked, it reduces click noise that occurs when the value of -Attack and/or Decay is 0.

-
-
Gain^
-
-

Exponent to Gain in overtone control. Following is the -equation of gain of an oscillator.

-
Gain.Boost * Gain.Gain * pow(Overtone.Gain, Modifier.Gain^)
-
-
Sat. Mix
-
-

Mixing ratio of dry/wet signal of saturation. Dry : Wet -becomes 0 : 1 when turned the knob to rightmost.

-
-
-

Phaser

-
-
nStages
-
-

Number of all-pass filter.

-
-
Mix
-
-

Mixing ratio of dry/wet signal of phaser. Dry : Wet -becomes 0 : 1 when turned the knob to rightmost.

-
-
Freq
-
-

LFO frequency.

-
-
Feedback
-
-

Amount of feedback. Feedback is disabled when the knob is pointing to -12 o’clock. It becomes negative feedback when turned to left and -positive feedback when turned to right.

-
-
Range
-
-

Range of all-pass filter modulation by LFO.

-
-
Min
-
-

Minimum value of all-pass filter modulation by LFO.

-
-
Offset
-
-

LFO phase offset.

-
-
Phase
-
-

LFO phase. This can be used to make sound with automation. Turning -Freq to leftmost sets LFO frequency to 0.

-
-
-

Change Log

-
    -
  • 0.1.25 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.24 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.23 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.22 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.21 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.20 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.19 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
    • Added code path for 64-bit ARM CPU (aarch64).
    • -
    • Removed x86_64 SIMD run-time dispatching. Supported instruction set -is now fixed to AVX.
    • -
  • -
  • 0.1.18 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.17 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.15 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.14 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.13 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.12 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.10 -
      -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.9 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.8 -
      -
    • Added undo/redo to BarBox.
    • -
  • -
  • 0.1.7 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.6 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.5 -
      -
    • Changed BarBox shortcuts to be disabled when mouse cursor is on the -outside of BarBox.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.3 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.2 -
      -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.1 -
      -
    • Enabled GUI for Linux build.
    • -
    • Added shortcut cheat sheet to splash screen.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

EnvelopedSine 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

4 big controls on top right.

+
+
Attack, Decay
+
+

Gain envelope attack and decay for each oscillator.

+
+
Gain
+
+

Gain for each oscillator.

+
+
Saturation
+
+

Saturation gain for each oscillator.

+
+
+

+
+
Boost, Gain
+
+

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

+
+
+

+
+
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.

+
+
Octave
+
+

Note octave.

+
+
Multiply, Modulo
+
+

Change sine wave frequency.

+

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

+
+
Expand
+
+

Scaling factor for overtone controls.

+

+
+
Shift
+
+

Amount of right shift to overtone controls.

+

+
+
+

+

Randomize parameters. These are more effective when used with + Unison.

+
+
Retrigger
+
+

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

+
+
Seed
+
+

Random seed. This value change random number sequence.

+
+
To Gain, To Attack, To Decay, To Sat.
+
+

Amount of randomization to overtone controls. Equation is + value * random. Range of random is + [0.0, 1.0).

+
+
To Pitch
+
+

Amount of randomization to pitch.

+
+
To Phase
+
+

Amount of randomization to phase.

+
+
+

+
+
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.
  • +
  • All parameters in Phaser section, except + nStages.
  • +
+

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

+
+
nVoices
+
+

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

+
+
Unison
+
+

When checked, unison is enabled.

+

When unison is enabled, 1 note uses 2 voices. 1 voice is placed on + left and other is placed on right. Combining Unison with + Random.To Phase, Random.To Pitch, etc. can + be used to make sound with stereo spread.

+
+
+

+
+
Attack*, Decay*
+
+

Multiplier for Attack/Decay in overtone + control section.

+
+
Declick
+
+

When checked, it reduces click noise that occurs when the value of + Attack and/or Decay is 0.

+
+
Gain^
+
+

Exponent to Gain in overtone control. Following is the + equation of gain of an oscillator.

+
Gain.Boost * Gain.Gain * pow(Overtone.Gain, Modifier.Gain^)
+
+
Sat. Mix
+
+

Mixing ratio of dry/wet signal of saturation. + Dry : Wet becomes 0 : 1 when turned the knob + to rightmost.

+
+
+

+
+
nStages
+
+

Number of all-pass filter.

+
+
Mix
+
+

Mixing ratio of dry/wet signal of phaser. Dry : Wet + becomes 0 : 1 when turned the knob to rightmost.

+
+
Freq
+
+

LFO frequency.

+
+
Feedback
+
+

Amount of feedback. Feedback is disabled when the knob is pointing + to 12 o’clock. It becomes negative feedback when turned to left and + positive feedback when turned to right.

+
+
Range
+
+

Range of all-pass filter modulation by LFO.

+
+
Min
+
+

Minimum value of all-pass filter modulation by LFO.

+
+
Offset
+
+

LFO phase offset.

+
+
Phase
+
+

LFO phase. This can be used to make sound with automation. Turning + Freq to leftmost sets LFO frequency to 0.

+
+
+

+
    +
  • 0.1.25 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.24 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.23 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.22 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.21 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.20 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.19 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
    • Added code path for 64-bit ARM CPU (aarch64).
    • +
    • Removed x86_64 SIMD run-time dispatching. Supported instruction + set is now fixed to AVX.
    • +
  • +
  • 0.1.18 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.17 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.15 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.14 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.13 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.12 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.10 +
      +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.9 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.8 +
      +
    • Added undo/redo to BarBox.
    • +
  • +
  • 0.1.7 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.6 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.5 +
      +
    • Changed BarBox shortcuts to be disabled when mouse cursor is on + the outside of BarBox.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.3 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.2 +
      +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.1 +
      +
    • Enabled GUI for Linux build.
    • +
    • Added shortcut cheat sheet to splash screen.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

EnvelopedSine is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/EnvelopedSine/EnvelopedSine_ja.html b/docs/manual/EnvelopedSine/EnvelopedSine_ja.html index 0da4b813..06bb4440 100644 --- a/docs/manual/EnvelopedSine/EnvelopedSine_ja.html +++ b/docs/manual/EnvelopedSine/EnvelopedSine_ja.html @@ -2,544 +2,581 @@ - - - - -EnvelopedSine_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

EnvelopedSine

-

-

EnvelopedSineエンベロープド サイン はノート 1 -つあたり 64 のサイン波を計算する加算合成シンセサイザです。各サイン波に -AD エンベロープとサチュレータがついているので IterativeSinCluster -よりもパーカッシブな音が得意です。

- -

x86_64 環境で EnvelopedSine を使うには AVX 以降の SIMD -命令セットをサポートする CPU が必要です。

-

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -559,677 +596,696 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

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

-

-

パラメータ

-

Overtone

-

右上にある 4 つの大きなコントロールです。

-
-
Attack, Decay
-
-

各オシレータの音量エンベロープのアタックとディケイです。

-
-
Gain
-
-

各オシレータの音量です。

-
-
Saturation
-
-

各オシレータのサチュレーションの大きさです。

-
-
-

Gain

-
-
Boost, Gain
-
-

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

-
-
-

Pitch

-
-
Add Aliasing
-
-

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

-

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

-
-
Octave
-
-

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

-
-
Multiply, Modulo
-
-

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

-

計算式は -ノートの周波数 * (1 + fmod(Multiply * pitch, Modulo)) -のようになっています。 pitch -はノートの音程と倍音のインデックスから計算される係数です。 -fmod(a, b)ab -で割った余りを計算する関数です。

-
-
Expand
-
-

倍音コントロールのインデックスを拡大・縮小するスケーリング係数です。

-

-
-
Shift
-
-

倍音コントロールのインデックスを右シフトする量です。

-

-
-
-

Random

-

ランダマイズに関するパラメータです。 Unison -にチェックを入れた状態で使うと効果的です。

-
-
Retrigger
-
-

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

-
-
Seed
-
-

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

-
-
To Gain, To Attack, To Decay, To Sat.
-
-

倍音コントロールの値をランダマイズします。ランダマイズの式は -value * random です。 random の値の範囲は -[0.0, 1.0) です。

-
-
To Pitch
-
-

ピッチをランダマイズします。

-
-
To Phase
-
-

位相をランダマイズします。

-
-
-

Misc.

-
-
Smooth
-
-

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

-

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

-
    -
  • Gain セクションの全て
  • -
  • Phaser セクションの nStages 以外
  • -
-

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

-
-
nVoices
-
-

最大同時発音数です。

-
-
Unison
-
-

チェックを入れるとユニゾンを有効にします。

-

ユニゾンが有効になると 1 つのノートについて左右のチャンネルに 1 -つずつボイスを配置します。 Random.To Phase や -Random.To Pitch -と組み合わせることで広がりのある音を作ることができます。

-
-
-

Modifier

-
-
Attack*, Decay*
-
-

倍音コントロールの AttackDecay -にかけ合わせる値です。まとめて長さを変えたいときに使えます。

-
-
Declick
-
-

チェックを入れると、倍音コントロールの Attack あるいは -Decay の値が 0 -のときに生じるプチノイズを低減します。各オシレータのピッチに応じた値を足し合わせます。

-
-
Gain^
-
-

倍音コントロールの Gain をべき乗する値です。 1 -つのオシレータの最終的なゲインは次の式で計算されます。

-
Gain.Boost * Gain.Gain * pow(Overtone.Gain, Modifier.Gain^)
-
-
Sat. Mix
-
-

サチュレーションの Dry : Wet の信号比です。右いっぱいにすると Dry : -Wet = 0 : 1 になります。

-
-
-

Phaser

-
-
nStages
-
-

オールパスフィルタの数です。

-
-
Mix
-
-

フェイザの Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 : -1 になります。

-
-
Freq
-
-

LFO の周波数です。

-
-
Feedback
-
-

フィードバックの大きさです。 12 -時にするとフィードバックなし、左に回すと負のフィードバック、右に回すと正のフィードバックとなります。

-
-
Range
-
-

LFO によって変更するオールパスフィルタの特性の幅です。

-
-
Min
-
-

LFO によって変調するオールパスフィルタの特性の最小値です。

-
-
Offset
-
-

左右の LFO の位相差です。

-
-
Phase
-
-

LFO の位相です。オートメーションで音を作りたいときに使えます。 -Freq を左いっぱいに回すことで LFO の周波数を 0 -にできます。

-
-
-

チェンジログ

-
    -
  • 0.1.25 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.24 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.23 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.22 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.21 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.20 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.19 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • -
    • x86_64 CPU の SIMD -命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを -AVX に固定。
    • -
  • -
  • 0.1.18 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.17 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.16 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.15 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.14 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.13 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.12 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.11 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.10 -
      -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.9 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.8 -
      -
    • BarBox に アンドゥ・リドゥの機能を追加。
    • -
  • -
  • 0.1.7 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.6 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.5 -
      -
    • BarBox -にフォーカスした後、マウスカーソルを領域外に動かしている間はショートカットが無効になるように変更。
    • -
  • -
  • 0.1.4 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.2 -
      -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.1 -
      -
    • Linux ビルドの GUI を有効化。
    • -
    • スプラッシュスクリーンにショートカット一覧を追加。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

EnvelopedSine のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは -ryukau@gmail.com にメールを送ってください。

- -

VST® について

-

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

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

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

+

+

+

+

右上にある 4 つの大きなコントロールです。

+
+
Attack, Decay
+
+

各オシレータの音量エンベロープのアタックとディケイです。

+
+
Gain
+
+

各オシレータの音量です。

+
+
Saturation
+
+

各オシレータのサチュレーションの大きさです。

+
+
+

+
+
Boost, Gain
+
+

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

+
+
+

+
+
Add Aliasing
+
+

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

+

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

+
+
Octave
+
+

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

+
+
Multiply, Modulo
+
+

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

+

計算式は + ノートの周波数 * (1 + fmod(Multiply * pitch, Modulo)) + のようになっています。 pitch + はノートの音程と倍音のインデックスから計算される係数です。 + fmod(a, b)ab + で割った余りを計算する関数です。

+
+
Expand
+
+

倍音コントロールのインデックスを拡大・縮小するスケーリング係数です。

+

+
+
Shift
+
+

倍音コントロールのインデックスを右シフトする量です。

+

+
+
+

+

ランダマイズに関するパラメータです。 Unison + にチェックを入れた状態で使うと効果的です。

+
+
Retrigger
+
+

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

+
+
Seed
+
+

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

+
+
To Gain, To Attack, To Decay, To Sat.
+
+

倍音コントロールの値をランダマイズします。ランダマイズの式は + value * random です。 random の値の範囲は + [0.0, 1.0) です。

+
+
To Pitch
+
+

ピッチをランダマイズします。

+
+
To Phase
+
+

位相をランダマイズします。

+
+
+

+
+
Smooth
+
+

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

+

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

+
    +
  • Gain セクションの全て
  • +
  • Phaser セクションの nStages 以外
  • +
+

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

+
+
nVoices
+
+

最大同時発音数です。

+
+
Unison
+
+

チェックを入れるとユニゾンを有効にします。

+

ユニゾンが有効になると 1 つのノートについて左右のチャンネルに 1 + つずつボイスを配置します。 Random.To Phase や + Random.To Pitch + と組み合わせることで広がりのある音を作ることができます。

+
+
+

+
+
Attack*, Decay*
+
+

倍音コントロールの AttackDecay + にかけ合わせる値です。まとめて長さを変えたいときに使えます。

+
+
Declick
+
+

チェックを入れると、倍音コントロールの Attack あるいは + Decay の値が 0 + のときに生じるプチノイズを低減します。各オシレータのピッチに応じた値を足し合わせます。

+
+
Gain^
+
+

倍音コントロールの Gain をべき乗する値です。 1 + つのオシレータの最終的なゲインは次の式で計算されます。

+
Gain.Boost * Gain.Gain * pow(Overtone.Gain, Modifier.Gain^)
+
+
Sat. Mix
+
+

サチュレーションの Dry : Wet の信号比です。右いっぱいにすると Dry : + Wet = 0 : 1 になります。

+
+
+

+
+
nStages
+
+

オールパスフィルタの数です。

+
+
Mix
+
+

フェイザの Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 + : 1 になります。

+
+
Freq
+
+

LFO の周波数です。

+
+
Feedback
+
+

フィードバックの大きさです。 12 + 時にするとフィードバックなし、左に回すと負のフィードバック、右に回すと正のフィードバックとなります。

+
+
Range
+
+

LFO によって変更するオールパスフィルタの特性の幅です。

+
+
Min
+
+

LFO によって変調するオールパスフィルタの特性の最小値です。

+
+
Offset
+
+

左右の LFO の位相差です。

+
+
Phase
+
+

LFO の位相です。オートメーションで音を作りたいときに使えます。 + Freq を左いっぱいに回すことで LFO の周波数を 0 + にできます。

+
+
+

+
    +
  • 0.1.25 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.24 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.23 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.22 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.21 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.20 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.19 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • +
    • x86_64 CPU の SIMD + 命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを + AVX に固定。
    • +
  • +
  • 0.1.18 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.17 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.16 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.15 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.14 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.13 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.12 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.11 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.10 +
      +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.9 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.8 +
      +
    • BarBox に アンドゥ・リドゥの機能を追加。
    • +
  • +
  • 0.1.7 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.6 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.5 +
      +
    • BarBox + にフォーカスした後、マウスカーソルを領域外に動かしている間はショートカットが無効になるように変更。
    • +
  • +
  • 0.1.4 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.2 +
      +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.1 +
      +
    • Linux ビルドの GUI を有効化。
    • +
    • スプラッシュスクリーンにショートカット一覧を追加。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

EnvelopedSine のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは + ryukau@gmail.com にメールを送ってください。

+ +

+

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

- - + + diff --git a/docs/manual/EsPhaser/EsPhaser_en.html b/docs/manual/EsPhaser/EsPhaser_en.html index c0e851a3..046322bd 100644 --- a/docs/manual/EsPhaser/EsPhaser_en.html +++ b/docs/manual/EsPhaser/EsPhaser_en.html @@ -2,532 +2,568 @@ - - - - -EsPhaser_en - - - - + + + + + EsPhaser_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

EsPhaser

-

-

EsPhaser is a phaser with up to 4096 stages of order 2 Thiran -all-pass filters. This is the same phaser used in EnvelopedSine.

- -

EsPhaser requires AVX or later SIMD instructions on x86_64 -environment.

-

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

Preset directory name must be the same as the plugin. If preset + directory does not exist, create it.

+ +

+

If DAW doesn’t recognize the plugin, try installing C++ + redistributable (vc_redist.x64.exe). Installer can be + found in the link below.

+ +

+

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -547,329 +583,341 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

When stage is set to 4096, it will be CPU intensive.

-

Output varies in different sample rate.

-

Output may be loud when changing Cas. Offset. Use Shift + -Left Drag to slowly change the value, or insert limiter to -prevent hard clipping.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-
-
Stages
-
-

Number of all-pass filter.

-
-
Mix
-
-

Mixing ratio of dry/wet signal of phaser. Dry : Wet -becomes 0 : 1 when turned the knob to rightmost.

-
-
Freq
-
-

LFO frequency.

-
-
Spread
-
-

Spread frequency between LFOs.

-

Equation for difference of LFO phase in 1 sample:

-
deltaPhase = 2 * pi * Freq / ((1 + LfoIndex * Spread) * sampleRate)
-
-
Feedback
-
-

Amount of feedback. Feedback is disabled when the knob is pointing to -12 o’clock. It becomes negative feedback when turned to left and -positive feedback when turned to right.

-
-
Range
-
-

Range of all-pass filter modulation by LFO.

-
-
Min
-
-

Minimum value of all-pass filter modulation by LFO.

-
-
Cas. Offset
-
-

Phase offset between 16 LFO.

-
-
L/R Offset
-
-

LFO phase offset between L/R channels.

-
-
Phase
-
-

LFO phase. This can be used to make sound with automation. Turning -Freq to leftmost sets LFO frequency to 0.

-

Equation for phase offset:

-
LfoPhaseOffset = Phase + (L/R Offset) + LfoIndex * (Cas. Offset)
-
-
-

Change Log

-
    -
  • 0.1.20 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.18 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.15 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.14 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
    • Added code path for 64-bit ARM CPU (aarch64).
    • -
    • Removed x86_64 SIMD run-time dispatching. Supported instruction set -is now fixed to AVX.
    • -
  • -
  • 0.1.13 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.12 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.10 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.9 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.8 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.7 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.6 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.5 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.4 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.3 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.2 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.1 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

EsPhaser 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

When stage is set to 4096, it will be CPU intensive.

+

Output varies in different sample rate.

+

Output may be loud when changing Cas. Offset. Use Shift + + Left Drag to slowly change the value, or insert limiter + to prevent hard clipping.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+
+
Stages
+
+

Number of all-pass filter.

+
+
Mix
+
+

Mixing ratio of dry/wet signal of phaser. Dry : Wet + becomes 0 : 1 when turned the knob to rightmost.

+
+
Freq
+
+

LFO frequency.

+
+
Spread
+
+

Spread frequency between LFOs.

+

Equation for difference of LFO phase in 1 sample:

+
deltaPhase = 2 * pi * Freq / ((1 + LfoIndex * Spread) * sampleRate)
+
+
Feedback
+
+

Amount of feedback. Feedback is disabled when the knob is pointing + to 12 o’clock. It becomes negative feedback when turned to left and + positive feedback when turned to right.

+
+
Range
+
+

Range of all-pass filter modulation by LFO.

+
+
Min
+
+

Minimum value of all-pass filter modulation by LFO.

+
+
Cas. Offset
+
+

Phase offset between 16 LFO.

+
+
L/R Offset
+
+

LFO phase offset between L/R channels.

+
+
Phase
+
+

LFO phase. This can be used to make sound with automation. Turning + Freq to leftmost sets LFO frequency to 0.

+

Equation for phase offset:

+
LfoPhaseOffset = Phase + (L/R Offset) + LfoIndex * (Cas. Offset)
+
+
+

+
    +
  • 0.1.20 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.18 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.15 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.14 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
    • Added code path for 64-bit ARM CPU (aarch64).
    • +
    • Removed x86_64 SIMD run-time dispatching. Supported instruction + set is now fixed to AVX.
    • +
  • +
  • 0.1.13 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.12 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.10 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.9 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.8 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.7 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.6 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.5 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.4 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.3 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.2 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.1 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

EsPhaser is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

+ + + diff --git a/docs/manual/EsPhaser/EsPhaser_ja.html b/docs/manual/EsPhaser/EsPhaser_ja.html index f2039971..61ad3392 100644 --- a/docs/manual/EsPhaser/EsPhaser_ja.html +++ b/docs/manual/EsPhaser/EsPhaser_ja.html @@ -2,535 +2,572 @@ - - - - -EsPhaser_ja - - - - + + + + + EsPhaser_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

EsPhaser

-

-

EsPhaserエス フェイザ は最大 4096 の 2 次 -Thiran オールパスフィルタを直列につなぐことができるフェイザです。 -EnvelopedSine のフェイザと同じアルゴリズムを使っています。

- -

x86_64 環境で EsPhaser を使うには AVX 以降の SIMD -命令セットをサポートする CPU が必要です。

-

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+ +

+

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

+ +

+

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

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

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

+ +

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -550,339 +587,351 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

サンプリング周波数によって出力が変わります。

-

Stage を最大にすると CPU -消費がとても大きくなります。

-

Smooth の値が小さいときに Cas. Offset -を変更すると、大きな音が出ることがあります。 Cas. Offset -を変更するときは Shift + 左ドラッグ の利用と、 -EsPhaser のあとにリミッタをインサートすることを推奨します。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-
-
Mix
-
-

Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 : 1 -になります。

-
-
Freq
-
-

LFO の周波数です。

-
-
Spread
-
-

16 個の LFO の間で周波数をずらす量です。

-

1 サンプル当たりの LFO の位相の進み deltaPhase -は次の式で計算されます。

-
deltaPhase = 2 * pi * Freq / ((1 + LfoIndex * Spread) * sampleRate)
-
-
Feedback
-
-

フィードバックの大きさです。 12 -時にするとフィードバックなし、左に回すと負のフィードバック、右に回すと正のフィードバックとなります。

-
-
Range
-
-

LFO によって変更するオールパスフィルタの特性の幅です。

-
-
Min
-
-

LFO によって変調するオールパスフィルタの特性の最小値です。

-
-
Cas. Offset
-
-

16 個の LFO の間で位相をずらす量です。

-
-
L/R Offset
-
-

左右の LFO の位相差です。

-
-
Phase
-
-

LFO の位相です。オートメーションで音を作りたいときに使えます。 -Freq を左いっぱいに回すことで LFO の周波数を 0 -にできます。

-

最終的な LFO の位相は次の式で計算されます。

-
LfoPhaseOffset = Phase + (L/R Offset) + LfoIndex * (Cas. Offset)
-
-
Stage
-
-

オールパスフィルタを直列につなぐ個数です。 Stage -の値に比例して CPU 消費が増えるので注意してください。

-
-
Smooth
-
-

パラメータを変更したときに、変更前の値から変更後の値へと移行する秒数です。 -Stage 以外のパラメータに有効です。

-
-
-

チェンジログ

-
    -
  • 0.1.20 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.19 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.18 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.17 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.16 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.15 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.14 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • -
    • x86_64 CPU の SIMD -命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを -AVX に固定。
    • -
  • -
  • 0.1.13 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.12 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.11 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.10 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.9 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.8 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.7 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.6 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.5 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.4 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.3 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.2 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.1 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

サンプリング周波数によって出力が変わります。

+

Stage を最大にすると CPU + 消費がとても大きくなります。

+

Smooth の値が小さいときに Cas. Offset + を変更すると、大きな音が出ることがあります。 Cas. Offset + を変更するときは Shift + 左ドラッグ の利用と、 + EsPhaser のあとにリミッタをインサートすることを推奨します。

+

+

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

+

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

+

+

+
+
Mix
+
+

Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 : 1 + になります。

+
+
Freq
+
+

LFO の周波数です。

+
+
Spread
+
+

16 個の LFO の間で周波数をずらす量です。

+

1 サンプル当たりの LFO の位相の進み deltaPhase + は次の式で計算されます。

+
deltaPhase = 2 * pi * Freq / ((1 + LfoIndex * Spread) * sampleRate)
+
+
Feedback
+
+

フィードバックの大きさです。 12 + 時にするとフィードバックなし、左に回すと負のフィードバック、右に回すと正のフィードバックとなります。

+
+
Range
+
+

LFO によって変更するオールパスフィルタの特性の幅です。

+
+
Min
+
+

LFO によって変調するオールパスフィルタの特性の最小値です。

+
+
Cas. Offset
+
+

16 個の LFO の間で位相をずらす量です。

+
+
L/R Offset
+
+

左右の LFO の位相差です。

+
+
Phase
+
+

LFO の位相です。オートメーションで音を作りたいときに使えます。 + Freq を左いっぱいに回すことで LFO の周波数を 0 + にできます。

+

最終的な LFO の位相は次の式で計算されます。

+
LfoPhaseOffset = Phase + (L/R Offset) + LfoIndex * (Cas. Offset)
+
+
Stage
+
+

オールパスフィルタを直列につなぐ個数です。 Stage + の値に比例して CPU 消費が増えるので注意してください。

+
+
Smooth
+
+

パラメータを変更したときに、変更前の値から変更後の値へと移行する秒数です。 + Stage 以外のパラメータに有効です。

+
+
+

+
    +
  • 0.1.20 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.19 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.18 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.17 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.16 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.15 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.14 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • +
    • x86_64 CPU の SIMD + 命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを + AVX に固定。
    • +
  • +
  • 0.1.13 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.12 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.11 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.10 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.9 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.8 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.7 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.6 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.5 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.4 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.3 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.2 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.1 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

+ + + diff --git a/docs/manual/FDN64Reverb/FDN64Reverb_en.html b/docs/manual/FDN64Reverb/FDN64Reverb_en.html index 2d18f35c..bf14976f 100644 --- a/docs/manual/FDN64Reverb/FDN64Reverb_en.html +++ b/docs/manual/FDN64Reverb/FDN64Reverb_en.html @@ -2,535 +2,570 @@ - - - - -FDN64Reverb_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FDN64Reverb

-

-

FDN64Reverb is a reverb equipped with a feedback delay network (FDN). -However, the size of feedback matrix is 64.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -550,679 +585,694 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Setting Feedback to 1 and Highpass Cutoff -to 0 might adds massive direct current depending on input signal.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-
-
Delay Time [s]
-
-

Delay times in seconds. Below is the equation to calculate the total -of delay time.

-
delayTime = (Time Multi.) * (Delay Time) + (Time LFO Amount) * random().
-

Note that maximum delay time do not exceed 1 second. This means that -if both Delay Time and Time LFO Amount are set -to 1, then LFO stop working.

-
-
Time LFO Amount [s]
-
-

Amounts of LFO modulation to delay times.

-

When Interp. Rate exceeds 1.0, LFO modulations start -adding noticeable noise. To get smooth output, recommend to set -Interp. Rate under 0.25.

-
-
Lowpass Cutoff [Hz]
-
-

Cutoff frequencies of lowpass filters that are applied to delay -outputs.

-
-
Highpass Cutoff [Hz]
-
-

Cutoff frequencies of highpass filters that are applied to delay -outputs.

-

Note that setting Feedback to 1 and -Highpass Cutoff to 0 might adds massive direct current -depending on input signal.

-
-
-

Delay

-
-
Time Multi.
-
-

A multiplier to Delay Time. Useful to change all the -delay time at once.

-
-
Feedback
-
-

Feedback amount of FDN. In other words, Feedback is a -scalar that multiplies feedback matrix.

-

When Feedback is close to 1.0, it lengthen the reverb -time. When set to exactly 1.0, the reverb stop to decay. In this case, -Gate can be used to shut down the reverb.

-
-
Interp. Rate
-
-

Rate limiting value of delay time interpolation. For example, when -Interp. Rate is set to 0.1, changing delay time from 0 to 1 -samples requires 10 samples of interpolation time.

-
-
Gate [dB]
-
-

Threshold of gate.

-

When input amplitude is less than the value of Gate for -a while, the gate modulates Stereo Cross to make output -amplitude to 0.

-

Gate is intended to use with rotation. Release time is approximately -5 ms.

-
-
Matrix
-
-

Type of feedback matrix. Note that changing this parameter may cause -pop nosie.

- ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
AbbreviationFull NameAdditional InfomationQuality
Ortho.OrthogonalGood
S. Ortho.Special orthogonalGood
Circ. Ortho.CirculantOK
Circ. 4Circulant4 non-zero elements per rowSFX
Circ. 8Circulant8 non-zero elements per rowSFX
Circ. 16Circulant16 non-zero elements per rowSFX
Circ. 32Circulant32 non-zero elements per rowSFX
Upper Tri. +Upper triangularRange of randomization is [0, 1]Bad
Upper Tri. -Upper triangularRange of randomization is [-1, 0]Bad
Lower Tri. +Lower triangularRange of randomization is [0, 1]Bad
Lower Tri. -Lower triangularRange of randomization is [-1, 0]Bad
Schroeder +Schroeder reverbRange of randomization is [0, 1]Bad
Schroeder -Schroeder reverbRange of randomization is [-1, 0]Bad
Absorbent +Absorbent allpassRange of randomization is [0, 1]OK
Absorbent -Absorbent allpassRange of randomization is [-1, 0]OK
HadamardHadamardNo randomizationGood
ConferenceConferenceNo randomizationGood
-

Quality is rough indication. Bad means it frequently adds metallic -tones to output. Good means almost no metallic tone. OK is in between -good and bad. SFX means they sound strange as a reverb. Bad matrices can -be used to add more effects with rotation.

-
-
Seed
-
-

Seed value for randomization of feedback matrix. Note that changing -this parameter may cause pop nosie.

-
-
Change Matrix
-
-

A button to randomize feedback matrix. Pressing -Change Matrix also changes the value of Seed. -Note that changing this parameter may cause pop nosie.

-
-
-

Mix

-
-
Dry [dB]
-
-

A gain applied to input signal which bypasses FDN.

-
-
Wet [dB]
-
-

FDN output gain.

-
-
Stereo Cross
-
-

Stereo crossing feedback amount between left and right FDNs. Setting -Stereo Cross to 1.0 stops input to prevent blow up.

-
-
-

Rotation

-
-
Speed [Hz]
-
-

Rotation speed of FDN input gains.

-
-
Offset
-
-

Initial phase of the waveform to rotate input gains.

-

Offset can be used to change the sound when -Speed is 0, but Skew is greater than 0. -Feedback matrix affects the character of output.

-
-
Skew
-
-

Changes the waveform used to rotate input gains. Note that when -Skew is set to 0, Speed and -Offset stop working.

-

Below is a plot of relation between Skew and rotation -waveform.

-
-Image of plot of relation between `Skew` parameter and rotation waveform. The equation of waveform is `exp(skew * sin(ω * t))`. -
-
-
-

Change Log

-
    -
  • 0.1.17 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.16 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.15 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.14 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.1.13 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.12 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.11 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.10 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
    • Fixed to reset Rotation counter.
    • -
  • -
  • 0.1.9 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.8 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.7 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.6 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed a bug that Interp. Rate is shared between all -FDN64Reverb instances.
    • -
  • -
  • 0.1.3 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.2 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.1 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

FDN64Reverb 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Setting Feedback to 1 and Highpass Cutoff + to 0 might adds massive direct current depending on input signal.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+
+
Delay Time [s]
+
+

Delay times in seconds. Below is the equation to calculate the + total of delay time.

+
delayTime = (Time Multi.) * (Delay Time) + (Time LFO Amount) * random().
+

Note that maximum delay time do not exceed 1 second. This means + that if both Delay Time and Time LFO Amount + are set to 1, then LFO stop working.

+
+
Time LFO Amount [s]
+
+

Amounts of LFO modulation to delay times.

+

When Interp. Rate exceeds 1.0, LFO modulations start + adding noticeable noise. To get smooth output, recommend to set + Interp. Rate under 0.25.

+
+
Lowpass Cutoff [Hz]
+
+

Cutoff frequencies of lowpass filters that are applied to delay + outputs.

+
+
Highpass Cutoff [Hz]
+
+

Cutoff frequencies of highpass filters that are applied to delay + outputs.

+

Note that setting Feedback to 1 and + Highpass Cutoff to 0 might adds massive direct current + depending on input signal.

+
+
+

+
+
Time Multi.
+
+

A multiplier to Delay Time. Useful to change all the + delay time at once.

+
+
Feedback
+
+

Feedback amount of FDN. In other words, Feedback is a + scalar that multiplies feedback matrix.

+

When Feedback is close to 1.0, it lengthen the reverb + time. When set to exactly 1.0, the reverb stop to decay. In this case, + Gate can be used to shut down the reverb.

+
+
Interp. Rate
+
+

Rate limiting value of delay time interpolation. For example, when + Interp. Rate is set to 0.1, changing delay time from 0 to + 1 samples requires 10 samples of interpolation time.

+
+
Gate [dB]
+
+

Threshold of gate.

+

When input amplitude is less than the value of Gate + for a while, the gate modulates Stereo Cross to make + output amplitude to 0.

+

Gate is intended to use with rotation. Release time is + approximately 5 ms.

+
+
Matrix
+
+

Type of feedback matrix. Note that changing this parameter may + cause pop nosie.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AbbreviationFull NameAdditional InfomationQuality
Ortho.OrthogonalGood
S. Ortho.Special orthogonalGood
Circ. Ortho.CirculantOK
Circ. 4Circulant4 non-zero elements per rowSFX
Circ. 8Circulant8 non-zero elements per rowSFX
Circ. 16Circulant16 non-zero elements per rowSFX
Circ. 32Circulant32 non-zero elements per rowSFX
Upper Tri. +Upper triangularRange of randomization is [0, 1]Bad
Upper Tri. -Upper triangularRange of randomization is [-1, 0]Bad
Lower Tri. +Lower triangularRange of randomization is [0, 1]Bad
Lower Tri. -Lower triangularRange of randomization is [-1, 0]Bad
Schroeder +Schroeder reverbRange of randomization is [0, 1]Bad
Schroeder -Schroeder reverbRange of randomization is [-1, 0]Bad
Absorbent +Absorbent allpassRange of randomization is [0, 1]OK
Absorbent -Absorbent allpassRange of randomization is [-1, 0]OK
HadamardHadamardNo randomizationGood
ConferenceConferenceNo randomizationGood
+

Quality is rough indication. Bad means it frequently adds metallic + tones to output. Good means almost no metallic tone. OK is in between + good and bad. SFX means they sound strange as a reverb. Bad matrices + can be used to add more effects with rotation.

+
+
Seed
+
+

Seed value for randomization of feedback matrix. Note that changing + this parameter may cause pop nosie.

+
+
Change Matrix
+
+

A button to randomize feedback matrix. Pressing + Change Matrix also changes the value of + Seed. Note that changing this parameter may cause pop + nosie.

+
+
+

+
+
Dry [dB]
+
+

A gain applied to input signal which bypasses FDN.

+
+
Wet [dB]
+
+

FDN output gain.

+
+
Stereo Cross
+
+

Stereo crossing feedback amount between left and right FDNs. + Setting Stereo Cross to 1.0 stops input to prevent blow + up.

+
+
+

+
+
Speed [Hz]
+
+

Rotation speed of FDN input gains.

+
+
Offset
+
+

Initial phase of the waveform to rotate input gains.

+

Offset can be used to change the sound when + Speed is 0, but Skew is greater than 0. + Feedback matrix affects the character of output.

+
+
Skew
+
+

Changes the waveform used to rotate input gains. Note that when + Skew is set to 0, Speed and + Offset stop working.

+

Below is a plot of relation between Skew and rotation + waveform.

+
+ Image of plot of relation between `Skew` parameter and rotation waveform. The equation of waveform is `exp(skew * sin(ω * t))`. +
+
+
+

+
    +
  • 0.1.17 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.16 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.15 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.14 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.1.13 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.12 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.11 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.10 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
    • Fixed to reset Rotation counter.
    • +
  • +
  • 0.1.9 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.8 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.7 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.6 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed a bug that Interp. Rate is shared between all + FDN64Reverb instances.
    • +
  • +
  • 0.1.3 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.2 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.1 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

FDN64Reverb is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/FDN64Reverb/FDN64Reverb_ja.html b/docs/manual/FDN64Reverb/FDN64Reverb_ja.html index 6db42fd5..c0e413d2 100644 --- a/docs/manual/FDN64Reverb/FDN64Reverb_ja.html +++ b/docs/manual/FDN64Reverb/FDN64Reverb_ja.html @@ -2,539 +2,575 @@ - - - - -FDN64Reverb_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FDN64Reverb

-

-

FDN64Reverbエフディーエヌ 64 リバーブ -はフィードバック・ディレイ・ネットワーク (FDN) を 1 -つだけ搭載したリバーブです。しかしながら、フィードバック行列の大きさは -64 です。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -554,675 +590,694 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

Feedback の値が 1 のときに Highpass Cutoff -の値を 0 にすると入力信号によっては極端な直流が乗ることがあります。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-
-
Delay Time [s]
-
-

ディレイ時間の秒数です。最終的なディレイ時間の秒数は以下の式で計算されます。

-
delayTime = (Time Multi.) * (Delay Time) + (Time LFO Amount) * random().
-

ディレイ時間は 1 秒を超えることはないので注意してください。例えば -Delay Time を最大に設定すると Time LFO Amount -の値によらず LFO はかかりません。

-
-
Time LFO Amount [s]
-
-

ディレイ時間に加算される LFO の量です。例えば -Time LFO Amount の値が 0.1 ならディレイ時間の最大値は -(Delay Time) + 0.1 秒になります。

-

Interp. Rate が 1.0 -を超えると変調によるノイズが目立ち始めます。とにかく滑らかな音が欲しいときは -Interp. Rate を 0.25 以下にすることを推奨します。

-
-
Lowpass Cutoff [Hz]
-
-

ディレイの出力にかかるローパスフィルタのカットオフ周波数です。

-
-
Highpass Cutoff [Hz]
-
-

ディレイの出力にかかるハイパスフィルタのカットオフ周波数です。

-

Feedback の値が 1 のときに Highpass Cutoff -の値を 0 にすると直流が乗ることがあるので注意してください。

-
-
-

Delay

-
-
Time Multi.
-
-

Delay Time -に乗算される値です。まとめてディレイ時間を変えたいときに便利です。

-
-
Feedback
-
-

FDN からフィードバックされる量です。別の言い方をすると FDN -のフィードバック行列に掛け合わされるスカラーです。

-

1.0 に近づくほどリバーブ時間が長くなります。 1.0 -のとき、ほとんど減衰しなくなります。このときは Gate -を使って残響を打ち切ることができます。

-
-
Interp. Rate
-
-

ディレイ時間の変動を補間するレートリミッタの 1 -サンプルあたりの制限量です。例えば Interp. Rate が 0.1 -のときは、 10 サンプル経過でディレイ時間が 0.1 * 10 = 1 -サンプル変わります。

-
-
Gate [dB]
-
-

ゲートのしきい値です。

-

入力振幅が Gate の値を一定時間下回ると、 -Stereo Cross の値を内部的に変調して出力振幅を 0 -にします。

-

このゲートは Rotation -使用時にフィードバックを打ち切るためにつけた機能です。リリース時間は約 5 -ms です。

-
-
Matrix
-
-

フィードバック行列の種類です。この値を変更するとポップノイズがでることがあるので注意してください。

- ------ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
GUI 上の略称行列名追加情報
Ortho.直交行列
S. Ortho.特殊直行行列
Circ. Ortho.巡回行列
Circ. 4巡回行列1 行当たりの非ゼロ要素が 4特殊効果
Circ. 8巡回行列1 行当たりの非ゼロ要素が 8特殊効果
Circ. 16巡回行列1 行当たりの非ゼロ要素が 16特殊効果
Circ. 32巡回行列1 行当たりの非ゼロ要素が 32特殊効果
Upper Tri. +上三角行列ランダマイズ範囲が [0, 1]
Upper Tri. -上三角行列ランダマイズ範囲が [-1, 0]
Lower Tri. +下三角行列ランダマイズ範囲が [0, 1]
Lower Tri. -下三角行列ランダマイズ範囲が [-1, 0]
Schroeder +シュローダー・リバーブ行列ランダマイズ範囲が [0, 1]
Schroeder -シュローダー・リバーブ行列ランダマイズ範囲が [-1, 0]
Absorbent +吸収オールパス行列ランダマイズ範囲が [0, 1]
Absorbent -吸収オールパス行列ランダマイズ範囲が [-1, 0]
Hadamardアダマール行列行列の性質よりランダマイズ無効
Conferenceカンファレンス行列行列の性質よりランダマイズ無効
-

質は大まかな目安です。ショートディレイによる金属的な質感が出やすいものは低、出にくいものは良としています。特殊効果としているものは一般的なリバーブとしては音が変という意味です。 -Rotation の効果は質が低いほど聞こえやすくなります。

-
-
Seed
-
-

フィードバック行列のランダマイズに使われるシード値です。この値を変更するとポップノイズがでることがあるので注意してください。

-
-
Change Matrix
-
-

フィードバック行列をランダマイズするボタンです。押すたびに -Seed -の値が変更されます。この値を変更するとポップノイズがでることがあるので注意してください。

-
-
-

Mix

-
-
Dry [dB]
-
-

FDN をバイパスした入力にかけ合わせられるゲインです。

-
-
Wet [dB]
-
-

FDN の出力にかけ合わせられるゲインです。

-
-
Stereo Cross
-
-

左右のチャンネルの FDN の出力をクロスしてフィードバックする量です。 -1.0 にすると発散を防ぐために入力を止めてしまうので注意してください。

-
-
-

Rotation

-
-
Speed [Hz]
-
-

FDN への入力ゲインを回転させる速度です。

-
-
Offset
-
-

入力ゲインの回転に使われる波形の初期位相です。

-

Speed が 0 かつ Skew が 0 -より大きいときに音を変えることができます。どのような音になるかはフィードバック行列のランダマイズに大きく影響されます。

-
-
Skew
-
-

入力ゲインの回転に使われる波形を変更します。 Skew が 0 -のときは SpeedOffset -を変えても音が変わらないので注意してください。

-

以下は Skew と波形の関係についてのプロットです。

-
-Image of plot of relation between `Skew` parameter and rotation waveform. The equation of waveform is `exp(skew * sin(ω * t))`. -
-
-
-

チェンジログ

-
    -
  • 0.1.17 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.16 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.15 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.14 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.1.13 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.12 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.11 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.10 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
    • Rotation のカウンタをリセットするように修正。
    • -
  • -
  • 0.1.9 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.8 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.7 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.6 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.5 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.4 -
      -
    • 複数のインスタンス間で Interp. Rate -が共有されるバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.2 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.1 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

Feedback の値が 1 のときに + Highpass Cutoff の値を 0 + にすると入力信号によっては極端な直流が乗ることがあります。

+

+

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

+

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

+

+

+
+
Delay Time [s]
+
+

ディレイ時間の秒数です。最終的なディレイ時間の秒数は以下の式で計算されます。

+
delayTime = (Time Multi.) * (Delay Time) + (Time LFO Amount) * random().
+

ディレイ時間は 1 秒を超えることはないので注意してください。例えば + Delay Time を最大に設定すると + Time LFO Amount の値によらず LFO はかかりません。

+
+
Time LFO Amount [s]
+
+

ディレイ時間に加算される LFO の量です。例えば + Time LFO Amount の値が 0.1 ならディレイ時間の最大値は + (Delay Time) + 0.1 秒になります。

+

Interp. Rate が 1.0 + を超えると変調によるノイズが目立ち始めます。とにかく滑らかな音が欲しいときは + Interp. Rate を 0.25 以下にすることを推奨します。

+
+
Lowpass Cutoff [Hz]
+
+

ディレイの出力にかかるローパスフィルタのカットオフ周波数です。

+
+
Highpass Cutoff [Hz]
+
+

ディレイの出力にかかるハイパスフィルタのカットオフ周波数です。

+

Feedback の値が 1 のときに + Highpass Cutoff の値を 0 + にすると直流が乗ることがあるので注意してください。

+
+
+

+
+
Time Multi.
+
+

Delay Time + に乗算される値です。まとめてディレイ時間を変えたいときに便利です。

+
+
Feedback
+
+

FDN からフィードバックされる量です。別の言い方をすると FDN + のフィードバック行列に掛け合わされるスカラーです。

+

1.0 に近づくほどリバーブ時間が長くなります。 1.0 + のとき、ほとんど減衰しなくなります。このときは Gate + を使って残響を打ち切ることができます。

+
+
Interp. Rate
+
+

ディレイ時間の変動を補間するレートリミッタの 1 + サンプルあたりの制限量です。例えば Interp. Rate が 0.1 + のときは、 10 サンプル経過でディレイ時間が 0.1 * 10 = 1 + サンプル変わります。

+
+
Gate [dB]
+
+

ゲートのしきい値です。

+

入力振幅が Gate の値を一定時間下回ると、 + Stereo Cross の値を内部的に変調して出力振幅を 0 + にします。

+

このゲートは Rotation + 使用時にフィードバックを打ち切るためにつけた機能です。リリース時間は約 + 5 ms です。

+
+
Matrix
+
+

フィードバック行列の種類です。この値を変更するとポップノイズがでることがあるので注意してください。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
GUI 上の略称行列名追加情報
Ortho.直交行列
S. Ortho.特殊直行行列
Circ. Ortho.巡回行列
Circ. 4巡回行列1 行当たりの非ゼロ要素が 4特殊効果
Circ. 8巡回行列1 行当たりの非ゼロ要素が 8特殊効果
Circ. 16巡回行列1 行当たりの非ゼロ要素が 16特殊効果
Circ. 32巡回行列1 行当たりの非ゼロ要素が 32特殊効果
Upper Tri. +上三角行列ランダマイズ範囲が [0, 1]
Upper Tri. -上三角行列ランダマイズ範囲が [-1, 0]
Lower Tri. +下三角行列ランダマイズ範囲が [0, 1]
Lower Tri. -下三角行列ランダマイズ範囲が [-1, 0]
Schroeder +シュローダー・リバーブ行列ランダマイズ範囲が [0, 1]
Schroeder -シュローダー・リバーブ行列ランダマイズ範囲が [-1, 0]
Absorbent +吸収オールパス行列ランダマイズ範囲が [0, 1]
Absorbent -吸収オールパス行列ランダマイズ範囲が [-1, 0]
Hadamardアダマール行列行列の性質よりランダマイズ無効
Conferenceカンファレンス行列行列の性質よりランダマイズ無効
+

質は大まかな目安です。ショートディレイによる金属的な質感が出やすいものは低、出にくいものは良としています。特殊効果としているものは一般的なリバーブとしては音が変という意味です。 + Rotation の効果は質が低いほど聞こえやすくなります。

+
+
Seed
+
+

フィードバック行列のランダマイズに使われるシード値です。この値を変更するとポップノイズがでることがあるので注意してください。

+
+
Change Matrix
+
+

フィードバック行列をランダマイズするボタンです。押すたびに + Seed + の値が変更されます。この値を変更するとポップノイズがでることがあるので注意してください。

+
+
+

+
+
Dry [dB]
+
+

FDN をバイパスした入力にかけ合わせられるゲインです。

+
+
Wet [dB]
+
+

FDN の出力にかけ合わせられるゲインです。

+
+
Stereo Cross
+
+

左右のチャンネルの FDN の出力をクロスしてフィードバックする量です。 + 1.0 + にすると発散を防ぐために入力を止めてしまうので注意してください。

+
+
+

+
+
Speed [Hz]
+
+

FDN への入力ゲインを回転させる速度です。

+
+
Offset
+
+

入力ゲインの回転に使われる波形の初期位相です。

+

Speed が 0 かつ Skew が 0 + より大きいときに音を変えることができます。どのような音になるかはフィードバック行列のランダマイズに大きく影響されます。

+
+
Skew
+
+

入力ゲインの回転に使われる波形を変更します。 Skew が 0 + のときは SpeedOffset + を変えても音が変わらないので注意してください。

+

以下は Skew と波形の関係についてのプロットです。

+
+ Image of plot of relation between `Skew` parameter and rotation waveform. The equation of waveform is `exp(skew * sin(ω * t))`. +
+
+
+

+
    +
  • 0.1.17 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.16 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.15 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.14 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.1.13 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.12 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.11 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.10 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
    • Rotation のカウンタをリセットするように修正。
    • +
  • +
  • 0.1.9 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.8 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.7 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.6 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.5 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.4 +
      +
    • 複数のインスタンス間で Interp. Rate + が共有されるバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.2 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.1 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/FDNCymbal/FDNCymbal_en.html b/docs/manual/FDNCymbal/FDNCymbal_en.html index beaa41f5..a21dccd3 100644 --- a/docs/manual/FDNCymbal/FDNCymbal_en.html +++ b/docs/manual/FDNCymbal/FDNCymbal_en.html @@ -2,548 +2,583 @@ - - - - -FDNCymbal_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FDNCymbal

-

-

FDNCymbal is a cymbal sound synthesizer. It can also be used as an -effect. Unlike the name, most of metallic texture comes from Schroeder -allpass section rather than FDN (feedback delay network). FDN section -makes nice impact sound when FDN.Time is short. Tremolo is -added to simulate wobbling of cymbal.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -563,492 +598,514 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

There’s no compatibility between version 0.1.x and 0.2.x.

-

When FDN.Feedback is non zero, it may possibly blow up. -If that happens, turn FDN.Feedback to leftmost.

-

When HP Cutoff is moving fast, it may output massive DC. -To avoid this, use Shift + Mouse Left Drag or turn up Smooth.

-

Use as Effect

-

FDNCymbal can be use as effect, but it’s not intuitive.

-

When loaded, FDNCymbal is muted to prevent unexpected blow up at -initialization. Therefore user must send MIDI note-on to FDNCymbal. Note -that output volume could be changed by velocity. Seed and -parameters under FDN section are only refreshed when -FDNCymbal receives a new note.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Gain

-

Output gain.

-

Smooth

-

Time in seconds to move the value of parameters from previous one to -changed one. Below is a list of parameter that is affected by -Smooth.

-
    -
  • Gain
  • -
  • FDN.Time
  • -
  • FDN.Feedback
  • -
  • FDN.CascadeMix
  • -
  • Allpass.Mix
  • -
  • Allpass.Stage1.Time
  • -
  • Allpass.Stage1.Feedback
  • -
  • Allpass.Stage2.Time
  • -
  • Allpass.Stage2.Feedback
  • -
  • Tremolo.Mix
  • -
  • Tremolo.Depth
  • -
  • Tremolo.Frequency
  • -
  • Tremolo.DelayTime
  • -
-

Stick

-

When Stick is on, each note on triggers stick -oscillator. Noise density and pitch of tone are related to the pitch of -note.

-
-
Pulse
-
-

Gain of impulse of stick oscillator.

-
-
Tone
-
-

Gain of sine wave tone of stick oscillator.

-
-
Velvet
-
-

Gain of velvet noise of stick oscillator.

-

Velvet noise is a noise algorithm which output different height of -impulses with randomized interval.

-
-
Decay
-
-

Decay time of stick oscillator.

-
-
-

Random

-
-
Seed
-
-

Value of random seed.

-
-
Retrigger.Time
-
-

When not checked, internal delay time controlled by following 3 -parameters will be changed for each note on.

-
    -
  • FDN.Time
  • -
  • Allpass.Stage1.Time
  • -
  • Allpass.Stage2.Time
  • -
-
-
Retrigger.Stick
-
-

When not checked, stick oscillator output varies for each note.

-
-
Retrigger.Tremolo
-
-

When not checked, tremolo parameters will be changed for each note -on.

-
-
-

FDN

-

When turned on, the signal go through FDN section.

-
-
Time
-
-

FDN delay time. Internal delay time will be randomized with respect -to this value.

-
-
Feedback
-
-

FDN section feedback. Beware that if this value is non zero, it’s -possible to blow up.

-
-
CascadeMix
-
-

Controls mixing of Cascaded FDN.

-
-
-

Allpass

-
-
Mix
-
-

Mixing ratio of Schroeder allpass section.

-
-
-

Stage 1 and Stage 2

-

Stage 1 is serially connected 8 Schroeder allpass. On stage 2, there -are 4 Schroeder allpass section connected in parallel. For each section -has serially connected 8 Schroeder allpass.

-
-
Time
-
-

Max delay time of Schroeder allpass section. Internally, delay time -will be randomized.

-
-
Feedback
-
-

Feedback of Schroeder allpass section.

-
-
HP Cutoff
-
-

Cutoff frequency of high-pass filter to the output of Schroeder -allpass section.

-
-
Tanh
-
-

When checked, stage 1 feedback go through tanh saturator.

-
-
-

Tremolo

-
-
Mix
-
-

Mixing ratio of tremolo effect.

-
-
Depth
-
-

Maximum change of amplitude with tremolo.

-
-
Frequency
-
-

Tremolo LFO frequency.

-
-
DelayTime
-
-

Maximum delay time. Delay time is modulated by LFO. This delay -simulates doppler effect.

-
-
-

Random (Tremolo)

-
-
Depth
-
-

Amount of randomization to Tremolo.Depth for each note -on.

-
-
Freq
-
-

Amount of randomization to Tremolo.Frequency for each -note on.

-
-
Time
-
-

Amount of randomization to Tremolo.DelayTime for each -note on.

-
-
-

Change Log

-
    -
  • 0.2.19 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.2.18 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.2.17 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.2.16 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.2.15 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.2.14 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.2.13 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.2.12 -
      -
    • Resume macOS build.
    • -
  • -
  • 0.2.11 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.2.10 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.2.9 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.2.8 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.2.7 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.2.6 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.2.5 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.2.4 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.2.3 -
      -
    • Added color configuration.
    • -
  • -
  • 0.2.2 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.2.1 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.2.0 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
    • Added Pulse parameter to control pulse gain.
    • -
    • Added Velvet parameter to control velvet noise -gain.
    • -
    • Changed ToneMix to Tone. Value range is -increased from [0, 0.002] to [0, 0.02].
    • -
    • Changed algorithm to allocate sine frequency.
    • -
    • Fixed velvet noise oscillator to randomize interval.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed to stop sounds when deactivated.
    • -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.4 -
      -
    • Enabled GUI for Linux build.
    • -
  • -
  • 0.1.3 -
      -
    • Fixed a bug that sound stops on Steinberg host.
    • -
  • -
  • 0.1.2 -
      -
    • 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.1 -
      -
    • Fixed note on/off event to be triggered at exact timing.
    • -
    • Fixed a bug that Allpass.Stage1.Feedback was -disabled.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

Presets for old versions.

- -

License

-

FDNCymbal 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

There’s no compatibility between version 0.1.x and 0.2.x.

+

When FDN.Feedback is non zero, it may possibly blow + up. If that happens, turn FDN.Feedback to leftmost.

+

When HP Cutoff is moving fast, it may output massive + DC. To avoid this, use Shift + Mouse Left Drag or turn up Smooth.

+

+

FDNCymbal can be use as effect, but it’s not intuitive.

+

When loaded, FDNCymbal is muted to prevent unexpected blow up at + initialization. Therefore user must send MIDI note-on to FDNCymbal. + Note that output volume could be changed by velocity. + Seed and parameters under FDN section are + only refreshed when FDNCymbal receives a new note.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

Output gain.

+

+

Time in seconds to move the value of parameters from previous one + to changed one. Below is a list of parameter that is affected by + Smooth.

+
    +
  • Gain
  • +
  • FDN.Time
  • +
  • FDN.Feedback
  • +
  • FDN.CascadeMix
  • +
  • Allpass.Mix
  • +
  • Allpass.Stage1.Time
  • +
  • Allpass.Stage1.Feedback
  • +
  • Allpass.Stage2.Time
  • +
  • Allpass.Stage2.Feedback
  • +
  • Tremolo.Mix
  • +
  • Tremolo.Depth
  • +
  • Tremolo.Frequency
  • +
  • Tremolo.DelayTime
  • +
+

+

When Stick is on, each note on triggers stick + oscillator. Noise density and pitch of tone are related to the pitch + of note.

+
+
Pulse
+
+

Gain of impulse of stick oscillator.

+
+
Tone
+
+

Gain of sine wave tone of stick oscillator.

+
+
Velvet
+
+

Gain of velvet noise of stick oscillator.

+

Velvet noise is a noise algorithm which output different height of + impulses with randomized interval.

+
+
Decay
+
+

Decay time of stick oscillator.

+
+
+

+
+
Seed
+
+

Value of random seed.

+
+
Retrigger.Time
+
+

When not checked, internal delay time controlled by following 3 + parameters will be changed for each note on.

+
    +
  • FDN.Time
  • +
  • Allpass.Stage1.Time
  • +
  • Allpass.Stage2.Time
  • +
+
+
Retrigger.Stick
+
+

When not checked, stick oscillator output varies for each note.

+
+
Retrigger.Tremolo
+
+

When not checked, tremolo parameters will be changed for each note + on.

+
+
+

+

When turned on, the signal go through FDN section.

+
+
Time
+
+

FDN delay time. Internal delay time will be randomized with respect + to this value.

+
+
Feedback
+
+

FDN section feedback. Beware that if this value is non zero, it’s + possible to blow up.

+
+
CascadeMix
+
+

Controls mixing of Cascaded FDN.

+
+
+

+
+
Mix
+
+

Mixing ratio of Schroeder allpass section.

+
+
+

+

Stage 1 is serially connected 8 Schroeder allpass. On stage 2, + there are 4 Schroeder allpass section connected in parallel. For each + section has serially connected 8 Schroeder allpass.

+
+
Time
+
+

Max delay time of Schroeder allpass section. Internally, delay time + will be randomized.

+
+
Feedback
+
+

Feedback of Schroeder allpass section.

+
+
HP Cutoff
+
+

Cutoff frequency of high-pass filter to the output of Schroeder + allpass section.

+
+
Tanh
+
+

When checked, stage 1 feedback go through tanh saturator.

+
+
+

+
+
Mix
+
+

Mixing ratio of tremolo effect.

+
+
Depth
+
+

Maximum change of amplitude with tremolo.

+
+
Frequency
+
+

Tremolo LFO frequency.

+
+
DelayTime
+
+

Maximum delay time. Delay time is modulated by LFO. This delay + simulates doppler effect.

+
+
+

+
+
Depth
+
+

Amount of randomization to Tremolo.Depth for each note + on.

+
+
Freq
+
+

Amount of randomization to Tremolo.Frequency for each + note on.

+
+
Time
+
+

Amount of randomization to Tremolo.DelayTime for each + note on.

+
+
+

+
    +
  • 0.2.19 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.2.18 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.2.17 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.2.16 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.2.15 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.2.14 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.2.13 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.2.12 +
      +
    • Resume macOS build.
    • +
  • +
  • 0.2.11 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.2.10 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.2.9 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.2.8 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.2.7 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.2.6 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.2.5 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.2.4 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.2.3 +
      +
    • Added color configuration.
    • +
  • +
  • 0.2.2 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.2.1 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.2.0 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
    • Added Pulse parameter to control pulse gain.
    • +
    • Added Velvet parameter to control velvet noise + gain.
    • +
    • Changed ToneMix to Tone. Value range is + increased from [0, 0.002] to [0, 0.02].
    • +
    • Changed algorithm to allocate sine frequency.
    • +
    • Fixed velvet noise oscillator to randomize interval.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed to stop sounds when deactivated.
    • +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.4 +
      +
    • Enabled GUI for Linux build.
    • +
  • +
  • 0.1.3 +
      +
    • Fixed a bug that sound stops on Steinberg host.
    • +
  • +
  • 0.1.2 +
      +
    • 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.1 +
      +
    • Fixed note on/off event to be triggered at exact timing.
    • +
    • Fixed a bug that Allpass.Stage1.Feedback was + disabled.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

Presets for old versions.

+ +

+

FDNCymbal is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/FDNCymbal/FDNCymbal_ja.html b/docs/manual/FDNCymbal/FDNCymbal_ja.html index 3d1b5a1b..35383649 100644 --- a/docs/manual/FDNCymbal/FDNCymbal_ja.html +++ b/docs/manual/FDNCymbal/FDNCymbal_ja.html @@ -2,550 +2,586 @@ - - - - -FDNCymbal_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FDNCymbal

-

-

FDNCymbalエフディーエヌ シンバル -はシンバルのような音を合成するシンセサイザです。エフェクトとして使うこともできます。名前とは裏腹に金属的な質感は -FDN (feedback delay network) ではなく Schroeder allpass section -によって得られています。 FDN.Time -の値を小さくすることで、わりとナイスなばちの衝突音が合成できます。シンバルの揺れをシミュレートするためにトレモロもついています。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -565,490 +601,513 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

バージョン 0.1.x と 0.2.x は互換性がありません。

-

FDN.Feedback の値が 0 -でないときは信号が発散することがあります。発散したときは -FDN.Feedback を一番左まで回してください。

-

HP Cutoff -の値を短時間に大きく変更すると直流が乗ることがあります。直流が乗ったときは、いったん -HP Cutoff を上げてから Shift + -左ドラッグ でゆっくりと下げなおしてください。

-

エフェクトとしての利用

-

FDNCymbal -はエフェクトとして使うこともできますが、直感的でない設定が必要となっています。

-

ロード直後の FDNCymbal -は初期化時に音が止まることを防ぐためにミュートされています。有効化するためには -FDNCymbal に MIDI -ノートオンを送る必要があります。ベロシティによって出力音量が変わるので注意してください。また -SeedFDN -セクションの値を変更したときは新しいノートオンを送るまで更新されません。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

Gain

-

出力音量です。

-

Smooth

-

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

-
    -
  • Gain
  • -
  • FDN.Time
  • -
  • FDN.Feedback
  • -
  • FDN.CascadeMix
  • -
  • Allpass.Mix
  • -
  • Allpass.Stage1.Time
  • -
  • Allpass.Stage1.Feedback
  • -
  • Allpass.Stage2.Time
  • -
  • Allpass.Stage2.Feedback
  • -
  • Tremolo.Mix
  • -
  • Tremolo.Depth
  • -
  • Tremolo.Frequency
  • -
  • Tremolo.DelayTime
  • -
-

Stick

-

Stick -がオンのとき、ノートオンのたびにばちでシンバルを叩きます。ノートの高さでノイズの密度とトーンの高さが変わります。

-
-
Pulse
-
-

ばちオシレータが出力するインパルスの音量です。

-
-
Tone
-
-

ばちオシレータが出力するサイン波によるトーンの音量です。

-
-
Velvet
-
-

ばちオシレータが出力するベルベットノイズの音量です。

-

ベルベットノイズはランダムな間隔で異なる高さのインパルスが出力されるノイズのアルゴリズムです。

-
-
Decay
-
-

ばちオシレータの減衰時間です。

-
-
-

Random

-
-
Seed
-
-

乱数のシード値です。

-
-
Retrigger.Time
-
-

チェックを外すと、次の 3 -つのパラメータでコントロールされる内部的なディレイ時間がノートオンのたびに変わります。

-
    -
  • FDN.Time
  • -
  • Allpass.Stage1.Time
  • -
  • Allpass.Stage2.Time
  • -
-
-
Retrigger.Stick
-
-

チェックを外すと、ノートオンのたびにばちオシレータの音が変わります。

-
-
Retrigger.Tremolo
-
-

チェックを外すと、トレモロのパラメータがノートオンのたびに変わります。

-
-
-

FDN

-

オンのときはFDN (feedback delay network) -セクションを信号が通過します。

-
-
Time
-
-

FDN -のディレイ時間を調整します。内部的なディレイ時間はノブで設定した値をもとにランダマイズされます。

-
-
Feedback
-
-

FDN セクションのフィードバックです。この値が 0 -でないときは信号が発散することがあるので注意してください。

-
-
CascadeMix
-
-

直列につないだ複数の FDN の出力のミックスを調整します。

-
-
-

Allpass

-
-
Mix
-
-

Schroeder allpass section のミックスを調整します。

-
-
-

Stage 1 と Stage 2

-

2 つの Schroeder allpass section が直列につながっています。 Stage 2 -では 4 つの Schroeder allpass section が並列接続されています。

-
-
Time
-
-

Schroeder allpass section -のディレイ時間の最大値です。ディレイ時間は内部的にランダマイズされます。

-
-
Feedback
-
-

Schroeder allpass section のフィードバックです。

-
-
HP Cutoff
-
-

Schroeder allpass section -の出力にかかるハイパスフィルタのカットオフ周波数です。

-
-
Tanh
-
-

チェックを入れると Stage 1 -のフィードバックにサチュレーションがかかります。

-
-
-

Tremolo

-
-
Mix
-
-

トレモロのミックスを調整します。

-
-
Depth
-
-

Depth -が大きいほどトレモロによる音量の変化が大きくなります。

-
-
Frequency
-
-

トレモロに使われる LFO の周波数です。

-
-
DelayTime
-
-

LFO -によって変化するディレイ時間の最大値です。シンバルの揺れによって生じるドップラー効果を表現しています。

-
-
-

Random (Tremolo)

-
-
Depth
-
-

ノートオンのたびに Tremolo.Depth -をランダマイズする度合いです。

-
-
Freq
-
-

ノートオンのたびに Tremolo.Frequency -をランダマイズする度合いです。

-
-
Time
-
-

ノートオンのたびに Tremolo.DelayTime -をランダマイズする度合いです。

-
-
-

チェンジログ

-
    -
  • 0.2.19 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.2.18 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.2.17 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.2.16 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.2.15 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.2.14 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.2.13 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.2.12 -
      -
    • macOS ビルドを復帰。
    • -
  • -
  • 0.2.11 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.2.10 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.2.9 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.2.8 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.2.7 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.2.6 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.2.5 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.2.4 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.2.3 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.2.2 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.2.1 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.2.0 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
    • Pulse パラメータの追加。
    • -
    • Velvet パラメータの追加。
    • -
    • ToneMix の名前を Tone に変更。値の範囲も -[0, 0.002] から [0, 0.02] に変更。
    • -
    • サイン波の周波数を割り当てるアルゴリズムを変更。
    • -
    • ベルベットノイズオシレータのインパルスの間隔がランダムで無かったバグを修正。
    • -
  • -
  • 0.1.5 -
      -
    • 非アクティブ化で音が止まるように修正。
    • -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • Linux ビルドの GUI を有効化。
    • -
  • -
  • 0.1.3 -
      -
    • Steinberg のホストで音が止まるバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • -
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • -
    • リロード時にクラッシュするバグを修正。
    • -
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • -
  • -
  • 0.1.1 -
      -
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • -
    • Allpass.Stage1.Feedback -が無効になっていたバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

旧バージョン向けのプリセットです。

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

バージョン 0.1.x と 0.2.x は互換性がありません。

+

FDN.Feedback の値が 0 + でないときは信号が発散することがあります。発散したときは + FDN.Feedback を一番左まで回してください。

+

HP Cutoff + の値を短時間に大きく変更すると直流が乗ることがあります。直流が乗ったときは、いったん + HP Cutoff を上げてから Shift + + 左ドラッグ でゆっくりと下げなおしてください。

+

+

FDNCymbal + はエフェクトとして使うこともできますが、直感的でない設定が必要となっています。

+

ロード直後の FDNCymbal + は初期化時に音が止まることを防ぐためにミュートされています。有効化するためには + FDNCymbal に MIDI + ノートオンを送る必要があります。ベロシティによって出力音量が変わるので注意してください。また + SeedFDN + セクションの値を変更したときは新しいノートオンを送るまで更新されません。

+

+

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

+

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

+

+

+

+

出力音量です。

+

+

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

+
    +
  • Gain
  • +
  • FDN.Time
  • +
  • FDN.Feedback
  • +
  • FDN.CascadeMix
  • +
  • Allpass.Mix
  • +
  • Allpass.Stage1.Time
  • +
  • Allpass.Stage1.Feedback
  • +
  • Allpass.Stage2.Time
  • +
  • Allpass.Stage2.Feedback
  • +
  • Tremolo.Mix
  • +
  • Tremolo.Depth
  • +
  • Tremolo.Frequency
  • +
  • Tremolo.DelayTime
  • +
+

+

Stick + がオンのとき、ノートオンのたびにばちでシンバルを叩きます。ノートの高さでノイズの密度とトーンの高さが変わります。

+
+
Pulse
+
+

ばちオシレータが出力するインパルスの音量です。

+
+
Tone
+
+

ばちオシレータが出力するサイン波によるトーンの音量です。

+
+
Velvet
+
+

ばちオシレータが出力するベルベットノイズの音量です。

+

ベルベットノイズはランダムな間隔で異なる高さのインパルスが出力されるノイズのアルゴリズムです。

+
+
Decay
+
+

ばちオシレータの減衰時間です。

+
+
+

+
+
Seed
+
+

乱数のシード値です。

+
+
Retrigger.Time
+
+

チェックを外すと、次の 3 + つのパラメータでコントロールされる内部的なディレイ時間がノートオンのたびに変わります。

+
    +
  • FDN.Time
  • +
  • Allpass.Stage1.Time
  • +
  • Allpass.Stage2.Time
  • +
+
+
Retrigger.Stick
+
+

チェックを外すと、ノートオンのたびにばちオシレータの音が変わります。

+
+
Retrigger.Tremolo
+
+

チェックを外すと、トレモロのパラメータがノートオンのたびに変わります。

+
+
+

+

オンのときはFDN (feedback delay network) + セクションを信号が通過します。

+
+
Time
+
+

FDN + のディレイ時間を調整します。内部的なディレイ時間はノブで設定した値をもとにランダマイズされます。

+
+
Feedback
+
+

FDN セクションのフィードバックです。この値が 0 + でないときは信号が発散することがあるので注意してください。

+
+
CascadeMix
+
+

直列につないだ複数の FDN の出力のミックスを調整します。

+
+
+

+
+
Mix
+
+

Schroeder allpass section のミックスを調整します。

+
+
+

+

2 つの Schroeder allpass section が直列につながっています。 Stage 2 + では 4 つの Schroeder allpass section が並列接続されています。

+
+
Time
+
+

Schroeder allpass section + のディレイ時間の最大値です。ディレイ時間は内部的にランダマイズされます。

+
+
Feedback
+
+

Schroeder allpass section のフィードバックです。

+
+
HP Cutoff
+
+

Schroeder allpass section + の出力にかかるハイパスフィルタのカットオフ周波数です。

+
+
Tanh
+
+

チェックを入れると Stage 1 + のフィードバックにサチュレーションがかかります。

+
+
+

+
+
Mix
+
+

トレモロのミックスを調整します。

+
+
Depth
+
+

Depth + が大きいほどトレモロによる音量の変化が大きくなります。

+
+
Frequency
+
+

トレモロに使われる LFO の周波数です。

+
+
DelayTime
+
+

LFO + によって変化するディレイ時間の最大値です。シンバルの揺れによって生じるドップラー効果を表現しています。

+
+
+

+
+
Depth
+
+

ノートオンのたびに Tremolo.Depth + をランダマイズする度合いです。

+
+
Freq
+
+

ノートオンのたびに Tremolo.Frequency + をランダマイズする度合いです。

+
+
Time
+
+

ノートオンのたびに Tremolo.DelayTime + をランダマイズする度合いです。

+
+
+

+
    +
  • 0.2.19 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.2.18 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.2.17 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.2.16 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.2.15 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.2.14 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.2.13 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.2.12 +
      +
    • macOS ビルドを復帰。
    • +
  • +
  • 0.2.11 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.2.10 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.2.9 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.2.8 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.2.7 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.2.6 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.2.5 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.2.4 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.2.3 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.2.2 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.2.1 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.2.0 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
    • Pulse パラメータの追加。
    • +
    • Velvet パラメータの追加。
    • +
    • ToneMix の名前を Tone に変更。値の範囲も + [0, 0.002] から [0, 0.02] に変更。
    • +
    • サイン波の周波数を割り当てるアルゴリズムを変更。
    • +
    • ベルベットノイズオシレータのインパルスの間隔がランダムで無かったバグを修正。
    • +
  • +
  • 0.1.5 +
      +
    • 非アクティブ化で音が止まるように修正。
    • +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • Linux ビルドの GUI を有効化。
    • +
  • +
  • 0.1.3 +
      +
    • Steinberg のホストで音が止まるバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • +
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • +
    • リロード時にクラッシュするバグを修正。
    • +
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • +
  • +
  • 0.1.1 +
      +
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • +
    • Allpass.Stage1.Feedback + が無効になっていたバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

旧バージョン向けのプリセットです。

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/FeedbackPhaser/FeedbackPhaser_en.html b/docs/manual/FeedbackPhaser/FeedbackPhaser_en.html index 2a238188..fc5f7e95 100644 --- a/docs/manual/FeedbackPhaser/FeedbackPhaser_en.html +++ b/docs/manual/FeedbackPhaser/FeedbackPhaser_en.html @@ -2,548 +2,585 @@ - - - - -FeedbackPhaser_en - - - - + + + + + FeedbackPhaser_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FeedbackPhaser

-

-

FeedbackPhaser is a phaser but the modulation source is feedback -signal rather than an LFO. It sounds more like a distortion rather than -a phaser most of times.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -563,353 +600,378 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

It is recommended to always insert limiter after FeedbackPhaser. -Output amplitude can exceed +140 dB, depending on the values of Feedback -Amount and Safety Clip.

-

Usage

-

Quick Start

-

Below is an example setup steps.

-
    -
  1. Launch FeedbackPhaser.
  2. -
  3. Lower Output depending on the amplitude of input.
  4. -
  5. Change Feedback Amount.
  6. -
  7. Change Modulation Amount.
  8. -
  9. Change Safety Clip.
  10. -
-

Output amplitude is mostly determined by above steps. After that, -start changing other parameters.

-

Note that the character of Modulation Amount changes -depending on Modulation Type. It consequently changes the -output amplitude.

-

Taming Feedback

-

Safety Clip is the most important parameter to limit -output amplitude. if feedback amplitude exceeds Safety Clip -amplitude, the text indicator:

-
Output is clean.
-

changes to:

-
Too much feedback.
-

Distortion will be added when “Too much feedback.” is displayed. If -distortion is not desired, increase Safety Clip, and -decrease Output.

-

Sometimes increasing Safety Clip can’t stop distortion. -In this case, reduce Feedback Amount and/or Modulation -Amount.

-

Where to Automate

-

Following parameters might be fun to automate.

-
    -
  • Allpass -
      -
    • Spread.
    • -
    • Center.
    • -
  • -
  • Modulation -
      -
    • Mod. Asym..
    • -
  • -
-

Also, note event can be used to control Allpass -Center.

-

More Allpass Stage adds more resonance for feedback. -However, it also dilutes the texture of input signal.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in FeedbackPhaser.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [st.] : Semitone.
  • -
  • [Hz] : Frequency in Hertz.
  • -
-

Gain

-
-
Output [dB]
-
-

Output gain.

-
-
Highpass [Hz]
-
-

Cutoff frequency of highpass filter that is applied right before -output.

-

This highpass filter is used to remove direct current.

-
-
Mix
-
-

Mixing ratio of input and output.

-

Intensity of Feedback -> Amount changes depending on -value of Mix.

-
-
-

Feedback

-
-
Amount
-
-

Amount of feedback.

-

Feedback signal may be hard clipped when absolute value of Feedback --> Amount is high.

-
-
Safety Clip [dB]
-
-

When amplitude of feedback signal exceeds Safety Clip, -feedback signal will be hard clipped internally.

-

FeedbackPhaser applies hard clipping on feedback signal to prevent -blowing up. Distortion will occur when hard clipping is engaged.

-

To get clean sound, increase Safety Clip until text -indicator in the Feedback section stays to -Output is clean., and no longer changes to -Too much feedback. Beware that increasing -Safety Clip sometimes drastically increases output -amplitude. To compensate, turn down Output at the same -time.

-
-
Highpass [Hz]
-
-

Cutoff frequency of highpass filter that is applied to feedback -signal.

-
-
-

Allpass

-
-
Stage
-
-

Number of allpass filters to serially connect.

-
-
Spread
-
-

Value to determine allpass filter cutoff frequency distribution.

-

When Spread is 0, all of cutoff frequencies become as -same as Center. When Spread is 1, cutoff -frequencies becomes higher for later index, as in -Center * 1, Center * 2, -Center * 3, and so on.

-

Below is the formula to calculate cutoff frequency of allpass -filter.

-
allpassCutoffHz = modulation * Center * (1 - Spread * (index - 1)).
-
-
Center [Hz]
-
-

Cutoff frequency of allpass filters when not modulated.

-
-
-

Modulation

-
-
Type
-
-

Type of modulation scaling.

-
    -
  • Exp. Mul. : Exponentially multiplies modulation amount -as Center * 2^modulation.
  • -
  • Lin. Mul. : Linearly multiplies modulation amount as -Center * modulation.
  • -
  • Add : Adds modulation amount as -Center + modulation.
  • -
-

The formulas on the list above aren’t directly used in -implementation. Range restrictions and other things are also performed -to avoid invalid values.

-
-
Amount
-
-

Amount of modulation by feedback signal.

-

Modulation is applied to cutoff frequency of allpass filter.

-
-
Mod. Asym.
-
-

Mixing ratio between raw and full-wave rectified modulation -signal.

-
-
Post LP [Hz]
-
-

Lowpass filter cutoff frequency.

-

This lowpass filter applies to allpass filter cutoff frequencies -after modulation.

-
-
-

Note

-
-
Transpose [st.]
-
-

Note event transpose amount in semitones.

-
-
To Allpass
-
-

Multiplier to pitch of a note.

-

When To Allpass is 1, pitch is used without scaling.

-

Note that FeedbackPhaser uses relative pitch represented by note, not -absolute frequency represented by note.

-
-
Slide [s]
-
-

Pitch slide time when receiving a note-on before receiving a note-off -of another note.

-
-
Release [s]
-
-

Approximate time to return to Center from pitch of last -note.

-
-
-

Misc.

-
-
Side Chain
-
-

When lit, uses sidechain input as modulating signal.

-
-
Smoothing [s]
-
-

Time to reach new value after change of parameter.

-
-
Oversampling
-
-

Oversampling ratio.

-

Increasing oversampling ratio may suppress gritty noise that appears -when modulation is high. However, CPU load increases with higher -oversampling ratio.

-
-
-

Change Log

-
    -
  • 0.1.4 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.3 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.2 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed a bug that sending sound before opening GUI cause crash on -Renoise.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

FeedbackPhaser 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

It is recommended to always insert limiter after FeedbackPhaser. + Output amplitude can exceed +140 dB, depending on the values of + Feedback Amount and Safety Clip.

+

+

+

Below is an example setup steps.

+
    +
  1. Launch FeedbackPhaser.
  2. +
  3. Lower Output depending on the amplitude of + input.
  4. +
  5. Change Feedback Amount.
  6. +
  7. Change Modulation Amount.
  8. +
  9. Change Safety Clip.
  10. +
+

Output amplitude is mostly determined by above steps. After that, + start changing other parameters.

+

Note that the character of Modulation Amount changes + depending on Modulation Type. It consequently changes the + output amplitude.

+

+

Safety Clip is the most important parameter to limit + output amplitude. if feedback amplitude exceeds + Safety Clip amplitude, the text indicator:

+
Output is clean.
+

changes to:

+
Too much feedback.
+

Distortion will be added when “Too much feedback.” is displayed. If + distortion is not desired, increase Safety Clip, and + decrease Output.

+

Sometimes increasing Safety Clip can’t stop + distortion. In this case, reduce Feedback Amount and/or + Modulation Amount.

+

+

Following parameters might be fun to automate.

+
    +
  • Allpass +
      +
    • Spread.
    • +
    • Center.
    • +
  • +
  • Modulation +
      +
    • Mod. Asym..
    • +
  • +
+

Also, note event can be used to control Allpass + Center.

+

More Allpass Stage adds more resonance for feedback. + However, it also dilutes the texture of input signal.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in FeedbackPhaser.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [st.] : Semitone.
  • +
  • [Hz] : Frequency in Hertz.
  • +
+

+
+
Output [dB]
+
+

Output gain.

+
+
Highpass [Hz]
+
+

Cutoff frequency of highpass filter that is applied right before + output.

+

This highpass filter is used to remove direct current.

+
+
Mix
+
+

Mixing ratio of input and output.

+

Intensity of Feedback -> Amount changes depending + on value of Mix.

+
+
+

+
+
Amount
+
+

Amount of feedback.

+

Feedback signal may be hard clipped when absolute value of Feedback + -> Amount is high.

+
+
Safety Clip [dB]
+
+

When amplitude of feedback signal exceeds Safety Clip, + feedback signal will be hard clipped internally.

+

FeedbackPhaser applies hard clipping on feedback signal to prevent + blowing up. Distortion will occur when hard clipping is engaged.

+

To get clean sound, increase Safety Clip until text + indicator in the Feedback section stays to + Output is clean., and no longer changes to + Too much feedback. Beware that increasing + Safety Clip sometimes drastically increases output + amplitude. To compensate, turn down Output at the same + time.

+
+
Highpass [Hz]
+
+

Cutoff frequency of highpass filter that is applied to feedback + signal.

+
+
+

+
+
Stage
+
+

Number of allpass filters to serially connect.

+
+
Spread
+
+

Value to determine allpass filter cutoff frequency + distribution.

+

When Spread is 0, all of cutoff frequencies become as + same as Center. When Spread is 1, cutoff + frequencies becomes higher for later index, as in + Center * 1, Center * 2, + Center * 3, and so on.

+

Below is the formula to calculate cutoff frequency of allpass + filter.

+
allpassCutoffHz = modulation * Center * (1 - Spread * (index - 1)).
+
+
Center [Hz]
+
+

Cutoff frequency of allpass filters when not modulated.

+
+
+

+
+
Type
+
+

Type of modulation scaling.

+
    +
  • Exp. Mul. : Exponentially multiplies modulation + amount as Center * 2^modulation.
  • +
  • Lin. Mul. : Linearly multiplies modulation amount as + Center * modulation.
  • +
  • Add : Adds modulation amount as + Center + modulation.
  • +
+

The formulas on the list above aren’t directly used in + implementation. Range restrictions and other things are also performed + to avoid invalid values.

+
+
Amount
+
+

Amount of modulation by feedback signal.

+

Modulation is applied to cutoff frequency of allpass filter.

+
+
Mod. Asym.
+
+

Mixing ratio between raw and full-wave rectified modulation + signal.

+
+
Post LP [Hz]
+
+

Lowpass filter cutoff frequency.

+

This lowpass filter applies to allpass filter cutoff frequencies + after modulation.

+
+
+

+
+
Transpose [st.]
+
+

Note event transpose amount in semitones.

+
+
To Allpass
+
+

Multiplier to pitch of a note.

+

When To Allpass is 1, pitch is used without + scaling.

+

Note that FeedbackPhaser uses relative pitch represented by note, + not absolute frequency represented by note.

+
+
Slide [s]
+
+

Pitch slide time when receiving a note-on before receiving a + note-off of another note.

+
+
Release [s]
+
+

Approximate time to return to Center from pitch of + last note.

+
+
+

+
+
Side Chain
+
+

When lit, uses sidechain input as modulating signal.

+
+
Smoothing [s]
+
+

Time to reach new value after change of parameter.

+
+
Oversampling
+
+

Oversampling ratio.

+

Increasing oversampling ratio may suppress gritty noise that + appears when modulation is high. However, CPU load increases with + higher oversampling ratio.

+
+
+

+
    +
  • 0.1.4 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.3 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.2 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed a bug that sending sound before opening GUI cause crash on + Renoise.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

FeedbackPhaser is licensed under GPLv3. Complete licenses are + linked below.

+ +

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

+

+

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

+ + + diff --git a/docs/manual/FeedbackPhaser/FeedbackPhaser_ja.html b/docs/manual/FeedbackPhaser/FeedbackPhaser_ja.html index 0ff513ac..c43d8c9c 100644 --- a/docs/manual/FeedbackPhaser/FeedbackPhaser_ja.html +++ b/docs/manual/FeedbackPhaser/FeedbackPhaser_ja.html @@ -2,550 +2,587 @@ - - - - -FeedbackPhaser_ja - - - - + + + + + FeedbackPhaser_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

FeedbackPhaser

-

-

FeedbackPhaserフィードバック フェイザ は LFO -ではなくフィードバックによってオールパスフィルタのカットオフ周波数を変調するフェイザです。主に歪み系の音が出ます。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -565,345 +602,371 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

FeedbackPhaser の後に必ずリミッタを挿入することを推奨します。 -Feedback -> AmountSafety Clip -の値によっては出力振幅が +140 dB を超えることがあります。

-

使い方

-

起動時の設定

-

以下は、セットアップ手順の例です。

-
    -
  1. FeedbackPhaser を起動します。
  2. -
  3. 入力の振幅に応じて Output を下げます。
  4. -
  5. Feedback -> Amount を変更します。
  6. -
  7. Modulation -> Amount を変更します。 -5.Safety Clip を変更します。
  8. -
-

出力振幅は上記の手順でほぼ決まります。先に音量を決めておけば他のパラメータの変更がスムーズになります。

-

Modulation -> Type によって Modulation -> -Amount -の効きが変わるので注意してください。出力振幅の変化につながります。

-

フィードバックの発散の抑制

-

Safety Clip -は、出力振幅を制限するための最も重要なパラメータです。 -フィードバックの振幅が Safety Clip の振幅を超える場合、 -Feedback セクションの:

-
Output is clean.
-

が、以下に変わります。

-
Too much feedback.
-

“Too much feedback.” -が表示されているときは内部的に歪みが生じています。歪みを避けるときは -Safety Clip を上げて、 Output を下げます。

-

Safety Clip を上げても歪みを止められないことがあります。 -この場合 Feedback -> Amount と Modulation -> -Amount を下げてください。

-

オートメーションのかけ方

-

以下のパラメータをオートメーションすると面白い音になるかもしれません。

-
    -
  • Allpass -
      -
    • Spread.
    • -
    • Center.
    • -
  • -
  • Modulation -
      -
    • Mod. Asym..
    • -
  • -
-

また、ノートイベントによってオールパスフィルタのカットオフ周波数を制御できます。ノートイベントをプラグインに送る方法は、お使いの -DAW のマニュアルを参照してください。

-

Allpass -> Stage -を増やすとフィードバックのレゾナンスがより強くなります。 -ただし、入力信号の質感も薄まります。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
  • [st.] : 半音 (semitone) 。
  • -
  • [Hz] : 周波数 (Hertz) 。
  • -
-

Gain

-
-
Output [dB]
-
-

出力ゲインです。

-
-
Highpass [Hz]
-
-

出力の直前に通過するハイパスフィルタのカットオフ周波数です。

-

このフィルタは直流の除去を目的としています。

-
-
Mix
-
-

入出力の混合比です。

-

Mix の値によって Feedback -> Amount -の強さが変わります。

-
-
-

Feedback

-
-
Amount
-
-

フィードバックの強さです。

-

Feedback -> Amount -の絶対値が大きいときはフィードバック信号がハードクリップされることがあります。

-
-
Safety Clip [dB]
-
-

フィードバック信号の振幅が Safety Clip -を超えると、フィードバック信号は内部でハードクリップされます。

-

FeedbackPhaser -では、フィードバックによる発散を抑えるために内部的にハードクリッピングが行われています。ハードクリッピングがかかるとフィードバックに歪みが加わって音が変わります。

-

クリーンな音を出したいときは Feedback セクションの -Output is clean. という表示が -Too much feedback. に変わらなくなるまで -Safety Clip -の値を上げてください。ただし、出力振幅が跳ね上がるので、 -Safety Clip を上げた分だけ Gain セクションの -Output を下げることを推奨します。

-
-
Highpass [Hz]
-
-

フィードバック信号が通過するハイパスフィルタのカットオフ周波数です。

-
-
-

Allpass

-
-
Stage
-
-

直列につなぐオールパスフィルタの数です。

-
-
Spread
-
-

オールパスフィルタのカットオフ周波数の分布を変更する値です。

-

Spread が 0 のとき、すべてのカットオフ周波数は -Center と同じになります。 Spread が 1 -のとき、カットオフ周波数は通過する順に Center * 1 、 -Center * 2Center * 3 、 … -と高くなっていきます。

-

以下はオールパスフィルタのカットオフ周波数の計算式です。

-
allpassCutoffHz = modulation * Center * (1 - Spread * (index - 1)).
-
-
Center [Hz]
-
-

変調がかかっていないときのオールパスフィルタのカットオフ周波数です。

-
-
-

Modulation

-
-
Type
-
-

フィードバックによる変調のスケーリングの種類です。

-
    -
  • Exp. Mul. : Center * 2^modulation -として指数関数を使ったスケーリングを行います。
  • -
  • Lin. Mul. : Center * modulation -として変調波を乗算します。
  • -
  • Add : Center + modulation -として変調波を加算します。
  • -
-

上のリストの式はそのまま実装で使われている形ではないことに注意してください。上式に加えて不正な値を避けるため、値の範囲の制限などが行われます。

-
-
Amount
-
-

フィードバックによる変調の量です。

-

変調はオールパスフィルタのカットオフ周波数に対してかかります。

-
-
Mod. Asym.
-
-

そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

-
-
Post LP [Hz]
-
-

変調後のオールパスフィルタのカットオフ周波数が通過する、ローパスフィルタのカットオフ周波数です。

-
-
-

Note

-
-
Transpose [st.]
-
-

中心となるノートを変更する値です。

-
-
To Allpass
-
-

ノートのピッチの倍率です。

-

To Allpass が 1 -のときにノートのピッチが表す比率がそのまま使われます。

-

FeedbackPhaser -が使うのはノートが表す相対的なピッチであり、ノートが表す絶対的な周波数が使われることはない点に注意してください。

-
-
Slide [s]
-
-

あるノートのノートオフを受け取る前に、別のノートのノートオンを受け取ったときにピッチをスライドする時間です。

-
-
Release [s]
-
-

最後のノートのピッチから Center -に戻るまでにかかる大まかな時間です。

-
-
-

Misc.

-
-
Side Chain
-
-

点灯させるとサイドチェイン入力を変調信号として使います。

-
-
Smoothing [s]
-
-

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

-
-
Oversampling
-
-

オーバーサンプリングの倍率です。

-

オーバーサンプリングの倍率を上げると変調が強いときに乗る、ざらざらとしたノイズが消えることがあります。ただし -CPU 負荷は倍率に応じて上がります。

-
-
-

チェンジログ

-
    -
  • 0.1.4 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.3 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.1 -
      -
    • Renoise で GUI -を開く前に音を入力するとクラッシュするバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

FeedbackPhaser の後に必ずリミッタを挿入することを推奨します。 + Feedback -> AmountSafety Clip + の値によっては出力振幅が +140 dB を超えることがあります。

+

+

+

以下は、セットアップ手順の例です。

+
    +
  1. FeedbackPhaser を起動します。
  2. +
  3. 入力の振幅に応じて Output を下げます。
  4. +
  5. Feedback -> Amount を変更します。
  6. +
  7. Modulation -> Amount を変更します。 + 5.Safety Clip を変更します。
  8. +
+

出力振幅は上記の手順でほぼ決まります。先に音量を決めておけば他のパラメータの変更がスムーズになります。

+

Modulation -> Type によって Modulation -> + Amount + の効きが変わるので注意してください。出力振幅の変化につながります。

+

+

Safety Clip + は、出力振幅を制限するための最も重要なパラメータです。 + フィードバックの振幅が Safety Clip の振幅を超える場合、 + Feedback セクションの:

+
Output is clean.
+

が、以下に変わります。

+
Too much feedback.
+

“Too much feedback.” + が表示されているときは内部的に歪みが生じています。歪みを避けるときは + Safety Clip を上げて、 Output + を下げます。

+

Safety Clip + を上げても歪みを止められないことがあります。 この場合 Feedback -> + Amount と Modulation -> Amount + を下げてください。

+

+

以下のパラメータをオートメーションすると面白い音になるかもしれません。

+
    +
  • Allpass +
      +
    • Spread.
    • +
    • Center.
    • +
  • +
  • Modulation +
      +
    • Mod. Asym..
    • +
  • +
+

また、ノートイベントによってオールパスフィルタのカットオフ周波数を制御できます。ノートイベントをプラグインに送る方法は、お使いの + DAW のマニュアルを参照してください。

+

Allpass -> Stage + を増やすとフィードバックのレゾナンスがより強くなります。 + ただし、入力信号の質感も薄まります。

+

+

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

+

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

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
  • [st.] : 半音 (semitone) 。
  • +
  • [Hz] : 周波数 (Hertz) 。
  • +
+

+
+
Output [dB]
+
+

出力ゲインです。

+
+
Highpass [Hz]
+
+

出力の直前に通過するハイパスフィルタのカットオフ周波数です。

+

このフィルタは直流の除去を目的としています。

+
+
Mix
+
+

入出力の混合比です。

+

Mix の値によって Feedback -> Amount + の強さが変わります。

+
+
+

+
+
Amount
+
+

フィードバックの強さです。

+

Feedback -> Amount + の絶対値が大きいときはフィードバック信号がハードクリップされることがあります。

+
+
Safety Clip [dB]
+
+

フィードバック信号の振幅が Safety Clip + を超えると、フィードバック信号は内部でハードクリップされます。

+

FeedbackPhaser + では、フィードバックによる発散を抑えるために内部的にハードクリッピングが行われています。ハードクリッピングがかかるとフィードバックに歪みが加わって音が変わります。

+

クリーンな音を出したいときは Feedback セクションの + Output is clean. という表示が + Too much feedback. に変わらなくなるまで + Safety Clip + の値を上げてください。ただし、出力振幅が跳ね上がるので、 + Safety Clip を上げた分だけ Gain セクションの + Output を下げることを推奨します。

+
+
Highpass [Hz]
+
+

フィードバック信号が通過するハイパスフィルタのカットオフ周波数です。

+
+
+

+
+
Stage
+
+

直列につなぐオールパスフィルタの数です。

+
+
Spread
+
+

オールパスフィルタのカットオフ周波数の分布を変更する値です。

+

Spread が 0 のとき、すべてのカットオフ周波数は + Center と同じになります。 Spread が 1 + のとき、カットオフ周波数は通過する順に Center * 1 、 + Center * 2Center * 3 、 … + と高くなっていきます。

+

以下はオールパスフィルタのカットオフ周波数の計算式です。

+
allpassCutoffHz = modulation * Center * (1 - Spread * (index - 1)).
+
+
Center [Hz]
+
+

変調がかかっていないときのオールパスフィルタのカットオフ周波数です。

+
+
+

+
+
Type
+
+

フィードバックによる変調のスケーリングの種類です。

+
    +
  • Exp. Mul. : Center * 2^modulation + として指数関数を使ったスケーリングを行います。
  • +
  • Lin. Mul. : Center * modulation + として変調波を乗算します。
  • +
  • Add : Center + modulation + として変調波を加算します。
  • +
+

上のリストの式はそのまま実装で使われている形ではないことに注意してください。上式に加えて不正な値を避けるため、値の範囲の制限などが行われます。

+
+
Amount
+
+

フィードバックによる変調の量です。

+

変調はオールパスフィルタのカットオフ周波数に対してかかります。

+
+
Mod. Asym.
+
+

そのままの変調信号と、全波整流した変調信号を混ぜる比率です。

+
+
Post LP [Hz]
+
+

変調後のオールパスフィルタのカットオフ周波数が通過する、ローパスフィルタのカットオフ周波数です。

+
+
+

+
+
Transpose [st.]
+
+

中心となるノートを変更する値です。

+
+
To Allpass
+
+

ノートのピッチの倍率です。

+

To Allpass が 1 + のときにノートのピッチが表す比率がそのまま使われます。

+

FeedbackPhaser + が使うのはノートが表す相対的なピッチであり、ノートが表す絶対的な周波数が使われることはない点に注意してください。

+
+
Slide [s]
+
+

あるノートのノートオフを受け取る前に、別のノートのノートオンを受け取ったときにピッチをスライドする時間です。

+
+
Release [s]
+
+

最後のノートのピッチから Center + に戻るまでにかかる大まかな時間です。

+
+
+

+
+
Side Chain
+
+

点灯させるとサイドチェイン入力を変調信号として使います。

+
+
Smoothing [s]
+
+

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

+
+
Oversampling
+
+

オーバーサンプリングの倍率です。

+

オーバーサンプリングの倍率を上げると変調が強いときに乗る、ざらざらとしたノイズが消えることがあります。ただし + CPU 負荷は倍率に応じて上がります。

+
+
+

+
    +
  • 0.1.4 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.3 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.1 +
      +
    • Renoise で GUI + を開く前に音を入力するとクラッシュするバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

+ + + diff --git a/docs/manual/GenericDrum/GenericDrum_en.html b/docs/manual/GenericDrum/GenericDrum_en.html index 18e8f82f..549d8005 100644 --- a/docs/manual/GenericDrum/GenericDrum_en.html +++ b/docs/manual/GenericDrum/GenericDrum_en.html @@ -2,556 +2,591 @@ - - - - -GenericDrum_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-03-03 -

-
- Table of Contents - -
-
-

GenericDrum

-

-

GenericDrum is a generic drum synthesizer using delays. This one can -make convincing snare and bass drum sounds. Cymbal sounds can be made, -but it’s not as good as lower pitched drum sounds.

- -

Important: Presets may not produce the expected -sound if sample rate is not 48000 Hz.

-

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -571,596 +606,624 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

Recommend to use with external limiter. Gain changes greatly -depending on parameter values and note velocity.

-

Oscillation or blow up may occur depending on the parameter settings. -Oscillation is a state in which the amplitude remains constant and the -sound does not stop. Blow up (or divergence) is a state in which the -sound continues to grow louder over time.

-

Blow up can result in amplitudes of up to +40 dB. GenericDrum -automatically lowers the feedback when it detects blow up. This -mechanism is activated when primary or secondary membrane output exceeds -+40 dB.

-

Enabling Prevent Blow Up can mostly prevent the blow up -caused by collisions between wire and primary. However, the texture of -the sound may also change significantly.

-

Even with Prevent Blow Up enabled, combinations of short -delay time, high bandpass Q, and high feedback may cause blow up. Below -is a list of relevant parameters.

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

Mechanism Overview

-

GenericDrum is not a physical model. Because the corresponding -physical phenomena are not described. So what is this? It’s a work of -art that uses delays to imitate the sound of drums, like using a violin -to imitate bird songs. Art here means that a human set the parameters -from experimentations, mostly relying on their senses.

-

GenericDrum is good at making the sound of drums that have 1 or 2 -membranes on a cylinder, such as bass drums and snare drums, but It’s -not good at the sound of thin metal plates like cymbals. It also does -not support expressions like rubbing the drum membrane, or expressions -that stop the sound with an impact, such as closing a hi-hat.

-

To imitate the sound of a drum, it’s better to start from a structure -similar to a real drum. GenericDrum can be roughly divided into the -following parts.

-
    -
  • Impact
  • -
  • Wire
  • -
  • Primary Membrane
  • -
  • Secondary Membrane
  • -
-

Drums produce sound by hitting a membrane with a hand or a stick. -Impact section generates a noise that resembles the impact of a hit. The -sound is white noise followed by a lowpass. Echo can -imitate the clanking sound made by collisions between a drum and -something like a stand.

-

Wire is a part intended for snare drums, and it collides only to -primary. It consists of delays connected in series. -Collision Distance controls the distance between wire and -primary. Rattle-Squeak Mix changes the texture of the -collision. It can produce a sound similar to a cuíca, especially when -the value is set closer to the squeak side (1.0), but there is no -mechanism to control the rubbing.

-

An impact hits both the primary and secondary membranes at the same -time. This behavior is unrealistic, but makes a nice sound. One membrane -consists of a feedback delay network (FDN). A bandpass filter is placed -for each feedback path on the FDN. The texture of membranes can be -changed by the combination of bandpass cutoff, bandpass Q, and delay -times. In particular, lowering the Q produces a brighter sound.

-

A nonlinearity of thin plate vibrations is imitated by modulating -delay time in FDN with their feedback signal. When a plate vibrates, it -stretches or shrinks which add a bit more tension to the plate. For -sound, more tension means higher pitch. So my idea was to reduce the -delay time of FDN depending on the amplitude of feedback signal.

-

For collisions, perfectly elastic collisions of 2 equal masses is -used. The sound decays within FDN, because of -Cross Feedback Gain and bandpass filters. So, there is no -need to consider energy loss of collisions. In addition, the amplitude -after the collision is stored and gradually returned to the system, in -order to resemble a sound of a snare drum. A delay can approximate a -wave propagation, but it can’t represent the state during propagation. -In consequence, collisions that occur during propagation also can’t be -represented. The fact that collisions do not occur during wave -propagation becomes more noticeable when the value of Delay -is lowered.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in GenericDrum.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [Hz] : Frequency in Hertz.
  • -
  • [sample] : Time in samples. 1 sample is -1 / (sampling rate) seconds.
  • -
  • [oct] : Octave.
  • -
  • [st.] : Ssemitone. 1 semitone is 1 / 12 octave.
  • -
  • [cent] : Cent. 1 cent is 1 / 100 semitone.
  • -
-

Mix & Options

-
-
Output [dB]
-
-

Output gain.

-
-
Highpass [Hz]
-
-

A highpass filter that can be passed just before the output. The -number slider controls cutoff frequency of highpass.

-

Warning: Enabling or disabling Highpass -may cause a pop noise.

-
-
2x Sampling [Hz]
-
-

Performs 2-fold oversampling when enabled.

-

Warning: Enabling or disabling -2x Sampling may cause a pop noise.

-
-
Normalize Gain
-
-

When enabled, the gain is automatically adjusted according to the -following values.

-
    -
  • Note pitch.
  • -
  • Noise Lowpass in Impact section.
  • -
-
-
Reset Seed at Note-on
-
-

When enabled, resets the random number seed on every note-on. This -seed is used for noises of impact and collision.

-

When disabled, the sound becomes inconsistent. It might be useful for -a kind of “humanization” effect.

-
-
Prevent Blow Up
-
-

When enabled, it tries to prevent blow up by lowering internal gains -around wire.

-

When wire blows up, it makes a loud explosion-like sound. -Prevent Blow Up suppresses this explosion, but as a side -effect it tends to result in a less powerful sound without rattling -texture. To bring back rattling, try changing parameters on the list -below. They are in Wire sections.

-
    -
  • Raise Decay.
  • -
  • Lower Collision Distance.
  • -
  • Lower Rattle-Squeak Mix.
  • -
-

Note that if Prevent Blow Up is disabled after making -the above changes, the system will be likely in an unstable state that -is easy to blow up.

-
-
-

Stereo Unison

-

Enabling Stereo Unison will double the number of drums. -This means that 2 different instances will be placed in each channels. -Also the CPU load will be doubled.

-
-
Stereo Balance
-
-

Adjust the gain of the left and right channels.

-

Unlike panning, the left and right channels won’t be mixed.

-
-
Stereo Merge
-
-

Adjust the stereo spread.

-
-
-

External Input

-

There are two cases when using external input.

-
    -
  • Using audio from a microphone.
  • -
  • Using audio from other synthesizers.
  • -
-

When using audio from a microphone, enable -Automatic Trigger and adjust the -Trigger Threshold.

-

When using audio from other synthesizers (source), it’s recommended -to share the note events to GenericDrum, so that envelopes in -GenericDrum starts precisely at the timing of note-ons. When sharing -note events, Automatic Trigger is better to be -disabled.

-

Please refer to your DAW’s manual for external audio input and note -event routing.

-
-
External Gain [dB]
-
-

Gain of external input.

-
-
Trigger Threshold [dB]
-
-

Threshold amplitude of automatic trigger.

-
-
Automatic Trigger
-
-

Engages automatic triggering when enabled.

-
-
-

Tuning

-

The Tuning section contains note event and pitch bend related -parameters.

-
-
Note -> Pitch
-
-

Amount of pitch modulation applied from the pitch of a note-on -event.

-

Regardless of the value of Note -> Pitch, the amount -of pitch modulation will be 0 when the pitch is A3 (57 in MIDI note -number).

-

When the value of Note -> Pitch is 0.0, the pitch of -the note is ignored.

-

When the value of Note -> Pitch is 1.0, the pitch of -a note is directly applied to the pitch of the synthesizer. Some drum -sounds do not have a clear pitch, so it may sound out of tune in some -cases. Also, higher the pitch, more out of tune it becomes. This is -because delays doesn’t use interpolations to be more efficient, and to -avoid lowpass in feedback path.

-

When the value of Note -> Pitch is -1.0, the pitch is -reversed.

-
-
Semitone
-
-

Transposes the pitch of the note in semitone steps.

-

Note: No effect when Note -> Pitch -is 0.0.

-
-
Cent
-
-

Transposes the pitch of notes in cents.

-

Note: No effect when Note -> Pitch -is 0.0.

-
-
Pitch Bend Range [st.]
-
-

Pitch bend range in semitones.

-
-
Slide Time [s]
-
-

Pitch slide time.

-

The pitch starts sliding when 2 or more notes are played at the same -time.

-
-
-

Impact

-

Impact section contains parameters that imitates the collision -between the a stick and a membrane.

-
-
Seed
-
-

A random number seed.

-

Changing the seed allows you to change the sound while maintaining -the similar texture.

-

GenericDrum has two random number generators for generating collision -noise and for setting internal parameters. For noise generation, you can -reset the seed on each note-on using -Reset Seed at Note-on.

-
-
Noise Decay [s]
-
-

Decay time of impact noise.

-
-
Noise Lowpass [Hz]
-
-

Cutoff frequency of a low-pass filter applied to impact noise.

-

When Normalize Gain is enabled, the gain is reduced when -Noise Lowpass becomes higher.

-
-
Echo [Hz]
-
-

Frequency that represents the total length of echoes applied to the -noise.

-

Echo has 4 delays with feedback, so the value specified in -Echo doesn’t represent the exact frequency.

-

Echo is provided to represent the clanking sound caused by the -collision between drum and drum stand.

-
-
-

Wire

-

Wire section contains parameters that imitates a snare wire.

-
-
Impact-Wire Mix
-
-

Mixing ratio between impact noise and wire output.

-

0.0 only mixes impact noise, and 1.0 only mixes wire output.

-
-
Membrane-Wire Mix
-
-

Mixing ratio between primary membrane and wire output.

-

0.0 only mixes primary membrane output, and 1.0 only mixes wire -output.

-
-
Frequency [Hz]
-
-

Frequency of the entire wire.

-

Wire has four sections, so the value specified in -Frequency doesn’t represetn the exact frequency.

-
-
Decay [s]
-
-

Decay time of the wire output.

-

Warning: When Prevent Blow Up is -disabled, increasing the value of Decay will make it easier -to blow up.

-
-
Collision Distance
-
-

Threshold value used to determine collision between wire and primary -membrane.

-

Warning: When the value of -Collision Distance is small, there may be a temporary blow -up until sufficient gain reduction by Decay is applied. -Increasing this value reduces the chance of blow up.

-
-
Rattle-Squeak Mix
-
-

Texture of collision.

-

0.0 gives a full rattling texture, 1.0 gives a full squeak texture. -Rattle here means a sound like a snare wire, and squeak means a sound -like friction on rubbing.

-

Warning: When Prevent Blow Up is -disabled, and the value of Rattle-Squeak Mix is close to -0.0, the system becomes more unstable which means easier to blow up.

-
-
-

Membrane Tone

-

Membrane Tone section contains parameters related to the feedbacks of -FDNs. An FDN produces a sound of a membrane. The values in the Membrane -Tone section are shared by both the primary and secondary membranes.

-
-
Cross Feedback Gain
-
-

Gain that adjusts how fast the vibration decays.

-

Warning: When Cross Feedback Gain -approaches 1.0, oscillation or blow up is likely to happen.

-
-
Cross Feedback Ratio
-
-

Adjusts the tone of membranes.

-

The value of Cross Feedback Ratio is converted to a -feedback matrix used in both FDNs. Householder transformation is -used.

-

When all Cross Feedback Ratio values are 0.0, the -feedbacks won’t be crossed into other delays. In this case, the pitch of -the sound becomes easier to hear, but the texture of the sound becomes -more like a 1D string vibration, rather than 2D plate vibration.

-

When all Cross Feedback Ratio values are 1.0, the -texture becomes similar to the vibration of a thin plate. The texture -varies depending on the values in Primary Membrane section.

-

To prevent oscillation or blow up without changing the -Cross Feedback Gain or Collision Distance, -changing Cross Feedback Ratio is an option.

-
-
-

Pitch Texture

-

Pitch Texture section contains parameters related to the internal -pitch of FDNs that represents membranes.

-
-
Delay Time Spread
-
-

Spread width of the FDN delay time distribution.

-
-
BP Cut Spread
-
-

Width of the cutoff frequency distribution of the bandpass filters in -FDN.

-
-
Pitch Random [cent]
-
-

Amount of randomization to change the pitches of the delays.

-
-
-

Pitch Envelope

-

Pitch envelope modulates delay times and bandpass cutoff frequencies -in FDNs.

-
-
Attack [s]
-
-

Attack time of the pitch envelope.

-

Note: Attack time won’t be longer than the value of -Decay.

-
-
Decay [s]
-
-

Decay time of the pitch envelope.

-
-
Amount [oct]
-
-

Amount of modulation by the pitch envelope.

-
-
-

Primary Membrane

-
-
Pitch Type
-
-

Type of FDN delay time distribution.

-

Note: Do not select - Reserved * -. -- Reserved * - is an empty option reserved for adding a -different Pitch Type later. Fallback to -Harmonic when - Reserved * - is selected.

-
-
Delay [Hz]
-
-

Reference value for the FDN delay time.

-

In FDN, there is always one feedback path with the frequency -specified as the value of Delay, but it’s only a guideline -and does not represent the exact pitch. The reason is the chaos caused -by cross feedbacks. So the actual pitch depends on the -Cross Feedback Ratio setting.

-
-
Delay Modulation [sample]
-
-

Amount of the delay time modulation with respect to the amplitude of -a feedback signal.

-

Warning: Increasing Delay Modulation -increase the chance of oscillation or blow up.

-
-
BP Cut [oct]
-
-

Bandpass cutoff frequency with respect to the frequency set by -Delay.

-

Raising BP Cut is effective when making high-pitched -sounds like cymbals.

-

Lowering BP Cut is effective to smooth out the noise -caused by Delay Modulation.

-
-
BP Q
-
-

Bandpass Q value. Q means quality factor in filter.

-

When BP Q is low, the bandwidth becomes wider. This -results in a higher and longer sound, but it also becomes easier to -oscillate.

-

When BP Q is high, the bandwidth becomes narrower. This -results in a lower and shorter sound.

-

Warning: Increasing BP Q increase the -chance of oscillation or blow up.

-
-
-

Secondary Membrane

-

Secondary membrane inherits most of the values from the Primary -Membrane section.

-
-
Mix
-
-

Mixing ratio between primary and secondary membrane. When set to 1.0, -only the output from the secondary will be mixed.

-

Note: Collisions will be calculated even if -Mix is set to 0.0 or 1.0. To stop collision, increase the -value of Collision Distance.

-
-
Pitch Offset [oct]
-
-

Secondary membrane pitch with respect to primary.

-

When set to 0.0, the related values are copied from Primary Membrane -section.

-

Adjusting Pitch Offset and Q Offset is -similar to detuning one side of a snare drum.

-
-
Q Offset [oct]
-
-

Bandpass Q of secondary membrane with respect to primary.

-
-
Collision Distance
-
-

Threshold value used to determine collision between primary and -secondary membrane.

-

Warning: Oscillation may occur when the value of -Collision Distance is small. To prevent oscillation, -increase the value.

-
-
-

Change Log

-
    -
  • 0.1.2 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.1 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Added a button to randomize parameters.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

GenericDrum 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

Recommend to use with external limiter. Gain changes greatly + depending on parameter values and note velocity.

+

Oscillation or blow up may occur depending on the parameter + settings. Oscillation is a state in which the amplitude remains + constant and the sound does not stop. Blow up (or divergence) is a + state in which the sound continues to grow louder over time.

+

Blow up can result in amplitudes of up to +40 dB. GenericDrum + automatically lowers the feedback when it detects blow up. This + mechanism is activated when primary or secondary membrane output + exceeds +40 dB.

+

Enabling Prevent Blow Up can mostly prevent the blow + up caused by collisions between wire and primary. However, the texture + of the sound may also change significantly.

+

Even with Prevent Blow Up enabled, combinations of + short delay time, high bandpass Q, and high feedback may cause blow + up. Below is a list of relevant parameters.

+
    +
  • Note -> Pitch
  • +
  • Cross Feedback Gain
  • +
  • Cross Feedback Ratio
  • +
  • Delay
  • +
  • BP Q
  • +
+

+

GenericDrum is not a physical model. Because the corresponding + physical phenomena are not described. So what is this? It’s a work of + art that uses delays to imitate the sound of drums, like using a + violin to imitate bird songs. Art here means that a human set the + parameters from experimentations, mostly relying on their senses.

+

GenericDrum is good at making the sound of drums that have 1 or 2 + membranes on a cylinder, such as bass drums and snare drums, but It’s + not good at the sound of thin metal plates like cymbals. It also does + not support expressions like rubbing the drum membrane, or expressions + that stop the sound with an impact, such as closing a hi-hat.

+

To imitate the sound of a drum, it’s better to start from a + structure similar to a real drum. GenericDrum can be roughly divided + into the following parts.

+
    +
  • Impact
  • +
  • Wire
  • +
  • Primary Membrane
  • +
  • Secondary Membrane
  • +
+

Drums produce sound by hitting a membrane with a hand or a stick. + Impact section generates a noise that resembles the impact of a hit. + The sound is white noise followed by a lowpass. Echo can + imitate the clanking sound made by collisions between a drum and + something like a stand.

+

Wire is a part intended for snare drums, and it collides only to + primary. It consists of delays connected in series. + Collision Distance controls the distance between wire and + primary. Rattle-Squeak Mix changes the texture of the + collision. It can produce a sound similar to a cuíca, especially when + the value is set closer to the squeak side (1.0), but there is no + mechanism to control the rubbing.

+

An impact hits both the primary and secondary membranes at the same + time. This behavior is unrealistic, but makes a nice sound. One + membrane consists of a feedback delay network (FDN). A bandpass filter + is placed for each feedback path on the FDN. The texture of membranes + can be changed by the combination of bandpass cutoff, bandpass Q, and + delay times. In particular, lowering the Q produces a brighter + sound.

+

A nonlinearity of thin plate vibrations is imitated by modulating + delay time in FDN with their feedback signal. When a plate vibrates, + it stretches or shrinks which add a bit more tension to the plate. For + sound, more tension means higher pitch. So my idea was to reduce the + delay time of FDN depending on the amplitude of feedback signal.

+

For collisions, perfectly elastic collisions of 2 equal masses is + used. The sound decays within FDN, because of + Cross Feedback Gain and bandpass filters. So, there is no + need to consider energy loss of collisions. In addition, the amplitude + after the collision is stored and gradually returned to the system, in + order to resemble a sound of a snare drum. A delay can approximate a + wave propagation, but it can’t represent the state during propagation. + In consequence, collisions that occur during propagation also can’t be + represented. The fact that collisions do not occur during wave + propagation becomes more noticeable when the value of + Delay is lowered.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in GenericDrum.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [Hz] : Frequency in Hertz.
  • +
  • [sample] : Time in samples. 1 sample is + 1 / (sampling rate) seconds.
  • +
  • [oct] : Octave.
  • +
  • [st.] : Ssemitone. 1 semitone is 1 / 12 octave.
  • +
  • [cent] : Cent. 1 cent is 1 / 100 semitone.
  • +
+

+
+
Output [dB]
+
+

Output gain.

+
+
Highpass [Hz]
+
+

A highpass filter that can be passed just before the output. The + number slider controls cutoff frequency of highpass.

+

Warning: Enabling or disabling + Highpass may cause a pop noise.

+
+
2x Sampling [Hz]
+
+

Performs 2-fold oversampling when enabled.

+

Warning: Enabling or disabling + 2x Sampling may cause a pop noise.

+
+
Normalize Gain
+
+

When enabled, the gain is automatically adjusted according to the + following values.

+
    +
  • Note pitch.
  • +
  • Noise Lowpass in Impact section.
  • +
+
+
Reset Seed at Note-on
+
+

When enabled, resets the random number seed on every note-on. This + seed is used for noises of impact and collision.

+

When disabled, the sound becomes inconsistent. It might be useful + for a kind of “humanization” effect.

+
+
Prevent Blow Up
+
+

When enabled, it tries to prevent blow up by lowering internal + gains around wire.

+

When wire blows up, it makes a loud explosion-like sound. + Prevent Blow Up suppresses this explosion, but as a side + effect it tends to result in a less powerful sound without rattling + texture. To bring back rattling, try changing parameters on the list + below. They are in Wire sections.

+
    +
  • Raise Decay.
  • +
  • Lower Collision Distance.
  • +
  • Lower Rattle-Squeak Mix.
  • +
+

Note that if Prevent Blow Up is disabled after making + the above changes, the system will be likely in an unstable state that + is easy to blow up.

+
+
+

+

Enabling Stereo Unison will double the number of + drums. This means that 2 different instances will be placed in each + channels. Also the CPU load will be doubled.

+
+
Stereo Balance
+
+

Adjust the gain of the left and right channels.

+

Unlike panning, the left and right channels won’t be mixed.

+
+
Stereo Merge
+
+

Adjust the stereo spread.

+
+
+

+

There are two cases when using external input.

+
    +
  • Using audio from a microphone.
  • +
  • Using audio from other synthesizers.
  • +
+

When using audio from a microphone, enable + Automatic Trigger and adjust the + Trigger Threshold.

+

When using audio from other synthesizers (source), it’s recommended + to share the note events to GenericDrum, so that envelopes in + GenericDrum starts precisely at the timing of note-ons. When sharing + note events, Automatic Trigger is better to be + disabled.

+

Please refer to your DAW’s manual for external audio input and note + event routing.

+
+
External Gain [dB]
+
+

Gain of external input.

+
+
Trigger Threshold [dB]
+
+

Threshold amplitude of automatic trigger.

+
+
Automatic Trigger
+
+

Engages automatic triggering when enabled.

+
+
+

+

The Tuning section contains note event and pitch bend related + parameters.

+
+
Note -> Pitch
+
+

Amount of pitch modulation applied from the pitch of a note-on + event.

+

Regardless of the value of Note -> Pitch, the + amount of pitch modulation will be 0 when the pitch is A3 (57 in MIDI + note number).

+

When the value of Note -> Pitch is 0.0, the pitch + of the note is ignored.

+

When the value of Note -> Pitch is 1.0, the pitch + of a note is directly applied to the pitch of the synthesizer. Some + drum sounds do not have a clear pitch, so it may sound out of tune in + some cases. Also, higher the pitch, more out of tune it becomes. This + is because delays doesn’t use interpolations to be more efficient, and + to avoid lowpass in feedback path.

+

When the value of Note -> Pitch is -1.0, the pitch + is reversed.

+
+
Semitone
+
+

Transposes the pitch of the note in semitone steps.

+

Note: No effect when Note -> Pitch + is 0.0.

+
+
Cent
+
+

Transposes the pitch of notes in cents.

+

Note: No effect when Note -> Pitch + is 0.0.

+
+
Pitch Bend Range [st.]
+
+

Pitch bend range in semitones.

+
+
Slide Time [s]
+
+

Pitch slide time.

+

The pitch starts sliding when 2 or more notes are played at the + same time.

+
+
+

+

Impact section contains parameters that imitates the collision + between the a stick and a membrane.

+
+
Seed
+
+

A random number seed.

+

Changing the seed allows you to change the sound while maintaining + the similar texture.

+

GenericDrum has two random number generators for generating + collision noise and for setting internal parameters. For noise + generation, you can reset the seed on each note-on using + Reset Seed at Note-on.

+
+
Noise Decay [s]
+
+

Decay time of impact noise.

+
+
Noise Lowpass [Hz]
+
+

Cutoff frequency of a low-pass filter applied to impact noise.

+

When Normalize Gain is enabled, the gain is reduced + when Noise Lowpass becomes higher.

+
+
Echo [Hz]
+
+

Frequency that represents the total length of echoes applied to the + noise.

+

Echo has 4 delays with feedback, so the value specified in + Echo doesn’t represent the exact frequency.

+

Echo is provided to represent the clanking sound caused by the + collision between drum and drum stand.

+
+
+

+

Wire section contains parameters that imitates a snare wire.

+
+
Impact-Wire Mix
+
+

Mixing ratio between impact noise and wire output.

+

0.0 only mixes impact noise, and 1.0 only mixes wire output.

+
+
Membrane-Wire Mix
+
+

Mixing ratio between primary membrane and wire output.

+

0.0 only mixes primary membrane output, and 1.0 only mixes wire + output.

+
+
Frequency [Hz]
+
+

Frequency of the entire wire.

+

Wire has four sections, so the value specified in + Frequency doesn’t represetn the exact frequency.

+
+
Decay [s]
+
+

Decay time of the wire output.

+

Warning: When Prevent Blow Up is + disabled, increasing the value of Decay will make it + easier to blow up.

+
+
Collision Distance
+
+

Threshold value used to determine collision between wire and + primary membrane.

+

Warning: When the value of + Collision Distance is small, there may be a temporary + blow up until sufficient gain reduction by Decay is + applied. Increasing this value reduces the chance of blow up.

+
+
Rattle-Squeak Mix
+
+

Texture of collision.

+

0.0 gives a full rattling texture, 1.0 gives a full squeak texture. + Rattle here means a sound like a snare wire, and squeak means a sound + like friction on rubbing.

+

Warning: When Prevent Blow Up is + disabled, and the value of Rattle-Squeak Mix is close to + 0.0, the system becomes more unstable which means easier to blow + up.

+
+
+

+

Membrane Tone section contains parameters related to the feedbacks + of FDNs. An FDN produces a sound of a membrane. The values in the + Membrane Tone section are shared by both the primary and secondary + membranes.

+
+
Cross Feedback Gain
+
+

Gain that adjusts how fast the vibration decays.

+

Warning: When Cross Feedback Gain + approaches 1.0, oscillation or blow up is likely to happen.

+
+
Cross Feedback Ratio
+
+

Adjusts the tone of membranes.

+

The value of Cross Feedback Ratio is converted to a + feedback matrix used in both FDNs. Householder transformation is + used.

+

When all Cross Feedback Ratio values are 0.0, the + feedbacks won’t be crossed into other delays. In this case, the pitch + of the sound becomes easier to hear, but the texture of the sound + becomes more like a 1D string vibration, rather than 2D plate + vibration.

+

When all Cross Feedback Ratio values are 1.0, the + texture becomes similar to the vibration of a thin plate. The texture + varies depending on the values in Primary Membrane section.

+

To prevent oscillation or blow up without changing the + Cross Feedback Gain or Collision Distance, + changing Cross Feedback Ratio is an option.

+
+
+

+

Pitch Texture section contains parameters related to the internal + pitch of FDNs that represents membranes.

+
+
Delay Time Spread
+
+

Spread width of the FDN delay time distribution.

+
+
BP Cut Spread
+
+

Width of the cutoff frequency distribution of the bandpass filters + in FDN.

+
+
Pitch Random [cent]
+
+

Amount of randomization to change the pitches of the delays.

+
+
+

+

Pitch envelope modulates delay times and bandpass cutoff + frequencies in FDNs.

+
+
Attack [s]
+
+

Attack time of the pitch envelope.

+

Note: Attack time won’t be longer than the value + of Decay.

+
+
Decay [s]
+
+

Decay time of the pitch envelope.

+
+
Amount [oct]
+
+

Amount of modulation by the pitch envelope.

+
+
+

+
+
Pitch Type
+
+

Type of FDN delay time distribution.

+

Note: Do not select - Reserved * -. + - Reserved * - is an empty option reserved for adding a + different Pitch Type later. Fallback to + Harmonic when - Reserved * - is + selected.

+
+
Delay [Hz]
+
+

Reference value for the FDN delay time.

+

In FDN, there is always one feedback path with the frequency + specified as the value of Delay, but it’s only a + guideline and does not represent the exact pitch. The reason is the + chaos caused by cross feedbacks. So the actual pitch depends on the + Cross Feedback Ratio setting.

+
+
Delay Modulation [sample]
+
+

Amount of the delay time modulation with respect to the amplitude + of a feedback signal.

+

Warning: Increasing Delay Modulation + increase the chance of oscillation or blow up.

+
+
BP Cut [oct]
+
+

Bandpass cutoff frequency with respect to the frequency set by + Delay.

+

Raising BP Cut is effective when making high-pitched + sounds like cymbals.

+

Lowering BP Cut is effective to smooth out the noise + caused by Delay Modulation.

+
+
BP Q
+
+

Bandpass Q value. Q means quality factor in filter.

+

When BP Q is low, the bandwidth becomes wider. This + results in a higher and longer sound, but it also becomes easier to + oscillate.

+

When BP Q is high, the bandwidth becomes narrower. + This results in a lower and shorter sound.

+

Warning: Increasing BP Q increase the + chance of oscillation or blow up.

+
+
+

+

Secondary membrane inherits most of the values from the Primary + Membrane section.

+
+
Mix
+
+

Mixing ratio between primary and secondary membrane. When set to + 1.0, only the output from the secondary will be mixed.

+

Note: Collisions will be calculated even if + Mix is set to 0.0 or 1.0. To stop collision, increase the + value of Collision Distance.

+
+
Pitch Offset [oct]
+
+

Secondary membrane pitch with respect to primary.

+

When set to 0.0, the related values are copied from Primary + Membrane section.

+

Adjusting Pitch Offset and Q Offset is + similar to detuning one side of a snare drum.

+
+
Q Offset [oct]
+
+

Bandpass Q of secondary membrane with respect to primary.

+
+
Collision Distance
+
+

Threshold value used to determine collision between primary and + secondary membrane.

+

Warning: Oscillation may occur when the value of + Collision Distance is small. To prevent oscillation, + increase the value.

+
+
+

+
    +
  • 0.1.2 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.1 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Added a button to randomize parameters.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

GenericDrum is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/GenericDrum/GenericDrum_ja.html b/docs/manual/GenericDrum/GenericDrum_ja.html index d25ac548..c90d244d 100644 --- a/docs/manual/GenericDrum/GenericDrum_ja.html +++ b/docs/manual/GenericDrum/GenericDrum_ja.html @@ -2,556 +2,592 @@ - - - - -GenericDrum_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

GenericDrum

-

-

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

- -

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

-

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -571,553 +607,580 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

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

-

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

-

発散すると最大で +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 の値を低くすると顕著に現れます。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

-
    -
  • [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 -に近づくと発振あるいは発散しやすくなります。

-
-
Cross Feedback Ratio
-
-

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

-

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

-

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

-

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

-

Cross Feedback GainCollision 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 OffsetQ Offset -の調整は、スネアドラムの片面のチューニングをずらすような操作と似ています。

-
-
Q Offset [oct]
-
-

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

-
-
Collision Distance
-
-

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

-

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

-
-
-

チェンジログ

-
    -
  • 0.1.2 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.1 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • パラメータをランダム化するボタンを追加。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

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

+

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

+

発散すると最大で +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 の値を低くすると顕著に現れます。

+

+

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

+

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

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

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

+
+
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 + を有効にすると、左右のチャンネルで異なるワイヤ、プライマリ、セカンダリを使って計算を行います。ただし + CPU 負荷が約 2 倍に増えます。

+
+
Stereo Balance
+
+

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

+

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

+
+
Stereo Merge
+
+

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

+
+
+

+

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

+

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

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

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

+

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

+

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

+
+
External Gain [dB]
+
+

外部入力のゲインです。

+
+
Trigger Threshold [dB]
+
+

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

+
+
Automatic Trigger
+
+

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

+
+
+

+

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 + セクションには、ばちと打面の衝突を模倣する部分のパラメータが配置されています。

+
+
Seed
+
+

乱数のシードです。

+

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

+

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

+
+
Noise Decay [s]
+
+

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

+
+
Noise Lowpass [Hz]
+
+

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

+

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

+
+
Echo [Hz]
+
+

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

+

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

+
+
+

+

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

+
+
Cross Feedback Gain
+
+

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

+

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

+
+
Cross Feedback Ratio
+
+

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

+

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

+

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

+

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

+

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

+
+
+

+

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

+
+
Delay Time Spread
+
+

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

+
+
BP Cut Spread
+
+

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

+
+
Pitch Random [cent]
+
+

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

+
+
+

+

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

+
+
Attack [s]
+
+

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

+

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

+
+
Decay [s]
+
+

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

+
+
Amount [oct]
+
+

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

+
+
+

+
+
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 + の値が大きくなるほど発振あるいは発散しやすくなります。

+
+
+

+

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

+
+
Mix
+
+

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

+

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

+
+
Pitch Offset [oct]
+
+

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

+

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

+

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

+
+
Q Offset [oct]
+
+

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

+
+
Collision Distance
+
+

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

+

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

+
+
+

+
    +
  • 0.1.2 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.1 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • パラメータをランダム化するボタンを追加。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/GlitchSprinkler/GlitchSprinkler.json b/docs/manual/GlitchSprinkler/GlitchSprinkler.json new file mode 100644 index 00000000..6aafdf3b --- /dev/null +++ b/docs/manual/GlitchSprinkler/GlitchSprinkler.json @@ -0,0 +1,14 @@ +{ + "GlitchSprinkler": { + "latest_version": "0.1.0", + "urls": { + "plugin_url": [ + "https://github.com/ryukau/VSTPlugins/releases/download/UhhyouPlugins0.62.0/GlitchSprinkler_0.1.0.zip" + ], + "preset_url": [] + }, + "changelog": { + "0.1.0": { "en": ["Initial release."], "ja": ["初期リリース。"] } + } + } +} diff --git a/docs/manual/GlitchSprinkler/GlitchSprinkler_en.html b/docs/manual/GlitchSprinkler/GlitchSprinkler_en.html new file mode 100644 index 00000000..3f8d881f --- /dev/null +++ b/docs/manual/GlitchSprinkler/GlitchSprinkler_en.html @@ -0,0 +1,1134 @@ + + + + + + + + + GlitchSprinkler_en – Uhhyou Plugins + + + + + + +
+

Back to Index

+

+ Update: 2024-08-11 +

+
+ Table of Contents + +
+
+

+

+

GlitchSprinkler is a synthesizer specialized to play fast + arpeggios. It is using a cheap anti-aliasing trick that is to restrict + the oscillator period only to integer sample counts. This + anti-aliasing has a side effect to make the pitches out of tune, + especially at higher notes, which makes a unique texture.

+ +

Note: Presets produce the expected sound only if + the sampling rate is 48000 Hz.

+

full package contains following builds.

+
    +
  • Windows (x86_64)
  • +
  • Linux (x86_64)
  • +
  • macOS (Universal 2)
  • +
+

Linux build is built on Ubuntu 22.04. If you are using distribution + other than Ubuntu 22.04, plugin will not likely to run. In this case, + please take a look at build + instruction.

+

macOS package is recommended for macOS user. I can’t + purchase Apple Developer Program, therefore installation requires a + workaround to bypass Gatekeeper. Details of workaround are written in + Installation -> macOS Specific + section.

+

+

Feel free to contact me on GitHub + repository or ryukau@gmail.com.

+

You can fund the development through paypal.me/ryukau.

+

+

+

Move *.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.

+

+

Notice: Some plugins don’t have presets provided + by Uhhyou Plugins.

+

Presets are included in the plugin package linked at the top of + this page. To install presets, follow the steps below.

+
    +
  1. Download plugin from a link at the top of this page.
  2. +
  3. Extract downloaded zip file.
  4. +
  5. Open presets directory placed in extracted + package.
  6. +
  7. Move Uhhyou directory into an OS specific preset + directory (see below).
  8. +
+

Below is a list of preset directories for each OS.

+
    +
  • Windows : + /Users/$USERNAME/Documents/VST3 Presets
  • +
  • Linux : $HOME/.vst3/presets
  • +
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • +
+

Preset directory name must be the same as the plugin. If preset + directory does not exist, create it.

+ +

+

If DAW doesn’t recognize the plugin, try installing C++ + redistributable (vc_redist.x64.exe). Installer can be + found in the link below.

+ +

+

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+xattr -rc /path/to/PluginName.vst3
+

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of 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"
+}
+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

The pitch becomes more out of tune for higher notes. This is a side + effect of anti-aliasing used in GlitchSprinkler.

+

Direct current may appear. Setting Safety Filter Mix + to 1 applies a high-pass filter with -6 dB/oct slope. If the spike on + the transient is too large, it is recommended to use external + high-pass filter with steeper slope.

+

+

Note events come from MIDI channel 16 doesn’t make any sound. + Instead, those ch.16 notes change the pitch of incoming notes. Note + that the pitch of the notes can’t be changed when they are already + being played.

+

The modification of a note pitch is shown below. It is a + multiplication of the note number to a note frequency, which can be + used to play integer harmonic series.

+
noteFrequency = baseFrequency * lastNoteNumberOnChannel16;
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in GlitchSprinkler.

+
    +
  • [dB] : Decibel.
  • +
  • [oct] : Octave.
  • +
  • [st.] : Ssemitone. 1 semitone is 1 / 12 octave.
  • +
  • [cent] : Cent. 1 cent is 1 / 100 semitone.
  • +
+

+
+
Output [dB]
+
+

Output gain.

+
+
Safety Filter Mix
+
+

Ratio between the direct output and the high-pass filtered output. + The value 1 means 100% high-pass filtered output.

+

This -6 dB/oct high-pass filter is used to remove direct current + (DC). When the DC is high, it may cause an amplitude spike at the + beginning of the sound (transient). In this case, it may be better to + switching to an external high-pass filter with steeper + attenuation.

+

Below is an overview of the signal flow:

+
hp = highpass(input);
+output = input + (Safety Filter Mix) * (hp - input);
+
+
Decay to [dB]
+
+

Target gain of the decay envelope after the minimum duration of a + note in the arpeggio.

+

The minimum duration of a note in the arpeggio depends on the tempo + specified on DAW, and the value of Note / Beat. The + formula is as follows:

+
samplesPerBeat = 60 * sampleRate / tempo;
+noteDurationInSamples = samplesPerBeat / (`Note / Beat`);
+
+
Polyphonic
+
+

Turn it on when playing chords. Turn it off when playing a + monophonic melody.

+

When turned on, up to 256 voices can be played simultaneously. When + turned off, nVoice in the Unison section + becomes the number of voices played simultaneously.

+
+
Release
+
+

When turned on, the envelope continues to decay even after the + note-off.

+

When turned off, the sound stops after the waveform completes the + current cycle after the note-off. If the pitch is low, the sound will + persist for a while, even when Release is turned off.

+

This is a switch similar to the sustain pedal on a piano.

+
+
Soft Envelope
+
+

When turned on, reduces pop noise at the beginning and end of the + sound.

+

The pop noise is especially noticeable when Filter is + on and at low pitches.

+
+
Octave
+
+

Transpose in octave.

+
+
Semitone
+
+

Transpose in semitone. Tuning changes the ratio of + semitone.

+
+
Cent
+
+

Transpose in cent. Unlike Semitone, Cent + always uses the ratio of 12 equal temperament.

+
+
Tuning
+
+

Musical tunings.

+
    +
  • ET N : N equal temperament.
  • +
  • Just N : N-limit tuning. +
      +
    • Just 5 Major : So-called just intonation. Adjusted to + reduce the beat of +4 semitones.
    • +
    • Just 5 Minor : So-called just intonation. Adjusted to + reduce the beat of +3 semitones.
    • +
  • +
  • MT Pythagorean : Pythagorean tuning.
  • +
  • MT 1/3 Comma : 1 / 3 comma mean tone.
  • +
  • MT 1/4 Comma : 1 / 4 comma mean tone.
  • +
  • Discrete + N: 12-tone equal temperament with the sampling rate divided byN` + as the center frequency.
  • +
+

The pitches of the Discrete scales change + significantly depending on the sampling rate.

+

Discrete 2 has a similar pitch to ET 12 + when transposed +1 semitone when the sampling rate is 48000 Hz.

+
+
Tuning Root [st.]
+
+

Root of non-equal temperament scales.

+

For example, suppose we have the following three-tone scale:

+
[1, 5/4, 4/3]
+

When Tuning Root is 0, the above scale is used as + is.

+

When Tuning Root is 1, the above scale is shifted to + the left by 1, then it is wrapped around to an octave.

+
   [           1,            5/4,         4/3]
+-> [         5/4,            4/3,           1] // Left shift.
+-> [(5/4) / (4/5), (4/3) / (4/5), (1) / (4/5)] // Divide all the values with the leftmost ratio.
+-> [            1,         16/15,         4/5]
+-> [            1,         16/15,         8/5] // Wrap around to an octave.
+
+
+

+

The filter is a resonant low-pass with -6 dB/oct slope. Note that + enabling the filter increases CPU load.

+

Due to the nature of the filter, the resonance will never be higher + than around fs / 6 where fs is the sampling + rate. In other words, the texture of the resonance changes depending + on the sampling rate.

+
+
Decay Time Ratio [dB]
+
+

Decay time of the filter envelope, calculated as a ratio from + Decay to in the Oscillator section.

+
+
Key Follow
+
+

Ratio to match the cutoff frequency to the pitch of the note.

+

When Cutoff is 0 and Key Follow is 1, the + frequency of the note matches the cutoff frequency when the filter + envelope is fully decayed.

+

When Cutoff is 0 and Key Follow is 0, the + cutoff frequency will be 20 Hz when the filter envelope is fully + decayed.

+

The following is the formula for calculating the cutoff frequency + (adjustedCutoffHz) when the filter envelope is fully + decayed.

+
baseCutoffHz = 20 + (Key Follow) * (freqHz - 20);
+adjustedCutoffHz = baseCutoffHz * 2^(Cutoff);
+
+
Cutoff [oct.]
+
+

Cutoff frequency of low-pass filter.

+
+
Resonance
+
+

Resonance of low-pass filter.

+
+
Notch [oct.]
+
+

This one changes some character of low-pass filter.

+

Technically, this parameter changes the cutoff frequency of + all-pass filter placed on the feedback path. On amplitude response, it + makes some notch and changes the intensity of the resonance.

+
+
+

+

In GlitchSprinkler, all waveform parameters except + Pulse Width / Bit Mask will be fixed at note-on. This is + intentional tuning to suppress noise when playing fast arpeggios.

+
+
(Waveform Editor), Xn, Yn
+
+

Control points of the polynomial oscillator.

+

Due to the nature of polynomial approximation, the waveform will be + wavy. Recommend to use randomization, and avoid manual adjustments as + much as possible.

+

Below is a list of shortcuts of Waveform Editor. Shortcuts are + enabled after left clicking Waveform Editor and only enabled when + mouse cursor is stayed on Waveform Editor.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ShortcutAction
rRandomize
tSmall randomize only for Y axis.
0Preset : Silence
1Preset : Sine
2Preset : FM A
3Preset : FM B
4Preset : Sawtooth
5Preset : Triangle
6Preset : Trapezoid
7Preset : Alternate
8Preset : Pulse
9Preset : Saturated sine
+
+
Osc. Sync.
+
+

Ratio of hard sync.

+
+
FM Index
+
+

Intensity of frequency modulation (FM).

+

FM algorithm is 1 operator feedforward. It means that the waveform + is computed once, then that computed value is temporary added to + phase, then that phase is used to compute the FM waveform.

+
+
Saturation [dB]
+
+

Gain before hard clipping.

+

This can be used to make square waves.

+
+
Pulse Width / Bit Mask
+
+

Duty ratio of pulse wave. The pulse wave is multiplied to the + waveform.

+

When Bitwise And is on, bitwise and operation is + applied to the phase of the oscillator instead of the pulse wave + multiplication.

+

Caution : If Pulse Width / Bit Mask + is 1, and PWM is off, the output becomes silent due to + the duty ratio becomes 0.

+
+
Modulation Rate
+
+

Rate of pulse width modulation (PWM).

+

Higher the value, the modulation becomes slower. Negative numbers + make the modulation faster.

+

The modulation rate changes depending on the pitch of the note.

+
+
PWM
+
+

When turned on, pulse width modulation (PWM) will be activated.

+

PWM becomes deeper when Pulse Width / Bit Mask + approaches to 1.

+
+
Bidirectional
+
+

When turned on, triangular wave is used for PWM. When turned off, + sawtooth wave is used.

+

When PWM is off, Bidirectional does + nothing.

+
+
Bitwise And
+
+

When turned on, the value of Pulse Width / Bit Mask + will be used to apply bitwise and operation to the phase of the + oscillator.

+

When Modulation Rate is fast, bitwise and operation + adds noisy texture to the sound.

+
+
+

+

GlitchSprinkler is designed specifically for playing fast + arpeggios, with Polyphonic and Soft Envelope + in the Oscillator section turned off, and + nVoice in the Unison section set to 2.

+
+
Seed
+
+

Seed value of the random number. Different Seed makes + different melody.

+
+
Note / Beat
+
+

Minimum duration of a note in the arpeggio.

+

The default setting of 4 will play 4 notes per beat, which means + that the minimum duration becomes 16th note.

+
+
Loop Length [beat]
+
+

Loop length of arpeggio.

+

Setting Loop Length to 0 practically disables looping. + The actual loop length becomes 2^32 beats in this case.

+
+
Duration Variation
+
+

Range of randomization of the length of the notes in the + arpeggio.

+

For example, when Note / Beat is 4, and + Duration Variation is 3, the note lengths will be + randomly chosen from 1 / 16, 2 / 16, and 3 / 16.

+
+
Rest Chance
+
+

Chance to put a rest in the arpeggio.

+

It works well with higher nVoice.

+

Caution: Setting Rest Chance to 1 + stops the sound, because the note will rest 100% of times.

+
+
Scale
+
+

Musical scale used for arpeggator.

+
+
Pitch Drift [cent]
+
+

Amount of randomization of the pitch of a note.

+
+
Octave Range
+
+

Octave range used by the arpeggio.。

+

Some scales span more than an octave, so the octave range may be + wider than the specified value.

+
+
Start From Root
+
+

When turned on, the first note of the arpeggio will be set to the + pitch specified by the note-on.

+
+
Reset Modulation
+
+

When turned on, resets the PWM phase every time a new note is + played.

+
+
Random FM Index
+
+

Amount of randomization for FM Index. Randomization + amount changes for each note.

+
+
+

+
+
nVoice
+
+

Number of voices that is played with a note-on.

+

Higher values ​​can be more CPU intensive, especially when + Release is on. To save some CPU load, it’s better to + reduce nVoice when playing higher notes.

+
+
Detune [cent]
+
+

Amount of detune for unison voices.

+
+
Pan Spread
+
+

Amount of left/right spread of the unison voices.

+
+
Scatter Arpeggio
+
+

Only effective when Arpeggio is on. When turned on, + each voice plays a different melody. When turned off, all voices play + the same melody.

+
+
Gain Sqrt.
+
+

Changes how the gain is adjusted according to + nVoice.

+

When turned on, the gain for each voice is set to + sqrt(nVoice). When turned off, the gain for each voice is + set to 1 / (nVoice).

+

It sounds more natural when turned on, but the peak amplitude may + become quite loud.

+
+
+

+
    +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+

N/A.

+

+

GlitchSprinkler is licensed under GPLv3. Complete licenses are + linked below.

+ +

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

+

+

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

+ + + + + diff --git a/docs/manual/GlitchSprinkler/GlitchSprinkler_en.md b/docs/manual/GlitchSprinkler/GlitchSprinkler_en.md new file mode 100644 index 00000000..072b152a --- /dev/null +++ b/docs/manual/GlitchSprinkler/GlitchSprinkler_en.md @@ -0,0 +1,387 @@ +--- +lang: en +... + +# GlitchSprinkler +![](img/GlitchSprinkler.png) + +GlitchSprinkler is a synthesizer specialized to play fast arpeggios. It is using a cheap anti-aliasing trick that is to restrict the oscillator period only to integer sample counts. This anti-aliasing has a side effect to make the pitches out of tune, especially at higher notes, which makes a unique texture. + +{% for target, download_url in latest_download_url["GlitchSprinkler"].items() %} +- [Download GlitchSprinkler {{ latest_version["GlitchSprinkler"] }} `{{ target }}` - VST 3 (github.com)]({{ download_url }}) VST compatible logo. +{%- endfor %} +{%- if preset_download_url["GlitchSprinkler"]|length != 0%} +- [Download Presets (github.com)]({{ preset_download_url["GlitchSprinkler"] }}) +{%- endif %} + +**Note**: Presets produce the expected sound only if the sampling rate is 48000 Hz. + +{{ section["package"] }} + +{{ section["contact_installation_guiconfig"] }} + +## Controls +{{ section["gui_common"] }} + +{{ section["gui_knob"] }} + +## Caution +The pitch becomes more out of tune for higher notes. This is a side effect of anti-aliasing used in GlitchSprinkler. + +Direct current may appear. Setting `Safety Filter Mix` to 1 applies a high-pass filter with -6 dB/oct slope. If the spike on the transient is too large, it is recommended to use external high-pass filter with steeper slope. + +## Mechanism Overview +Note events come from MIDI channel 16 doesn't make any sound. Instead, those ch.16 notes change the pitch of incoming notes. Note that the pitch of the notes can't be changed when they are already being played. + +The modification of a note pitch is shown below. It is a multiplication of the note number to a note frequency, which can be used to play integer harmonic series. + +``` +noteFrequency = baseFrequency * lastNoteNumberOnChannel16; +``` + +## Block Diagram +If the image is small, use Ctrl + Mouse Wheel or "View Image" on right click menu to scale. + +Diagram only shows overview. It's not exact implementation. + +![](img/GlitchSprinkler.svg) + +## Parameters +Characters inside of square brackets \[\] represents unit. Following is a list of units used in GlitchSprinkler. + +- \[dB\] : Decibel. +- \[oct\] : Octave. +- \[st.\] : Ssemitone. 1 semitone is `1 / 12` octave. +- \[cent\] : Cent. 1 cent is `1 / 100` semitone. + + +### Oscillator +Output \[dB\] + +: Output gain. + +Safety Filter Mix + +: Ratio between the direct output and the high-pass filtered output. The value 1 means 100% high-pass filtered output. + + This -6 dB/oct high-pass filter is used to remove direct current (DC). When the DC is high, it may cause an amplitude spike at the beginning of the sound (transient). In this case, it may be better to switching to an external high-pass filter with steeper attenuation. + + Below is an overview of the signal flow: + + ``` + hp = highpass(input); + output = input + (Safety Filter Mix) * (hp - input); + ``` + +Decay to \[dB\] + +: Target gain of the decay envelope after the minimum duration of a note in the arpeggio. + + The minimum duration of a note in the arpeggio depends on the tempo specified on DAW, and the value of `Note / Beat`. The formula is as follows: + + ``` + samplesPerBeat = 60 * sampleRate / tempo; + noteDurationInSamples = samplesPerBeat / (`Note / Beat`); + ``` + +Polyphonic + +: Turn it on when playing chords. Turn it off when playing a monophonic melody. + + When turned on, up to 256 voices can be played simultaneously. When turned off, `nVoice` in the `Unison` section becomes the number of voices played simultaneously. + +Release + +: When turned on, the envelope continues to decay even after the note-off. + + When turned off, the sound stops after the waveform completes the current cycle after the note-off. If the pitch is low, the sound will persist for a while, even when `Release` is turned off. + + This is a switch similar to the sustain pedal on a piano. + +Soft Envelope + +: When turned on, reduces pop noise at the beginning and end of the sound. + + The pop noise is especially noticeable when `Filter` is on and at low pitches. + +Octave + +: Transpose in octave. + +Semitone + +: Transpose in semitone. `Tuning` changes the ratio of semitone. + +Cent + +: Transpose in cent. Unlike `Semitone`, `Cent` always uses the ratio of 12 equal temperament. + +Tuning + +: Musical tunings. + + - `ET N` : N equal temperament. + - `Just N` : N-limit tuning. + - `Just 5 Major` : So-called just intonation. Adjusted to reduce the beat of +4 semitones. + - `Just 5 Minor` : So-called just intonation. Adjusted to reduce the beat of +3 semitones. + - `MT Pythagorean` : Pythagorean tuning. + - `MT 1/3 Comma` : 1 / 3 comma mean tone. + - `MT 1/4 Comma` : 1 / 4 comma mean tone. + - Discrete N` : 12-tone equal temperament with the sampling rate divided by `N` as the center frequency. + + The pitches of the `Discrete` scales change significantly depending on the sampling rate. + + `Discrete 2` has a similar pitch to `ET 12` when transposed +1 semitone when the sampling rate is 48000 Hz. + +Tuning Root \[st.\] + +: Root of non-equal temperament scales. + + For example, suppose we have the following three-tone scale: + + ``` + [1, 5/4, 4/3] + ``` + + When `Tuning Root` is 0, the above scale is used as is. + + When `Tuning Root` is 1, the above scale is shifted to the left by 1, then it is wrapped around to an octave. + + ``` + [ 1, 5/4, 4/3] + -> [ 5/4, 4/3, 1] // Left shift. + -> [(5/4) / (4/5), (4/3) / (4/5), (1) / (4/5)] // Divide all the values with the leftmost ratio. + -> [ 1, 16/15, 4/5] + -> [ 1, 16/15, 8/5] // Wrap around to an octave. + ``` + +### Filter +The filter is a resonant low-pass with -6 dB/oct slope. Note that enabling the filter increases CPU load. + +Due to the nature of the filter, the resonance will never be higher than around `fs / 6` where `fs` is the sampling rate. In other words, the texture of the resonance changes depending on the sampling rate. + +Decay Time Ratio \[dB\] + +: Decay time of the filter envelope, calculated as a ratio from `Decay to` in the `Oscillator` section. + +Key Follow + +: Ratio to match the cutoff frequency to the pitch of the note. + + When `Cutoff` is 0 and `Key Follow` is 1, the frequency of the note matches the cutoff frequency when the filter envelope is fully decayed. + + When `Cutoff` is 0 and `Key Follow` is 0, the cutoff frequency will be 20 Hz when the filter envelope is fully decayed. + + The following is the formula for calculating the cutoff frequency (`adjustedCutoffHz`) when the filter envelope is fully decayed. + + ``` + baseCutoffHz = 20 + (Key Follow) * (freqHz - 20); + adjustedCutoffHz = baseCutoffHz * 2^(Cutoff); + ``` + +Cutoff \[oct.\] + +: Cutoff frequency of low-pass filter. + +Resonance + +: Resonance of low-pass filter. + +Notch \[oct.\] + +: This one changes some character of low-pass filter. + + Technically, this parameter changes the cutoff frequency of all-pass filter placed on the feedback path. On amplitude response, it makes some notch and changes the intensity of the resonance. + +### Waveform +In GlitchSprinkler, all waveform parameters except `Pulse Width / Bit Mask` will be fixed at note-on. This is intentional tuning to suppress noise when playing fast arpeggios. + +(Waveform Editor), Xn, Yn + +: Control points of the polynomial oscillator. + + Due to the nature of polynomial approximation, the waveform will be wavy. Recommend to use randomization, and avoid manual adjustments as much as possible. + + Below is a list of shortcuts of Waveform Editor. Shortcuts are enabled after left clicking Waveform Editor and only enabled when mouse cursor is stayed on Waveform Editor. + + | Shortcut | Action | + |--------------|----------------------------------| + | r | Randomize | + | t | Small randomize only for Y axis. | + | 0 | Preset : Silence | + | 1 | Preset : Sine | + | 2 | Preset : FM A | + | 3 | Preset : FM B | + | 4 | Preset : Sawtooth | + | 5 | Preset : Triangle | + | 6 | Preset : Trapezoid | + | 7 | Preset : Alternate | + | 8 | Preset : Pulse | + | 9 | Preset : Saturated sine | + +Osc. Sync. + +: Ratio of hard sync. + +FM Index + +: Intensity of frequency modulation (FM). + + FM algorithm is 1 operator feedforward. It means that the waveform is computed once, then that computed value is temporary added to phase, then that phase is used to compute the FM waveform. + +Saturation \[dB\] + +: Gain before hard clipping. + + This can be used to make square waves. + +Pulse Width / Bit Mask + +: Duty ratio of pulse wave. The pulse wave is multiplied to the waveform. + + When `Bitwise And` is on, bitwise and operation is applied to the phase of the oscillator instead of the pulse wave multiplication. + + **Caution** : If `Pulse Width / Bit Mask` is 1, and `PWM` is off, the output becomes silent due to the duty ratio becomes 0. + +Modulation Rate + +: Rate of pulse width modulation (PWM). + + Higher the value, the modulation becomes slower. Negative numbers make the modulation faster. + + The modulation rate changes depending on the pitch of the note. + +PWM + +: When turned on, pulse width modulation (PWM) will be activated. + + PWM becomes deeper when `Pulse Width / Bit Mask` approaches to 1. + +Bidirectional + +: When turned on, triangular wave is used for PWM. When turned off, sawtooth wave is used. + + When `PWM` is off, `Bidirectional` does nothing. + +Bitwise And + +: When turned on, the value of `Pulse Width / Bit Mask` will be used to apply bitwise and operation to the phase of the oscillator. + + When `Modulation Rate` is fast, bitwise and operation adds noisy texture to the sound. + +### Arpeggio +GlitchSprinkler is designed specifically for playing fast arpeggios, with `Polyphonic` and `Soft Envelope` in the `Oscillator` section turned off, and `nVoice` in the `Unison` section set to 2. + +Seed + +: Seed value of the random number. Different `Seed` makes different melody. + +Note / Beat + +: Minimum duration of a note in the arpeggio. + + The default setting of 4 will play 4 notes per beat, which means that the minimum duration becomes 16th note. + +Loop Length \[beat\] + +: Loop length of arpeggio. + + Setting `Loop Length` to 0 practically disables looping. The actual loop length becomes 2^32 beats in this case. + +Duration Variation + +: Range of randomization of the length of the notes in the arpeggio. + + For example, when `Note / Beat` is 4, and `Duration Variation` is 3, the note lengths will be randomly chosen from 1 / 16, 2 / 16, and 3 / 16. + +Rest Chance + +: Chance to put a rest in the arpeggio. + + It works well with higher `nVoice`. + + **Caution**: Setting `Rest Chance` to 1 stops the sound, because the note will rest 100% of times. + +Scale + +: Musical scale used for arpeggator. + +Pitch Drift \[cent\] + +: Amount of randomization of the pitch of a note. + +Octave Range + +: Octave range used by the arpeggio.。 + + Some scales span more than an octave, so the octave range may be wider than the specified value. + +Start From Root + +: When turned on, the first note of the arpeggio will be set to the pitch specified by the note-on. + +Reset Modulation + +: When turned on, resets the PWM phase every time a new note is played. + +Random FM Index + +: Amount of randomization for `FM Index`. Randomization amount changes for each note. + +### Unison +nVoice + +: Number of voices that is played with a note-on. + + Higher values ​​can be more CPU intensive, especially when `Release` is on. To save some CPU load, it's better to reduce `nVoice` when playing higher notes. + +Detune \[cent\] + +: Amount of detune for unison voices. + +Pan Spread + +: Amount of left/right spread of the unison voices. + +Scatter Arpeggio + +: Only effective when `Arpeggio` is on. When turned on, each voice plays a different melody. When turned off, all voices play the same melody. + +Gain Sqrt. + +: Changes how the gain is adjusted according to `nVoice`. + + When turned on, the gain for each voice is set to `sqrt(nVoice)`. When turned off, the gain for each voice is set to `1 / (nVoice)`. + + It sounds more natural when turned on, but the peak amplitude may become quite loud. + +## Change Log +{%- for version, logs in changelog["GlitchSprinkler"].items() %} +- {{version}} + {%- for log in logs["en"] %} + - {{ log }} + {%- endfor %} +{%- endfor %} + +## Old Versions +{%- if old_download_link["GlitchSprinkler"]|length == 0 %} +N/A. +{%- else %} + {%- for x in old_download_link["GlitchSprinkler"] %} +- [GlitchSprinkler {{ x["version"] }} - VST 3 (github.com)]({{ x["url"] }}) + {%- endfor %} +{%- endif %} + +## License +GlitchSprinkler 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/GlitchSprinkler/GlitchSprinkler_ja.html b/docs/manual/GlitchSprinkler/GlitchSprinkler_ja.html new file mode 100644 index 00000000..fef4a871 --- /dev/null +++ b/docs/manual/GlitchSprinkler/GlitchSprinkler_ja.html @@ -0,0 +1,1115 @@ + + + + + + + + + GlitchSprinkler_ja – Uhhyou Plugins + + + + + + +
+

Back to Index

+

+ Update: 2024-08-11 +

+
+ Table of Contents + +
+
+

+

+

GlitchSprinklerグリッチ スプリンクラー + は速いアルペジオに特化したシンセサイザです。オシレータの周期を整数のサンプル数のみとすることで安価にアンチエイリアシングを行っています。このアンチエイリアシングの副作用により、特に音程が高いときにピッチがずれて独特の音律が現れます。

+ +

注意: プリセットはサンプリング周波数が 48000 Hz + でなければ想定された音が出ません。

+

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

+
    +
  • Windows (x86_64)
  • +
  • Linux (x86_64)
  • +
  • macOS (Universal 2)
  • +
+

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 + 以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

+

macOS で使用するときは macOS + パッケージのダウンロードを推奨します。また Apple Developer Program + に加入していないので、インストール時に Gatekeeper + を迂回するように設定する必要があります。詳細は + インストール -> macOS + の節を参照してください。

+

+

何かあれば GitHub + のリポジトリに issue を作るか ryukau@gmail.com + までお気軽にどうぞ。

+

paypal.me/ryukau + から開発資金を投げ銭することもできます。

+

+

+

名前が .vst3 で終わるディレクトリを OS + ごとに決められた位置に配置してください。

+
    +
  • Windows では /Program Files/Common Files/VST3/ + に配置します。
  • +
  • Linux では $HOME/.vst3/ に配置します。
  • +
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + に配置します。
  • +
+

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

+

+

注意: プリセットの無いプラグインもあります。

+

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

+
    +
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. +
  3. ダウンロードした zip ファイルを解凍。
  4. +
  5. presets ディレクトリ内の Uhhyou + ディレクトリを OS ごとに決められたディレクトリに配置。
  6. +
+

以下は OS ごとのプリセットの配置先の一覧です。

+
    +
  • Windows : + /Users/$USERNAME/Documents/VST3 Presets
  • +
  • Linux : $HOME/.vst3/presets
  • +
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • +
+

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

+ +

+

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

+ +

+

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

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

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

+ +

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに 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"
+}
+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

音程が高くなるほどピッチがずれます。これは GlitchSprinkler + で使われているアンチエイリアシングの副作用です。

+

直流が乗ります。 Safety Filter Mix を 1 + にすると直流を切る -6 dB/oct + のハイパスフィルタがかかります。音の開始時点での振幅の跳ね上がりが大きいときは、より切れ味の鋭い外部のハイパスフィルタを使ってください。

+

+

MIDI チャンネル 16 + のノートイベントは、通常のノートのように音が出ません。代わりに次に演奏する音程を変化させます。発音中のノートの周波数は変更されません。

+

音程の変化は、発音されるノートの周波数に MIDI チャンネル 16 + で最後に演奏されたノート番号を乗算する形で行われます。つまり 0 + 以上の整数の倍音を演奏することができます。以下は計算式です。

+
noteFrequency = baseFrequency * lastNoteNumberOnChannel16;
+

+

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

+

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

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

+
    +
  • [beat] : 拍数。
  • +
  • [dB] : デシベル (decibel) 。
  • +
  • [oct] : オクターブ (octave) 。
  • +
  • [st.] : 半音 (semitone)。 1 半音は 1 / 12 + オクターブ。
  • +
  • [cent] : セント。 1 セントは 1 / 100 半音。
  • +
+

+
+
Output [dB]
+
+

出力ゲインです。

+
+
Safety Filter Mix
+
+

直接の出力と、ハイパスフィルタをかけた出力を混ぜる比率です。 1 + のときにハイパスフィルタをかけた出力が 100% になります。

+

このハイパスフィルタは -6 dB/oct + の減衰を持ち、簡易に直流を取り除くために備えられています。直流が大きいときは音の開始時点(トランジエント)の部分に癖が残ることがあるので、より切れ味のいい外部のハイパスフィルタに切り替えることを推奨します。

+

以下は信号の流れの概要です。

+
hp = highpass(input);
+output = input + (Safety Filter Mix) * (hp - input);
+
+
Decay to [dB]
+
+

アルペジオのノート 1 つ分の時間でエンベロープが減衰する量です。

+

アルペジオのノート 1 つ分の時間の時間は、 DAW で設定されたテンポと + Note / Beat に依存します。以下は計算式です。

+
samplesPerBeat = 60 * sampleRate / tempo;
+noteDurationInSamples = samplesPerBeat / (`Note / Beat`);
+
+
Polyphonic
+
+

コードを弾くときはオン、単旋律を弾くときはオフにしてください。

+

オンにすると最大 256 音まで同時発音します。オフのときは + Unison セクションの nVoice + の数だけ同時発音します。

+
+
Release
+
+

オンにするとノートオフの後もエンベロープによる減衰が続きます。オフにするとノートオフの後に波形が + 1 + 周するのを待ってから音を止めます。オフのときでも音程が低いとしばらく音が残ります。

+

ピアノのサステインペダルと似たようなスイッチです。

+
+
Soft Envelope
+
+

エンベロープにスムーシングフィルタをかけて音の始まりと終わりに出るポップノイズを抑えます。

+

ポップノイズは Filter + がオンのときや、音程が低いときに、特に目立ちます。

+
+
Octave
+
+

オクターブ単位でのトランスポーズです。

+
+
Semitone
+
+

半音単位でのトランスポーズです。 Tuning + によって半音の比率が変わります。

+
+
Cent
+
+

セント単位でのトランスポーズです。 Semitone + とは異なり、 Tuning によらず 12 + 平均律の比率が使われます。以下は n セントの計算式です。

+
ratio = 2^(n / 1200);
+
+
Tuning
+
+

音律です。

+
    +
  • ET N : N 平均律。
  • +
  • Just N : N-limit 音律。 +
      +
    • Just 5 Major : いわゆる純正律。 +4 + 半音のうなりを減らすように調整。
    • +
    • Just 5 Minor : いわゆる純正律。 +3 + 半音のうなりを減らすように調整。
    • +
  • +
  • MT Pythagorean : ピタゴラス音律。
  • +
  • MT 1/3 Comma : 1 / 3 コンマのミーントーン。
  • +
  • MT 1/4 Comma : 1 / 4 コンマのミーントーン。
  • +
  • Discrete N: サンプリング周波数をN` + で割った周波数を中央周波数とする 12 平均律。
  • +
+

Discrete + の音律はサンプリング周波数によって大きくピッチが変わります。

+

Discrete 2 はサンプリング周波数が 48000 Hz のときに 1 + 半音上にトランスポーズすると ET 12 + と似たようなピッチになります。

+
+
Tuning Root [st.]
+
+

平均律でない音律のルートです。

+

例えば以下のような 3 音の音律があるとします。

+
[1, 5/4, 4/3]
+

Tuning Root が 0 + のときは上の比率をそのまま使います。

+

Tuning Root が 1 のときは上の比率のリストを左に 1 + だけシフトして、オクターブの巻き戻しをかけます。

+
   [           1,            5/4,         4/3]
+-> [         5/4,            4/3,           1] // 左シフト。
+-> [(5/4) / (4/5), (4/3) / (4/5), (1) / (4/5)] // 最も左の比率が 1 となるように調整。
+-> [            1,         16/15,         4/5]
+-> [            1,         16/15,         8/5] // オクターブの巻き戻し。
+
+
+

+

レゾナンスのついた -6 dB/oct のローパスフィルタです。有効にすると + CPU 負荷が増えるので注意してください。

+

フィルタの癖によってカットオフ周波数をいくら上げてもレゾナンスが fs + / 6 付近より高くなりません。ここで fs + はサンプリング周波数です。つまり、サンプリング周波数によってレゾナンスの質感が大きく変わります。

+
+
Decay Time Ratio [dB]
+
+

フィルタのエンベロープのディケイ時間です。 Oscillator + セクションの Decay to からの比率として計算されます。

+
+
Key Follow
+
+

カットオフ周波数をノートの音程と合わせる度合いです

+

Cutoff が 0 かつ Key Follow が 1 + のとき、ノートの音程の周波数と、フィルタのエンベロープが減衰しきったときのカットオフ周波数が一致します。

+

Cutoff が 0 かつ Key Follow が 0 + のとき、フィルタのエンベロープが減衰しきったときのカットオフ周波数は + 20 Hz になります。

+

以下はフィルタのエンベロープが減衰しきったときのカットオフ周波数 + (adjustedCutoffHz) の計算式です。

+
baseCutoffHz = 20 + (Key Follow) * (freqHz - 20);
+adjustedCutoffHz = baseCutoffHz * 2^(Cutoff);
+
+
Cutoff [oct.]
+
+

フィルタのカットオフ周波数です。

+
+
Resonance
+
+

フィルタのレゾナンスです。

+
+
Notch [oct.]
+
+

フィルタによくわからない癖をつけます。

+

この値はフィードバック経路に用意されたオールパスフィルタのカットオフ周波数を変更します。振幅特性を見るとノッチが現れるように見えます。またレゾナンスの強さも変わります。

+
+
+

+

GlitchSprinkler では、 Pulse Width / Bit Mask + を除く波形のパラメータはノートオンの時点で固定されます。これは速いアルペジオの演奏でノイズを抑えるための意図的なチューニングです。

+
+
(Waveform Editor), Xn, Yn
+
+

多項式オシレータの制御点です。

+

多項式近似の性質より波形がくねります。ランダマイズを優先して使い、人手による調整は避けることをお勧めします。

+

以下はショートカットの一覧です。ショートカットは波形エディタを左クリックしてフォーカスすると有効になります。フォーカス後にマウスカーソルを波形エディタの領域外に移動させると、ショートカットが無効になります。右下のプラグイン名をクリックことでもショートカットの一覧を表示できます。

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
入力操作
rランダマイズ
ty 軸方向に少しだけランダマイズ
0プリセット波形 : 無音 (横一列)
1プリセット波形 : サイン波
2プリセット波形 : FM A
3プリセット波形 : FM B
4プリセット波形 : のこぎり波
5プリセット波形 : 三角波
6プリセット波形 : 台形
7プリセット波形 : 交互
8プリセット波形 : パルス
9プリセット波形 : 歪んだサイン波
+
+
Osc. Sync.
+
+

ハードシンクの比率です。

+
+
FM Index
+
+

FM の強さです。

+

FM の接続は 1 + オペレータのフィードフォワードです。つまり、波形の多項式を 1 + 回計算したあと、得られた値を一時的に位相に加えて、もう一度多項式を計算しています。

+
+
Saturation [dB]
+
+

ハードクリッピングに波形を入力するときのゲインです。

+

矩形波を作るときは Saturation + の値を上げてください。

+
+
Pulse Width / Bit Mask
+
+

波形に乗算する矩形波のデューティ比です。

+

Bitwise And がオンのときは矩形窓の乗算の代わりに、 + Pulse Width / Bit Mask + の値を基にした整数でオシレータの位相にビット論理積をかけます。

+

注意: Pulse Width / Bit Mask が 1 + かつ PWM がオフのとき、デューティ比が 0 + となり音が止まります。

+
+
Modulation Rate
+
+

パルス幅変調 (PWM) の速さです。

+

0 + 以上のときに変調が遅くなり、負の方向に進むほど変調が速くなります。

+

ノートのピッチに応じて変調の速さが変わります。

+
+
PWM
+
+

オンにするとパルス幅変調 (PWM) をかけます。

+

PWM は Pulse Width / Bit Mask が 1 + に近いほど深くかかります。

+
+
Bidirectional
+
+

オンでは三角波、オフでは鋸歯波によって PWM が行われます。

+

PWM がオフのときは効果がありません。

+
+
Bitwise And
+
+

オンにすると内部的に整数で表されているオシレータの位相に + Pulse Width / Bit Mask + を基にした別の整数でビット論理積をかけます。

+

Modulation Rate + が速いと波形の切り替わりで生じるノイズによってがさがさとした音になりがちです。

+
+
+

+

GlitchSprinkler は Oscillator セクションの + PolyphonicSoft Envelope をオフ、 + Unison セクションの nVoice を 2 + にして速いアルペジオを演奏することに特化して作られています。

+
+
Seed
+
+

乱数のシード値です。シード値が変わると旋律が変わります。

+
+
Note / Beat
+
+

アルペジオのノート 1 つの長さの最小値です。

+

デフォルトの 4 では 1 拍あたりに 4 + つのノートが演奏されます。つまり最小の長さは 16 分音符となります。

+
+
Loop Length [beat]
+
+

アルペジオが 1 周する長さです。

+

0 のときは明示的には繰り返しませんが、実装の都合で 2^32 (≈ 4.3 億) + 個のノートが演奏されるごとに 1 周します。

+
+
Duration Variation
+
+

アルペジオのノートの長さをランダマイズする幅です。

+

例えば Note / Beat が 4 かつ、 + Duration Variation が 3 のとき、ノートの長さが 1 / 16, 2 + / 16, 3 / 16 の中からランダムに選ばれます。

+
+
Rest Chance
+
+

アルペジオに休符を挟む確率です。

+

Unison セクションの nVoice + が多いときに使うと雰囲気がでます。

+

注意: 1 にすると 100% + 休符となるため音が止まります。

+
+
Scale
+
+

アルペジオで使われる音程の組 (スケール) です。

+
+
Pitch Drift [cent]
+
+

ノートのピッチをランダマイズする量です。

+
+
Octave Range
+
+

アルペジオが使うオクターブの幅です。

+

一部のスケールは 1 + オクターブを超えるので、指定した値よりも広い幅で演奏されることがあります。

+
+
Start From Root
+
+

オンのとき、アルペジオの 1 + つめの音程をノートオンで指定された音程にそろえます。

+
+
Reset Modulation
+
+

オンのとき、新しくノートが発音されるたびに PWM + の位相をリセットします。

+
+
Random FM Index
+
+

新しくノートが発音されるたびに FM Index + をランダマイズする比率です。

+
+
+

+
+
nVoice
+
+

1 つのノートオンで同時に発音するボイス数です。

+

値を大きくすると CPU 負荷が高くなります。特に Release + がオンのときは注意してください。高い音程を演奏するときは少なめ、低い音程を演奏するときは多めに設定すると + CPU 負荷の節約につながります。

+
+
Detune [cent]
+
+

ユニゾンに使うボイスのピッチをずらす量です。

+
+
Pan Spread
+
+

ユニゾンに使うボイスを左右に広げる量です。

+
+
Scatter Arpeggio
+
+

Arpeggio + がオンのときのみ有効です。オンのときはボイスごとに異なる旋律を演奏します。オフのときはすべてのボイスで同じ旋律を演奏します。

+
+
Gain Sqrt.
+
+

nVoice に応じたゲインの調整方法を変更します。

+

オンのときは 1 ボイスあたりのゲインを sqrt(nVoice) + とします。オフのときは 1 ボイスあたりのゲインを + 1 / (nVoice) とします。

+

オンにしたほうが自然に聞こえるので nVoice + を変更するときに耳での比較がしやすいですが、ピーク振幅がかなり大きくなります。

+
+
+

+
    +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

旧バージョンはありません。

+

+

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

+ +

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

+

+

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

+ + + + + diff --git a/docs/manual/GlitchSprinkler/GlitchSprinkler_ja.md b/docs/manual/GlitchSprinkler/GlitchSprinkler_ja.md new file mode 100644 index 00000000..aa0aa904 --- /dev/null +++ b/docs/manual/GlitchSprinkler/GlitchSprinkler_ja.md @@ -0,0 +1,389 @@ +--- +lang: ja +... + +# GlitchSprinkler +![](img/GlitchSprinkler.png) + +GlitchSprinklerグリッチ スプリンクラー は速いアルペジオに特化したシンセサイザです。オシレータの周期を整数のサンプル数のみとすることで安価にアンチエイリアシングを行っています。このアンチエイリアシングの副作用により、特に音程が高いときにピッチがずれて独特の音律が現れます。 + +{% for target, download_url in latest_download_url["GlitchSprinkler"].items() %} +- [GlitchSprinkler {{ latest_version["GlitchSprinkler"] }} `{{ target }}` - VST 3 をダウンロード (github.com)]({{ download_url }}) VST compatible logo. +{%- endfor %} +{%- if preset_download_url["GlitchSprinkler"]|length != 0%} +- [プリセットをダウンロード (github.com)]({{ preset_download_url["GlitchSprinkler"] }}) +{%- endif %} + +**注意**: プリセットはサンプリング周波数が 48000 Hz でなければ想定された音が出ません。 + +{{ section["package"] }} + +{{ section["contact_installation_guiconfig"] }} + +## 操作 +{{ section["gui_common"] }} + +{{ section["gui_knob"] }} + +## 注意 +音程が高くなるほどピッチがずれます。これは GlitchSprinkler で使われているアンチエイリアシングの副作用です。 + +直流が乗ります。 `Safety Filter Mix` を 1 にすると直流を切る -6 dB/oct のハイパスフィルタがかかります。音の開始時点での振幅の跳ね上がりが大きいときは、より切れ味の鋭い外部のハイパスフィルタを使ってください。 + +## MIDI チャンネル 16 について +MIDI チャンネル 16 のノートイベントは、通常のノートのように音が出ません。代わりに次に演奏する音程を変化させます。発音中のノートの周波数は変更されません。 + +音程の変化は、発音されるノートの周波数に MIDI チャンネル 16 で最後に演奏されたノート番号を乗算する形で行われます。つまり 0 以上の整数の倍音を演奏することができます。以下は計算式です。 + +``` +noteFrequency = baseFrequency * lastNoteNumberOnChannel16; +``` + +## ブロック線図 +図が小さいときはブラウザのショートカット Ctrl + マウスホイール や、右クリックから「画像だけを表示」などで拡大できます。 + +図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。 + +![](img/GlitchSprinkler.svg) + +## パラメータ +角かっこ \[\] で囲まれているのは単位です。以下は単位の一覧です。 + +- \[beat\] : 拍数。 +- \[dB\] : デシベル (decibel) 。 +- \[oct\] : オクターブ (octave) 。 +- \[st.\] : 半音 (semitone)。 1 半音は `1 / 12` オクターブ。 +- \[cent\] : セント。 1 セントは `1 / 100` 半音。 + +### Oscillator +Output \[dB\] + +: 出力ゲインです。 + +Safety Filter Mix + +: 直接の出力と、ハイパスフィルタをかけた出力を混ぜる比率です。 1 のときにハイパスフィルタをかけた出力が 100% になります。 + + このハイパスフィルタは -6 dB/oct の減衰を持ち、簡易に直流を取り除くために備えられています。直流が大きいときは音の開始時点(トランジエント)の部分に癖が残ることがあるので、より切れ味のいい外部のハイパスフィルタに切り替えることを推奨します。 + + 以下は信号の流れの概要です。 + + ``` + hp = highpass(input); + output = input + (Safety Filter Mix) * (hp - input); + ``` + +Decay to \[dB\] + +: アルペジオのノート 1 つ分の時間でエンベロープが減衰する量です。 + + アルペジオのノート 1 つ分の時間の時間は、 DAW で設定されたテンポと `Note / Beat` に依存します。以下は計算式です。 + + ``` + samplesPerBeat = 60 * sampleRate / tempo; + noteDurationInSamples = samplesPerBeat / (`Note / Beat`); + ``` + +Polyphonic + +: コードを弾くときはオン、単旋律を弾くときはオフにしてください。 + + オンにすると最大 256 音まで同時発音します。オフのときは `Unison` セクションの `nVoice` の数だけ同時発音します。 + +Release + +: オンにするとノートオフの後もエンベロープによる減衰が続きます。オフにするとノートオフの後に波形が 1 周するのを待ってから音を止めます。オフのときでも音程が低いとしばらく音が残ります。 + + ピアノのサステインペダルと似たようなスイッチです。 + +Soft Envelope + +: エンベロープにスムーシングフィルタをかけて音の始まりと終わりに出るポップノイズを抑えます。 + + ポップノイズは `Filter` がオンのときや、音程が低いときに、特に目立ちます。 + +Octave + +: オクターブ単位でのトランスポーズです。 + +Semitone + +: 半音単位でのトランスポーズです。 `Tuning` によって半音の比率が変わります。 + +Cent + +: セント単位でのトランスポーズです。 `Semitone` とは異なり、 `Tuning` によらず 12 平均律の比率が使われます。以下は n セントの計算式です。 + + ``` + ratio = 2^(n / 1200); + ``` + +Tuning + +: 音律です。 + + - `ET N` : N 平均律。 + - `Just N` : N-limit 音律。 + - `Just 5 Major` : いわゆる純正律。 +4 半音のうなりを減らすように調整。 + - `Just 5 Minor` : いわゆる純正律。 +3 半音のうなりを減らすように調整。 + - `MT Pythagorean` : ピタゴラス音律。 + - `MT 1/3 Comma` : 1 / 3 コンマのミーントーン。 + - `MT 1/4 Comma` : 1 / 4 コンマのミーントーン。 + - Discrete N` : サンプリング周波数を `N` で割った周波数を中央周波数とする 12 平均律。 + + `Discrete` の音律はサンプリング周波数によって大きくピッチが変わります。 + + `Discrete 2` はサンプリング周波数が 48000 Hz のときに 1 半音上にトランスポーズすると `ET 12` と似たようなピッチになります。 + +Tuning Root \[st.\] + +: 平均律でない音律のルートです。 + + 例えば以下のような 3 音の音律があるとします。 + + ``` + [1, 5/4, 4/3] + ``` + + `Tuning Root` が 0 のときは上の比率をそのまま使います。 + + `Tuning Root` が 1 のときは上の比率のリストを左に 1 だけシフトして、オクターブの巻き戻しをかけます。 + + ``` + [ 1, 5/4, 4/3] + -> [ 5/4, 4/3, 1] // 左シフト。 + -> [(5/4) / (4/5), (4/3) / (4/5), (1) / (4/5)] // 最も左の比率が 1 となるように調整。 + -> [ 1, 16/15, 4/5] + -> [ 1, 16/15, 8/5] // オクターブの巻き戻し。 + ``` + +### Filter +レゾナンスのついた -6 dB/oct のローパスフィルタです。有効にすると CPU 負荷が増えるので注意してください。 + +フィルタの癖によってカットオフ周波数をいくら上げてもレゾナンスが fs / 6 付近より高くなりません。ここで fs はサンプリング周波数です。つまり、サンプリング周波数によってレゾナンスの質感が大きく変わります。 + +Decay Time Ratio \[dB\] + +: フィルタのエンベロープのディケイ時間です。 `Oscillator` セクションの `Decay to` からの比率として計算されます。 + +Key Follow + +: カットオフ周波数をノートの音程と合わせる度合いです + + `Cutoff` が 0 かつ `Key Follow` が 1 のとき、ノートの音程の周波数と、フィルタのエンベロープが減衰しきったときのカットオフ周波数が一致します。 + + `Cutoff` が 0 かつ `Key Follow` が 0 のとき、フィルタのエンベロープが減衰しきったときのカットオフ周波数は 20 Hz になります。 + + 以下はフィルタのエンベロープが減衰しきったときのカットオフ周波数 (`adjustedCutoffHz`) の計算式です。 + + ``` + baseCutoffHz = 20 + (Key Follow) * (freqHz - 20); + adjustedCutoffHz = baseCutoffHz * 2^(Cutoff); + ``` + +Cutoff \[oct.\] + +: フィルタのカットオフ周波数です。 + +Resonance + +: フィルタのレゾナンスです。 + +Notch \[oct.\] + +: フィルタによくわからない癖をつけます。 + + この値はフィードバック経路に用意されたオールパスフィルタのカットオフ周波数を変更します。振幅特性を見るとノッチが現れるように見えます。またレゾナンスの強さも変わります。 + +### Waveform +GlitchSprinkler では、 `Pulse Width / Bit Mask` を除く波形のパラメータはノートオンの時点で固定されます。これは速いアルペジオの演奏でノイズを抑えるための意図的なチューニングです。 + +(Waveform Editor), Xn, Yn + +: 多項式オシレータの制御点です。 + + 多項式近似の性質より波形がくねります。ランダマイズを優先して使い、人手による調整は避けることをお勧めします。 + + 以下はショートカットの一覧です。ショートカットは波形エディタを左クリックしてフォーカスすると有効になります。フォーカス後にマウスカーソルを波形エディタの領域外に移動させると、ショートカットが無効になります。右下のプラグイン名をクリックことでもショートカットの一覧を表示できます。 + + | 入力 | 操作 | + |--------------|---------------------------| + | r | ランダマイズ | + | t | y 軸方向に少しだけランダマイズ | + | 0 | プリセット波形 : 無音 (横一列) | + | 1 | プリセット波形 : サイン波 | + | 2 | プリセット波形 : FM A | + | 3 | プリセット波形 : FM B | + | 4 | プリセット波形 : のこぎり波 | + | 5 | プリセット波形 : 三角波 | + | 6 | プリセット波形 : 台形 | + | 7 | プリセット波形 : 交互 | + | 8 | プリセット波形 : パルス | + | 9 | プリセット波形 : 歪んだサイン波 | + +Osc. Sync. + +: ハードシンクの比率です。 + +FM Index + +: FM の強さです。 + + FM の接続は 1 オペレータのフィードフォワードです。つまり、波形の多項式を 1 回計算したあと、得られた値を一時的に位相に加えて、もう一度多項式を計算しています。 + +Saturation \[dB\] + +: ハードクリッピングに波形を入力するときのゲインです。 + + 矩形波を作るときは `Saturation` の値を上げてください。 + +Pulse Width / Bit Mask + +: 波形に乗算する矩形波のデューティ比です。 + + `Bitwise And` がオンのときは矩形窓の乗算の代わりに、 `Pulse Width / Bit Mask` の値を基にした整数でオシレータの位相にビット論理積をかけます。 + + **注意**: `Pulse Width / Bit Mask` が 1 かつ `PWM` がオフのとき、デューティ比が 0 となり音が止まります。 + +Modulation Rate + +: パルス幅変調 (PWM) の速さです。 + + 0 以上のときに変調が遅くなり、負の方向に進むほど変調が速くなります。 + + ノートのピッチに応じて変調の速さが変わります。 + +PWM + +: オンにするとパルス幅変調 (PWM) をかけます。 + + PWM は `Pulse Width / Bit Mask` が 1 に近いほど深くかかります。 + +Bidirectional + +: オンでは三角波、オフでは鋸歯波によって PWM が行われます。 + + `PWM` がオフのときは効果がありません。 + +Bitwise And + +: オンにすると内部的に整数で表されているオシレータの位相に `Pulse Width / Bit Mask` を基にした別の整数でビット論理積をかけます。 + + `Modulation Rate` が速いと波形の切り替わりで生じるノイズによってがさがさとした音になりがちです。 + +### Arpeggio +GlitchSprinkler は `Oscillator` セクションの `Polyphonic` と `Soft Envelope` をオフ、 `Unison` セクションの `nVoice` を 2 にして速いアルペジオを演奏することに特化して作られています。 + +Seed + +: 乱数のシード値です。シード値が変わると旋律が変わります。 + +Note / Beat + +: アルペジオのノート 1 つの長さの最小値です。 + + デフォルトの 4 では 1 拍あたりに 4 つのノートが演奏されます。つまり最小の長さは 16 分音符となります。 + +Loop Length \[beat\] + +: アルペジオが 1 周する長さです。 + + 0 のときは明示的には繰り返しませんが、実装の都合で 2^32 (≈ 4.3 億) 個のノートが演奏されるごとに 1 周します。 + +Duration Variation + +: アルペジオのノートの長さをランダマイズする幅です。 + + 例えば `Note / Beat` が 4 かつ、 `Duration Variation` が 3 のとき、ノートの長さが 1 / 16, 2 / 16, 3 / 16 の中からランダムに選ばれます。 + +Rest Chance + +: アルペジオに休符を挟む確率です。 + + `Unison` セクションの `nVoice` が多いときに使うと雰囲気がでます。 + + **注意**: 1 にすると 100% 休符となるため音が止まります。 + +Scale + +: アルペジオで使われる音程の組 (スケール) です。 + +Pitch Drift \[cent\] + +: ノートのピッチをランダマイズする量です。 + +Octave Range + +: アルペジオが使うオクターブの幅です。 + + 一部のスケールは 1 オクターブを超えるので、指定した値よりも広い幅で演奏されることがあります。 + +Start From Root + +: オンのとき、アルペジオの 1 つめの音程をノートオンで指定された音程にそろえます。 + +Reset Modulation + +: オンのとき、新しくノートが発音されるたびに PWM の位相をリセットします。 + +Random FM Index + +: 新しくノートが発音されるたびに `FM Index` をランダマイズする比率です。 + +### Unison +nVoice + +: 1 つのノートオンで同時に発音するボイス数です。 + + 値を大きくすると CPU 負荷が高くなります。特に `Release` がオンのときは注意してください。高い音程を演奏するときは少なめ、低い音程を演奏するときは多めに設定すると CPU 負荷の節約につながります。 + +Detune \[cent\] + +: ユニゾンに使うボイスのピッチをずらす量です。 + +Pan Spread + +: ユニゾンに使うボイスを左右に広げる量です。 + +Scatter Arpeggio + +: `Arpeggio` がオンのときのみ有効です。オンのときはボイスごとに異なる旋律を演奏します。オフのときはすべてのボイスで同じ旋律を演奏します。 + +Gain Sqrt. + +: `nVoice` に応じたゲインの調整方法を変更します。 + + オンのときは 1 ボイスあたりのゲインを `sqrt(nVoice)` とします。オフのときは 1 ボイスあたりのゲインを `1 / (nVoice)` とします。 + + オンにしたほうが自然に聞こえるので `nVoice` を変更するときに耳での比較がしやすいですが、ピーク振幅がかなり大きくなります。 + +## チェンジログ +{%- for version, logs in changelog["GlitchSprinkler"].items() %} +- {{version}} + {%- for log in logs["ja"] %} + - {{ log }} + {%- endfor %} +{%- endfor %} + +## 旧バージョン +{%- if old_download_link["GlitchSprinkler"]|length == 0 %} +旧バージョンはありません。 +{%- else %} + {%- for x in old_download_link["GlitchSprinkler"] %} +- [GlitchSprinkler {{ x["version"] }} - VST 3 (github.com)]({{ x["url"] }}) + {%- endfor %} +{%- endif %} + +## ライセンス +GlitchSprinkler のライセンスは 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/GlitchSprinkler/img/GlitchSprinkler.odg b/docs/manual/GlitchSprinkler/img/GlitchSprinkler.odg new file mode 100644 index 0000000000000000000000000000000000000000..28f5edadb7d5d0e68f5bb7b8fc0c2e1c22f5052b GIT binary patch literal 14224 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 bWB3R6Dk}j6{p+-MuP-V{06^x`udV+Bw`5`d literal 0 HcmV?d00001 diff --git a/docs/manual/GlitchSprinkler/img/GlitchSprinkler.png b/docs/manual/GlitchSprinkler/img/GlitchSprinkler.png new file mode 100644 index 0000000000000000000000000000000000000000..a5322fce454a0ffc120c8b70bfce7f90d19a8e8e GIT binary patch literal 51446 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Oscillator + + + + + + + + Low-pass Filter + + + + + + + + + + + + + + + PWM Counter + + + + + + + + + + + + + + + + + + + + Output + + + + + + Voice + + + + + + GlitchSprinkler + + + + + + + + Safety Filter + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Voice + + + + + + + + Voice + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Output + + + + + + Safety Filter is a high-pass filterto remove direct current. + + + + \ No newline at end of file diff --git a/docs/manual/GlitchSprinkler/img/VST_Compatible_Logo_Steinberg_negative.svg b/docs/manual/GlitchSprinkler/img/VST_Compatible_Logo_Steinberg_negative.svg new file mode 100644 index 00000000..f03d67ac --- /dev/null +++ b/docs/manual/GlitchSprinkler/img/VST_Compatible_Logo_Steinberg_negative.svg @@ -0,0 +1,82 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/manual/IterativeSinCluster/IterativeSinCluster_en.html b/docs/manual/IterativeSinCluster/IterativeSinCluster_en.html index fbd90335..8e9eca20 100644 --- a/docs/manual/IterativeSinCluster/IterativeSinCluster_en.html +++ b/docs/manual/IterativeSinCluster/IterativeSinCluster_en.html @@ -2,546 +2,581 @@ - - - - -IterativeSinCluster_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

IterativeSinCluster

-

-

IterativeSinCluster is an additive synthesizer. This synth computes -512 sine waves for each note to make tone cluster. I somehow thought -“iterative sin” is a valid term. Correct term is “recursive sine”.

- -

IterativeSinCluster requires AVX or later SIMD instructions on x86_64 -environment.

-

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -561,407 +596,419 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

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 the cutoff frequency specified by -Semi.
  • -
  • High shelving changes Gain of sine waves -greater than or equal to the 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):
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
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.

+
+
+

+

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 the cutoff frequency specified + by Semi.
  • +
  • High shelving changes Gain of sine waves + greater than or equal to the cutoff frequency + specified by Semi.
  • +
+

+
+
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.

+
+
+

+

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.

+

+

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

+

+
+
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.

+
+
+

+

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:
@@ -971,290 +1018,296 @@ 

Note, Chord, Overtone

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.27 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.26 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.25 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.24 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.23 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.1.22 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.21 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.20 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
    • Added code path for 64-bit ARM CPU (aarch64).
    • -
    • Removed x86_64 SIMD run-time dispatching. Supported instruction set -is now fixed to AVX.
    • -
  • -
  • 0.1.19 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.18 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
    • Fixed equalTemperament default display value from 11 to -12. Display parameter name is ET.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.15 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.14 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.13 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.12 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.11 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.10 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.9 -
      -
    • Added undo/redo to BarBox.
    • -
  • -
  • 0.1.8 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.7 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
    • Enabled pitch bend.
    • -
  • -
  • 0.1.6 -
      -
    • Changed BarBox shortcuts to be disabled when mouse cursor is on the -outside of BarBox.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.4 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.3 -
      -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.2 -
      -
    • Enabled GUI for Linux build.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed macOS build.
    • -
    • Added code paths for AVX and AVX512 instructions.
    • -
    • Fixed wobbling knob bug.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

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.

+

+
+
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.

+
+
+

+
    +
  • 0.1.27 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.26 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.25 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.24 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.23 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.1.22 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.21 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.20 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
    • Added code path for 64-bit ARM CPU (aarch64).
    • +
    • Removed x86_64 SIMD run-time dispatching. Supported instruction + set is now fixed to AVX.
    • +
  • +
  • 0.1.19 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.18 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
    • Fixed equalTemperament default display value from 11 + to 12. Display parameter name is ET.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.15 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.14 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.13 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.12 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.11 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.10 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.9 +
      +
    • Added undo/redo to BarBox.
    • +
  • +
  • 0.1.8 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.7 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
    • Enabled pitch bend.
    • +
  • +
  • 0.1.6 +
      +
    • Changed BarBox shortcuts to be disabled when mouse cursor is on + the outside of BarBox.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.4 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.3 +
      +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.2 +
      +
    • Enabled GUI for Linux build.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed macOS build.
    • +
    • Added code paths for AVX and AVX512 instructions.
    • +
    • Fixed wobbling knob bug.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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 index d8761545..b0e5da1c 100644 --- a/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html +++ b/docs/manual/IterativeSinCluster/IterativeSinCluster_ja.html @@ -2,549 +2,585 @@ - - - - -IterativeSinCluster_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

IterativeSinCluster

-

-

IterativeSinClusterイテレイティブ サイン -クラスタはノート 1 つあたり 512 -のサイン波を計算する加算合成シンセサイザです。一体、何を考えていたのか -iterative sin -という言葉を名前に使っていますが、アルゴリズムの種類を表す正しい言葉は -recursive sine です。

- -

x86_64 環境で IterativeSinCluster を使うには AVX 以降の SIMD -命令セットをサポートする CPU が必要です。

-

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -564,404 +600,422 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

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

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

Gain

-
-
Boost, Gain
-
-

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

-

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

-
-
ADSR
-
-

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

-
    -
  • A (Attack) : -鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • -
  • D (Decay) : -最大音量からサステイン音量になるまでのディケイ時間。
  • -
  • S (Sustain) : -アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • -
  • R (Release) : 鍵盤から指を離したあとに音量が 0 -になるまでのリリース時間。
  • -
-
-
Curve
-
-

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

-
-
-

Shelving

-

LowHigh の 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)) -のようになっています。 pitchNote 、 -ChordOvertone -で指定した値から計算されるピッチです。 fmod(a, b) は -ab で割った余りを計算する関数です。

-
-
-

Smooth

-

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

-

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

-
    -
  • Gain セクションの全て
  • -
  • Chord.Pan
  • -
  • ChorusKey Follow 以外
  • -
-

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

-

nVoice

-

最大同時発音数です。

-

Random

-
-
Retrigger
-
-

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

-
-
Seed
-
-

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

-
-
To Gain
-
-

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

-
-
To Pitch
-
-

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

-
-
-

Note, Chord, Overtone

-

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

-

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

-

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

-
    -
  • Gain : サイン波の音量。
  • -
  • Semi : ノートの基本周波数からの距離。単位は半音。
  • -
  • Milli : ノートの基本周波数からの距離。単位は 1 / 1000 -半音。 1 / 10 セント。
  • -
-

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

-

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

-
function toneToPitch(semi, milli):
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

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

+

+

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

+

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

+

+

+

+
+
Boost, Gain
+
+

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

+

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

+
+
ADSR
+
+

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

+
    +
  • A (Attack) : + 鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • +
  • D (Decay) : + 最大音量からサステイン音量になるまでのディケイ時間。
  • +
  • S (Sustain) : + アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • +
  • R (Release) : 鍵盤から指を離したあとに音量が 0 + になるまでのリリース時間。
  • +
+
+
Curve
+
+

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

+
+
+

+

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

+

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

+

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

+
    +
  • Low シェルビングは Semi + で指定したカットオフ周波数以下のサイン波の音量を変更します。
  • +
  • High シェルビングは Semi + で指定したカットオフ周波数以上のサイン波の音量を変更します。
  • +
+

+
+
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)) + のようになっています。 pitchNote 、 + ChordOvertone + で指定した値から計算されるピッチです。 fmod(a, b) は + ab で割った余りを計算する関数です。

+
+
+

+

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

+

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

+
    +
  • Gain セクションの全て
  • +
  • Chord.Pan
  • +
  • ChorusKey Follow 以外
  • +
+

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

+

+

最大同時発音数です。

+

+
+
Retrigger
+
+

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

+
+
Seed
+
+

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

+
+
To Gain
+
+

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

+
+
To Pitch
+
+

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

+
+
+

+

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

+

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

+

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

+
    +
  • 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:
@@ -971,288 +1025,295 @@ 

Note, Chord, Overtone

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.27 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.26 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.25 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.24 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.23 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.1.22 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.21 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.20 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • -
    • x86_64 CPU の SIMD -命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを -AVX に固定。
    • -
  • -
  • 0.1.19 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.18 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.17 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
    • equalTemperament の GUI で表示されるデフォルト値を 11 -から 12 に修正。対象パラメータの GUI 上での名前は ET.
    • -
  • -
  • 0.1.16 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.15 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.14 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.13 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.12 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.11 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.10 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.9 -
      -
    • BarBox に アンドゥ・リドゥの機能を追加。
    • -
  • -
  • 0.1.8 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.7 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
    • ピッチベンドを有効化。
    • -
  • -
  • 0.1.6 -
      -
    • BarBox -にフォーカスした後、マウスカーソルを領域外に動かしている間はショートカットが無効になるように変更。
    • -
  • -
  • 0.1.5 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.3 -
      -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • Linux ビルドの GUI を有効化。
    • -
  • -
  • 0.1.1 -
      -
    • macOS ビルドの修正。
    • -
    • AVX, AVX512 命令セットのコードパスを追加。
    • -
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

+
+
Mix
+
+

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

+
+
Freq
+
+

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

+
+
Depth
+
+

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

+
+
Range
+
+

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

+
+
Time
+
+

ディレイ時間です。

+
+
Phase
+
+

LFO の位相です。

+
+
Offset
+
+

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

+
+
Feedback
+
+

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

+
+
Key Follow
+
+

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

+
+
+

+
    +
  • 0.1.27 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.26 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.25 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.24 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.23 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.1.22 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.21 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.20 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
    • 64 ビット ARM CPU (aarch64) に対応するコードパスを追加。
    • +
    • x86_64 CPU の SIMD + 命令セットに関するランタイム・ディスパッチを削除。サポートする命令セットを + AVX に固定。
    • +
  • +
  • 0.1.19 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.18 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.17 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
    • equalTemperament の GUI で表示されるデフォルト値を 11 + から 12 に修正。対象パラメータの GUI 上での名前は + ET.
    • +
  • +
  • 0.1.16 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.15 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.14 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.13 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.12 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.11 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.10 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.9 +
      +
    • BarBox に アンドゥ・リドゥの機能を追加。
    • +
  • +
  • 0.1.8 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.7 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
    • ピッチベンドを有効化。
    • +
  • +
  • 0.1.6 +
      +
    • BarBox + にフォーカスした後、マウスカーソルを領域外に動かしている間はショートカットが無効になるように変更。
    • +
  • +
  • 0.1.5 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.3 +
      +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • Linux ビルドの GUI を有効化。
    • +
  • +
  • 0.1.1 +
      +
    • macOS ビルドの修正。
    • +
    • AVX, AVX512 命令セットのコードパスを追加。
    • +
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/L4Reverb/L4Reverb_en.html b/docs/manual/L4Reverb/L4Reverb_en.html index 3ff8a211..f56fb7d0 100644 --- a/docs/manual/L4Reverb/L4Reverb_en.html +++ b/docs/manual/L4Reverb/L4Reverb_en.html @@ -2,566 +2,602 @@ - - - - -L4Reverb_en - - - - + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

L4Reverb

-

-

L4Reverb is an extended version of LatticeReverb. This time, lattice -structure has 4 * 4 * 4 * 4 = 256 sections per channel.

- -

If L4Reverb is too heavy for your machine, L3Reverb is also -available. L3Reverb is a trimmed down version of L4Reverb. The lattice -structure has 3 * 3 * 3 * 5 = 135 sections per channel.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -581,328 +617,335 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Output may change with different sample rate or buffer size.

-

Output may blow up when both Cross and -Spread are not 0.

-

Output may become loud when offset of *Feed -is not 0, and modulation is enabled.

-

Output may become loud when following steps are performed.

-
    -
  1. Set some of the OuterFeed or InnerFeed to -close to minimum or maximum.
  2. -
  3. Input signals.
  4. -
  5. Change the value of OuterFeed or InnerFeed -which was set at step 1.
  6. -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-
-
Time
-
-

Delay time of all-pass filter.

-
-
InnerFeed
-
-

Feedback and feedforward gain of all-pass filters nested inside of -lattice structure.

-
-
D1Feed
-
-

Feedback and feedforward gain of lattice structure at lowest -layer.

-
-
D2Feed
-
-

Feedback and feedforward gain of lattice structure at 2nd lowest -layer.

-
-
D3Feed
-
-

Feedback and feedforward gain of lattice structure at 3rd lowest -layer.

-
-
D3Feed
-
-

Feedback and feedforward gain of lattice structure at top layer.

-
-
-

Tip: Setting all of the *Feed values to -negative makes output more wet by blurring input signal. Especially -recommend to fine tuning D4Feed.

-

Multiplier

-

Multiplier for Time and *Feed. Useful to -shorten or lengthen reverb.

-

Base values are used in both left and right channel. -Base value determines the character of reverb.

-

Offset values are maximum ratio between left and right -channel. Amount of ratio is randomized. Changing Offset -spreads reverb to stereo.

-
if (Offset >= 0) {
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Output may change with different sample rate or buffer size.

+

Output may blow up when both Cross and + Spread are not 0.

+

Output may become loud when offset of + *Feed is not 0, and modulation is enabled.

+

Output may become loud when following steps are performed.

+
    +
  1. Set some of the OuterFeed or InnerFeed + to close to minimum or maximum.
  2. +
  3. Input signals.
  4. +
  5. Change the value of OuterFeed or + InnerFeed which was set at step 1.
  6. +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+
+
Time
+
+

Delay time of all-pass filter.

+
+
InnerFeed
+
+

Feedback and feedforward gain of all-pass filters nested inside of + lattice structure.

+
+
D1Feed
+
+

Feedback and feedforward gain of lattice structure at lowest + layer.

+
+
D2Feed
+
+

Feedback and feedforward gain of lattice structure at 2nd lowest + layer.

+
+
D3Feed
+
+

Feedback and feedforward gain of lattice structure at 3rd lowest + layer.

+
+
D3Feed
+
+

Feedback and feedforward gain of lattice structure at top + layer.

+
+
+

Tip: Setting all of the *Feed values + to negative makes output more wet by blurring input signal. Especially + recommend to fine tuning D4Feed.

+

+

Multiplier for Time and *Feed. Useful to + shorten or lengthen reverb.

+

Base values are used in both left and right channel. + Base value determines the character of reverb.

+

Offset values are maximum ratio between left and right + channel. Amount of ratio is randomized. Changing Offset + spreads reverb to stereo.

+
if (Offset >= 0) {
   valueL = Base
   valueR = Base * (1 - Offset)
 }
@@ -910,414 +953,428 @@ 

Multiplier

valueL = Base * (1 + Offset) valueR = Base }
-

When Modulation is checked, Offset values -will be randomized for each buffer. Smooth can be used to -change the character of modulation.

-

Panic!

-

Pressing Panic! button stops reverb output by setting -multiplier of Time and *Feed to 0.

-

Useful to stop sounds in case of blow up.

-

Mix

-
-
Dry
-
-

Gain of input signal.

-
-
Wet
-
-

Gain of reverb signal.

-
-
-

Stereo

-
-
Cross
-
-

Feedback amount from an output of lattice structure to the lattice -structure on another channel. If the value is 0, signal from other -channel will not be mixed.

-
-
Spread
-
-

Mid-side (M-S) signal ratio.

-

Following equations are used to calculate mid-side signal.

-
mid  = left + right
+  

When Modulation is checked, Offset values + will be randomized for each buffer. Smooth can be used to + change the character of modulation.

+

+

Pressing Panic! button stops reverb output by setting + multiplier of Time and *Feed to 0.

+

Useful to stop sounds in case of blow up.

+

+
+
Dry
+
+

Gain of input signal.

+
+
Wet
+
+

Gain of reverb signal.

+
+
+

+
+
Cross
+
+

Feedback amount from an output of lattice structure to the lattice + structure on another channel. If the value is 0, signal from other + channel will not be mixed.

+
+
Spread
+
+

Mid-side (M-S) signal ratio.

+

Following equations are used to calculate mid-side signal.

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

Misc.

-
-
Seed
-
-

Seed value of random number sequence.

-
-
Smooth
-
-

Transition time to change parameter value to current one. Unit is in -second.

-
-
-

Change Log

-

L4Reverb

-
    -
  • 0.1.21 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.20 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.19 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.18 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.15 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.14 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.13 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.12 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.11 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.10 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.8 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.7 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.6 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.5 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.2 -
      -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.1 -
      -
    • Added check that DSP is initialized or not.
    • -
    • Added color configuration.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

L3Reverb

-
    -
  • 0.1.21 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.20 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.19 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.18 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.15 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.14 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.13 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.12 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.11 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.10 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.8 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.7 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.6 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.5 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.2 -
      -
    • 0.1.1 is skipped to match L4Reverb version.
    • -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

-

L4Reverb

- -

L3Reverb

- -

License

-

L4Reverb and L3Reverb 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.

+
+
+

+
+
Seed
+
+

Seed value of random number sequence.

+
+
Smooth
+
+

Transition time to change parameter value to current one. Unit is + in second.

+
+
+

+

+
    +
  • 0.1.21 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.20 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.19 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.18 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.15 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.14 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.13 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.12 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.11 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.10 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.8 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.7 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.6 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.5 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.2 +
      +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.1 +
      +
    • Added check that DSP is initialized or not.
    • +
    • Added color configuration.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+
    +
  • 0.1.21 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.20 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.19 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.18 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.15 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.14 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.13 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.12 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.11 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.10 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.8 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.7 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.6 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.5 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.2 +
      +
    • 0.1.1 is skipped to match L4Reverb version.
    • +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+

+ +

+ +

+

L4Reverb and L3Reverb is licensed under GPLv3. Complete licenses + are linked below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/L4Reverb/L4Reverb_ja.html b/docs/manual/L4Reverb/L4Reverb_ja.html index 3682e3fa..f0bc7786 100644 --- a/docs/manual/L4Reverb/L4Reverb_ja.html +++ b/docs/manual/L4Reverb/L4Reverb_ja.html @@ -2,569 +2,608 @@ - - - - -L4Reverb_ja - - - - + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

L4Reverb

-

-

L4Reverbエル フォー リバーブ は LatticeReverb -の拡張版です。今回の格子構造はチャンネル毎に 4 * 4 * 4 * 4 = 256 -のセクションが設けてあります。

- -

もし L4Reverb が重たすぎるときは L3Reverb を試してみてください。 -L3Reverbエル スリー リバーブ は L4Reverb -の軽量版です。格子構造はチャンネル毎に 3 * 3 * 3 * 5 = 135 -のセクションが設けてあります。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -584,327 +623,336 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

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

-

CrossSpread の両方が 0 -でないときに発散することがあります。

-

*Feedoffset が 0 -でないときに出力が大きくなることがあります。

-

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

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

ブロック線図

-

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

-

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

-

-

パラメータ

-
-
Time
-
-

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

-
-
InnerFeed
-
-

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

-
-
D1Feed
-
-

格子構造の入れ子の最下層のフィードバック、フィードフォワードの値です。

-
-
D2Feed
-
-

格子構造の入れ子の底から 2 -番目の階層でのフィードバック、フィードフォワードの値です。

-
-
D3Feed
-
-

格子構造の入れ子の底から 3 -番目の階層でのフィードバック、フィードフォワードの値です。

-
-
D4Feed
-
-

格子構造の入れ子の最上層でのフィードバック、フィードフォワードの値です。

-
-
-

Tip: -フィードバック、フィードフォワードの値をすべて負の値にすることで、入力信号の音がぼやけてウェットな質感になります。特に -D4Feed をうまく調整してみてください。

-

Multiplier

-

Time*Feed -の値をまとめて変更する係数です。減衰時間をまとめて変えるときなどに使えます。

-

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

-

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

-
if (Offset >= 0) {
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

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

+

CrossSpread の両方が 0 + でないときに発散することがあります。

+

*Feedoffset が 0 + でないときに出力が大きくなることがあります。

+

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

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

+

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

+

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

+

+

+
+
Time
+
+

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

+
+
InnerFeed
+
+

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

+
+
D1Feed
+
+

格子構造の入れ子の最下層のフィードバック、フィードフォワードの値です。

+
+
D2Feed
+
+

格子構造の入れ子の底から 2 + 番目の階層でのフィードバック、フィードフォワードの値です。

+
+
D3Feed
+
+

格子構造の入れ子の底から 3 + 番目の階層でのフィードバック、フィードフォワードの値です。

+
+
D4Feed
+
+

格子構造の入れ子の最上層でのフィードバック、フィードフォワードの値です。

+
+
+

Tip: + フィードバック、フィードフォワードの値をすべて負の値にすることで、入力信号の音がぼやけてウェットな質感になります。特に + D4Feed をうまく調整してみてください。

+

+

Time*Feed + の値をまとめて変更する係数です。減衰時間をまとめて変えるときなどに使えます。

+

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

+

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

+
if (Offset >= 0) {
   valueL = Base
   valueR = Base * (1 - Offset)
 }
@@ -912,412 +960,427 @@ 

Multiplier

valueL = Base * (1 + Offset) valueR = Base }
-

Modulation にチェックが入っているとき、 -Offset の値はバッファごとにランダマイズされます。 -Smooth でモジュレーションの質感を変えることができます。

-

Panic!

-

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

-

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

-

Mix

-
-
Dry
-
-

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

-
-
Wet
-
-

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

-
-
-

Stereo

-
-
Cross
-
-

あるチャンネルから、もう片方のチャンネルに格子構造の出力をフィードバックする量です。 -0 のときはもう片方のチャンネルからの信号はミックスされません。

-
-
Spread
-
-

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

-

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

-
mid  = left + right
+  

Modulation にチェックが入っているとき、 + Offset の値はバッファごとにランダマイズされます。 + Smooth + でモジュレーションの質感を変えることができます。

+

+

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

+

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

+

+
+
Dry
+
+

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

+
+
Wet
+
+

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

+
+
+

+
+
Cross
+
+

あるチャンネルから、もう片方のチャンネルに格子構造の出力をフィードバックする量です。 + 0 のときはもう片方のチャンネルからの信号はミックスされません。

+
+
Spread
+
+

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

+

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

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

Misc.

-
-
Seed
-
-

疑似乱数列のシード値です。

-
-
Smooth
-
-

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

-
-
-

チェンジログ

-

L4Reverb

-
    -
  • 0.1.21 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.20 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.19 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.18 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.1.17 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.16 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.15 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.14 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.13 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.12 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.11 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.10 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.9 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.8 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.7 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.6 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.5 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.4 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.2 -
      -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.1 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

L3Reverb

-
    -
  • 0.1.21 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.20 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.19 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.18 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.1.17 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.16 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.15 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.14 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.13 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.12 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.11 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.10 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.9 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.8 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.7 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.6 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.5 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.4 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.2 -
      -
    • L4Reverb のバージョンと同じにするため 0.1.1 をスキップ。
    • -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

L4Reverb

- -

L3Reverb

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+
+
+

+
+
Seed
+
+

疑似乱数列のシード値です。

+
+
Smooth
+
+

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

+
+
+

+

+
    +
  • 0.1.21 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.20 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.19 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.18 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.1.17 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.16 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.15 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.14 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.13 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.12 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.11 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.10 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.9 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.8 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.7 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.6 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.5 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.4 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.2 +
      +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.1 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+
    +
  • 0.1.21 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.20 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.19 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.18 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.1.17 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.16 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.15 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.14 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.13 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.12 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.11 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.10 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.9 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.8 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.7 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.6 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.5 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.4 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.2 +
      +
    • L4Reverb のバージョンと同じにするため 0.1.1 をスキップ。
    • +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/LatticeReverb/LatticeReverb_en.html b/docs/manual/LatticeReverb/LatticeReverb_en.html index afd45da0..44cc75a6 100644 --- a/docs/manual/LatticeReverb/LatticeReverb_en.html +++ b/docs/manual/LatticeReverb/LatticeReverb_en.html @@ -2,540 +2,578 @@ - - - - -LatticeReverb_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LatticeReverb

-

-

LatticeReverb is a reverb using lattice structure. Equipped with 16 -delays per channel.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -555,287 +593,292 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Output may change with different sample rate or buffer size.

-

Output may become loud when following steps are performed.

-
    -
  1. Set some of the OuterFeed or InnerFeed to -close to minimum or maximum.
  2. -
  3. Input signals.
  4. -
  5. Change the value of OuterFeed or InnerFeed -which was set at step 1.
  6. -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Base is value used in both left and right channel. -Base value determines the character of reverb.

-

Offset is ratio of value between left and right channel. -Changing Offset spreads reverb to stereo.

-
if (Offset >= 0) {
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Output may change with different sample rate or buffer size.

+

Output may become loud when following steps are performed.

+
    +
  1. Set some of the OuterFeed or InnerFeed + to close to minimum or maximum.
  2. +
  3. Input signals.
  4. +
  5. Change the value of OuterFeed or + InnerFeed which was set at step 1.
  6. +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Base is value used in both left and right channel. + Base value determines the character of reverb.

+

Offset is ratio of value between left and right + channel. Changing Offset spreads reverb to stereo.

+
if (Offset >= 0) {
   valueL = Base
   valueR = Base * (1 - Offset)
 }
@@ -843,314 +886,328 @@ 

Parameters

valueL = Base * (1 + Offset) valueR = Base }
-
-
Time
-
-

Delay time of all-pass filter.

-
-
OuterFeed
-
-

Feedback and feedforward gain of lattice structure.

-
-
InnerFeed
-
-

Feedback and feedforward gain of an all-pass filter.

-
-
-

Multiplier

-

Multiplier for Time, OuterFeed, -InnerFeed. Useful to shorten or lengthen reverb without -changing much of the character.

-

Panic!

-

Pressing Panic! button stops reverb output by setting -multiplier of Time, OuterFeed, -InnerFeed to 0.

-

Useful to stop sounds in case of blow up.

-

Mix

-
-
Dry
-
-

Gain of input signal.

-
-
Wet
-
-

Gain of reverb signal.

-
-
-

Stereo

-
-
Cross
-
-

Mixing ratio of stereo signal for odd stage in lattice structure.

-

If the value is 0, signal from other channel will not be mixed. If -the value is 0.5, mixing ratio of current channel and other channel -becomes 1:1.

-
-
Spread
-
-

Mid-side (M-S) signal ratio.

-

Following equations are used to calculate mid-side signal.

-
mid  = left + right
+  
+
Time
+
+

Delay time of all-pass filter.

+
+
OuterFeed
+
+

Feedback and feedforward gain of lattice structure.

+
+
InnerFeed
+
+

Feedback and feedforward gain of an all-pass filter.

+
+
+

+

Multiplier for Time, OuterFeed, + InnerFeed. Useful to shorten or lengthen reverb without + changing much of the character.

+

+

Pressing Panic! button stops reverb output by setting + multiplier of Time, OuterFeed, + InnerFeed to 0.

+

Useful to stop sounds in case of blow up.

+

+
+
Dry
+
+

Gain of input signal.

+
+
Wet
+
+

Gain of reverb signal.

+
+
+

+
+
Cross
+
+

Mixing ratio of stereo signal for odd stage in lattice + structure.

+

If the value is 0, signal from other channel will not be mixed. If + the value is 0.5, mixing ratio of current channel and other channel + becomes 1:1.

+
+
Spread
+
+

Mid-side (M-S) signal ratio.

+

Following equations are used to calculate mid-side signal.

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

Misc.

-
-
Smooth
-
-

Transition time to change parameter value to current one. Unit is in -second.

-
-
-

Base

-

-

Base tab provides controls for common values used in -both channels.

-

Character of reverb is mostly determined by Base -values.

-

Offset

-

-

Offset tab provides controls for ratio of value between -left and right channel.

-

Changing values in Offset tab spreads reverb to -stereo.

-

Modulation

-

-
-
Time LFO
-
-

LFO modulation amount to Time.

-

LFO waveform is noise (uniform pseudo random number). Smoothness of -LFO is changed by Time LFO Cutoff and -Smooth.

-
-
Time LFO Cutoff
-
-

Low-pass filter cutoff frequency for LFO.

-
-
Lowpass Cutoff
-
-

Cutoff frequency of low-pass filters placed for each stage of lattice -structure.

-

Useful to change the brightness of reverb.

-
-
-

Change Log

-
    -
  • 0.1.24 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.23 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.22 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.21 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.1.20 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.19 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.18 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.17 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.16 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.15 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.14 -
      -
    • Changed to reduce pitch down after reset.
    • -
  • -
  • 0.1.13 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.12 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.10 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.9 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.8 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.7 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.4 -
      -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.3 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.2 -
      -
    • Added undo/redo to BarBox.
    • -
  • -
  • 0.1.1 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

LatticeReverb 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.

+
+
+

+
+
Smooth
+
+

Transition time to change parameter value to current one. Unit is + in second.

+
+
+

+

+

Base tab provides controls for common values used in + both channels.

+

Character of reverb is mostly determined by Base + values.

+

+

+

Offset tab provides controls for ratio of value + between left and right channel.

+

Changing values in Offset tab spreads reverb to + stereo.

+

+

+
+
Time LFO
+
+

LFO modulation amount to Time.

+

LFO waveform is noise (uniform pseudo random number). Smoothness of + LFO is changed by Time LFO Cutoff and + Smooth.

+
+
Time LFO Cutoff
+
+

Low-pass filter cutoff frequency for LFO.

+
+
Lowpass Cutoff
+
+

Cutoff frequency of low-pass filters placed for each stage of + lattice structure.

+

Useful to change the brightness of reverb.

+
+
+

+
    +
  • 0.1.24 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.23 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.22 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.21 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.1.20 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.19 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.18 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.17 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.16 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.15 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.14 +
      +
    • Changed to reduce pitch down after reset.
    • +
  • +
  • 0.1.13 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.12 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.10 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.9 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.8 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.7 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.4 +
      +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.3 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.2 +
      +
    • Added undo/redo to BarBox.
    • +
  • +
  • 0.1.1 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

LatticeReverb is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/LatticeReverb/LatticeReverb_ja.html b/docs/manual/LatticeReverb/LatticeReverb_ja.html index c03eba36..1591ae97 100644 --- a/docs/manual/LatticeReverb/LatticeReverb_ja.html +++ b/docs/manual/LatticeReverb/LatticeReverb_ja.html @@ -2,543 +2,582 @@ - - - - -LatticeReverb_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LatticeReverb

-

-

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

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -558,289 +597,297 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

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

-

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

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

ブロック線図

-

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

-

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

-

-

パラメータ

-

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

-

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

-
if (Offset >= 0) {
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

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

+

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

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

+

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

+

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

+

+

+

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

+

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

+
if (Offset >= 0) {
   valueL = Base
   valueR = Base * (1 - Offset)
 }
@@ -848,308 +895,324 @@ 

パラメータ

valueL = Base * (1 + Offset) valueR = Base }
-
-
Time
-
-

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

-
-
OuterFeed
-
-

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

-
-
InnerFeed
-
-

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

-
-
-

Multiplier

-

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

-

Panic!

-

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

-

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

-

Mix

-
-
Dry
-
-

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

-
-
Wet
-
-

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

-
-
-

Stereo

-
-
Cross
-
-

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

-

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

-
-
Spread
-
-

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

-

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

-
mid  = left + right
+  
+
Time
+
+

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

+
+
OuterFeed
+
+

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

+
+
InnerFeed
+
+

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

+
+
+

+

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

+

+

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

+

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

+

+
+
Dry
+
+

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

+
+
Wet
+
+

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

+
+
+

+
+
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 Cutoff と -Smooth の値によって滑らかさが変わります。

-
-
Time LFO Cutoff
-
-

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

-
-
Lowpass Cutoff
-
-

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

-

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

-
-
-

チェンジログ

-
    -
  • 0.1.24 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.23 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.22 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.21 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.1.20 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.19 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.18 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.17 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.16 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.15 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.1.14 -
      -
    • リセット直後にピッチが下がらないように変更。
    • -
  • -
  • 0.1.13 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.1.12 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.11 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.10 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.9 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.8 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.7 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.6 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.4 -
      -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.3 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.2 -
      -
    • BarBox に アンドゥ・リドゥの機能を追加。
    • -
  • -
  • 0.1.1 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+
+
+

+
+
Smooth
+
+

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

+
+
+

+

+

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

+

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

+

+

+

TimeOuterFeed 、 + InnerFeed + の左右のチャンネル間での差を設定するタブです。

+

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

+

+

+
+
Time LFO
+
+

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

+

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

+
+
Time LFO Cutoff
+
+

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

+
+
Lowpass Cutoff
+
+

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

+

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

+
+
+

+
    +
  • 0.1.24 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.23 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.22 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.21 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.1.20 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.19 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.18 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.17 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.16 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.15 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.1.14 +
      +
    • リセット直後にピッチが下がらないように変更。
    • +
  • +
  • 0.1.13 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.1.12 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.11 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.10 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.9 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.8 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.7 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.6 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.4 +
      +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.3 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.2 +
      +
    • BarBox に アンドゥ・リドゥの機能を追加。
    • +
  • +
  • 0.1.1 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

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

+ +

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

+

+

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

- - + + diff --git a/docs/manual/LightPadSynth/LightPadSynth_en.html b/docs/manual/LightPadSynth/LightPadSynth_en.html index 8abcb9ff..f9083b39 100644 --- a/docs/manual/LightPadSynth/LightPadSynth_en.html +++ b/docs/manual/LightPadSynth/LightPadSynth_en.html @@ -2,559 +2,598 @@ - - - - -LightPadSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LightPadSynth

-

-

LightPadSynth is a lightweight version of CubicPadSynth. For -efficiency, interpolation is changed to linear. Also pitch modulation is -omitted. Instead, a delay is added for each voice.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
-xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -574,854 +613,887 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Pressing Refresh LFO or Refresh Table -button stop sound. They also stop all midi notes.

-

Wavetable Specification

-

128 wavetables are generated. The number 128 comes from MIDI note -number range. The indices of wavetables correspond to MIDI note -numbers.

-

When tuning is not exact, an index will be truncated to semitones. -For example, if MIDI note number is 60 and tuning is -20 cents, index -becomes floor(60 - 0.20) = 59. Thus, 59th wavetable will be -used.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Main Tab

-

-

Gain

-
-
A, D, S, R
-
-

Gain envelope parameters.

-
    -
  • 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.
  • -
-
-
Gain
-
-

Master output gain.

-
-
-

Lowpass

-

Naive 3-pole low-pass filter.

-
-
Cutoff
-
-

Cutoff frequency of the filter.

-
-
Resonance
-
-

Resonance of the filter. Be careful when turning to right, output -will be loud.

-
-
KeyFollow
-
-

When set to right-most, cutoff frequency is set to the frequency of a -note. When set to left-most, it only use the value of -Cutoff.

-
-
A, D, S, R, Amount
-
-

Filter envelope parameters. Amount changes the amount of -modulation to cutoff.

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

Changes master pitch.

-

Milli is 1/1000 of semitone or 1/10 cent.

-
-
ET, A4 [Hz]
-
-

Changes tuning.

-

ET stands for equal temperament. Note that when -ET is less than 12, some notes becomes silent due to -frequency becomes too high or too low.

-

A4 [Hz] is frequency of note A4.

-
-
-

Unison

-
-
nUnison
-
-

Number of voices used by unison.

-

To avoid interruption of release, increase the number of -nVoice in Misc. section. Note that increasing -nVoice consumes more resources.

-
-
Detune, Random Detune
-
-

Detune is the difference of pitch between voices used in -a unison.

-

When Random Detune is checked, amount of detune changes -for each note-on.

-
random = RandomDetune ? rand() : 1
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Pressing Refresh LFO or Refresh Table + button stop sound. They also stop all midi notes.

+

+

128 wavetables are generated. The number 128 comes from MIDI note + number range. The indices of wavetables correspond to MIDI note + numbers.

+

When tuning is not exact, an index will be truncated to semitones. + For example, if MIDI note number is 60 and tuning is -20 cents, index + becomes floor(60 - 0.20) = 59. Thus, 59th wavetable will + be used.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

+

+
+
A, D, S, R
+
+

Gain envelope parameters.

+
    +
  • 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.
  • +
+
+
Gain
+
+

Master output gain.

+
+
+

+

Naive 3-pole low-pass filter.

+
+
Cutoff
+
+

Cutoff frequency of the filter.

+
+
Resonance
+
+

Resonance of the filter. Be careful when turning to right, output + will be loud.

+
+
KeyFollow
+
+

When set to right-most, cutoff frequency is set to the frequency of + a note. When set to left-most, it only use the value of + Cutoff.

+
+
A, D, S, R, Amount
+
+

Filter envelope parameters. Amount changes the amount + of modulation to cutoff.

+
+
+

+
+
Octave, Semi, Milli
+
+

Changes master pitch.

+

Milli is 1/1000 of semitone or 1/10 cent.

+
+
ET, A4 [Hz]
+
+

Changes tuning.

+

ET stands for equal temperament. Note that when + ET is less than 12, some notes becomes silent due to + frequency becomes too high or too low.

+

A4 [Hz] is frequency of note A4.

+
+
+

+
+
nUnison
+
+

Number of voices used by unison.

+

To avoid interruption of release, increase the number of + nVoice in Misc. section. Note that increasing + nVoice consumes more resources.

+
+
Detune, Random Detune
+
+

Detune is the difference of pitch between voices used + in a unison.

+

When Random Detune is checked, amount of detune + changes for each note-on.

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
GainRnd
-
-

Amount of randomization of gain for voices used in a unison.

-
-
Phase
-
-

Amount of randomization of phase for voices used in a unison.

-

This parameter makes no effect when Reset in Phase -section is checked.

-
-
Spread, Spread Type
-
-

Spread is an amount of stereo spread for a unison.

-

Spread Type provides options to assign panpot values -according to voice pitch.

-
    -
  • Alternate L-R: Alternates Ascend L -> R -and Ascend R -> L.
  • -
  • Alternate M-S: Alternates HighOnMid and -HighOnSide.
  • -
  • Ascend L -> R: Ascend pitch from left to right.
  • -
  • Ascend R -> L: Ascend pitch from right to left.
  • -
  • HighOnMid: Ascend pitch from side to mid.
  • -
  • HighOnSide: Ascend pitch from mid to side.
  • -
  • Random: Randomize pan. May be biased.
  • -
  • RotateL: Rotate to left for each note-on.
  • -
  • RotateR: Rotate to right for each note-on.
  • -
  • Shuffle: Randomly assign pan which is evenly -ordered.
  • -
-
-
-

Phase

-
-
Phase
-
-

Initial phase of oscillator.

-
-
Reset
-
-

When checked, resets oscillator phase to the value set by -Phase.

-
-
Random
-
-

When checked, randomize phase for each note-on. In this case, value -of Phase becomes range of randomization.

-
-
-

Misc.

-
-
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 Tuning section.
  • -
  • Gain -
      -
    • Gain
    • -
    • S
    • -
  • -
  • Lowpass -
      -
    • Cutoff
    • -
    • S
    • -
    • Amount
    • -
    • KeyFollow
    • -
  • -
  • Delay -
      -
    • Mix
    • -
    • Feedback
    • -
    • Attack
    • -
    • Semi
    • -
    • Milli
    • -
  • -
  • Delay LFO -
      -
    • Tempo
    • -
    • Multiply
    • -
    • Amount
    • -
    • Lowpass
    • -
  • -
  • Phase -
      -
    • Phase
    • -
  • -
-
-
Poly
-
-

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

-
-
Seed
-
-

Random seed. This value change random number sequence.

-

LightPadSynth has 2 random number generaters. One is used in -Main tab and the other is in Wavetable -tab.

-
-
-

Delay

-
-
Mix
-
-

Mixing ratio of filter output and delay output.

-
-
Feedback
-
-

Feedback of a delay. Positive feedback when turning right. Negative -feedback when turning left.

-
-
Attack
-
-

Attack time of gate between filter output and delay.

-
-
Semi, Milli
-
-

Delay time relative to note frequency. Following equation is -used.

-
delayTime = 1 / (noteFreq * pow(2, (semi + 0.001 * milli) / 12))
-
-
-

LFO

-
-
Tempo, Multiply
-
-

Sets LFO frequency according to current tempo. Lower numeral -represents the length of note. Upper numeral is the number of notes.

-

Value of Multiply is multiplied to the frequency -calculated from Tempo.

-
// (60 seconds) * (4 beat) = 240
+  
+
GainRnd
+
+

Amount of randomization of gain for voices used in a unison.

+
+
Phase
+
+

Amount of randomization of phase for voices used in a unison.

+

This parameter makes no effect when Reset in Phase + section is checked.

+
+
Spread, Spread Type
+
+

Spread is an amount of stereo spread for a unison.

+

Spread Type provides options to assign panpot values + according to voice pitch.

+
    +
  • Alternate L-R: Alternates + Ascend L -> R and Ascend R -> L.
  • +
  • Alternate M-S: Alternates HighOnMid and + HighOnSide.
  • +
  • Ascend L -> R: Ascend pitch from left to + right.
  • +
  • Ascend R -> L: Ascend pitch from right to + left.
  • +
  • HighOnMid: Ascend pitch from side to mid.
  • +
  • HighOnSide: Ascend pitch from mid to side.
  • +
  • Random: Randomize pan. May be biased.
  • +
  • RotateL: Rotate to left for each note-on.
  • +
  • RotateR: Rotate to right for each note-on.
  • +
  • Shuffle: Randomly assign pan which is evenly + ordered.
  • +
+
+
+

+
+
Phase
+
+

Initial phase of oscillator.

+
+
Reset
+
+

When checked, resets oscillator phase to the value set by + Phase.

+
+
Random
+
+

When checked, randomize phase for each note-on. In this case, value + of Phase becomes range of randomization.

+
+
+

+
+
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 Tuning section.
  • +
  • Gain +
      +
    • Gain
    • +
    • S
    • +
  • +
  • Lowpass +
      +
    • Cutoff
    • +
    • S
    • +
    • Amount
    • +
    • KeyFollow
    • +
  • +
  • Delay +
      +
    • Mix
    • +
    • Feedback
    • +
    • Attack
    • +
    • Semi
    • +
    • Milli
    • +
  • +
  • Delay LFO +
      +
    • Tempo
    • +
    • Multiply
    • +
    • Amount
    • +
    • Lowpass
    • +
  • +
  • Phase +
      +
    • Phase
    • +
  • +
+
+
Poly
+
+

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

+
+
Seed
+
+

Random seed. This value change random number sequence.

+

LightPadSynth has 2 random number generaters. One is used in + Main tab and the other is in Wavetable + tab.

+
+
+

+
+
Mix
+
+

Mixing ratio of filter output and delay output.

+
+
Feedback
+
+

Feedback of a delay. Positive feedback when turning right. Negative + feedback when turning left.

+
+
Attack
+
+

Attack time of gate between filter output and delay.

+
+
Semi, Milli
+
+

Delay time relative to note frequency. Following equation is + used.

+
delayTime = 1 / (noteFreq * pow(2, (semi + 0.001 * milli) / 12))
+
+
+

+
+
Tempo, Multiply
+
+

Sets LFO frequency according to current tempo. Lower numeral + represents the length of note. Upper numeral is the number of + notes.

+

Value of Multiply is multiplied to the frequency + calculated from Tempo.

+
// (60 seconds) * (4 beat) = 240
 lfoFrequency = Multiply * (BPM / 240) / (TempoUpperNumeral / TempoLowerNumeral)
-
-
Amount
-
-

LFO frequency modulation amount.

-
-
Lowpass
-
-

Changes cutoff freequency of low-pass filter for LFO.

-
-
Interpolation
-
-

Type of LFO wavetable interpolation.

-

-
-
Refresh LFO
-
-

Refresh LFO wavetable based on current value of -LFO Wave.

-

Note that refreshing wavetable stops sound. It also interrupts MIDI -notes.

-
-
LFO Wave
-
-

LFO waveform.

-
-
-

Wavetable Tab

-

-

Overtone Controls

-
-
Gain
-
-

Gain of profile.

-
-
Width
-
-

Width of profile.

-
-
Pitch
-
-

This value is multiplied to profile center frequency.

-
-
Phase
-
-

Range of randomization for the phase of profile.

-
-
-

Pitch

-
-
Base Freq.
-
-

Fundamental frequency of wavetable. Note that if this value is small, -master pitch becomes out of tune.

-
-
Multiply, Modulo
-
-

Changes profile center frequency.

-
profileCenterFrequency = mod(
+  
+
Amount
+
+

LFO frequency modulation amount.

+
+
Lowpass
+
+

Changes cutoff freequency of low-pass filter for LFO.

+
+
Interpolation
+
+

Type of LFO wavetable interpolation.

+

+
+
Refresh LFO
+
+

Refresh LFO wavetable based on current value of + LFO Wave.

+

Note that refreshing wavetable stops sound. It also interrupts MIDI + notes.

+
+
LFO Wave
+
+

LFO waveform.

+
+
+

+

+

+
+
Gain
+
+

Gain of profile.

+
+
Width
+
+

Width of profile.

+
+
Pitch
+
+

This value is multiplied to profile center frequency.

+
+
Phase
+
+

Range of randomization for the phase of profile.

+
+
+

+
+
Base Freq.
+
+

Fundamental frequency of wavetable. Note that if this value is + small, master pitch becomes out of tune.

+
+
Multiply, Modulo
+
+

Changes profile center frequency.

+
profileCenterFrequency = mod(
   BaseFreq * profileIndex * overtonePitch * Multiply,
   440 * pow(2, (Modulo - 69) / 12)
 )
-
-
-

Spectrum

-
-
Expand
-
-

Scaling factor to shrink/expand the spectrum along to frequency -axis.

-

-
-
Shift
-
-

Shift spectrum along to frequency axis.

-

-
-
Comb
-
-

When this value is higher than 1, it changes the shape of profile -like a comb. The value specifies interval between peaks.

-

-
-
Shape
-
-

Changes profile shapes by using the value of Shape as an -exponent.

-
shapedProfile = powf(profile, shape);
-
-
-

Phase

-
-
UniformPhase
-
-

When checked, phase of a profile becomes an uniform value.

-
-
-

Random

-
-
Seed
-
-

Random seed. This value change random number sequence.

-

LightPadSynth has 2 random number generaters. One is used in -Main tab and the other is in Wavetable -tab.

-
-
-

BufferSize

-

Size of a wavetable. The power of 2 values can be selected from -2^10 to 2^21.

-

The value inside parentheses indicates number of bytes in a sum of -all wavetables. A number of bytes is calculated with following -equation.

-
bytes = 4 * 128 * BufferSize
-

Modifier

-
-
Gain^
-
-

Exponent for Gain in overtone control.

-
profileGain = pow(Gain, Gain^)
-
-
Width*
-
-

Multiplier for Width in overtone control.

-
profileWidth = Width * (Width*)
-
-
-

Refresh Table

-

Refresh PADsynth wavetable based on current configuration of -Wavetable tab.

-

Note that refreshing wavetable stops sound. It also interrupts MIDI -notes.

-

Change Log

-
    -
  • 0.1.24 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.23 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.22 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.21 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.20 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.19 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.18 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.17 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.16 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.1.15 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.1.14 -
      -
    • Removed dependency to x86_64 specific SIMD instructions.
    • -
  • -
  • 0.1.13 -
      -
    • Fixed crash on Linux.
    • -
    • Fixed BarBox to receive shift key.
    • -
  • -
  • 0.1.12 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.11 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.10 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.9 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.8 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.7 -
      -
    • Implemented process context requirements.
    • -
    • Added/Changed BarBox functionality to match LV2 version. -
        -
      • Edit one bar.
      • -
      • Lock.
      • -
      • Internal mouse wheel sensitivitly.
      • -
      • Snapping (implemented, but not used).
      • -
      • Starting bar of line edit is now fixed to anchor point.
      • -
    • -
  • -
  • 0.1.6 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.5 -
      -
    • Added scroll bar to dense BarBox.
    • -
    • Added undo/redo to BarBox.
    • -
  • -
  • 0.1.4 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.3 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.2 -
      -
    • Fixed a bug that refreshing wavetable before parameters are loaded -at launch.
    • -
    • Fixed off by one error in LFO wavetable with cubic -interpolation.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed Refresh LFO button and Refresh Table button from VST message -to VST parameter.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

LightPadSynth 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.

+
+
+

+
+
Expand
+
+

Scaling factor to shrink/expand the spectrum along to frequency + axis.

+

+
+
Shift
+
+

Shift spectrum along to frequency axis.

+

+
+
Comb
+
+

When this value is higher than 1, it changes the shape of profile + like a comb. The value specifies interval between peaks.

+

+
+
Shape
+
+

Changes profile shapes by using the value of Shape as + an exponent.

+
shapedProfile = powf(profile, shape);
+
+
+

+
+
UniformPhase
+
+

When checked, phase of a profile becomes an uniform value.

+
+
+

+
+
Seed
+
+

Random seed. This value change random number sequence.

+

LightPadSynth has 2 random number generaters. One is used in + Main tab and the other is in Wavetable + tab.

+
+
+

+

Size of a wavetable. The power of 2 values can be selected from + 2^10 to 2^21.

+

The value inside parentheses indicates number of bytes in a sum of + all wavetables. A number of bytes is calculated with following + equation.

+
bytes = 4 * 128 * BufferSize
+

+
+
Gain^
+
+

Exponent for Gain in overtone control.

+
profileGain = pow(Gain, Gain^)
+
+
Width*
+
+

Multiplier for Width in overtone control.

+
profileWidth = Width * (Width*)
+
+
+

+

Refresh PADsynth wavetable based on current configuration of + Wavetable tab.

+

Note that refreshing wavetable stops sound. It also interrupts MIDI + notes.

+

+
    +
  • 0.1.24 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.23 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.22 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.21 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.20 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.19 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.18 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.17 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.16 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.1.15 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.1.14 +
      +
    • Removed dependency to x86_64 specific SIMD instructions.
    • +
  • +
  • 0.1.13 +
      +
    • Fixed crash on Linux.
    • +
    • Fixed BarBox to receive shift key.
    • +
  • +
  • 0.1.12 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.11 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.10 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.9 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.8 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.7 +
      +
    • Implemented process context requirements.
    • +
    • Added/Changed BarBox functionality to match LV2 version. +
        +
      • Edit one bar.
      • +
      • Lock.
      • +
      • Internal mouse wheel sensitivitly.
      • +
      • Snapping (implemented, but not used).
      • +
      • Starting bar of line edit is now fixed to anchor point.
      • +
    • +
  • +
  • 0.1.6 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.5 +
      +
    • Added scroll bar to dense BarBox.
    • +
    • Added undo/redo to BarBox.
    • +
  • +
  • 0.1.4 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.3 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.2 +
      +
    • Fixed a bug that refreshing wavetable before parameters are loaded + at launch.
    • +
    • Fixed off by one error in LFO wavetable with cubic + interpolation.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed Refresh LFO button and Refresh Table button from VST message + to VST parameter.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

LightPadSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/LightPadSynth/LightPadSynth_ja.html b/docs/manual/LightPadSynth/LightPadSynth_ja.html index 31d814b2..c9ed4421 100644 --- a/docs/manual/LightPadSynth/LightPadSynth_ja.html +++ b/docs/manual/LightPadSynth/LightPadSynth_ja.html @@ -2,562 +2,600 @@ - - - - -LightPadSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LightPadSynth

-

-

LightPadSynthライト パッド シンセ -はピッチ変調を無くして補間を線形補完に変えた CubicPadSynth -の軽量版です。ピッチ変調ができなくなった代わりに、各ボイスにディレイを追加しています。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -577,764 +615,799 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

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

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

Refresh LFO あるいは Refresh Table -ボタンを押すと音が止まります。発音中のノートも全て停止します。

-

ウェーブテーブルの仕様

-

各 MIDI ノートに対応する 128 -の帯域制限されたウェーブテーブルが生成されます。 128 という数字は MIDI -ノート番号の値の範囲から来ています。

-

チューニングがずれているときは、セント値を切り捨てたインデックスのウェーブテーブルが使われます。例えば -MIDI ノート番号が 60 、チューニングが -20 セントのときは -floor(60 - 0.20) よりインデックス 59 -のウェーブテーブルが使われます。

-

言い換えれば、チューニングがずれているときはナイキスト周波数より少し低い周波数で帯域制限されることがあります。

-

ブロック線図

-

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

-

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

-

-

パラメータ

-

Main タブ

-

-

Gain

-
-
A, D, S, R
-
-

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

-
    -
  • A (Attack) : -鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • -
  • D (Decay) : -最大音量からサステイン音量になるまでのディケイ時間。
  • -
  • S (Sustain) : -アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • -
  • R (Release) : 鍵盤から指を離したあとに音量が 0 -になるまでのリリース時間。
  • -
-
-
Gain
-
-

音量を変更します。

-
-
-

Lowpass

-

素朴な 3-pole ローパスフィルタです。

-
-
Cutoff
-
-

フィルタのカットオフ周波数です。

-
-
Resonance
-
-

フィルタのレゾナンスです。最大にすると音量が大きくなるので注意してください。

-
-
KeyFollow
-
-

右いっぱいに回すと、カットオフ周波数がノートの音程と同じになります。左いっぱいに回すと音程に関わらず -Cutoff で設定されたカットオフ周波数を使います。

-
-
A, D, S, R, Amount
-
-

フィルタのカットオフ周波数を変調するエンベロープのパラメータです。 -AmountCutoff への変調量です。

-
-
-

Tuning

-
-
Octave, Semi, Milli
-
-

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

-
    -
  • Octave: オクターブ
  • -
  • Semi: 半音
  • -
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • -
-
-
ET, A4 [Hz]
-
-

音律を変更します。

-

ET は Equal Temperament (平均律) の略です。 -ET が 12 のときは 12 平均律となります。 ET を -12 よりも小さくすると無音になる範囲が増えるので注意してください。

-

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

-
-
-

Unison

-
-
nUnison
-
-

ユニゾンに使うボイスの数です。

-

Misc.nVoice を増やすことで -nUnison -が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

-
-
Detune, Random Detune
-
-

Detune -はユニゾンに使われているボイスのピッチをずらす量です。

-

Random Detune -のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

-
random = RandomDetune ? rand() : 1
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

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

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

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

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

Refresh LFO あるいは Refresh Table + ボタンを押すと音が止まります。発音中のノートも全て停止します。

+

+

各 MIDI ノートに対応する 128 + の帯域制限されたウェーブテーブルが生成されます。 128 という数字は MIDI + ノート番号の値の範囲から来ています。

+

チューニングがずれているときは、セント値を切り捨てたインデックスのウェーブテーブルが使われます。例えば + MIDI ノート番号が 60 、チューニングが -20 セントのときは + floor(60 - 0.20) よりインデックス 59 + のウェーブテーブルが使われます。

+

言い換えれば、チューニングがずれているときはナイキスト周波数より少し低い周波数で帯域制限されることがあります。

+

+

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

+

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

+

+

+

+

+

+
+
A, D, S, R
+
+

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

+
    +
  • A (Attack) : + 鍵盤を押した瞬間から最大音量になるまでのアタック時間。
  • +
  • D (Decay) : + 最大音量からサステイン音量になるまでのディケイ時間。
  • +
  • S (Sustain) : + アタックとディケイが終わった後に鍵盤を押し続けているときのサステイン音量。
  • +
  • R (Release) : 鍵盤から指を離したあとに音量が 0 + になるまでのリリース時間。
  • +
+
+
Gain
+
+

音量を変更します。

+
+
+

+

素朴な 3-pole ローパスフィルタです。

+
+
Cutoff
+
+

フィルタのカットオフ周波数です。

+
+
Resonance
+
+

フィルタのレゾナンスです。最大にすると音量が大きくなるので注意してください。

+
+
KeyFollow
+
+

右いっぱいに回すと、カットオフ周波数がノートの音程と同じになります。左いっぱいに回すと音程に関わらず + Cutoff で設定されたカットオフ周波数を使います。

+
+
A, D, S, R, Amount
+
+

フィルタのカットオフ周波数を変調するエンベロープのパラメータです。 + AmountCutoff への変調量です。

+
+
+

+
+
Octave, Semi, Milli
+
+

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

+
    +
  • Octave: オクターブ
  • +
  • Semi: 半音
  • +
  • Milli: 半音の 1 / 1000 。 1 / 10 セント。
  • +
+
+
ET, A4 [Hz]
+
+

音律を変更します。

+

ET は Equal Temperament (平均律) の略です。 + ET が 12 のときは 12 平均律となります。 ET + を 12 + よりも小さくすると無音になる範囲が増えるので注意してください。

+

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

+
+
+

+
+
nUnison
+
+

ユニゾンに使うボイスの数です。

+

Misc.nVoice を増やすことで + nUnison + が大きいときに起こるリリースの途切れを減らすことができますが、引き換えに動作が重くなります。

+
+
Detune, Random Detune
+
+

Detune + はユニゾンに使われているボイスのピッチをずらす量です。

+

Random Detune + のチェックを入れると、ピッチがずれる量がノートオンごとにランダムに変わるようになります。

+
random = RandomDetune ? rand() : 1
 detune = pitch * (1 + random * unisonIndex * Detune)
-
-
GainRnd
-
-

ユニゾンに使われているボイスの音量をランダムに変更する量です。

-
-
Phase
-
-

ユニゾンに使われているボイスの位相をランダムに変更する量です。

-

Phase セクションの Reset -にチェックが入っていないとき、この値は無視されます。

-
-
Spread, Spread Type
-
-

Spread はユニゾンの左右の広がりの量です。

-

Spread Type -でボイスのピッチに応じたパンの割り当て方を選択できます。

-
    -
  • Alternate L-R: Ascend L -> R と -Ascend R -> L を交互に変更。
  • -
  • Alternate M-S: HighOnMid と -HighOnSide を交互に変更。
  • -
  • Ascend L -> R: 左から右に向かってピッチが上昇。
  • -
  • Ascend R -> L: 右から左に向かってピッチが上昇。
  • -
  • HighOnMid: 端から中央に向かってピッチが上昇。
  • -
  • HighOnSide: 中央から端に向かってピッチが上昇。
  • -
  • Random: -ランダムに生成したパンを割り当て。偏ることがあります。
  • -
  • RotateL: ノートオンごとに割り当てを左に回転。
  • -
  • RotateR: ノートオンごとに割り当てを右に回転。
  • -
  • Shuffle: 均一に並べたパンをランダムに割り当て。
  • -
-
-
-

Phase

-
-
Phase
-
-

オシレータの初期位相です。

-
-
Reset
-
-

チェックを入れると、ノートオンのたびにオシレータの位相を -Phase で指定した値にリセットします。

-
-
Random
-
-

チェックを入れると、ノートオンごとに位相をランダマイズします。 -Phase で指定した値がランダマイズの範囲になります。

-
-
-

Misc.

-
-
Smooth
-
-

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

-

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

-
    -
  • Tuning セクションの全て
  • -
  • Gain -
      -
    • Gain
    • -
    • S
    • -
  • -
  • Lowpass -
      -
    • Cutoff
    • -
    • S
    • -
    • Amount
    • -
    • KeyFollow
    • -
  • -
  • Delay -
      -
    • Mix
    • -
    • Feedback
    • -
    • Attack
    • -
    • Semi
    • -
    • Milli
    • -
  • -
  • Delay LFO -
      -
    • Tempo
    • -
    • Multiply
    • -
    • Amount
    • -
    • Lowpass
    • -
  • -
  • Phase -
      -
    • Phase
    • -
  • -
-
-
Poly
-
-

最大同時発音数です。値を小さくすると CPU 消費が減ります。

-
-
Seed
-
-

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

-

Main タブと Wavetable -タブでは異なる乱数列が使われています。

-
-
-

Delay

-
-
Mix
-
-

フィルタ出力とディレイ出力を混ぜる比率です。

-
-
Feedback
-
-

ディレイのフィードバックです。右に回すと正のフィードバック、左に回すと負のフィードバックがかかります。

-
-
Attack
-
-

フィルタからの出力をディレイに入力するときに掛け合わされるゲートのアタック時間です。

-
-
Semi, Milli
-
-

ノートの周波数から相対的に決められるディレイ時間です。次の式で計算されます。

-
delayTime = 1 / (noteFreq * pow(2, (semi + 0.001 * milli) / 12))
-
-
-

LFO

-
-
Tempo, Multiply
-
-

LFO の周波数をテンポに応じた形で指定します。 Tempo -の下の数字が音符の長さ、上の数字が音符の数です。例えば上が 6 、下が 8 -なら 8 分音符の 6 個分の長さが LFO の 1 周期になります (6 / 8 -拍子)。

-

MultiplyTempo -から計算された周波数に掛け合わされる値です。

-
// (60 秒) * (4 拍子) = 240 。
+  
+
GainRnd
+
+

ユニゾンに使われているボイスの音量をランダムに変更する量です。

+
+
Phase
+
+

ユニゾンに使われているボイスの位相をランダムに変更する量です。

+

Phase セクションの Reset + にチェックが入っていないとき、この値は無視されます。

+
+
Spread, Spread Type
+
+

Spread はユニゾンの左右の広がりの量です。

+

Spread Type + でボイスのピッチに応じたパンの割り当て方を選択できます。

+
    +
  • Alternate L-R: Ascend L -> R と + Ascend R -> L を交互に変更。
  • +
  • Alternate M-S: HighOnMid と + HighOnSide を交互に変更。
  • +
  • Ascend L -> R: + 左から右に向かってピッチが上昇。
  • +
  • Ascend R -> L: + 右から左に向かってピッチが上昇。
  • +
  • HighOnMid: 端から中央に向かってピッチが上昇。
  • +
  • HighOnSide: 中央から端に向かってピッチが上昇。
  • +
  • Random: + ランダムに生成したパンを割り当て。偏ることがあります。
  • +
  • RotateL: ノートオンごとに割り当てを左に回転。
  • +
  • RotateR: ノートオンごとに割り当てを右に回転。
  • +
  • Shuffle: 均一に並べたパンをランダムに割り当て。
  • +
+
+
+

+
+
Phase
+
+

オシレータの初期位相です。

+
+
Reset
+
+

チェックを入れると、ノートオンのたびにオシレータの位相を + Phase で指定した値にリセットします。

+
+
Random
+
+

チェックを入れると、ノートオンごとに位相をランダマイズします。 + Phase で指定した値がランダマイズの範囲になります。

+
+
+

+
+
Smooth
+
+

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

+

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

+
    +
  • Tuning セクションの全て
  • +
  • Gain +
      +
    • Gain
    • +
    • S
    • +
  • +
  • Lowpass +
      +
    • Cutoff
    • +
    • S
    • +
    • Amount
    • +
    • KeyFollow
    • +
  • +
  • Delay +
      +
    • Mix
    • +
    • Feedback
    • +
    • Attack
    • +
    • Semi
    • +
    • Milli
    • +
  • +
  • Delay LFO +
      +
    • Tempo
    • +
    • Multiply
    • +
    • Amount
    • +
    • Lowpass
    • +
  • +
  • Phase +
      +
    • Phase
    • +
  • +
+
+
Poly
+
+

最大同時発音数です。値を小さくすると CPU 消費が減ります。

+
+
Seed
+
+

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

+

Main タブと Wavetable + タブでは異なる乱数列が使われています。

+
+
+

+
+
Mix
+
+

フィルタ出力とディレイ出力を混ぜる比率です。

+
+
Feedback
+
+

ディレイのフィードバックです。右に回すと正のフィードバック、左に回すと負のフィードバックがかかります。

+
+
Attack
+
+

フィルタからの出力をディレイに入力するときに掛け合わされるゲートのアタック時間です。

+
+
Semi, Milli
+
+

ノートの周波数から相対的に決められるディレイ時間です。次の式で計算されます。

+
delayTime = 1 / (noteFreq * pow(2, (semi + 0.001 * milli) / 12))
+
+
+

+
+
Tempo, Multiply
+
+

LFO の周波数をテンポに応じた形で指定します。 Tempo + の下の数字が音符の長さ、上の数字が音符の数です。例えば上が 6 、下が 8 + なら 8 分音符の 6 個分の長さが LFO の 1 周期になります (6 / 8 + 拍子)。

+

MultiplyTempo + から計算された周波数に掛け合わされる値です。

+
// (60 秒) * (4 拍子) = 240 。
 lfoFrequency = Multiply * (BPM / 240) / (TempoUpperNumeral / TempoLowerNumeral)
-
-
Amount
-
-

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

-
-
Lowpass
-
-

LFO にかけるローパスフィルタのカットオフ周波数を変更します。

-
-
Interpolation
-
-

LFO のウェーブテーブルの補間の種類です。

-

-
-
Refresh LFO
-
-

現在の LFO Wave のパラメータに基づいて LFO -のウェーブテーブルを更新します。

-

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

-
-
LFO Wave
-
-

LFO の波形です。

-
-
-

Wavetable タブ

-

-

倍音コントロール

-
-
Gain
-
-

プロファイルの高さです。

-
-
Width
-
-

プロファイルの幅です。

-
-
Pitch
-
-

プロファイルの周波数にかけ合わせる値です。

-
-
Phase
-
-

プロファイルの位相をランダマイズする量です。

-
-
-

Pitch

-
-
Base Freq.
-
-

ウェーブテーブルのレンダリング時の基本周波数です。この値が小さいとマスターピッチのチューニングが狂うことがあるので注意してください。

-
-
Multiply, Modulo
-
-

プロファイルの周波数を変更します。

-
profileFrequency = mod(
+  
+
Amount
+
+

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

+
+
Lowpass
+
+

LFO にかけるローパスフィルタのカットオフ周波数を変更します。

+
+
Interpolation
+
+

LFO のウェーブテーブルの補間の種類です。

+

+
+
Refresh LFO
+
+

現在の LFO Wave のパラメータに基づいて LFO + のウェーブテーブルを更新します。

+

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

+
+
LFO Wave
+
+

LFO の波形です。

+
+
+

+

+

+
+
Gain
+
+

プロファイルの高さです。

+
+
Width
+
+

プロファイルの幅です。

+
+
Pitch
+
+

プロファイルの周波数にかけ合わせる値です。

+
+
Phase
+
+

プロファイルの位相をランダマイズする量です。

+
+
+

+
+
Base Freq.
+
+

ウェーブテーブルのレンダリング時の基本周波数です。この値が小さいとマスターピッチのチューニングが狂うことがあるので注意してください。

+
+
Multiply, Modulo
+
+

プロファイルの周波数を変更します。

+
profileFrequency = mod(
   BaseFreq * profileIndex * overtonePitch * Multiply,
   440 * pow(2, (Modulo - 69) / 12)
 )
-
-
-

Spectrum

-
-
Expand
-
-

スペクトラムを周波数軸に沿って拡大・縮小するスケーリング係数です。

-

-
-
Shift
-
-

スペクトラムを左右にシフトする量です。

-

-
-
Comb
-
-

Comb の値が 1 -以上のとき、プロファイルをくし状に変形します。値はくしのすき間の間隔です。

-

-
-
Shape
-
-

Shape -の値を指数として、プロファイルの形をべき乗によって変更します。

-
shapedProfile = powf(profile, shape);
-
-
-

Phase

-
-
UniformPhase
-
-

チェックを入れると、プロファイル内での位相を均一にします。

-
-
-

Random

-
-
Seed
-
-

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

-

Main タブと Wavetable -タブでは異なる乱数列が使われています。

-
-
-

BufferSize

-

1 つのウェーブテーブルの大きさです。 2^10 から -2^21 の範囲の 2 のべき乗の値を選択できます。

-

() -で表示された値は全てのウェーブテーブルを合わせたバイト数です。バイト数は次の式で計算できます。

-
bytes = 4 * 128 * BufferSize
-

Modifier

-
-
Gain^
-
-

倍音コントロールの Gain をべき乗する値です。

-
profileGain = pow(Gain, Gain^)
-
-
Width*
-
-

倍音コントロールの Width にかけ合わせる値です。

-
profileWidth = Width * (Width*)
-
-
-

Refresh Table

-

現在の Wavetable -タブのパラメータに基づいてオシレータのウェーブテーブルを更新します。

-

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

-

チェンジログ

-
    -
  • 0.1.14 -
      -
    • x86_64 固有の SIMD 命令への依存を除去。
    • -
  • -
  • 0.1.13 -
      -
    • Linux でのクラッシュを修正。
    • -
    • BarBox が Shift キーを受け取るように修正。
    • -
  • -
  • 0.1.12 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.11 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.10 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.9 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.8 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.7 -
      -
    • Process context requirements を実装。
    • -
    • BarBox の機能が LV2 版と同等になるように更新。 -
        -
      • 1 つのバーを編集を追加。
      • -
      • ロックを追加。
      • -
      • 内部的なマウスホイールの感度を追加。
      • -
      • スナップを追加 (未使用) 。
      • -
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • -
    • -
  • -
  • 0.1.6 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.5 -
      -
    • いくつかの BarBox にスクロールバーを追加。
    • -
    • BarBox に アンドゥ・リドゥの機能を追加。
    • -
  • -
  • 0.1.4 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.3 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.2 -
      -
    • 起動時にパラメータがロードされる前にウェーブテーブルが更新されるバグを修正。
    • -
    • LFO ウェーブテーブルの補間が Cubic のときにインデックスが 1 -つずれていたバグを修正。
    • -
  • -
  • 0.1.1 -
      -
    • Refresh LFO ボタンと Refresh Table -ボタンをメッセージからパラメータに修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

LightPadSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは -ryukau@gmail.com にメールを送ってください。

- -

VST® について

-

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

+
+
+

+
+
Expand
+
+

スペクトラムを周波数軸に沿って拡大・縮小するスケーリング係数です。

+

+
+
Shift
+
+

スペクトラムを左右にシフトする量です。

+

+
+
Comb
+
+

Comb の値が 1 + 以上のとき、プロファイルをくし状に変形します。値はくしのすき間の間隔です。

+

+
+
Shape
+
+

Shape + の値を指数として、プロファイルの形をべき乗によって変更します。

+
shapedProfile = powf(profile, shape);
+
+
+

+
+
UniformPhase
+
+

チェックを入れると、プロファイル内での位相を均一にします。

+
+
+

+
+
Seed
+
+

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

+

Main タブと Wavetable + タブでは異なる乱数列が使われています。

+
+
+

+

1 つのウェーブテーブルの大きさです。 2^10 から + 2^21 の範囲の 2 のべき乗の値を選択できます。

+

() + で表示された値は全てのウェーブテーブルを合わせたバイト数です。バイト数は次の式で計算できます。

+
bytes = 4 * 128 * BufferSize
+

+
+
Gain^
+
+

倍音コントロールの Gain をべき乗する値です。

+
profileGain = pow(Gain, Gain^)
+
+
Width*
+
+

倍音コントロールの Width にかけ合わせる値です。

+
profileWidth = Width * (Width*)
+
+
+

+

現在の Wavetable + タブのパラメータに基づいてオシレータのウェーブテーブルを更新します。

+

ウェーブテーブルの更新中は音が止まるので注意してください。発音中のノートも全て停止します。

+

+
    +
  • 0.1.14 +
      +
    • x86_64 固有の SIMD 命令への依存を除去。
    • +
  • +
  • 0.1.13 +
      +
    • Linux でのクラッシュを修正。
    • +
    • BarBox が Shift キーを受け取るように修正。
    • +
  • +
  • 0.1.12 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.11 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.10 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.9 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.8 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.7 +
      +
    • Process context requirements を実装。
    • +
    • BarBox の機能が LV2 版と同等になるように更新。 +
        +
      • 1 つのバーを編集を追加。
      • +
      • ロックを追加。
      • +
      • 内部的なマウスホイールの感度を追加。
      • +
      • スナップを追加 (未使用) 。
      • +
      • 直線の描画での開始点の値をアンカーポイントに固定するように変更。
      • +
    • +
  • +
  • 0.1.6 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.5 +
      +
    • いくつかの BarBox にスクロールバーを追加。
    • +
    • BarBox に アンドゥ・リドゥの機能を追加。
    • +
  • +
  • 0.1.4 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.3 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.2 +
      +
    • 起動時にパラメータがロードされる前にウェーブテーブルが更新されるバグを修正。
    • +
    • LFO ウェーブテーブルの補間が Cubic のときにインデックスが 1 + つずれていたバグを修正。
    • +
  • +
  • 0.1.1 +
      +
    • Refresh LFO ボタンと Refresh Table + ボタンをメッセージからパラメータに修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

LightPadSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは + ryukau@gmail.com にメールを送ってください。

+ +

+

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

- - + + diff --git a/docs/manual/LongPhaser/LongPhaser_en.html b/docs/manual/LongPhaser/LongPhaser_en.html index c5415633..dd026b2e 100644 --- a/docs/manual/LongPhaser/LongPhaser_en.html +++ b/docs/manual/LongPhaser/LongPhaser_en.html @@ -2,538 +2,574 @@ - - - - -LongPhaser_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LongPhaser

-

-

LongPhaser is a phaser using Schroeder all-pass filters which is able -to set some long delay time. The sound is like somewhere between delay -and phaser. It feels a bit underwhelming, however modulation with LFO -and note events may be used to compensate the lack of character.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

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

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

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

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -553,528 +589,543 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Note Event Input

-

LongPhaser can receive note events to control delay time in allpass -filters.

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in LongPhaser.

-
    -
  • [s]: Second.
  • -
-

Allpass

-
-
Output
-
-

Output gain.

-
-
Mix
-
-

Mixing ratio of input signal and distorted signal.

-

When set to leftmost, input signal will be bypassed. When the value -approaches to rightmost, the effect of OuterFeed becomes -stronger.

-
-
OuterFeed
-
-

Feedback gain for the signal that goes back to the start of serial -allpass section.

-
-
InnerFeed
-
-

Feedback and feedforward gain of allpass filters in serial allpass -section.

-
-
Inner Mod.
-
-

LFO modulation amount to InnerFeed.

-
-
Time Spread
-
-

Time Spread gradually changes delay time multipliers -between [1, 1, 1, ...] and -[1/1, 1/2, 1/3, ...].

-

Phaser is an effector with serially connected allpass filters. When -Time Spread is set to leftmost, all the delay time are set -to the same value. When Time Spread is set to rightmost, -delay time are set to 1/1, 1/2, 1/3, and so on, in order from the -front.

-
-
Base Time [s]
-
-

Base delay time used inside of allpass filters.

-
-
LFO > Time
-
-

LFO modulation amount to delay times inside of allpass filters.

-

Unit of display value depends on Mod. Type.

-
-
Input > Time
-
-

Amount of modulation from input signal to delay time in allpass -filter.

-

To avoid setting negative delay time, abs is applied to -modulation signal.

-

Unit of display value depends on Mod. Type.

-
-
Mod. Type
-
-

Type of delay time modulation. Character of -Input > Time and LFO > Time are -affected.

-
    -
  • Multiply: Multiples modulation signal after applying -exp2. Unit of Input > Time and -LFO > Time becomes octave.
  • -
  • Add: Adds modulation signal to delay time. Unit of -Input > Time and LFO > Time becomes -second.
  • -
-
-
Interp. Rate
-
-

Rate limiting value, or slew rate, of delay time interpolation. For -example, when Interp. Rate is set to 0.1, changing delay -time from 0 to 1 samples requires 10 samples of interpolation time.

-
-
Stage
-
-

Number of allpass filters in the serial section.

-
-
-

LFO

-
-
L-R Offset
-
-

LFO phase offset between stereo channels.

-
-
Phase
-
-

A value that is added to LFO phase.

-

To manually control LFO phase, set Rate to leftmost to -stop LFO, then change the value of Phase. Also, the value -of Smoothing affects the response time when -Phase is changed.

-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

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

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Wave Interp.
-
-

LFO wave form interpolation method.

-
    -
  • Step: Holding.
  • -
  • Linear: Linear interpolation.
  • -
  • PCHIP: Monotonic cubic interpolation.
  • -
-

Step makes LFO to act like a sequencer. -Linear sounds similar to PCHIP, and the -computation cost is lower. PCHIP is the most smooth among -all 3.

-
-
LFO Wave
-
-

LFO waveform.

-
-
-

Misc.

-
-
Note Origin
-
-

Origin of MIDI note number.

-

Note event with this note number doesn’t change the sound.

-
-
Note Scale
-
-

Scaling of note event modulation to delay time.

-

When set to 1.0, the modulation amount follows the pitch -of the note. When set to -1.0 pitch will be inverted.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise. On the other hand, if the value of Smoothing is -set to 1.0 for example, the change of parameter is only -slowly followed.

-
-
2x Sampling
-
-

When checked, 2-fold oversampling is enabled.

-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.0.3 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

LongPhaser 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

LongPhaser can receive note events to control delay time in allpass + filters.

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in LongPhaser.

+
    +
  • [s]: Second.
  • +
+

+
+
Output
+
+

Output gain.

+
+
Mix
+
+

Mixing ratio of input signal and distorted signal.

+

When set to leftmost, input signal will be bypassed. When the value + approaches to rightmost, the effect of OuterFeed becomes + stronger.

+
+
OuterFeed
+
+

Feedback gain for the signal that goes back to the start of serial + allpass section.

+
+
InnerFeed
+
+

Feedback and feedforward gain of allpass filters in serial allpass + section.

+
+
Inner Mod.
+
+

LFO modulation amount to InnerFeed.

+
+
Time Spread
+
+

Time Spread gradually changes delay time multipliers + between [1, 1, 1, ...] and + [1/1, 1/2, 1/3, ...].

+

Phaser is an effector with serially connected allpass filters. When + Time Spread is set to leftmost, all the delay time are + set to the same value. When Time Spread is set to + rightmost, delay time are set to 1/1, 1/2, 1/3, and so on, in order + from the front.

+
+
Base Time [s]
+
+

Base delay time used inside of allpass filters.

+
+
LFO > Time
+
+

LFO modulation amount to delay times inside of allpass filters.

+

Unit of display value depends on Mod. Type.

+
+
Input > Time
+
+

Amount of modulation from input signal to delay time in allpass + filter.

+

To avoid setting negative delay time, abs is applied + to modulation signal.

+

Unit of display value depends on Mod. Type.

+
+
Mod. Type
+
+

Type of delay time modulation. Character of + Input > Time and LFO > Time are + affected.

+
    +
  • Multiply: Multiples modulation signal after applying + exp2. Unit of Input > Time and + LFO > Time becomes octave.
  • +
  • Add: Adds modulation signal to delay time. Unit of + Input > Time and LFO > Time becomes + second.
  • +
+
+
Interp. Rate
+
+

Rate limiting value, or slew rate, of delay time interpolation. For + example, when Interp. Rate is set to 0.1, changing delay + time from 0 to 1 samples requires 10 samples of interpolation + time.

+
+
Stage
+
+

Number of allpass filters in the serial section.

+
+
+

+
+
L-R Offset
+
+

LFO phase offset between stereo channels.

+
+
Phase
+
+

A value that is added to LFO phase.

+

To manually control LFO phase, set Rate to leftmost to + stop LFO, then change the value of Phase. Also, the value + of Smoothing affects the response time when + Phase is changed.

+
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

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

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Wave Interp.
+
+

LFO wave form interpolation method.

+
    +
  • Step: Holding.
  • +
  • Linear: Linear interpolation.
  • +
  • PCHIP: Monotonic cubic interpolation.
  • +
+

Step makes LFO to act like a sequencer. + Linear sounds similar to PCHIP, and the + computation cost is lower. PCHIP is the most smooth among + all 3.

+
+
LFO Wave
+
+

LFO waveform.

+
+
+

+
+
Note Origin
+
+

Origin of MIDI note number.

+

Note event with this note number doesn’t change the sound.

+
+
Note Scale
+
+

Scaling of note event modulation to delay time.

+

When set to 1.0, the modulation amount follows the + pitch of the note. When set to -1.0 pitch will be + inverted.

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise. On the other hand, if the value of + Smoothing is set to 1.0 for example, the + change of parameter is only slowly followed.

+
+
2x Sampling
+
+

When checked, 2-fold oversampling is enabled.

+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.0.3 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

LongPhaser is licensed under GPLv3. Complete licenses are linked + below.

+ +

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

+

+

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

- - + + diff --git a/docs/manual/LongPhaser/LongPhaser_ja.html b/docs/manual/LongPhaser/LongPhaser_ja.html index 028f3740..08a2b727 100644 --- a/docs/manual/LongPhaser/LongPhaser_ja.html +++ b/docs/manual/LongPhaser/LongPhaser_ja.html @@ -2,543 +2,581 @@ - - - - -LongPhaser_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

LongPhaser

-

-

LongPhaserロング フェイザ -は遅延時間を長くできる Schroeder -オールパスフィルタを使ったフェイザです。ディレイとフェイザを足して 2 -で割ったような音が出ます。 2 で割った物足りなさを補うために LFO -やノートイベントで変調をかけることができます。

- -

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

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

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

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

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

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

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

-

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

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

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

-

参考リンク

- -

GUI の見た目の設定

-

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

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

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

+

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

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

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

+

+ +

+

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

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -558,524 +596,544 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

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

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

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

-

-

ノートイベントの入力

-

LongPhaser -はノートイベントによってオールパスフィルタのディレイ時間を制御することができます。

-

パラメータ

-

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

-
    -
  • [s]: 秒 (second) 。
  • -
-

Allpass

-
-
Output
-
-

出力ゲインです。

-
-
Mix
-
-

入力信号とフェイザを通過した信号を混ぜる比率です。

-

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほど -OuterFeed が強くかかるようになります。

-
-
OuterFeed
-
-

直列オールパスセクションを囲む部分のフィードバックのゲインです。

-
-
InnerFeed
-
-

直列オールパスセクションに含まれるオールパスフィルタのフィードバックとフィードフォワードのゲインです。

-
-
Inner Mod.
-
-

LFO による InnerFeed の変調量です。

-
-
Time Spread
-
-

オールパスフィルタのディレイ時間の倍率を [1, 1, 1, ...] -と [1/1, 1/2, 1/3, ...] の間で調整します。

-

フェイザは複数のオールパスフィルタを直列に繋いだエフェクタです。 -Time Spread -が左いっぱいのときは、このオールパスフィルタのディレイ時間をすべて同じにします。 -Time Spread -が右いっぱいのときは、オールパスフィルタのディレイ時間が前から順に 1/1 -倍、 1/2 倍、 1/3 倍、と設定されます。

-
-
Base Time [s]
-
-

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

-
-
LFO > Time
-
-

LFO によってオールパスフィルタのディレイ時間を変調する量です。

-

表示されている値の単位は Mod. Type -によって変わります。

-
-
Input > Time
-
-

入力信号によってオールパスフィルタのディレイ時間を変調する量です。

-

負のディレイ時間を設定することを避けるため、変調に使われる信号は -abs で全波整流されます。

-

表示されている値の単位は Mod. Type -によって変わります。

-
-
Mod. Type
-
-

LFO > TimeInput > Time -による、ディレイ時間への変調のかけ方です。

-
    -
  • Multiply: exp2 -を通した変調信号をディレイ時間に乗算します。 Multiply -が選択されているとき、 Input > Time と -LFO > Time の値は変調量をオクターブで表します。
  • -
  • Add: 変調信号をディレイ時間にそのまま加算します。 -Add が選択されているとき、 Input > Time と -LFO > Time の値は変調量を秒数で表します。
  • -
-
-
Interp. Rate
-
-

ディレイ時間の変動を補間するレートリミッタの 1 -サンプルあたりの制限量です。例えば Interp. Rate が 0.1 -のときは、 10 サンプル経過でディレイ時間が 0.1 * 10 = 1 -サンプル変わります。

-
-
Stage
-
-

直列に接続するオールパスフィルタの数です。

-
-
-

LFO

-
-
L-R Offset
-
-

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

-
-
Phase
-
-

LFO の位相に加算される値です。

-

Rate を左いっぱいに回して LFO の位相を止めているときに -Phase の値を変更することで、 LFO -の位相を制御することができます。また Smoothing の値によって -Phase を動かしたときの応答速度を変えることができます。

-
-
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 -の同期間隔を変えたいときに使えます。

-
-
Wave Interp.
-
-

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

-
    -
  • Step: ホールド。
  • -
  • Linear: 線形補間。
  • -
  • PCHIP: 単調な 3 次補間。
  • -
-

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

-
-
LFO Wave
-
-

LFO の波形です。

-
-
-

Misc.

-
-
Note Origin
-
-

変調量が 1 倍となる MIDI ノート番号です。

-

例えば Note Origin が 60 -であれば、入力されたノート番号が 60 のときに音が変わらなくなります。

-
-
Note Scale
-
-

ノートイベントによるディレイ時間の変調量です。

-

1.0 のとき、ノートのピッチに完全に追従します。 -1.0 -にするとピッチの高低が逆転します。

-
-
Smoothing [s]
-
-

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

-

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

-
-
2x Sampling
-
-

チェックを入れると 2 倍のオーバーサンプリングを行います。

-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.0.3 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

LongPhaser

- -

ライセンス

-

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

- -

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

-

VST® について

-

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

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

LongPhaser + はノートイベントによってオールパスフィルタのディレイ時間を制御することができます。

+

+

角かっこ [] で囲まれているのは単位です。以下は LongPhaser + のパラメータで使われている単位の一覧です。

+
    +
  • [s]: 秒 (second) 。
  • +
+

+
+
Output
+
+

出力ゲインです。

+
+
Mix
+
+

入力信号とフェイザを通過した信号を混ぜる比率です。

+

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほど + OuterFeed が強くかかるようになります。

+
+
OuterFeed
+
+

直列オールパスセクションを囲む部分のフィードバックのゲインです。

+
+
InnerFeed
+
+

直列オールパスセクションに含まれるオールパスフィルタのフィードバックとフィードフォワードのゲインです。

+
+
Inner Mod.
+
+

LFO による InnerFeed の変調量です。

+
+
Time Spread
+
+

オールパスフィルタのディレイ時間の倍率を + [1, 1, 1, ...][1/1, 1/2, 1/3, ...] + の間で調整します。

+

フェイザは複数のオールパスフィルタを直列に繋いだエフェクタです。 + Time Spread + が左いっぱいのときは、このオールパスフィルタのディレイ時間をすべて同じにします。 + Time Spread + が右いっぱいのときは、オールパスフィルタのディレイ時間が前から順に 1/1 + 倍、 1/2 倍、 1/3 倍、と設定されます。

+
+
Base Time [s]
+
+

オールパスフィルタのディレイ時間です。

+
+
LFO > Time
+
+

LFO によってオールパスフィルタのディレイ時間を変調する量です。

+

表示されている値の単位は Mod. Type + によって変わります。

+
+
Input > Time
+
+

入力信号によってオールパスフィルタのディレイ時間を変調する量です。

+

負のディレイ時間を設定することを避けるため、変調に使われる信号は + abs で全波整流されます。

+

表示されている値の単位は Mod. Type + によって変わります。

+
+
Mod. Type
+
+

LFO > TimeInput > Time + による、ディレイ時間への変調のかけ方です。

+
    +
  • Multiply: exp2 + を通した変調信号をディレイ時間に乗算します。 Multiply + が選択されているとき、 Input > Time と + LFO > Time の値は変調量をオクターブで表します。
  • +
  • Add: 変調信号をディレイ時間にそのまま加算します。 + Add が選択されているとき、 Input > Time + と LFO > Time の値は変調量を秒数で表します。
  • +
+
+
Interp. Rate
+
+

ディレイ時間の変動を補間するレートリミッタの 1 + サンプルあたりの制限量です。例えば Interp. Rate が 0.1 + のときは、 10 サンプル経過でディレイ時間が 0.1 * 10 = 1 + サンプル変わります。

+
+
Stage
+
+

直列に接続するオールパスフィルタの数です。

+
+
+

+
+
L-R Offset
+
+

ステレオチャンネル間で LFO の位相をずらす量です。

+
+
Phase
+
+

LFO の位相に加算される値です。

+

Rate を左いっぱいに回して LFO の位相を止めているときに + Phase の値を変更することで、 LFO + の位相を制御することができます。また Smoothing + の値によって Phase + を動かしたときの応答速度を変えることができます。

+
+
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 + の同期間隔を変えたいときに使えます。

+
+
Wave Interp.
+
+

LFO の波形の補間方法です。

+
    +
  • Step: ホールド。
  • +
  • Linear: 線形補間。
  • +
  • PCHIP: 単調な 3 次補間。
  • +
+

Step を選ぶと LFO をシーケンサのように使えます。 + LinearPCHIP + と似たような音になりますが、計算がすこし速いです。デフォルトの + PCHIP はサンプル間をだいたい滑らかに補間します。

+
+
LFO Wave
+
+

LFO の波形です。

+
+
+

+
+
Note Origin
+
+

変調量が 1 倍となる MIDI ノート番号です。

+

例えば Note Origin が 60 + であれば、入力されたノート番号が 60 + のときに音が変わらなくなります。

+
+
Note Scale
+
+

ノートイベントによるディレイ時間の変調量です。

+

1.0 のとき、ノートのピッチに完全に追従します。 -1.0 + にするとピッチの高低が逆転します。

+
+
Smoothing [s]
+
+

パラメータのスムーシング時間です。

+

例えば Smoothing の値を 0.01 + と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし + Smoothing + の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に + Smoothing の値を 1.0 + などと長くするとパラメータの値がゆっくりと切り替わるようになります。

+
+
2x Sampling
+
+

チェックを入れると 2 倍のオーバーサンプリングを行います。

+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.0.3 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

LongPhaser のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/MaybeSnare/MaybeSnare_en.html b/docs/manual/MaybeSnare/MaybeSnare_en.html index 04159e3d..71a31de8 100644 --- a/docs/manual/MaybeSnare/MaybeSnare_en.html +++ b/docs/manual/MaybeSnare/MaybeSnare_en.html @@ -2,547 +2,584 @@ - - - - -MaybeSnare_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MaybeSnare

-

-

MaybeSnare is a synthesizer that resembles sound of snare drum. This -is basically 2 MembraneSynth coupled by cross feedback. Snare wire is -not included. However, the noise of modulation adds rattling texture -similar to snare wire.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
-xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -562,659 +599,683 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Recommend to insert limiter after MaybeSnare because output amplitude -varies greatly.

-

Blow-up and Oscillation

-

Blow-up (or divergence) is the state when the sound is getting louder -and louder. Oscillation is the state when the amplitude is not changing, -but the sound doesn’t stop.

-

Blow-up may happen when Coupling -> Amount is large. -An recommendation is to set Coupling -> Amount to 2 or -less. Even when the output blows up, the sound stops roughly after the -time specified on Coupling -> Decay. However, beware -that the output amplitude may become very loud. Also, sending many notes -in short period of time increases the chance of blow-up.

-

It may oscillates when following conditions are met:

-
    -
  • Modulation -> Amount is greater than 0.
  • -
  • Interp. Rate is greater than 0.
  • -
  • Envelope is disabled.
  • -
-

Oscillation can be utilized for some noisy drone or sound effects, -however it can be a problem when making percussion sounds. Recommend to -always enable Envelope for percussion sounds.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in MaybeSnare.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [st.] : Semitone.
  • -
  • [Hz] : Hertz.
  • -
-

Following is a list of terms used in this documentation.

-
    -
  • FDN: Feedback delay network.
  • -
  • Batter side: Membrane on the upper side of snare drum.
  • -
  • Snare side: Membrane on the lower side of snare drum, or the side -where snare wires are attached.
  • -
  • Coupling: On MaybeSnare, coupling specifically refers to propagation -of vibration between batter side and snare side.
  • -
-

Gain

-
-
Output [dB]
-
-

Output gain.

-
-
Batter-Snare Mix
-
-

Mixing ratio of batter side and snare side.

-
-
Normalize
-
-

When checked, output gain is normalized to keep almost same gain -regardless of Impact -> Amplitude.

-
-
2x Sampling
-
-

When checked, it enables 2-fold oversampling.

-
-
-

Tuning

-

Tuning section provides pitch related parameters.

-

Note that most of the time, the output of MaybeSnare might be out of -tuning. If it is required to tune the pitch exactly to provided note, -recommend to render the output sound, and use external sampler.

-
-
Snare Side Oct.
-
-

Pitch of snare side relative to batter side. Unit is octave.

-
-
Semitone, Cent
-
-

Pitch in semitone or cent. 1 semitone equals to 100 cents.

-
-
Equal Temp., A4 [Hz]
-
-

Equal Temp. is abbreviation of equal temperament (ET). -When Equal Temp. is 12, then the tuning becomes standard 12 -ET. Setting Equal Temp. to less than 12 might increase the -range of note that doesn’t change output sound, due to the internal -pitch becomes too high or too low.

-

A4 [Hz] is freqeuncy of note A4.

-
-
P.Bend Range [st.]
-
-

Range of pitch bend in semitone.

-
-
Slide Time [s]
-
-

Time to slide the pitch of latest note.

-

Note that the time indicated in user interface is not exact. -Internally, the value is converted to cutoff frequency of smoothing -filter.

-
-
Slide at Note-on, Note-off
-
-

When checked, apply pitch slide at note-on or note-off.

-

For percussion sounds, it may sound more natural without pitch -slide.

-
-
-

Impact

-

Impact section provides parameters for excitation. Excitation here -means the signal that imitates the impact of stick and membrane. -MaybeSnare provides 2 types of signal for excitation which are -exponential decay and random noise from normal distribution.

-
-
Amplitude [dB]
-
-

Maximum amplitude of exponential decay. Roughly represents the -intensity of impact.

-
-
Decay [s]
-
-

Time of exponential decay. Roughly represents the time that the -membrane returns to resting position after impact.

-

Increasing the value of Decay adds more low frequency. -Depending on other parameter settings, rattling may vanish when -Decay is greater than some certain value.

-
-
Position
-
-

Position introduces bias the FDN input gain to resemble -the position of impact.

-

Intention was to represent the center of membrane for -Position = 0, and the rim of membrane for -Position = 1. However, it doesn’t make much difference to -the output sound.

-
-
Noise Mix
-
-

Mixing ratio of exponential decay and noise.

-
-
Noise Decay [s]
-
-

Decay time of noise.

-
-
Noise LP [Hz]
-
-

Cutoff frequency of a lowpass filter which applies to noise -signal.

-
-
-

Coupling

-
-
Amount
-
-

Amount of coupling.

-

More coupling means more chance of blow-up. For usual case, recommend -to set the value to 2 or less. When setting the value to greater than 2, -reducing Coupling -> Decay and -Coupling -> Reduction might prevent blow-up.

-
-
Decay [s]
-
-

Decay time of coupling amount.

-
-
Reduction
-
-

Coefficient to accelerate the coupling decay envelope. This value is -only used when the amplitude of coupling signal is over an internal -threshold.

-

Reducing this value makes blow-up to end faster.

-
-
-

Random

-

Random section provides parameters for randomization for each -note-on.

-
-
Seed
-
-

Seed value of random number sequence.

-

Changing Seed also changes the feedback matrix of FDN, -and it changes the texture of cross feedback.

-
-
Matrix Rnd.
-
-

Ratio of randomization to the feedback matrix of FDN.

-
-
Overtone Rnd.
-
-

Maximum of random number that added to delay time multiplier.

-
-
-

Batter Side, Snare Side

-

Batter Side tab and Snare Side tab shares -same set of parameters.

-

By the way, MaybeSnare doesn’t have anything related to snare wire. -The texture of rattling comes from the discontinuity that occurs when -delay time modulation is too fast. Increasing the value of -Interp. Rate adds this discontinuity more often.

-

Delay

-

Delay section provides parameters for feedback and delay time -tuning.

-
-
Cross Feed
-
-

Amount of cross feedback between delays.

-

Higher value of Cross Feed adds more cross feedback, and -harmonics become more complex.

-
-
Feedback
-
-

Amount of feedback of FDN.

-

Feedback is used to change the length of sound. -Oscillation can also be suppressed by decreasing -Feedback.

-
-
Shape
-
-

Switch the delay time multiplier between string modes and circular -membrane modes.

-

When Shape is 0, the multipliers use string modes and it -becomes 1, 2, 3, and so on. When Shape is 1, the -multipliers use circular membrane modes and it becomes 1, 1.59, 2.13, -and so on.

-
-
-

Modulation

-

Modulation section provides parameters related to self-modulation of -FDN.

-
-
Amount
-
-

Amount of modulation to delay time by the absolute amplitude of -feedback signal.

-

When Amount is not 0, the pitch might drop like tom -tom.

-
-
Interp. Rate
-
-

Slew rate of delay time modulation per sample.

-

Higher Interp. Rate means more modulation, but also -increases the risk of oscillation.

-
-
Max Ratio
-
-

Maximum of modulation represented as a ratio to resting delay -time.

-

For example, when Max Ratio is 0.3, and resting delay -time is 1.0, the maximally modulated delay time becomes 0.7.

-
-
Batter Mod. Envelope, Snare Mod. Envelope
-
-

When lit, it enables modulation envelope.

-

Modulation envelope decreases Modulation -> Amount -through time to suppress oscillation. Recommend to always turn on for -percussion sounds.

-
-
Sustain [s]
-
-

Sustain time of modulation envelope. Lengthen the sustain time tends -to be more unnatural sound.

-
-
Release [s]
-
-

Release time of modulation envelope. When oscillating, shorten the -release time might result in more natural sound.

-
-
-

Filter

-

Filter section provides parameters to tune the filters inserted in -the feedback path of FDN.

-
-
LP Cut [Hz], HP Cut [Hz]
-
-

Cutoff frequency of lowpass (LP) or highpass (HP) filters.

-

Lowpass is actually highshelf with the gain fixed to 0.5 (~= -6.02 -dB). It is labeled as lowpass on the interface because it felt more -intuitive.

-
-
LP Q, HP Q
-
-

Q factor of lowpass (LP) or highpass (HP).

-

Q factors don’t change the output sound that much. They can be -ignored unless fine tuning is required. That said, following 2 recipes -might be useful to suppress oscillation in some cases. Both reduces low -frequency of the output sound.

-
    -
  • Decrease index 0 (leftmost) of HP Q.
  • -
  • Decrease index 12 to 15 (3 bars from rightmost) of -HP Q.
  • -
-
-
-

Change Log

-
    -
  • 0.1.9 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.8 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.7 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Removed bypass processing that is causing crash. Parameter is still -available, but it has no effect.
    • -
  • -
  • 0.1.4 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.3 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.2 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.1 -
      -
    • Changed to reset random number generator when Seed is -changed. With this change, the same sound comes out when -Seed is changed and when full reset is done.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

MaybeSnare 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Recommend to insert limiter after MaybeSnare because output + amplitude varies greatly.

+

+

Blow-up (or divergence) is the state when the sound is getting + louder and louder. Oscillation is the state when the amplitude is not + changing, but the sound doesn’t stop.

+

Blow-up may happen when Coupling -> Amount is + large. An recommendation is to set Coupling -> Amount + to 2 or less. Even when the output blows up, the sound stops roughly + after the time specified on Coupling -> Decay. + However, beware that the output amplitude may become very loud. Also, + sending many notes in short period of time increases the chance of + blow-up.

+

It may oscillates when following conditions are met:

+
    +
  • Modulation -> Amount is greater than 0.
  • +
  • Interp. Rate is greater than 0.
  • +
  • Envelope is disabled.
  • +
+

Oscillation can be utilized for some noisy drone or sound effects, + however it can be a problem when making percussion sounds. Recommend + to always enable Envelope for percussion sounds.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in MaybeSnare.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [st.] : Semitone.
  • +
  • [Hz] : Hertz.
  • +
+

Following is a list of terms used in this documentation.

+
    +
  • FDN: Feedback delay network.
  • +
  • Batter side: Membrane on the upper side of snare drum.
  • +
  • Snare side: Membrane on the lower side of snare drum, or the side + where snare wires are attached.
  • +
  • Coupling: On MaybeSnare, coupling specifically refers to + propagation of vibration between batter side and snare side.
  • +
+

+
+
Output [dB]
+
+

Output gain.

+
+
Batter-Snare Mix
+
+

Mixing ratio of batter side and snare side.

+
+
Normalize
+
+

When checked, output gain is normalized to keep almost same gain + regardless of Impact -> Amplitude.

+
+
2x Sampling
+
+

When checked, it enables 2-fold oversampling.

+
+
+

+

Tuning section provides pitch related parameters.

+

Note that most of the time, the output of MaybeSnare might be out + of tuning. If it is required to tune the pitch exactly to provided + note, recommend to render the output sound, and use external + sampler.

+
+
Snare Side Oct.
+
+

Pitch of snare side relative to batter side. Unit is octave.

+
+
Semitone, Cent
+
+

Pitch in semitone or cent. 1 semitone equals to 100 cents.

+
+
Equal Temp., A4 [Hz]
+
+

Equal Temp. is abbreviation of equal temperament (ET). + When Equal Temp. is 12, then the tuning becomes standard + 12 ET. Setting Equal Temp. to less than 12 might increase + the range of note that doesn’t change output sound, due to the + internal pitch becomes too high or too low.

+

A4 [Hz] is freqeuncy of note A4.

+
+
P.Bend Range [st.]
+
+

Range of pitch bend in semitone.

+
+
Slide Time [s]
+
+

Time to slide the pitch of latest note.

+

Note that the time indicated in user interface is not exact. + Internally, the value is converted to cutoff frequency of smoothing + filter.

+
+
Slide at Note-on, Note-off
+
+

When checked, apply pitch slide at note-on or note-off.

+

For percussion sounds, it may sound more natural without pitch + slide.

+
+
+

+

Impact section provides parameters for excitation. Excitation here + means the signal that imitates the impact of stick and membrane. + MaybeSnare provides 2 types of signal for excitation which are + exponential decay and random noise from normal distribution.

+
+
Amplitude [dB]
+
+

Maximum amplitude of exponential decay. Roughly represents the + intensity of impact.

+
+
Decay [s]
+
+

Time of exponential decay. Roughly represents the time that the + membrane returns to resting position after impact.

+

Increasing the value of Decay adds more low frequency. + Depending on other parameter settings, rattling may vanish when + Decay is greater than some certain value.

+
+
Position
+
+

Position introduces bias the FDN input gain to + resemble the position of impact.

+

Intention was to represent the center of membrane for + Position = 0, and the rim of membrane for + Position = 1. However, it doesn’t make much difference to + the output sound.

+
+
Noise Mix
+
+

Mixing ratio of exponential decay and noise.

+
+
Noise Decay [s]
+
+

Decay time of noise.

+
+
Noise LP [Hz]
+
+

Cutoff frequency of a lowpass filter which applies to noise + signal.

+
+
+

+
+
Amount
+
+

Amount of coupling.

+

More coupling means more chance of blow-up. For usual case, + recommend to set the value to 2 or less. When setting the value to + greater than 2, reducing Coupling -> Decay and + Coupling -> Reduction might prevent blow-up.

+
+
Decay [s]
+
+

Decay time of coupling amount.

+
+
Reduction
+
+

Coefficient to accelerate the coupling decay envelope. This value + is only used when the amplitude of coupling signal is over an internal + threshold.

+

Reducing this value makes blow-up to end faster.

+
+
+

+

Random section provides parameters for randomization for each + note-on.

+
+
Seed
+
+

Seed value of random number sequence.

+

Changing Seed also changes the feedback matrix of FDN, + and it changes the texture of cross feedback.

+
+
Matrix Rnd.
+
+

Ratio of randomization to the feedback matrix of FDN.

+
+
Overtone Rnd.
+
+

Maximum of random number that added to delay time multiplier.

+
+
+

+

Batter Side tab and Snare Side tab shares + same set of parameters.

+

By the way, MaybeSnare doesn’t have anything related to snare wire. + The texture of rattling comes from the discontinuity that occurs when + delay time modulation is too fast. Increasing the value of + Interp. Rate adds this discontinuity more often.

+

+

Delay section provides parameters for feedback and delay time + tuning.

+
+
Cross Feed
+
+

Amount of cross feedback between delays.

+

Higher value of Cross Feed adds more cross feedback, + and harmonics become more complex.

+
+
Feedback
+
+

Amount of feedback of FDN.

+

Feedback is used to change the length of sound. + Oscillation can also be suppressed by decreasing + Feedback.

+
+
Shape
+
+

Switch the delay time multiplier between string modes and circular + membrane modes.

+

When Shape is 0, the multipliers use string modes and + it becomes 1, 2, 3, and so on. When Shape is 1, the + multipliers use circular membrane modes and it becomes 1, 1.59, 2.13, + and so on.

+
+
+

+

Modulation section provides parameters related to self-modulation + of FDN.

+
+
Amount
+
+

Amount of modulation to delay time by the absolute amplitude of + feedback signal.

+

When Amount is not 0, the pitch might drop like tom + tom.

+
+
Interp. Rate
+
+

Slew rate of delay time modulation per sample.

+

Higher Interp. Rate means more modulation, but also + increases the risk of oscillation.

+
+
Max Ratio
+
+

Maximum of modulation represented as a ratio to resting delay + time.

+

For example, when Max Ratio is 0.3, and resting delay + time is 1.0, the maximally modulated delay time becomes 0.7.

+
+
Batter Mod. Envelope, Snare Mod. Envelope
+
+

When lit, it enables modulation envelope.

+

Modulation envelope decreases Modulation -> Amount + through time to suppress oscillation. Recommend to always turn on for + percussion sounds.

+
+
Sustain [s]
+
+

Sustain time of modulation envelope. Lengthen the sustain time + tends to be more unnatural sound.

+
+
Release [s]
+
+

Release time of modulation envelope. When oscillating, shorten the + release time might result in more natural sound.

+
+
+

+

Filter section provides parameters to tune the filters inserted in + the feedback path of FDN.

+
+
LP Cut [Hz], HP Cut [Hz]
+
+

Cutoff frequency of lowpass (LP) or highpass (HP) filters.

+

Lowpass is actually highshelf with the gain fixed to 0.5 (~= -6.02 + dB). It is labeled as lowpass on the interface because it felt more + intuitive.

+
+
LP Q, HP Q
+
+

Q factor of lowpass (LP) or highpass (HP).

+

Q factors don’t change the output sound that much. They can be + ignored unless fine tuning is required. That said, following 2 recipes + might be useful to suppress oscillation in some cases. Both reduces + low frequency of the output sound.

+
    +
  • Decrease index 0 (leftmost) of HP Q.
  • +
  • Decrease index 12 to 15 (3 bars from rightmost) of + HP Q.
  • +
+
+
+

+
    +
  • 0.1.9 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.8 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.7 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Removed bypass processing that is causing crash. Parameter is + still available, but it has no effect.
    • +
  • +
  • 0.1.4 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.3 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.2 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.1 +
      +
    • Changed to reset random number generator when Seed is + changed. With this change, the same sound comes out when + Seed is changed and when full reset is done.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

MaybeSnare is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/MaybeSnare/MaybeSnare_ja.html b/docs/manual/MaybeSnare/MaybeSnare_ja.html index c25da7ea..473f2632 100644 --- a/docs/manual/MaybeSnare/MaybeSnare_ja.html +++ b/docs/manual/MaybeSnare/MaybeSnare_ja.html @@ -2,548 +2,586 @@ - - - - -MaybeSnare_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MaybeSnare

-

-

MaybeSnareメイビー スネア -はスネアドラムのような音が出るシンセサイザです。中身は 2 つの -MembraneSynth -が相互にフィードバックをかけるような構造になっています。スナッピーはついていませんが、変調のかけすぎによるノイズによって似たような音が出ます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -563,655 +601,678 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 -の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを -左ドラッグ -で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

音量の振れ幅が大きいので MaybeSnare -の後に必ずリミッタを挿入することを推奨します。

-

発散と発振

-

発散は時間とともに音が大きくなり続ける状態、発振は時間がたっても音が一定の振幅で止まらなくなる状態のことです。

-

Coupling -> Amount -の値が大きいときに発散するおそれがあります。大まかな目安として -Coupling -> Amount の値を 2 -以下に設定することを推奨します。発散しても、およそ -Coupling -> Decay -で指定した時間が経過すれば音は止まりますが、一時的に振幅がとても大きくなります。発散を素早く抑えるときは -Coupling -> Reduction -の値を小さめに設定してみてください。また、短い時間の間に、大量のノートを受け取ると発散のおそれが高まります。

-

以下の条件がそろったときに発振するおそれがあります。

-
    -
  • Modulation -> Amount が 0 より大きい。
  • -
  • Interp. Rate が 0 より大きい。
  • -
  • Mod. Envelope が無効。
  • -
-

発振はドローンや効果音を作るときには使えますが、打楽器の音を出したいときは問題となります。対策として、 -Envelope -を有効にすることで発振をいくらか防ぐことができます。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は MaybeSnare -のパラメータで使われている単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
  • [st.] : 半音 (semitone) 。
  • -
  • [Hz] : 周波数 (Hertz) 。
  • -
-

以下は用語の一覧です。

-
    -
  • FDN: フィードバック・ディレイ・ネットワークの略称。
  • -
  • 打面 (Batter Side): ドラムの打面。
  • -
  • 裏面 (Snare Side): ドラムの裏面。スナッピーが張ってある面。
  • -
  • カップリング (Coupling): 合わせ目という意味。MaybeSnare -においては、打面と裏面の間で振動を伝え合う処理のこと。
  • -
-

Gain

-
-
Output [dB]
-
-

出力のゲインです。

-
-
Batter-Snare Mix
-
-

打面 (Batter Side) と裏面 (Snare Side) の出力を混ぜる比率です。

-
-
Normalize
-
-

チェックを入れると Impact -> Amplitude -の値に応じてゲインを一定に保つように正規化します。

-
-
2x Sampling
-
-

チェックを入れると 2 倍のオーバーサンプリングを有効にします。

-
-
-

Tuning

-

Tuning セクションでは DAW -から送られてくるノートイベントと、シンセサイザ内部のピッチの対応を設定します。

-

MaybeSnare -の癖として、すべての音程が正確に合うことはない点に注意してください。音程を合わせる必要があるときは、一度レンダリングして、外部のサンプラーに読み込んで使うことを推奨します。

-
-
Snare Side Oct.
-
-

裏面のピッチを打面のピッチから相対的に下げる量で、単位はオクターブです。

-
-
Semitone, Cent
-
-

全体の音の高さを変更します。

-
    -
  • Semitone: 半音
  • -
  • Cent: 1 半音の 1 / 100 。
  • -
-
-
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
-
-

チェックを入れると、ノートオンあるいはノートオフの時点でスライドを行います。

-

打楽器の音を作るときは、ピッチスライドを行わないほうが自然な音に聞こえるかもしれません。

-
-
-

Impact

-

Impact -セクションでは、励起信号のパラメータが調整できます。ここでの励起信号とは、大まかにばちと打面の衝突を模倣する信号のことです。 -MaybeSnare では指数関数的に減衰する信号 (以降ではディケイと表記) -と、正規分布によるノイズの 2 種類の信号を混ぜることができます。

-
-
Amplitude [dB]
-
-

ディケイの初期値です。大まかにばちと打面の衝突の強さを表しています。

-
-
Decay [s]
-
-

ディケイの減衰時間です。大まかに衝突時に沈み込んだ打面が元の位置に戻ってくるまでにかかる時間を表しています。

-

Decay -の値が大きいほど低い周波数成分が強くなります。また、他のパラメータの設定によっては -Decay -がある値より大きいときに、音のざらついた質感が消えることがあります。

-
-
Position
-
-

ディケイを FDN -に分配するときの偏りを与えるパラメータです。大まかに打面の中央からふちの間の位置を表しています。

-

Position が 0 のときは打面の中央、 1 -のときは縁を表すはずだったのですが、今回の実装ではあまり大きく音が変わりません。

-
-
Noise Mix
-
-

ディケイとノイズを混ぜる比率です。

-

0 のときはディケイのみ、 1 のときはノイズのみになります。

-
-
Noise Decay [s]
-
-

ノイズの減衰時間です。

-
-
Noise LP [Hz]
-
-

ノイズにかけるローパスフィルタのカットオフ周波数です。

-
-
-

Coupling

-
-
Amount
-
-

カップリングの量です。

-

カップリングの量が大きいほど発散しやすくなります。目安としては、デフォルトの -2 以下に設定することを推奨します。 2 より大きい値にするときは、 -Coupling -> Decay や -Coupling -> Reduction -の値を小さくすることで発散を避けられることがあります。

-
-
Decay [s]
-
-

カップリングの量の減衰時間です。

-

発散したときでも、おおまかに Decay -で指定した時間が経過すると音が止まります。

-
-
Reduction
-
-

発散しそうなときに、カップリングの量の減衰を加速するために使われる係数です。

-

発散時の振幅を素早く抑えたいときは Reduction -の値を下げてください。

-
-
-

Random

-

Random -セクションでは、ノートオンごとに行うランダマイズの設定ができます。

-
-
Seed
-
-

乱数のシード値です。

-

Seed を変えると FDN -のフィードバック行列が変更されるので、クロス・フィードバックの質感が変わります。

-
-
Matrix Rnd.
-
-

FDN -のフィードバック行列をノートオンごとにランダマイズする割合です。

-
-
Overtone Rnd.
-
-

ディレイ時間を決めるときの倍数にランダムに加算する値の大きさです。

-
-
-

Batter Side, Snare Side

-

Batter Side はスネアドラムの打面、 Snare Side -はスネアドラムの裏面のことです。どちらもパラメータは共通です。

-

実は MaybeSnare -にはスナッピーはついていません。スネアドラムのようなざらついた質感は、裏面の -Interp. Rate -の値が大きく設定されているときにディレイ時間の変調がかかりすぎて出るノイズによるものです。

-

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% -以上短くなることはありません。

-
-
Batter Mod. Envelope, Snare Mod. Envelope
-
-

点灯させると変調エンベロープが有効になります。

-

変調エンベロープを有効にすると Modulation -> Amount -を時間とともに下げて発振を無理やり抑えることができます。打楽器の音だけが欲しいときは、常に有効にしておくことを推奨します。

-
-
Sustain [s]
-
-

変調エンベロープのサステイン時間です。発振しているときにサステインが長いと不自然な音になる傾向があります。

-
-
Release [s]
-
-

変調エンベロープのリリース時間です。発振しているときはリリースを短めに設定することで自然な音に近づきます。

-
-
-

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 -つのレシピは発振を抑えたいときに役立つかもしれません。どちらも音の低い部分を下げる効果があります。

-
    -
  • HP Q の 0 番 (最も左) を下げる。
  • -
  • HP Q の 12 ~ 15 番 (右から 3 つ) を下げる。
  • -
-
-
-

チェンジログ

-
    -
  • 0.1.9 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.8 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.6 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.5 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため -bypass -パラメータは保持されるが、変更による効果はなくなった。
    • -
  • -
  • 0.1.4 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.3 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.2 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.1 -
      -
    • Seed -変更時に乱数生成器をリセットするように変更。この変更により -Seed -変更時と、フルリセット時に同じ音が出るようになった。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

MaybeSnare のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを + 左ドラッグ + で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

音量の振れ幅が大きいので MaybeSnare + の後に必ずリミッタを挿入することを推奨します。

+

+

発散は時間とともに音が大きくなり続ける状態、発振は時間がたっても音が一定の振幅で止まらなくなる状態のことです。

+

Coupling -> Amount + の値が大きいときに発散するおそれがあります。大まかな目安として + Coupling -> Amount の値を 2 + 以下に設定することを推奨します。発散しても、およそ + Coupling -> Decay + で指定した時間が経過すれば音は止まりますが、一時的に振幅がとても大きくなります。発散を素早く抑えるときは + Coupling -> Reduction + の値を小さめに設定してみてください。また、短い時間の間に、大量のノートを受け取ると発散のおそれが高まります。

+

以下の条件がそろったときに発振するおそれがあります。

+
    +
  • Modulation -> Amount が 0 より大きい。
  • +
  • Interp. Rate が 0 より大きい。
  • +
  • Mod. Envelope が無効。
  • +
+

発振はドローンや効果音を作るときには使えますが、打楽器の音を出したいときは問題となります。対策として、 + Envelope + を有効にすることで発振をいくらか防ぐことができます。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

角かっこ [] で囲まれているのは単位です。以下は MaybeSnare + のパラメータで使われている単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
  • [st.] : 半音 (semitone) 。
  • +
  • [Hz] : 周波数 (Hertz) 。
  • +
+

以下は用語の一覧です。

+
    +
  • FDN: フィードバック・ディレイ・ネットワークの略称。
  • +
  • 打面 (Batter Side): ドラムの打面。
  • +
  • 裏面 (Snare Side): ドラムの裏面。スナッピーが張ってある面。
  • +
  • カップリング (Coupling): 合わせ目という意味。MaybeSnare + においては、打面と裏面の間で振動を伝え合う処理のこと。
  • +
+

+
+
Output [dB]
+
+

出力のゲインです。

+
+
Batter-Snare Mix
+
+

打面 (Batter Side) と裏面 (Snare Side) の出力を混ぜる比率です。

+
+
Normalize
+
+

チェックを入れると Impact -> Amplitude + の値に応じてゲインを一定に保つように正規化します。

+
+
2x Sampling
+
+

チェックを入れると 2 倍のオーバーサンプリングを有効にします。

+
+
+

+

Tuning セクションでは DAW + から送られてくるノートイベントと、シンセサイザ内部のピッチの対応を設定します。

+

MaybeSnare + の癖として、すべての音程が正確に合うことはない点に注意してください。音程を合わせる必要があるときは、一度レンダリングして、外部のサンプラーに読み込んで使うことを推奨します。

+
+
Snare Side Oct.
+
+

裏面のピッチを打面のピッチから相対的に下げる量で、単位はオクターブです。

+
+
Semitone, Cent
+
+

全体の音の高さを変更します。

+
    +
  • Semitone: 半音
  • +
  • Cent: 1 半音の 1 / 100 。
  • +
+
+
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
+
+

チェックを入れると、ノートオンあるいはノートオフの時点でスライドを行います。

+

打楽器の音を作るときは、ピッチスライドを行わないほうが自然な音に聞こえるかもしれません。

+
+
+

+

Impact + セクションでは、励起信号のパラメータが調整できます。ここでの励起信号とは、大まかにばちと打面の衝突を模倣する信号のことです。 + MaybeSnare では指数関数的に減衰する信号 (以降ではディケイと表記) + と、正規分布によるノイズの 2 種類の信号を混ぜることができます。

+
+
Amplitude [dB]
+
+

ディケイの初期値です。大まかにばちと打面の衝突の強さを表しています。

+
+
Decay [s]
+
+

ディケイの減衰時間です。大まかに衝突時に沈み込んだ打面が元の位置に戻ってくるまでにかかる時間を表しています。

+

Decay + の値が大きいほど低い周波数成分が強くなります。また、他のパラメータの設定によっては + Decay + がある値より大きいときに、音のざらついた質感が消えることがあります。

+
+
Position
+
+

ディケイを FDN + に分配するときの偏りを与えるパラメータです。大まかに打面の中央からふちの間の位置を表しています。

+

Position が 0 のときは打面の中央、 1 + のときは縁を表すはずだったのですが、今回の実装ではあまり大きく音が変わりません。

+
+
Noise Mix
+
+

ディケイとノイズを混ぜる比率です。

+

0 のときはディケイのみ、 1 のときはノイズのみになります。

+
+
Noise Decay [s]
+
+

ノイズの減衰時間です。

+
+
Noise LP [Hz]
+
+

ノイズにかけるローパスフィルタのカットオフ周波数です。

+
+
+

+
+
Amount
+
+

カップリングの量です。

+

カップリングの量が大きいほど発散しやすくなります。目安としては、デフォルトの + 2 以下に設定することを推奨します。 2 より大きい値にするときは、 + Coupling -> Decay や + Coupling -> Reduction + の値を小さくすることで発散を避けられることがあります。

+
+
Decay [s]
+
+

カップリングの量の減衰時間です。

+

発散したときでも、おおまかに Decay + で指定した時間が経過すると音が止まります。

+
+
Reduction
+
+

発散しそうなときに、カップリングの量の減衰を加速するために使われる係数です。

+

発散時の振幅を素早く抑えたいときは Reduction + の値を下げてください。

+
+
+

+

Random + セクションでは、ノートオンごとに行うランダマイズの設定ができます。

+
+
Seed
+
+

乱数のシード値です。

+

Seed を変えると FDN + のフィードバック行列が変更されるので、クロス・フィードバックの質感が変わります。

+
+
Matrix Rnd.
+
+

FDN + のフィードバック行列をノートオンごとにランダマイズする割合です。

+
+
Overtone Rnd.
+
+

ディレイ時間を決めるときの倍数にランダムに加算する値の大きさです。

+
+
+

+

Batter Side はスネアドラムの打面、 Snare Side + はスネアドラムの裏面のことです。どちらもパラメータは共通です。

+

実は MaybeSnare + にはスナッピーはついていません。スネアドラムのようなざらついた質感は、裏面の + Interp. Rate + の値が大きく設定されているときにディレイ時間の変調がかかりすぎて出るノイズによるものです。

+

+

Delay セクションでは、 FDN + のディレイ間のフィードバックと、ディレイ時間に関するパラメータを設定できます。

+
+
Cross Feed
+
+

ディレイ間のクロス・フィードバックの割合です。

+

値が大きいほうがクロス・フィードバックが増えて複雑な倍音が出ます。

+
+
Feedback
+
+

FDN 全体のフィードバック量です。

+

Feedback によって音の長さを設定できます。また + Feedback を下げることで発振を抑えることができます。

+
+
Shape
+
+

ディレイ時間の係数を、弦の振動のモードと円形の膜の振動のモードとの間で切り替えます。

+

Shape が 0 のときは係数が弦の振動のモードに応じて 1 + 倍、 2 倍、 3 倍、 … と設定されます。 Shape が 1 + のときは係数が円形の膜の振動のモードに基づいて 1 倍、 1.59 倍、 2.13 + 倍、 … と設定されます。

+
+
+

+

Modulation セクションでは、 FDN + 内のフィードバック信号によってディレイ時間を短くする変調に関する設定ができます。

+
+
Amount
+
+

FDN 内のディレイ時間をフィードバックによって変調する量です。

+

Amount が 0 + でないときは、タムタムのようなピッチの下降が起こることがあります。

+
+
Interp. Rate
+
+

1 サンプルあたりのディレイ時間の変化を制限する値です。

+

Interp. Rate + の値が大きいほど変調が強くかかりますが、発振しやすくなるので注意してください。

+
+
Max Ratio
+
+

変調されていないディレイ時間からの割合で表された、変調の最大値です。

+

例えば Max Ratio が 0.3 + のときは、ディレイ時間が定常状態から 30% + 以上短くなることはありません。

+
+
Batter Mod. Envelope, Snare Mod. Envelope
+
+

点灯させると変調エンベロープが有効になります。

+

変調エンベロープを有効にすると Modulation -> Amount + を時間とともに下げて発振を無理やり抑えることができます。打楽器の音だけが欲しいときは、常に有効にしておくことを推奨します。

+
+
Sustain [s]
+
+

変調エンベロープのサステイン時間です。発振しているときにサステインが長いと不自然な音になる傾向があります。

+
+
Release [s]
+
+

変調エンベロープのリリース時間です。発振しているときはリリースを短めに設定することで自然な音に近づきます。

+
+
+

+

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 + つのレシピは発振を抑えたいときに役立つかもしれません。どちらも音の低い部分を下げる効果があります。

+
    +
  • HP Q の 0 番 (最も左) を下げる。
  • +
  • HP Q の 12 ~ 15 番 (右から 3 つ) を下げる。
  • +
+
+
+

+
    +
  • 0.1.9 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.8 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.6 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.5 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため + bypass + パラメータは保持されるが、変更による効果はなくなった。
    • +
  • +
  • 0.1.4 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.3 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.2 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.1 +
      +
    • Seed + 変更時に乱数生成器をリセットするように変更。この変更により + Seed + 変更時と、フルリセット時に同じ音が出るようになった。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

MaybeSnare のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/MembraneSynth/MembraneSynth_en.html b/docs/manual/MembraneSynth/MembraneSynth_en.html index 1e99cd6e..e754cdcd 100644 --- a/docs/manual/MembraneSynth/MembraneSynth_en.html +++ b/docs/manual/MembraneSynth/MembraneSynth_en.html @@ -2,540 +2,577 @@ - - - - -MembraneSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MembraneSynth

-

-

MembraneSynth is a synthesizer that resembles sound of percussions -with membrane, like bass drum or tom tom. Some strange noise can also be -made by utilizing oscillation caused by self-modulation.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -555,591 +592,609 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

Recommend to insert limiter after MembraneSynth because output -amplitude varies greatly.

-

It may oscillates when following conditions are met:

-
    -
  • Modulation -> Amount is greater than 0.
  • -
  • Interp. Rate is greater than 0.
  • -
  • Envelope is disabled.
  • -
-

Oscillation can be utilized for some noisy drone or sound effects, -however it can be a problem when making percussion sounds. Recommend to -always enable Envelope for percussion sounds.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in MembraneSynth.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
  • [st.] : Semitone.
  • -
  • [Hz] : Hertz.
  • -
-

FDN is short for feedback delay network. See block diagram for -details about FDN.

-

Gain

-
-
Output [dB]
-
-

Output gain.

-
-
Normalize
-
-

When checked, output gain is normalized to keep almost same gain -regardless of Impact -> Amplitude.

-
-
2x Sampling
-
-

When checked, it enables 2-fold oversampling.

-
-
-

Impact

-

Impact section provides parameters for excitation. Excitation here -means the signal that imitates the impact of stick and membrane.

-
-
Amplitude [dB]
-
-

Maximum amplitude of excitation. Roughly represents the intensity of -impact.

-
-
Decay [s]
-
-

Decay time of excitation. Roughly represents the time that the -membrane returns to resting position after impact.

-

Increasing the value of Decay adds more low frequency. -Depending on other parameter settings, rattling may vanish when -Decay is greater than some certain value.

-
-
Position
-
-

Position introduces bias the FDN input gain to resemble -the position of impact.

-

Intention was to represent the center of membrane for -Position = 0, and the rim of membrane for -Position = 1. However, it doesn’t make much difference to -the output sound.

-
-
-

Tuning

-

Tuning section provides pitch related parameters.

-

Note that most of the time, the output of MembraneSynth might be out -of tuning. If it is required to tune the pitch exactly to provided note, -recommend to render the output sound, and use external sampler.

-
-
Semitone, Cent
-
-

Pitch in semitone or cent. 1 semitone equals to 100 cents.

-
-
Equal Temp., A4 [Hz]
-
-

Equal Temp. is abbreviation of equal temperament (ET). -When Equal Temp. is 12, then the tuning becomes standard 12 -ET. Setting Equal Temp. to less than 12 might increase the -range of note that doesn’t change output sound, due to the internal -pitch becomes too high or too low.

-

A4 [Hz] is freqeuncy of note A4.

-
-
P.Bend Range [st.]
-
-

Range of pitch bend in semitone.

-
-
Slide Time [s]
-
-

Time to slide the pitch of latest note.

-

Note that the time indicated in user interface is not exact. -Internally, the value is converted to cutoff frequency of smoothing -filter.

-
-
Slide at Note-on, Note-off
-
-

When checked, apply pitch slide at note-on or note-off.

-

For percussion sounds, it may sound more natural without pitch -slide.

-
-
-

Delay

-

Delay section provides parameters for feedback and delay time -tuning.

-
-
Cross Feed
-
-

Amount of cross feedback between delays.

-

Higher value of Cross Feed adds more cross feedback, and -harmonics become more complex.

-
-
Feedback
-
-

Amount of feedback of FDN.

-

Feedback is used to change the length of sound. -Oscillation can also be suppressed by decreasing -Feedback.

-
-
Shape
-
-

Switch the delay time multiplier between string modes and circular -membrane modes.

-

When Shape is 0, the multipliers use string modes and it -becomes 1, 2, 3, and so on. When Shape is 1, the -multipliers use circular membrane modes and it becomes 1, 1.59, 2.13, -and so on.

-
-
-

Modulation

-

Modulation section provides parameters related to self-modulation of -FDN.

-
-
Amount
-
-

Amount of modulation to delay time by the absolute amplitude of -feedback signal.

-

When Amount is not 0, the pitch might drop like tom -tom.

-
-
Interp. Rate
-
-

Slew rate of delay time modulation per sample.

-

Higher Interp. Rate means more modulation, but also -increases the risk of oscillation.

-
-
Max Ratio
-
-

Maximum of modulation represented as a ratio to resting delay -time.

-

For example, when Max Ratio is 0.3, and resting delay -time is 1.0, the maximally modulated delay time becomes 0.7.

-
-
Envelope
-
-

When lit, it enables modulation envelope.

-

Modulation envelope decreases Interp. Rate through time -to suppress oscillation. Recommend to always turn on for percussion -sounds.

-
-
Sustain [s]
-
-

Sustain time of modulation envelope. Lengthen the sustain time tends -to be more unnatural sound.

-
-
Release [s]
-
-

Release time of modulation envelope. When oscillating, shorten the -release time might result in more natural sound.

-
-
-

Random

-

Random section provides parameters for randomization for each -note-on.

-
-
Seed
-
-

Seed value of random number sequence.

-

Changing Seed also changes the feedback matrix of FDN, -and it changes the texture of cross feedback.

-
-
Matrix Rnd.
-
-

Ratio of randomization to the feedback matrix of FDN.

-
-
Overtone Rnd.
-
-

Maximum of random number that added to delay time multiplier.

-
-
-

Filter

-

Filter section provides parameters to tune the filters inserted in -the feedback path of FDN.

-
-
LP Cut [Hz], HP Cut [Hz]
-
-

Cutoff frequency of lowpass (LP) or highpass (HP) filters.

-

Lowpass is actually highshelf with the gain fixed to 0.5 (~= -6.02 -dB). It is labeled as lowpass on the interface because it felt more -intuitive.

-
-
LP Q, HP Q
-
-

Q factor of lowpass (LP) or highpass (HP).

-

Q factors don’t change the output sound that much. They can be -ignored unless fine tuning is required. That said, following 2 recipes -might be useful to suppress oscillation in some cases. Both reduces low -frequency of the output sound.

-
    -
  • Decrease index 0 (leftmost) of HP Q.
  • -
  • Decrease index 12 to 15 (3 bars from rightmost) of -HP Q.
  • -
-
-
-

Change Log

-
    -
  • 0.1.9 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.8 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.7 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.6 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Removed bypass processing that is causing crash. Parameter is still -available, but it has no effect.
    • -
  • -
  • 0.1.4 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.3 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.2 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.1 -
      -
    • Changed to reset random number generator when Seed is -changed. With this change, the same sound comes out when -Seed is changed and when full reset is done.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

MembraneSynth 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

Recommend to insert limiter after MembraneSynth because output + amplitude varies greatly.

+

It may oscillates when following conditions are met:

+
    +
  • Modulation -> Amount is greater than 0.
  • +
  • Interp. Rate is greater than 0.
  • +
  • Envelope is disabled.
  • +
+

Oscillation can be utilized for some noisy drone or sound effects, + however it can be a problem when making percussion sounds. Recommend + to always enable Envelope for percussion sounds.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in MembraneSynth.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
  • [st.] : Semitone.
  • +
  • [Hz] : Hertz.
  • +
+

FDN is short for feedback delay network. See block diagram for + details about FDN.

+

+
+
Output [dB]
+
+

Output gain.

+
+
Normalize
+
+

When checked, output gain is normalized to keep almost same gain + regardless of Impact -> Amplitude.

+
+
2x Sampling
+
+

When checked, it enables 2-fold oversampling.

+
+
+

+

Impact section provides parameters for excitation. Excitation here + means the signal that imitates the impact of stick and membrane.

+
+
Amplitude [dB]
+
+

Maximum amplitude of excitation. Roughly represents the intensity + of impact.

+
+
Decay [s]
+
+

Decay time of excitation. Roughly represents the time that the + membrane returns to resting position after impact.

+

Increasing the value of Decay adds more low frequency. + Depending on other parameter settings, rattling may vanish when + Decay is greater than some certain value.

+
+
Position
+
+

Position introduces bias the FDN input gain to + resemble the position of impact.

+

Intention was to represent the center of membrane for + Position = 0, and the rim of membrane for + Position = 1. However, it doesn’t make much difference to + the output sound.

+
+
+

+

Tuning section provides pitch related parameters.

+

Note that most of the time, the output of MembraneSynth might be + out of tuning. If it is required to tune the pitch exactly to provided + note, recommend to render the output sound, and use external + sampler.

+
+
Semitone, Cent
+
+

Pitch in semitone or cent. 1 semitone equals to 100 cents.

+
+
Equal Temp., A4 [Hz]
+
+

Equal Temp. is abbreviation of equal temperament (ET). + When Equal Temp. is 12, then the tuning becomes standard + 12 ET. Setting Equal Temp. to less than 12 might increase + the range of note that doesn’t change output sound, due to the + internal pitch becomes too high or too low.

+

A4 [Hz] is freqeuncy of note A4.

+
+
P.Bend Range [st.]
+
+

Range of pitch bend in semitone.

+
+
Slide Time [s]
+
+

Time to slide the pitch of latest note.

+

Note that the time indicated in user interface is not exact. + Internally, the value is converted to cutoff frequency of smoothing + filter.

+
+
Slide at Note-on, Note-off
+
+

When checked, apply pitch slide at note-on or note-off.

+

For percussion sounds, it may sound more natural without pitch + slide.

+
+
+

+

Delay section provides parameters for feedback and delay time + tuning.

+
+
Cross Feed
+
+

Amount of cross feedback between delays.

+

Higher value of Cross Feed adds more cross feedback, + and harmonics become more complex.

+
+
Feedback
+
+

Amount of feedback of FDN.

+

Feedback is used to change the length of sound. + Oscillation can also be suppressed by decreasing + Feedback.

+
+
Shape
+
+

Switch the delay time multiplier between string modes and circular + membrane modes.

+

When Shape is 0, the multipliers use string modes and + it becomes 1, 2, 3, and so on. When Shape is 1, the + multipliers use circular membrane modes and it becomes 1, 1.59, 2.13, + and so on.

+
+
+

+

Modulation section provides parameters related to self-modulation + of FDN.

+
+
Amount
+
+

Amount of modulation to delay time by the absolute amplitude of + feedback signal.

+

When Amount is not 0, the pitch might drop like tom + tom.

+
+
Interp. Rate
+
+

Slew rate of delay time modulation per sample.

+

Higher Interp. Rate means more modulation, but also + increases the risk of oscillation.

+
+
Max Ratio
+
+

Maximum of modulation represented as a ratio to resting delay + time.

+

For example, when Max Ratio is 0.3, and resting delay + time is 1.0, the maximally modulated delay time becomes 0.7.

+
+
Envelope
+
+

When lit, it enables modulation envelope.

+

Modulation envelope decreases Interp. Rate through + time to suppress oscillation. Recommend to always turn on for + percussion sounds.

+
+
Sustain [s]
+
+

Sustain time of modulation envelope. Lengthen the sustain time + tends to be more unnatural sound.

+
+
Release [s]
+
+

Release time of modulation envelope. When oscillating, shorten the + release time might result in more natural sound.

+
+
+

+

Random section provides parameters for randomization for each + note-on.

+
+
Seed
+
+

Seed value of random number sequence.

+

Changing Seed also changes the feedback matrix of FDN, + and it changes the texture of cross feedback.

+
+
Matrix Rnd.
+
+

Ratio of randomization to the feedback matrix of FDN.

+
+
Overtone Rnd.
+
+

Maximum of random number that added to delay time multiplier.

+
+
+

+

Filter section provides parameters to tune the filters inserted in + the feedback path of FDN.

+
+
LP Cut [Hz], HP Cut [Hz]
+
+

Cutoff frequency of lowpass (LP) or highpass (HP) filters.

+

Lowpass is actually highshelf with the gain fixed to 0.5 (~= -6.02 + dB). It is labeled as lowpass on the interface because it felt more + intuitive.

+
+
LP Q, HP Q
+
+

Q factor of lowpass (LP) or highpass (HP).

+

Q factors don’t change the output sound that much. They can be + ignored unless fine tuning is required. That said, following 2 recipes + might be useful to suppress oscillation in some cases. Both reduces + low frequency of the output sound.

+
    +
  • Decrease index 0 (leftmost) of HP Q.
  • +
  • Decrease index 12 to 15 (3 bars from rightmost) of + HP Q.
  • +
+
+
+

+
    +
  • 0.1.9 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.8 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.7 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.6 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Removed bypass processing that is causing crash. Parameter is + still available, but it has no effect.
    • +
  • +
  • 0.1.4 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.3 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.2 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.1 +
      +
    • Changed to reset random number generator when Seed is + changed. With this change, the same sound comes out when + Seed is changed and when full reset is done.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

MembraneSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/MembraneSynth/MembraneSynth_ja.html b/docs/manual/MembraneSynth/MembraneSynth_ja.html index f15373d5..89bba8b5 100644 --- a/docs/manual/MembraneSynth/MembraneSynth_ja.html +++ b/docs/manual/MembraneSynth/MembraneSynth_ja.html @@ -2,541 +2,579 @@ - - - - -MembraneSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MembraneSynth

-

-

MembraneSynthメンブレイン シンセ -は膜を張った打楽器のような音がでるシンセサイザです。バスドラムやタムタムのような低めの打楽器の音が得意ですが、自己変調による発振によって変な音を作ることもできます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -556,586 +594,605 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 -の後に必ずリミッタを挿入することを推奨します。

-

以下の条件がそろったときに発振するおそれがあります。

-
    -
  • Modulation -> Amount が 0 より大きい。
  • -
  • Interp. Rate が 0 より大きい。
  • -
  • Envelope が無効。
  • -
-

発振はドローンや効果音を作るときには使えますが、打楽器の音を出したいときは問題となります。対策として、 -Envelope -を有効にすることで発振をいくらか防ぐことができます。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は MembraneSynth -のパラメータで使われている単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
  • [st.] : 半音 (semitone) 。
  • -
  • [Hz] : 周波数 (Hertz) 。
  • -
-

また、ところどころに出てくる 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
-
-

全体の音の高さを変更します。

-
    -
  • Semitone: 半音
  • -
  • Cent: 1 半音の 1 / 100 。
  • -
-
-
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 -つのレシピは発振を抑えたいときに役立つかもしれません。どちらも音の低い部分を下げる効果があります。

-
    -
  • HP Q の 0 番 (最も左) を下げる。
  • -
  • HP Q の 12 ~ 15 番 (右から 3 つ) を下げる。
  • -
-
-
-

チェンジログ

-
    -
  • 0.1.9 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.8 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.6 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.5 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため -bypass -パラメータは保持されるが、変更による効果はなくなった。
    • -
  • -
  • 0.1.4 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.3 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.2 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.1 -
      -
    • Seed -変更時に乱数生成器をリセットするように変更。この変更により -Seed -変更時と、フルリセット時に同じ音が出るようになった。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

MembraneSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + の後に必ずリミッタを挿入することを推奨します。

+

以下の条件がそろったときに発振するおそれがあります。

+
    +
  • Modulation -> Amount が 0 より大きい。
  • +
  • Interp. Rate が 0 より大きい。
  • +
  • Envelope が無効。
  • +
+

発振はドローンや効果音を作るときには使えますが、打楽器の音を出したいときは問題となります。対策として、 + Envelope + を有効にすることで発振をいくらか防ぐことができます。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

角かっこ [] で囲まれているのは単位です。以下は MembraneSynth + のパラメータで使われている単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
  • [st.] : 半音 (semitone) 。
  • +
  • [Hz] : 周波数 (Hertz) 。
  • +
+

また、ところどころに出てくる FDN + という言葉はフィードバック・ディレイ・ネットワークという部品の略称です。詳細はブロック線図を参照してください。

+

+
+
Output [dB]
+
+

出力のゲインです。

+
+
Normalize
+
+

チェックを入れると Impact -> Amplitude + の値に応じてゲインを一定に保つように正規化します。

+
+
2x Sampling
+
+

チェックを入れると 2 倍のオーバーサンプリングを有効にします。

+
+
+

+

Impact + セクションでは、励起信号のパラメータが調整できます。ここでの励起信号とは、大まかにばちと打面の衝突を模倣する信号のことです。

+
+
Amplitude [dB]
+
+

励起信号の最大振幅です。大まかにばちと打面の衝突の強さを表しています。

+
+
Decay [s]
+
+

励起信号の減衰時間です。大まかに衝突時に沈み込んだ打面が元の位置に戻ってくるまでにかかる時間を表しています。

+

Decay + の値が大きいほど低い周波数成分が強くなります。また、他のパラメータの設定によっては + Decay + がある値より大きいときに、音のざらついた質感が消えることがあります。

+
+
Position
+
+

励起信号を FDN + に分配するときの偏りを与えるパラメータです。大まかに打面の中央からふちの間の位置を表しています。

+

Position が 0 のときは打面の中央、 1 + のときは縁を表すはずだったのですが、今回の実装ではあまり大きく音が変わりません。

+
+
+

+

Tuning セクションでは DAW + から送られてくるノートイベントと、シンセサイザ内部のピッチの対応を設定します。

+

MembraneSynth + の癖として、すべての音程が正確に合うことはない点に注意してください。音程を合わせる必要があるときは、一度レンダリングして、外部のサンプラーに読み込んで使うことを推奨します。

+
+
Semitone, Cent
+
+

全体の音の高さを変更します。

+
    +
  • Semitone: 半音
  • +
  • Cent: 1 半音の 1 / 100 。
  • +
+
+
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 セクションでは、 FDN + のディレイ間のフィードバックと、ディレイ時間に関するパラメータを設定できます。

+
+
Cross Feed
+
+

ディレイ間のクロス・フィードバックの割合です。

+

値が大きいほうがクロス・フィードバックが増えて複雑な倍音が出ます。

+
+
Feedback
+
+

FDN 全体のフィードバック量です。

+

Feedback によって音の長さを設定できます。また + Feedback を下げることで発振を抑えることができます。

+
+
Shape
+
+

ディレイ時間の係数を、弦の振動のモードと円形の膜の振動のモードとの間で切り替えます。

+

Shape が 0 のときは係数が弦の振動のモードに応じて 1 + 倍、 2 倍、 3 倍、 … と設定されます。 Shape が 1 + のときは係数が円形の膜の振動のモードに基づいて 1 倍、 1.59 倍、 2.13 + 倍、 … と設定されます。

+
+
+

+

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 + セクションでは、ノートオンごとに行うランダマイズの設定ができます。

+
+
Seed
+
+

乱数のシード値です。

+

Seed を変えると FDN + のフィードバック行列が変更されるので、クロス・フィードバックの質感が変わります。

+
+
Matrix Rnd.
+
+

FDN + のフィードバック行列をノートオンごとにランダマイズする割合です。

+
+
Overtone Rnd.
+
+

ディレイ時間を決めるときの倍数にランダムに加算する値の大きさです。

+
+
+

+

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 + つのレシピは発振を抑えたいときに役立つかもしれません。どちらも音の低い部分を下げる効果があります。

+
    +
  • HP Q の 0 番 (最も左) を下げる。
  • +
  • HP Q の 12 ~ 15 番 (右から 3 つ) を下げる。
  • +
+
+
+

+
    +
  • 0.1.9 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.8 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.6 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.5 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため + bypass + パラメータは保持されるが、変更による効果はなくなった。
    • +
  • +
  • 0.1.4 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.3 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.2 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.1 +
      +
    • Seed + 変更時に乱数生成器をリセットするように変更。この変更により + Seed + 変更時と、フルリセット時に同じ音が出るようになった。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

MembraneSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/MiniCliffEQ/MiniCliffEQ_en.html b/docs/manual/MiniCliffEQ/MiniCliffEQ_en.html index d569127f..05042026 100644 --- a/docs/manual/MiniCliffEQ/MiniCliffEQ_en.html +++ b/docs/manual/MiniCliffEQ/MiniCliffEQ_en.html @@ -2,532 +2,568 @@ - - - - -MiniCliffEQ_en - - - - + + + + + MiniCliffEQ_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MiniCliffEQ

-

-

MiniCliffEQ is a linear phase FIR filter with 2^15 = 32768 taps. -Latency is improved from initial version, however it still exceeds 0.34 -seconds in 48000 Hz sampling rate. The primary purpose is to suppress -direct current. It can also be used as very sharp low-pass, high-pass, -low-shelf, and high-shelf filter.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

+

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -547,282 +583,295 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

Latency is 2^15 / 2 - 1 = 16383 samples. Signal to noise -ratio is around -120 dB.

-

Usage

-

Primary usage of MiniCliffEQ is direct current (DC) suppression. It -can also be used for detecting subtle noises. The filter is linear -phase, so band-splitting is another application. If possible, it is -always better to replace MiniCliffEQ for more lightweight EQ, because -the high latency degrades your workflow.

-

To suppress DC, click LP Gain twice by mouse wheel. It -sets the value to -inf. For ordinary speakers, it is better -to stay Cutoff at initial value of 20 Hz. When -Cutoff is set to below 10 Hz, the accuracy of cutoff -frequency and steepness of roll-off will degrade. For example, when -Cutoff is set to 1 Hz, amplitude response is -16.25 dB at 1 -Hz, and -60 dB at 0.1 Hz.

-

To detect subtle noise, follow the steps below:

-
    -
  1. Insert limiter after MiniCliffEQ.
  2. -
  3. Set LP Gain to -inf.
  4. -
  5. Rise Cutoff to eliminate input signal. Don’t forget to -Refresh FIR!
  6. -
  7. Set HP Gain to 144.5.
  8. -
-

For example, consider to set Cutoff to 200 Hz, and input -100 Hz sine wave to the above setting. If the output is not silent, then -the input sine wave contains some noise. Note that the noise that can be -heard when applying 144.5 dB gain is definitely not perceived by human -ear. This procedure is useful to investigate plugin algorithm, rather -than to measure the quality of sound.

-

The filter design algorithm used in MiniCliffEQ is the same one as -following Python 3 code:

-
import scipy.signal as signal
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

Latency is 2^15 / 2 - 1 = 16383 samples. Signal to + noise ratio is around -120 dB.

+

+

Primary usage of MiniCliffEQ is direct current (DC) suppression. It + can also be used for detecting subtle noises. The filter is linear + phase, so band-splitting is another application. If possible, it is + always better to replace MiniCliffEQ for more lightweight EQ, because + the high latency degrades your workflow.

+

To suppress DC, click LP Gain twice by mouse wheel. It + sets the value to -inf. For ordinary speakers, it is + better to stay Cutoff at initial value of 20 Hz. When + Cutoff is set to below 10 Hz, the accuracy of cutoff + frequency and steepness of roll-off will degrade. For example, when + Cutoff is set to 1 Hz, amplitude response is -16.25 dB at + 1 Hz, and -60 dB at 0.1 Hz.

+

To detect subtle noise, follow the steps below:

+
    +
  1. Insert limiter after MiniCliffEQ.
  2. +
  3. Set LP Gain to -inf.
  4. +
  5. Rise Cutoff to eliminate input signal. Don’t forget + to Refresh FIR!
  6. +
  7. Set HP Gain to 144.5.
  8. +
+

For example, consider to set Cutoff to 200 Hz, and + input 100 Hz sine wave to the above setting. If the output is not + silent, then the input sine wave contains some noise. Note that the + noise that can be heard when applying 144.5 dB gain is definitely not + perceived by human ear. This procedure is useful to investigate plugin + algorithm, rather than to measure the quality of sound.

+

The filter design algorithm used in MiniCliffEQ is the same one as + following Python 3 code:

+
import scipy.signal as signal
 samplerate = 48000
 cutoffHz = 20
 fir = signal.firwin(2**15 - 1, cutoffHz, window="nuttall", fs=samplerate)
-

Parameters

-
-
Refresh FIR
-
-

Click Refresh FIR to refresh filter coefficients after -changing Cutoff. Note that clicking -Refresh FIR resets internal states, and stops sound for the -length of latency.

-
-
Cutoff [Hz]
-
-

FIR filter cutoff frequency.

-
-
HP Gain [dB]
-
-

Gain of highpass output.

-
-
LP Gain [dB]
-
-

Gain of lowpass output.

-
-
-

Change Log

-
    -
  • 0.1.15 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.14 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.13 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.12 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.10 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
    • Added mutex around FFTW3. This may prevent crash by the call of -thread unsafe functions in FFTW3.
    • -
  • -
  • 0.1.9 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.8 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Changed convolution algorithm to further distribute CPU load.
    • -
  • -
  • 0.1.7 -
      -
    • Fixed crash when FIR filter is refreshed at the same time on 2 or -more instances of MiniCliffEQ.
    • -
  • -
  • 0.1.6 -
      -
    • Changed convolution algorithm to reduce CPU load spikes.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed crash at plugin scan on some Windows environment. FFTW3 static -library for Windows is changed to build without SIMD flags.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed a bug where one of the output of partial convolution was off -by one sample.
    • -
  • -
  • 0.1.3 -
      -
    • Changed convolution algorithm from overlap-add to overlap-save for -slightly less noise and also slightly better performance.
    • -
  • -
  • 0.1.2 -
      -
    • Changed convolution algorithm not to introduce latency. Average CPU -load is increased due to trade-off. Latency from FIR filter still -remains.
    • -
  • -
  • 0.1.1 -
      -
    • Changed to use std::accumulate to improve acculacy of -FIR filter nomalization.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

MiniCliffEQ 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.

- - - +

+
+
Refresh FIR
+
+

Click Refresh FIR to refresh filter coefficients after + changing Cutoff. Note that clicking + Refresh FIR resets internal states, and stops sound for + the length of latency.

+
+
Cutoff [Hz]
+
+

FIR filter cutoff frequency.

+
+
HP Gain [dB]
+
+

Gain of highpass output.

+
+
LP Gain [dB]
+
+

Gain of lowpass output.

+
+
+

+
    +
  • 0.1.15 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.14 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.13 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.12 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.10 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
    • Added mutex around FFTW3. This may prevent crash by the call of + thread unsafe functions in FFTW3.
    • +
  • +
  • 0.1.9 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.8 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Changed convolution algorithm to further distribute CPU load.
    • +
  • +
  • 0.1.7 +
      +
    • Fixed crash when FIR filter is refreshed at the same time on 2 or + more instances of MiniCliffEQ.
    • +
  • +
  • 0.1.6 +
      +
    • Changed convolution algorithm to reduce CPU load spikes.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed crash at plugin scan on some Windows environment. FFTW3 + static library for Windows is changed to build without SIMD + flags.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed a bug where one of the output of partial convolution was off + by one sample.
    • +
  • +
  • 0.1.3 +
      +
    • Changed convolution algorithm from overlap-add to overlap-save for + slightly less noise and also slightly better performance.
    • +
  • +
  • 0.1.2 +
      +
    • Changed convolution algorithm not to introduce latency. Average + CPU load is increased due to trade-off. Latency from FIR filter still + remains.
    • +
  • +
  • 0.1.1 +
      +
    • Changed to use std::accumulate to improve acculacy of + FIR filter nomalization.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

MiniCliffEQ is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/MiniCliffEQ/MiniCliffEQ_ja.html b/docs/manual/MiniCliffEQ/MiniCliffEQ_ja.html index 079daca8..d7108a92 100644 --- a/docs/manual/MiniCliffEQ/MiniCliffEQ_ja.html +++ b/docs/manual/MiniCliffEQ/MiniCliffEQ_ja.html @@ -2,537 +2,575 @@ - - - - -MiniCliffEQ_ja - - - - + + + + + MiniCliffEQ_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

MiniCliffEQ

-

-

MiniCliffEQミニ クリフ イーキュー はタップ数 -2^15 = 32768 の FIR -フィルタです。初期バージョンからは改善しましたが、それでもタップ数が多いのでレイテンシがサンプリング周波数 -48000 Hz のときに 0.34 秒を超えます。主な用途は直流信号 (DC) -の抑制ですが、とても急峻なローパス、ハイパス、ローシェルフ、ハイシェルフフィルタとしても使えます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

+

Ubuntu 22.04 では次のパッケージのインストールが必要です。

+
sudo apt install libxcb-cursor0  libxkbcommon-x11-0
+

もし DAW がプラグインを認識しないときは、下のリンクの + Package Requirements を参考にして VST3 + に必要なパッケージがすべてインストールされているか確認してください。

+ +

REAPER の Linux 版がプラグインを認識しないときは + ~/.config/REAPER/reaper-vstplugins64.ini を削除して + REAPER を再起動してみてください。

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -552,280 +590,293 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

2^15 / 2 - 1 = 16383 サンプルのレイテンシが加わります。 -S/N 比はおよそ -120 dB です。

-

使い方

-

MiniCliffEQ の用途としては直流 (DC) -の除去と、細かいノイズの検出を考慮しています。線形位相フィルタなのでバンドスプリッタとして使うこともできます。もちろん音を作る用途にも使えますが、レイテンシが大きいので通常のイコライザで足りる場面では使わないことを推奨します。

-

直流を除去するときは起動直後に LP Gain を 2 回 -ホイールクリック して -inf に設定してください。 -Cutoff は普通のスピーカであれば初期値の 20 Hz -のままで問題ありません。 10 Hz -を下回るとカットオフ周波数の正確さとロールオフの急峻さが損なわれる点に注意してください。 -Cutoff が 1 Hz のときの振幅特性は 1 Hz で -16.25 dB 、 0.1 -Hz で -60 dB です。

-

細かいノイズの検出を行うときは以下の手順を踏みます。

-
    -
  1. MiniCliffEQ の後にリミッタを挿入する。
  2. -
  3. LP Gain-inf に設定する。
  4. -
  5. 入力信号が消えるまで Cutoff を上げる。 -Refresh FIR を忘れずに!
  6. -
  7. HP Gain144.5 に設定する。
  8. -
-

例えば上記の設定に 100 Hz -のサイン波を入力して何らかの音が出るときはノイズが乗っていると言えます。ただしゲインを -144.5 dB -上げてようやく聞こえるノイズというのは人間の耳には知覚されることはまずありません。このようなノイズ検出は音の品質を探るというよりも、アルゴリズムを推定するときに使えます。

-

MiniCliffEQ のフィルタ係数を計算するアルゴリズムは以下の Python 3 -のコードと同じです。

-
import scipy.signal as signal
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

2^15 / 2 - 1 = 16383 + サンプルのレイテンシが加わります。 S/N 比はおよそ -120 dB です。

+

+

MiniCliffEQ の用途としては直流 (DC) + の除去と、細かいノイズの検出を考慮しています。線形位相フィルタなのでバンドスプリッタとして使うこともできます。もちろん音を作る用途にも使えますが、レイテンシが大きいので通常のイコライザで足りる場面では使わないことを推奨します。

+

直流を除去するときは起動直後に LP Gain を 2 回 + ホイールクリック して -inf + に設定してください。 Cutoff + は普通のスピーカであれば初期値の 20 Hz のままで問題ありません。 10 Hz + を下回るとカットオフ周波数の正確さとロールオフの急峻さが損なわれる点に注意してください。 + Cutoff が 1 Hz のときの振幅特性は 1 Hz で -16.25 dB 、 + 0.1 Hz で -60 dB です。

+

細かいノイズの検出を行うときは以下の手順を踏みます。

+
    +
  1. MiniCliffEQ の後にリミッタを挿入する。
  2. +
  3. LP Gain-inf に設定する。
  4. +
  5. 入力信号が消えるまで Cutoff を上げる。 + Refresh FIR を忘れずに!
  6. +
  7. HP Gain144.5 に設定する。
  8. +
+

例えば上記の設定に 100 Hz + のサイン波を入力して何らかの音が出るときはノイズが乗っていると言えます。ただしゲインを + 144.5 dB + 上げてようやく聞こえるノイズというのは人間の耳には知覚されることはまずありません。このようなノイズ検出は音の品質を探るというよりも、アルゴリズムを推定するときに使えます。

+

MiniCliffEQ のフィルタ係数を計算するアルゴリズムは以下の Python 3 + のコードと同じです。

+
import scipy.signal as signal
 samplerate = 48000
 cutoffHz = 20
 fir = signal.firwin(2**15 - 1, cutoffHz, window="nuttall", fs=samplerate)
-

パラメータ

-
-
Refresh FIR
-
-

Cutoff の変更後に Refresh FIR -ボタンを押すことで FIR フィルタ係数を更新します。 -Refresh FIR -ボタンを押すと内部状態がリセットされて、レイテンシの長さだけ音が止まるので注意してください。

-
-
Cutoff [Hz]
-
-

フィルタのカットオフ周波数です。

-
-
HP Gain [dB]
-
-

ハイパス出力のゲインです。

-
-
LP Gain [dB]
-
-

ローパス出力のゲインです。

-
-
-

チェンジログ

-
    -
  • 0.1.15 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.14 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.13 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.12 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.11 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.10 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
    • FFTW3 -のスレッドセーフでない関数呼び出しによるクラッシュを防止するために mutex -を追加。
    • -
  • -
  • 0.1.9 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.8 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • 畳み込みの CPU 負荷をさらに分散するように変更。
    • -
  • -
  • 0.1.7 -
      -
    • 2 つ以上のインスタンスの FIR -フィルタが同時にリフレッシュされたときにクラッシュするバグを修正。
    • -
  • -
  • 0.1.6 -
      -
    • CPU -負荷のスパイクを低減するために畳み込みのアルゴリズムを変更。
    • -
  • -
  • 0.1.5 -
      -
    • 一部の Windows -環境で発生していたプラグインスキャン時のクラッシュを修正。Windows 用の -FFTW3 静的ライブラリを SIMD フラグなしでビルドするように変更。
    • -
  • -
  • 0.1.4 -
      -
    • 分割した畳み込みの出力の 1 つが 1 -サンプルずれていたバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • 畳み込みのアルゴリズムを overlap-add から overlap-save -に変更。ノイズと CPU 負荷がどちらもわずかに低減。
    • -
  • -
  • 0.1.2 -
      -
    • 畳み込みのアルゴリズムをレイテンシを加えないものに変更。トレードオフとして平均 -CPU 負荷が向上。 FIR フィルタによるレイテンシは据え置き。
    • -
  • -
  • 0.1.1 -
      -
    • FIR フィルタの正規化の精度向上のために std::accumulate -を使うように変更。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

MiniCliffEQ

- -

ライセンス

-

MiniCliffEQ のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +

+
+
Refresh FIR
+
+

Cutoff の変更後に Refresh FIR + ボタンを押すことで FIR フィルタ係数を更新します。 + Refresh FIR + ボタンを押すと内部状態がリセットされて、レイテンシの長さだけ音が止まるので注意してください。

+
+
Cutoff [Hz]
+
+

フィルタのカットオフ周波数です。

+
+
HP Gain [dB]
+
+

ハイパス出力のゲインです。

+
+
LP Gain [dB]
+
+

ローパス出力のゲインです。

+
+
+

+
    +
  • 0.1.15 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.14 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.13 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.12 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.11 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.10 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
    • FFTW3 + のスレッドセーフでない関数呼び出しによるクラッシュを防止するために + mutex を追加。
    • +
  • +
  • 0.1.9 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.8 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • 畳み込みの CPU 負荷をさらに分散するように変更。
    • +
  • +
  • 0.1.7 +
      +
    • 2 つ以上のインスタンスの FIR + フィルタが同時にリフレッシュされたときにクラッシュするバグを修正。
    • +
  • +
  • 0.1.6 +
      +
    • CPU + 負荷のスパイクを低減するために畳み込みのアルゴリズムを変更。
    • +
  • +
  • 0.1.5 +
      +
    • 一部の Windows + 環境で発生していたプラグインスキャン時のクラッシュを修正。Windows 用の + FFTW3 静的ライブラリを SIMD フラグなしでビルドするように変更。
    • +
  • +
  • 0.1.4 +
      +
    • 分割した畳み込みの出力の 1 つが 1 + サンプルずれていたバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • 畳み込みのアルゴリズムを overlap-add から overlap-save + に変更。ノイズと CPU 負荷がどちらもわずかに低減。
    • +
  • +
  • 0.1.2 +
      +
    • 畳み込みのアルゴリズムをレイテンシを加えないものに変更。トレードオフとして平均 + CPU 負荷が向上。 FIR フィルタによるレイテンシは据え置き。
    • +
  • +
  • 0.1.1 +
      +
    • FIR フィルタの正規化の精度向上のために + std::accumulate を使うように変更。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

MiniCliffEQ のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/NarrowingDelay/NarrowingDelay_en.html b/docs/manual/NarrowingDelay/NarrowingDelay_en.html index 76773810..ff1167f3 100644 --- a/docs/manual/NarrowingDelay/NarrowingDelay_en.html +++ b/docs/manual/NarrowingDelay/NarrowingDelay_en.html @@ -2,539 +2,574 @@ - - - - -NarrowingDelay_en - - - - + + + + + NarrowingDelay_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

NarrowingDelay

-

-

NarrowingDelay is a delay with serially connected pitch shifter and -frequency shifter on feedback path. The spectrum of input signal can be -narrowed or expanded for each feedback. It is more suitable for sound -without stable pitch. Note event can be used to control frequency shift -amount.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -554,314 +589,329 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Note Event Input

-

NarrowingDelay can receive note events to control the amount of -frequency shift. Following the equation to calculate the amount of -frequency shift.

-
# `note` is MIDI note number.
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

NarrowingDelay can receive note events to control the amount of + frequency shift. Following the equation to calculate the amount of + frequency shift.

+
# `note` is MIDI note number.
 (Frequency Shift) = 2^((note - 69) / 12) * ((Value of Shift [Hz]) + lfo).
-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in NarrowingDelay.

-
    -
  • [s]: Second.
  • -
  • [oct.]: Octave.
  • -
  • [Hz]: Herz.
  • -
-

Shifter

-
-
Dry
-
-

Gain for bypassing input signal.

-
-
Wet
-
-

Gain for output signal comes out from NarrowingDelay.

-
-
Feedback
-
-

Feedback gain.

-
-
HP, LP
-
-

Cutoff frequency of highpass (HP) or lowpass -(LP) filter on feedback path.

-
-
Delay Time [s]
-
-

Buffer length of pitch shifter. The value is not exact, but a rough -indication.

-

When the value of Shift \[oct.\] is not 0.0, delay time -is doesn’t match the displayed value because of the change of buffer -playback speed.

-
-
Shift [oct.], Shift [Hz]
-
-

Shift [oct.] is the amount of pitch shift, and -Shift [Hz] is the amount of frequency shift.

-

To input frequencies, pitch shift performs multiplication, and -frequency shift performs addition. It can be written as following -equation.

-
(Output Frequency) ~= (Input Frequency) * 2^(Pitch Shift) + (Frequency Shift).
-

This means that when the amount of pitch shift is less than 0.0, -spectrum becomes narrower. And when the amount of pitch shift is greater -than 0.0, spectrum becomes broader than the original. NarrowingDelay was -created with the idea that if the fundamental frequencies of the input -and output are matched by frequency shifting after narrowing the -spectrum, it might produce an interesting sound.

-

The frequency shift algorithm used in NarrowingDelay can’t decrease -frequency. Therefore a procedure that decreasing frequency after -broadening spectrum can’t be used to match fundamental frequency.

-
-
LFO
-
-

LFO modulation amount. Following 3 parameters can be targeted.

-
    -
  • Delay Time [s]
  • -
  • Shift [oct.]
  • -
  • Shift [Hz]
  • -
-
-
-

LFO

-
-
L-R Offset
-
-

LFO phase offset between stereo channels.

-
-
Phase
-
-

A value that is added to LFO phase.

-

To manually control LFO phase, set Rate to leftmost to -stop LFO, then change the value of Phase. Also, the value -of Smoothing affects the response time when -Phase is changed.

-
-
Clip, Skew
-
-

LFO waveform parameters. Computation is done as following.

-
# Range of `phase` is [0, 1).
+  

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in NarrowingDelay.

+
    +
  • [s]: Second.
  • +
  • [oct.]: Octave.
  • +
  • [Hz]: Herz.
  • +
+

+
+
Dry
+
+

Gain for bypassing input signal.

+
+
Wet
+
+

Gain for output signal comes out from NarrowingDelay.

+
+
Feedback
+
+

Feedback gain.

+
+
HP, LP
+
+

Cutoff frequency of highpass (HP) or lowpass + (LP) filter on feedback path.

+
+
Delay Time [s]
+
+

Buffer length of pitch shifter. The value is not exact, but a rough + indication.

+

When the value of Shift \[oct.\] is not 0.0, delay + time is doesn’t match the displayed value because of the change of + buffer playback speed.

+
+
Shift [oct.], Shift [Hz]
+
+

Shift [oct.] is the amount of pitch shift, and + Shift [Hz] is the amount of frequency shift.

+

To input frequencies, pitch shift performs multiplication, and + frequency shift performs addition. It can be written as following + equation.

+
(Output Frequency) ~= (Input Frequency) * 2^(Pitch Shift) + (Frequency Shift).
+

This means that when the amount of pitch shift is less than 0.0, + spectrum becomes narrower. And when the amount of pitch shift is + greater than 0.0, spectrum becomes broader than the original. + NarrowingDelay was created with the idea that if the fundamental + frequencies of the input and output are matched by frequency shifting + after narrowing the spectrum, it might produce an interesting + sound.

+

The frequency shift algorithm used in NarrowingDelay can’t decrease + frequency. Therefore a procedure that decreasing frequency after + broadening spectrum can’t be used to match fundamental frequency.

+
+
LFO
+
+

LFO modulation amount. Following 3 parameters can be targeted.

+
    +
  • Delay Time [s]
  • +
  • Shift [oct.]
  • +
  • Shift [Hz]
  • +
+
+
+

+
+
L-R Offset
+
+

LFO phase offset between stereo channels.

+
+
Phase
+
+

A value that is added to LFO phase.

+

To manually control LFO phase, set Rate to leftmost to + stop LFO, then change the value of Phase. Also, the value + of Smoothing affects the response time when + Phase is changed.

+
+
Clip, Skew
+
+

LFO waveform parameters. Computation is done as following.

+
# Range of `phase` is [0, 1).
 wave = sin(2 * π * phase^Skew).
 lfo = clamp(Clip * wave, T(-1), T(1)).
-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

-
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
-
-
Tempo Lower
-
-

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise. On the other hand, if the value of Smoothing is -set to 1.0 for example, the change of parameter is only -slowly followed.

-
-
Oversampling
-
-

Oversampling ratio.

-
    -
  • 1x: Disables oversampling. This reduces CPU load, but -increases aliasing noise. However, aliasing noise might be preferred in -some cases to add a character to sound.
  • -
  • 2x: Enables 2-fold oversampling.
  • -
  • 8x: Enables 8-fold oversampling. CPU load becomes high, -but aliasing noise will be reduced. This might be preferred when -expanding spectrum.
  • -
-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
    • Changed a text from over-sampling to oversampling.
    • -
  • -
  • 0.0.2 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

NarrowingDelay 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.

- - - +
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

+
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
+
+
Tempo Lower
+
+

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise. On the other hand, if the value of + Smoothing is set to 1.0 for example, the + change of parameter is only slowly followed.

+
+
Oversampling
+
+

Oversampling ratio.

+
    +
  • 1x: Disables oversampling. This reduces CPU load, but + increases aliasing noise. However, aliasing noise might be preferred + in some cases to add a character to sound.
  • +
  • 2x: Enables 2-fold oversampling.
  • +
  • 8x: Enables 8-fold oversampling. CPU load becomes + high, but aliasing noise will be reduced. This might be preferred when + expanding spectrum.
  • +
+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
    • Changed a text from over-sampling to oversampling.
    • +
  • +
  • 0.0.2 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

NarrowingDelay is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/NarrowingDelay/NarrowingDelay_ja.html b/docs/manual/NarrowingDelay/NarrowingDelay_ja.html index cb64b805..db0f4722 100644 --- a/docs/manual/NarrowingDelay/NarrowingDelay_ja.html +++ b/docs/manual/NarrowingDelay/NarrowingDelay_ja.html @@ -2,541 +2,578 @@ - - - - -NarrowingDelay_ja - - - - + + + + + NarrowingDelay_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

NarrowingDelay

-

-

NarrowingDelayナロウイング ディレイ -は直列につないだピッチシフタと周波数シフタがフィードバック経路に設けられたディレイです。フィードバックのたびに音のスペクトラムを周波数軸の方向に広げる、あるいは狭めることができます。どちらかと言えばピッチが一定しない音との相性がいいです。ノートイベントで周波数シフタのシフト量を制御することもできます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -556,303 +593,321 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

ノートイベントの入力

-

NarrowingDelay -はノートイベントによって周波数シフトの量を制御することができます。以下は周波数シフトの量の計算式です。

-
# `note` は MIDI ノート番号。
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

NarrowingDelay + はノートイベントによって周波数シフトの量を制御することができます。以下は周波数シフトの量の計算式です。

+
# `note` は MIDI ノート番号。
 (周波数シフトの量) = 2^((note - 69) / 12) * ((Shift [Hz] の値) + lfo).
-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は NarrowingDelay -のパラメータで使われている単位の一覧です。

-
    -
  • [s]: 秒 (second) 。
  • -
  • [oct.]: オクターブ (octave) 。
  • -
  • [Hz]: 周波数 (Herz) 。
  • -
-

Shifter

-
-
Dry
-
-

入力信号のゲインです。

-
-
Wet
-
-

NarrowingDelay を通過した信号のゲインです。

-
-
Feedback
-
-

フィードバックの量です。

-
-
HP, LP
-
-

フィードバック経路のハイパス (HP) あるいはローパス -(LP) フィルタのカットオフ周波数です。

-
-
Delay Time [s]
-
-

ピッチシフタのバッファの長さです。値は厳密なディレイ時間ではなく、大まかな目安です。

-

Shift \[oct.\] の値が 0.0 -でないときはバッファを読み取る速度が変わるので、実際のディレイ時間は表示されている値と一致しなくなります。

-
-
Shift [oct.], Shift [Hz]
-
-

Shift [oct.] はピッチシフトの量、 -Shift [Hz] は周波数シフトの量です。

-

入力信号の周波数に対して、ピッチシフトは乗算、周波数シフトは加算を行います。式にすると以下のように書けます。

-
(出力周波数) ~= (入力周波数) * 2^(ピッチシフトの量) + (周波数シフトの量).
-

つまり、ピッチシフトの量が 0.0 より小さいときはスペクトラムが狭まり、 -0.0 より大きいときはスペクトラムが広がります。 NarrowingDelay -はスペクトラムを狭めた後に周波数シフトによって入力と出力の基本周波数を一致させれば面白い音になるのではないかという思いつきで作られました。

-

NarrowingDelay -の周波数シフトのアルゴリズムでは周波数を下げるようにシフトすることができません。そのためスペクトラムを広げた後に周波数を下げて基本周波数を一致させることはできません。

-
-
LFO
-
-

LFO による変調量です。以下の 3 -つのパラメータに変調をかけることができます。

-
    -
  • Delay Time [s]
  • -
  • Shift [oct.]
  • -
  • Shift [Hz]
  • -
-
-
-

LFO

-
-
L-R Offset
-
-

ステレオチャンネル間で LFO の位相をずらす量です。

-
-
Phase
-
-

LFO の位相に加算される値です。

-

Rate を左いっぱいに回して LFO の位相を止めているときに -Phase の値を変更することで、 LFO -の位相を制御することができます。また Smoothing の値によって -Phase を動かしたときの応答速度を変えることができます。

-
-
Clip, Skew
-
-

LFO の波形を変更するパラメータです。以下は計算式です。

-
# `phase` の範囲は [0, 1) 。
+  

+

角かっこ [] で囲まれているのは単位です。以下は NarrowingDelay + のパラメータで使われている単位の一覧です。

+
    +
  • [s]: 秒 (second) 。
  • +
  • [oct.]: オクターブ (octave) 。
  • +
  • [Hz]: 周波数 (Herz) 。
  • +
+

+
+
Dry
+
+

入力信号のゲインです。

+
+
Wet
+
+

NarrowingDelay を通過した信号のゲインです。

+
+
Feedback
+
+

フィードバックの量です。

+
+
HP, LP
+
+

フィードバック経路のハイパス (HP) あるいはローパス + (LP) フィルタのカットオフ周波数です。

+
+
Delay Time [s]
+
+

ピッチシフタのバッファの長さです。値は厳密なディレイ時間ではなく、大まかな目安です。

+

Shift \[oct.\] の値が 0.0 + でないときはバッファを読み取る速度が変わるので、実際のディレイ時間は表示されている値と一致しなくなります。

+
+
Shift [oct.], Shift [Hz]
+
+

Shift [oct.] はピッチシフトの量、 + Shift [Hz] は周波数シフトの量です。

+

入力信号の周波数に対して、ピッチシフトは乗算、周波数シフトは加算を行います。式にすると以下のように書けます。

+
(出力周波数) ~= (入力周波数) * 2^(ピッチシフトの量) + (周波数シフトの量).
+

つまり、ピッチシフトの量が 0.0 + より小さいときはスペクトラムが狭まり、 0.0 + より大きいときはスペクトラムが広がります。 NarrowingDelay + はスペクトラムを狭めた後に周波数シフトによって入力と出力の基本周波数を一致させれば面白い音になるのではないかという思いつきで作られました。

+

NarrowingDelay + の周波数シフトのアルゴリズムでは周波数を下げるようにシフトすることができません。そのためスペクトラムを広げた後に周波数を下げて基本周波数を一致させることはできません。

+
+
LFO
+
+

LFO による変調量です。以下の 3 + つのパラメータに変調をかけることができます。

+
    +
  • Delay Time [s]
  • +
  • Shift [oct.]
  • +
  • Shift [Hz]
  • +
+
+
+

+
+
L-R Offset
+
+

ステレオチャンネル間で LFO の位相をずらす量です。

+
+
Phase
+
+

LFO の位相に加算される値です。

+

Rate を左いっぱいに回して LFO の位相を止めているときに + Phase の値を変更することで、 LFO + の位相を制御することができます。また Smoothing + の値によって Phase + を動かしたときの応答速度を変えることができます。

+
+
Clip, Skew
+
+

LFO の波形を変更するパラメータです。以下は計算式です。

+
# `phase` の範囲は [0, 1) 。
 wave = sin(2 * π * phase^Skew).
 lfo = clamp(Clip * wave, -1, 1).
-
-
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 -の同期間隔を変えたいときに使えます。

-
-
Smoothing [s]
-
-

パラメータのスムーシング時間です。

-

例えば Smoothing の値を 0.01 -と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし -Smoothing -の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に -Smoothing の値を 1.0 -などと長くするとパラメータの値がゆっくりと切り替わるようになります。

-
-
Oversampling
-
-

オーバーサンプリングの倍率です。

-
    -
  • 1x: オーバーサンプリングを行いません。 CPU -負荷は下がりますが、エイリアシングノイズが目立ちます。ただし -NarrowingDelay -の出力はそもそも音程が合わないので、エイリアシングノイズも味わいとして使える場面があります。
  • -
  • 2x: 2 倍のオーバーサンプリングを行います。
  • -
  • 8x: 8 倍のオーバーサンプリングを行います。 CPU -負荷は上がりますが、エイリアシングノイズが減るので、スペクトラムを広げる設定との相性がいいです。
  • -
-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
    • GUI のテキストを Over-sampling から Oversampling に変更。
    • -
  • -
  • 0.0.2 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

NarrowingDelay

- -

ライセンス

-

NarrowingDelay のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +
+
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 + の同期間隔を変えたいときに使えます。

+
+
Smoothing [s]
+
+

パラメータのスムーシング時間です。

+

例えば Smoothing の値を 0.01 + と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし + Smoothing + の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に + Smoothing の値を 1.0 + などと長くするとパラメータの値がゆっくりと切り替わるようになります。

+
+
Oversampling
+
+

オーバーサンプリングの倍率です。

+
    +
  • 1x: オーバーサンプリングを行いません。 CPU + 負荷は下がりますが、エイリアシングノイズが目立ちます。ただし + NarrowingDelay + の出力はそもそも音程が合わないので、エイリアシングノイズも味わいとして使える場面があります。
  • +
  • 2x: 2 倍のオーバーサンプリングを行います。
  • +
  • 8x: 8 倍のオーバーサンプリングを行います。 CPU + 負荷は上がりますが、エイリアシングノイズが減るので、スペクトラムを広げる設定との相性がいいです。
  • +
+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
    • GUI のテキストを Over-sampling から Oversampling に変更。
    • +
  • +
  • 0.0.2 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

NarrowingDelay のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/OrdinaryPhaser/OrdinaryPhaser_en.html b/docs/manual/OrdinaryPhaser/OrdinaryPhaser_en.html index 8f1b3ea9..d11a4ae3 100644 --- a/docs/manual/OrdinaryPhaser/OrdinaryPhaser_en.html +++ b/docs/manual/OrdinaryPhaser/OrdinaryPhaser_en.html @@ -2,538 +2,573 @@ - - - - -OrdinaryPhaser_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

OrdinaryPhaser

-

-

OrdinaryPhaser is an ordinary phaser with a delay on feedback path. -Note events can be used to control all-pass cutoff frequencies and delay -time.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -553,544 +588,558 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Note Event Input

-

OrdinaryPhaser can receive note events to control following -values.

-
    -
  • Allpass filter cutoff frequencies.
  • -
  • Feedback delay time.
  • -
-

Make sure to change Note>Cut or -Note>Time to non-0, to enable note event modulation. -They are both set to 0 on newly launched instance.

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in OrdinaryPhaser.

-
    -
  • [s]: Second.
  • -
  • [Hz]: Herz.
  • -
-

Allpass

-
-
Output
-
-

Output gain.

-
-
Mix
-
-

Mixing ratio of input signal and distorted signal.

-

When set to leftmost, input signal will be bypassed. When the value -approaches to rightmost, the effect of Feedback becomes -stronger.

-
-
Feedback
-
-

Feedback gain.

-
-
Delay
-
-

Delay time of feedback signal.

-
-
LFO>Time
-
-

LFO modulation amount to delay time of feedback.

-

Modulation scaling can be changed by Delay Tuning.

-
-
Cut Spread
-
-

Cut Spread gradually changes multipliers to allpass -cutoff frequencies between [1, 1, 1, ...] and -[1/1, 1/2, 1/3, ...].

-

Phaser is an effector with serially connected allpass filters. When -Cut Spread is set to leftmost, all the cutoff frequencies -are set to the same value. When Cut Spread is set to -rightmost, cutoff frequencies are set to 1/1, 1/2, 1/3, and so on, in -order from the front.

-
-
Min [Hz]
-
-

Lower bound of cutoff frequency modulation by LFO.

-
-
Max [Hz]
-
-

Upper bound of cutoff frequency modulation by LFO.

-

When Max is less than Mix, they are swapped -internally. This means that those 2 parameters are interchangeable.

-
-
AM
-
-

The amount of amplitude modulation applied to feedback signal.

-

To avoid blow up, tanh is used to limit the amplitude of -modulation signal. This means that the character of sound may differ -depending on the amplitude of input signal.

-
-
FM
-
-

The amount of delay time modulation applied to feedback signal.

-

To avoid setting negative delay time, abs is applied to -modulation signal.

-
-
Delay Tuning
-
-

Scaling options of delay time modulation.

-
    -
  • Exp Mul.: Multiples modualtion signal after applying -exp2. Probably the most natural sounding option to human -perception.
  • -
  • Linear Mul.: Multiples modulation signal directly to -delay time.
  • -
  • Add: Adds modulation signal to delay time. Suitable to -make glitch beat.
  • -
  • Fill Lower: Adds modulation signal to delay time, but -the range is contained under the value of Delay.
  • -
  • Fill Higher: Adds modulation signal to delay time, but -the range is contained over the value of Delay.
  • -
-
-
Stage
-
-

Number of allpass filters in the serial section.

-
-
-

LFO

-
-
L-R Offset
-
-

LFO phase offset between stereo channels.

-
-
Phase
-
-

A value that is added to LFO phase.

-

To manually control LFO phase, set Rate to leftmost to -stop LFO, then change the value of Phase. Also, the value -of Smoothing affects the response time when -Phase is changed.

-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

-
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
-
-
Tempo Lower
-
-

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Wave Interp.
-
-

LFO wave form interpolation method.

-
    -
  • Step: Holding.
  • -
  • Linear: Linear interpolation.
  • -
  • PCHIP: Monotonic cubic interpolation.
  • -
-

Step makes LFO to act like a sequencer. -Linear sounds similar to PCHIP, and the -computation cost is lower. PCHIP is the most smooth among -all 3.

-
-
LFO Wave
-
-

LFO waveform.

-
-
-

Misc.

-
-
Note Origin
-
-

Origin of MIDI note number.

-

Note event with this note number doesn’t change the sound.

-
-
Note>Cut
-
-

Scaling of note event modulation to allpass cutoff frequencies.

-

When set to rightmost, the modulation amount perfectly follows the -note pitch. When set to leftmost, the pitch will be inverted.

-
-
Note>Time
-
-

Scaling of note event modulation to feedback delay time.

-

When set to rightmost, the modulation amount perfectly follows the -note pitch. When set to leftmost, the pitch will be inverted.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise. On the other hand, if the value of Smoothing is -set to 1.0 for example, the change of parameter is only -slowly followed.

-
-
2x Sampling
-
-

When checked, 2-fold oversampling is enabled.

-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.0.4 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

OrdinaryPhaser 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

OrdinaryPhaser can receive note events to control following + values.

+
    +
  • Allpass filter cutoff frequencies.
  • +
  • Feedback delay time.
  • +
+

Make sure to change Note>Cut or + Note>Time to non-0, to enable note event modulation. + They are both set to 0 on newly launched instance.

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in OrdinaryPhaser.

+
    +
  • [s]: Second.
  • +
  • [Hz]: Herz.
  • +
+

+
+
Output
+
+

Output gain.

+
+
Mix
+
+

Mixing ratio of input signal and distorted signal.

+

When set to leftmost, input signal will be bypassed. When the value + approaches to rightmost, the effect of Feedback becomes + stronger.

+
+
Feedback
+
+

Feedback gain.

+
+
Delay
+
+

Delay time of feedback signal.

+
+
LFO>Time
+
+

LFO modulation amount to delay time of feedback.

+

Modulation scaling can be changed by Delay Tuning.

+
+
Cut Spread
+
+

Cut Spread gradually changes multipliers to allpass + cutoff frequencies between [1, 1, 1, ...] and + [1/1, 1/2, 1/3, ...].

+

Phaser is an effector with serially connected allpass filters. When + Cut Spread is set to leftmost, all the cutoff frequencies + are set to the same value. When Cut Spread is set to + rightmost, cutoff frequencies are set to 1/1, 1/2, 1/3, and so on, in + order from the front.

+
+
Min [Hz]
+
+

Lower bound of cutoff frequency modulation by LFO.

+
+
Max [Hz]
+
+

Upper bound of cutoff frequency modulation by LFO.

+

When Max is less than Mix, they are + swapped internally. This means that those 2 parameters are + interchangeable.

+
+
AM
+
+

The amount of amplitude modulation applied to feedback signal.

+

To avoid blow up, tanh is used to limit the amplitude + of modulation signal. This means that the character of sound may + differ depending on the amplitude of input signal.

+
+
FM
+
+

The amount of delay time modulation applied to feedback signal.

+

To avoid setting negative delay time, abs is applied + to modulation signal.

+
+
Delay Tuning
+
+

Scaling options of delay time modulation.

+
    +
  • Exp Mul.: Multiples modualtion signal after applying + exp2. Probably the most natural sounding option to human + perception.
  • +
  • Linear Mul.: Multiples modulation signal directly to + delay time.
  • +
  • Add: Adds modulation signal to delay time. Suitable + to make glitch beat.
  • +
  • Fill Lower: Adds modulation signal to delay time, but + the range is contained under the value of Delay.
  • +
  • Fill Higher: Adds modulation signal to delay time, + but the range is contained over the value of Delay.
  • +
+
+
Stage
+
+

Number of allpass filters in the serial section.

+
+
+

+
+
L-R Offset
+
+

LFO phase offset between stereo channels.

+
+
Phase
+
+

A value that is added to LFO phase.

+

To manually control LFO phase, set Rate to leftmost to + stop LFO, then change the value of Phase. Also, the value + of Smoothing affects the response time when + Phase is changed.

+
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

+
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
+
+
Tempo Lower
+
+

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Wave Interp.
+
+

LFO wave form interpolation method.

+
    +
  • Step: Holding.
  • +
  • Linear: Linear interpolation.
  • +
  • PCHIP: Monotonic cubic interpolation.
  • +
+

Step makes LFO to act like a sequencer. + Linear sounds similar to PCHIP, and the + computation cost is lower. PCHIP is the most smooth among + all 3.

+
+
LFO Wave
+
+

LFO waveform.

+
+
+

+
+
Note Origin
+
+

Origin of MIDI note number.

+

Note event with this note number doesn’t change the sound.

+
+
Note>Cut
+
+

Scaling of note event modulation to allpass cutoff frequencies.

+

When set to rightmost, the modulation amount perfectly follows the + note pitch. When set to leftmost, the pitch will be inverted.

+
+
Note>Time
+
+

Scaling of note event modulation to feedback delay time.

+

When set to rightmost, the modulation amount perfectly follows the + note pitch. When set to leftmost, the pitch will be inverted.

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise. On the other hand, if the value of + Smoothing is set to 1.0 for example, the + change of parameter is only slowly followed.

+
+
2x Sampling
+
+

When checked, 2-fold oversampling is enabled.

+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.0.4 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

OrdinaryPhaser is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/OrdinaryPhaser/OrdinaryPhaser_ja.html b/docs/manual/OrdinaryPhaser/OrdinaryPhaser_ja.html index 0457d410..5edb8c43 100644 --- a/docs/manual/OrdinaryPhaser/OrdinaryPhaser_ja.html +++ b/docs/manual/OrdinaryPhaser/OrdinaryPhaser_ja.html @@ -2,542 +2,579 @@ - - - - -OrdinaryPhaser_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

OrdinaryPhaser

-

-

OrdinaryPhaserオーディナリ フェイザ -はフィードバック経路にディレイが搭載されている点を除けば、普通のフェイザです。ノートイベントによってオールパスフィルタのカットオフ周波数とディレイ時間を制御できます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -557,540 +594,560 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

ノートイベントの入力

-

OrdinaryPhaser -はノートイベントによって以下の値を制御することができます。

-
    -
  • オールパスフィルタのカットオフ周波数
  • -
  • フィードバックのディレイ時間
  • -
-

起動直後は Note>CutNote>Time -の値が両方とも 0 -になっていることに注意してください。少なくとも片方の値を 0 -以外に設定しなければ変調はかかりません。

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は OrdinaryPhaser -のパラメータで使われている単位の一覧です。

-
    -
  • [s]: 秒 (second) 。
  • -
  • [Hz]: 周波数 (Herz) 。
  • -
-

Allpass

-
-
Output
-
-

出力ゲインです。

-
-
Mix
-
-

入力信号とフェイザを通過した信号を混ぜる比率です。

-

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほどフィードバックが強くかかるようになります。

-
-
Feedback
-
-

フィードバックのゲインです。

-
-
Delay
-
-

フィードバック信号のディレイ時間です。

-
-
LFO>Time
-
-

LFO によるディレイ時間の変調量です。

-

Delay Tuning によって変調のかかり方を変更できます。

-
-
Cut Spread
-
-

オールパスフィルタのカットオフ周波数の倍率を -[1, 1, 1, ...][1, 2, 3, ...] -の間で調整します。

-

フェイザは複数のオールパスフィルタを直列に繋いだエフェクタです。 -Cut Spread -が左いっぱいのときは、このオールパスフィルタのカットオフ周波数をすべて同じにします。 -Cut Spread -が右いっぱいのときは、オールパスフィルタのカットオフ周波数が前から順に 1 -倍、 2 倍、 3 倍、と設定されます。

-
-
Min [Hz]
-
-

オールパスフィルタのカットオフ周波数が LFO -によって変調されたときの最小値です。

-
-
Max [Hz]
-
-

オールパスフィルタのカットオフ周波数が LFO -によって変調されたときの最大値です。

-

MaxMin -より小さいときは、値を入れ替えて計算が続けられます。つまり、この 2 -つのパラメータの値を入れ替えても挙動は変わりません。

-
-
AM
-
-

入力信号によってフィードバック信号に振幅変調をかける量です。

-

発散を防ぐため、 AM に使われる信号は tanh -によって値の範囲が制限されます。つまり、入力信号の振幅に応じて変調のかかり方が非線形に変化します。

-
-
FM
-
-

入力信号によってフィードバック経路のディレイ時間を変調する量です。

-

負のディレイ時間を設定することを避けるため、 FM に使われる信号は -abs で全波整流されます。

-
-
Delay Tuning
-
-

LFO によるディレイ時間への変調のかけ方です。

-
    -
  • Exp Mul.: 変調信号を exp2 -を通した上でディレイ時間に乗算します。人間の耳には自然な変調のかかり方です。
  • -
  • Linear Mul.: -変調信号をそのままディレイ時間に乗算します。
  • -
  • Add: 変調信号をディレイ時間に加算します。 LFO -と組み合わせてグリッチビートを作るときには適しています。
  • -
  • Fill Lower: Delay の値を下回る範囲で -Add と同様の変調をかけます。
  • -
  • Fill Higher: Delay の値を上回る範囲で -Add と同様の変調をかけます。
  • -
-
-
Stage
-
-

直列に接続するオールパスフィルタの数です。

-
-
-

LFO

-
-
L-R Offset
-
-

ステレオチャンネル間で LFO の位相をずらす量です。

-
-
Phase
-
-

LFO の位相に加算される値です。

-

Rate を左いっぱいに回して LFO の位相を止めているときに -Phase の値を変更することで、 LFO -の位相を制御することができます。また Smoothing の値によって -Phase を動かしたときの応答速度を変えることができます。

-
-
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 -の同期間隔を変えたいときに使えます。

-
-
Wave Interp.
-
-

LFO の波形の補間方法です。

-
    -
  • Step: ホールド。
  • -
  • Linear: 線形補間。
  • -
  • PCHIP: 単調な 3 次補間。
  • -
-

Step を選ぶと LFO をシーケンサのように使えます。 -LinearPCHIP -と似たような音になりますが、計算がすこし速いです。デフォルトの -PCHIP はサンプル間をだいたい滑らかに補間します。

-
-
LFO Wave
-
-

LFO の波形です。

-
-
-

Misc.

-
-
Note Origin
-
-

変調量が 1 倍となる MIDI ノート番号です。

-

例えば Note Origin が 60 -であれば、入力されたノート番号が 60 のときに音が変わらなくなります。

-
-
Note>Cut
-
-

ノートイベントによるオールパスフィルタのカットオフ周波数の変調量です。

-

右いっぱいでノートのピッチに完全に追従します。左いっぱいにするとピッチの高低が逆転します。

-
-
Note>Time
-
-

ノートイベントによるディレイ時間の変調量です。

-

右いっぱいでノートのピッチに完全に追従します。左いっぱいにするとピッチの高低が逆転します。

-
-
Smoothing [s]
-
-

パラメータのスムーシング時間です。

-

例えば Smoothing の値を 0.01 -と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし -Smoothing -の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に -Smoothing の値を 1.0 -などと長くするとパラメータの値がゆっくりと切り替わるようになります。

-
-
2x Sampling
-
-

チェックを入れると 2 倍のオーバーサンプリングを行います。

-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.0.4 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

OrdinaryPhaser

- -

ライセンス

-

OrdinaryPhaser のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

OrdinaryPhaser + はノートイベントによって以下の値を制御することができます。

+
    +
  • オールパスフィルタのカットオフ周波数
  • +
  • フィードバックのディレイ時間
  • +
+

起動直後は Note>CutNote>Time + の値が両方とも 0 + になっていることに注意してください。少なくとも片方の値を 0 + 以外に設定しなければ変調はかかりません。

+

+

角かっこ [] で囲まれているのは単位です。以下は OrdinaryPhaser + のパラメータで使われている単位の一覧です。

+
    +
  • [s]: 秒 (second) 。
  • +
  • [Hz]: 周波数 (Herz) 。
  • +
+

+
+
Output
+
+

出力ゲインです。

+
+
Mix
+
+

入力信号とフェイザを通過した信号を混ぜる比率です。

+

左いっぱいにすると入力信号をバイパスするだけになります。右いっぱいに近づくほどフィードバックが強くかかるようになります。

+
+
Feedback
+
+

フィードバックのゲインです。

+
+
Delay
+
+

フィードバック信号のディレイ時間です。

+
+
LFO>Time
+
+

LFO によるディレイ時間の変調量です。

+

Delay Tuning + によって変調のかかり方を変更できます。

+
+
Cut Spread
+
+

オールパスフィルタのカットオフ周波数の倍率を + [1, 1, 1, ...][1, 2, 3, ...] + の間で調整します。

+

フェイザは複数のオールパスフィルタを直列に繋いだエフェクタです。 + Cut Spread + が左いっぱいのときは、このオールパスフィルタのカットオフ周波数をすべて同じにします。 + Cut Spread + が右いっぱいのときは、オールパスフィルタのカットオフ周波数が前から順に + 1 倍、 2 倍、 3 倍、と設定されます。

+
+
Min [Hz]
+
+

オールパスフィルタのカットオフ周波数が LFO + によって変調されたときの最小値です。

+
+
Max [Hz]
+
+

オールパスフィルタのカットオフ周波数が LFO + によって変調されたときの最大値です。

+

MaxMin + より小さいときは、値を入れ替えて計算が続けられます。つまり、この 2 + つのパラメータの値を入れ替えても挙動は変わりません。

+
+
AM
+
+

入力信号によってフィードバック信号に振幅変調をかける量です。

+

発散を防ぐため、 AM に使われる信号は tanh + によって値の範囲が制限されます。つまり、入力信号の振幅に応じて変調のかかり方が非線形に変化します。

+
+
FM
+
+

入力信号によってフィードバック経路のディレイ時間を変調する量です。

+

負のディレイ時間を設定することを避けるため、 FM に使われる信号は + abs で全波整流されます。

+
+
Delay Tuning
+
+

LFO によるディレイ時間への変調のかけ方です。

+
    +
  • Exp Mul.: 変調信号を exp2 + を通した上でディレイ時間に乗算します。人間の耳には自然な変調のかかり方です。
  • +
  • Linear Mul.: + 変調信号をそのままディレイ時間に乗算します。
  • +
  • Add: 変調信号をディレイ時間に加算します。 LFO + と組み合わせてグリッチビートを作るときには適しています。
  • +
  • Fill Lower: Delay の値を下回る範囲で + Add と同様の変調をかけます。
  • +
  • Fill Higher: Delay の値を上回る範囲で + Add と同様の変調をかけます。
  • +
+
+
Stage
+
+

直列に接続するオールパスフィルタの数です。

+
+
+

+
+
L-R Offset
+
+

ステレオチャンネル間で LFO の位相をずらす量です。

+
+
Phase
+
+

LFO の位相に加算される値です。

+

Rate を左いっぱいに回して LFO の位相を止めているときに + Phase の値を変更することで、 LFO + の位相を制御することができます。また Smoothing + の値によって Phase + を動かしたときの応答速度を変えることができます。

+
+
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 + の同期間隔を変えたいときに使えます。

+
+
Wave Interp.
+
+

LFO の波形の補間方法です。

+
    +
  • Step: ホールド。
  • +
  • Linear: 線形補間。
  • +
  • PCHIP: 単調な 3 次補間。
  • +
+

Step を選ぶと LFO をシーケンサのように使えます。 + LinearPCHIP + と似たような音になりますが、計算がすこし速いです。デフォルトの + PCHIP はサンプル間をだいたい滑らかに補間します。

+
+
LFO Wave
+
+

LFO の波形です。

+
+
+

+
+
Note Origin
+
+

変調量が 1 倍となる MIDI ノート番号です。

+

例えば Note Origin が 60 + であれば、入力されたノート番号が 60 + のときに音が変わらなくなります。

+
+
Note>Cut
+
+

ノートイベントによるオールパスフィルタのカットオフ周波数の変調量です。

+

右いっぱいでノートのピッチに完全に追従します。左いっぱいにするとピッチの高低が逆転します。

+
+
Note>Time
+
+

ノートイベントによるディレイ時間の変調量です。

+

右いっぱいでノートのピッチに完全に追従します。左いっぱいにするとピッチの高低が逆転します。

+
+
Smoothing [s]
+
+

パラメータのスムーシング時間です。

+

例えば Smoothing の値を 0.01 + と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし + Smoothing + の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に + Smoothing の値を 1.0 + などと長くするとパラメータの値がゆっくりと切り替わるようになります。

+
+
2x Sampling
+
+

チェックを入れると 2 倍のオーバーサンプリングを行います。

+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.0.4 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

OrdinaryPhaser のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/ParallelComb/ParallelComb_en.html b/docs/manual/ParallelComb/ParallelComb_en.html index e7a1403b..9b09113b 100644 --- a/docs/manual/ParallelComb/ParallelComb_en.html +++ b/docs/manual/ParallelComb/ParallelComb_en.html @@ -2,533 +2,569 @@ - - - - -ParallelComb_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ParallelComb

-

-

ParallelComb is a comb filter which has 4 different delay time and 1 -shared buffer. A limiter is inserted on feedback path to make the output -somewhat clean. Weird distorsion can be added by modulating delay time -using feedback signal amplitude.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -548,287 +584,294 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Caution

-

When Feedback is greater than 0.25, output may diverge, -depending on Delay Time. In this case, even dithering noise -can saturate feedback. To ensure to stop feedback, insert gate before -ParallelComb. Make sure that the gate do not output dithering noise.

-

To stop the feedback, set Feedback to 0. -Panic! button on bottom right can be used to immediately -set Feedback to 0.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Delay

-
-
Delay Time [s]
-
-

Delay times in seconds. Following is the equation to calculate delay -time.

-
leanL = (L-R Lean) < 0 ? 1 + (L-R Lean) : 1;
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

When Feedback is greater than 0.25, output may + diverge, depending on Delay Time. In this case, even + dithering noise can saturate feedback. To ensure to stop feedback, + insert gate before ParallelComb. Make sure that the gate do not output + dithering noise.

+

To stop the feedback, set Feedback to 0. + Panic! button on bottom right can be used to immediately + set Feedback to 0.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Delay Time [s]
+
+

Delay times in seconds. Following is the equation to calculate + delay time.

+
leanL = (L-R Lean) < 0 ? 1 + (L-R Lean) : 1;
 leanR = (L-R Lean) < 0 ? 1              : 1 - (L-R Lean);
 
 upRate = (16x OverSampling) ? 16 : 1;
@@ -836,225 +879,234 @@ 

Delay

delayTimeL = time * leanL; delayTimeR = time * leanR;
-
-
Time Multi.
-
-

A multiplier to Delay Time. Useful to change all the -delay time at once.

-
-
Interp. Rate
-
-

Rate limiting value of Delay Time interpolation. In -other words, Interp. Rate represents absolute maximum -increment of delay time for each samples. For example, when -Interp. Rate is set to 0.1, maximum change of delay time in -10 sample is ±0.1 * 10 = ±1 sample.

-

Interp. Rate affects the character of -Self Mod..

-
-
Interp. LP [s]
-
-

Smoothing time of lowpass fitler applied to Delay Time -interplation.

-

Interp. LP affects the character of -Self Mod..

-
-
L-R Lean
-
-

The ratio of Delay Time between left and right channels. -L-R Lean also works when Channel Type is -M-S.

-
-
Cross
-
-

Stereo crossing amount. ParallelComb becomes ping-pong delay when -Cross knob is turned to rightmost.

-
-
Feedback
-
-

Feedback gain in amplitude.

-

When Feedback is less than 0.25, the output -will decay and stop at some point. Otherwise, output will most likely -not stop. Depending on the combination of Feedback and -Delay Time, there’s a situation that output will stop even -if Feedback exceeds 0.25.

-
-
Highpass [Hz]
-
-

Cutoff frequency of a highpass filter inserted in feedback path.

-
-
Limiter R. [s]
-
-

Release time of limiter inserted in feedback path.

-

Setting Limiter R. to 0 applies soft clipping to output. -Feedback signal sounds more clean with longer release time.

-
-
Self Mod.
-
-

Amount of Feedback amplitude to delay time modulation.

-

ParallelComb can be used as a distortion or fuzz by setting -Self Mod. to somewhere between 1 to 10, and setting -Feedback to 0.

-

The character of distortion is affected by the value of -Interp. Rate and Interp. LP.

-
-
Gate Th. [dB]
-
-

Gate threshold amplitude.

-

Gate closes when the input signal amplitude is below -Gate Th.

-
-
Gate R. [s]
-
-

Release time of gate.

-

This can be useful when using ParallelComb as a ordinary effector, to -control decay time of wet signal.

-
-
-

Mix

-
-
Dry [dB]
-
-

Input bypass gain.

-
-
Wet [dB]
-
-

Output gain of the signal that go through ParallelComb.

-
-
Channel Type
-
-

Select input channel type from left-right (L-R) or -mid-side (M-S).

-
-
16x OverSampling
-
-

When checked, 16 fold oversampling is enabled. Note that oversampling -increases CPU load for 16 times, and adds resampler computation on top -of it.

-
-
Panic!
-
-

When clicked, set Feedback to 0 .

-
-
-

Change Log

-
    -
  • 0.2.12 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.2.11 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.2.10 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.2.9 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.2.8 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.2.7 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.2.6 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.2.5 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.2.4 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.2.3 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
    • Changed to remove pop noise when gate is activated. Cutoff frequency -of the filter of gate is lowered, and the filter coefficient now -refreshes when oversampling is turned on.
    • -
  • -
  • 0.2.1 -
      -
    • Fixed a bug that limiter on feedback path only output silence.
    • -
  • -
  • 0.2.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

ParallelComb 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.

+
+
Time Multi.
+
+

A multiplier to Delay Time. Useful to change all the + delay time at once.

+
+
Interp. Rate
+
+

Rate limiting value of Delay Time interpolation. In + other words, Interp. Rate represents absolute maximum + increment of delay time for each samples. For example, when + Interp. Rate is set to 0.1, maximum change of delay time + in 10 sample is ±0.1 * 10 = ±1 sample.

+

Interp. Rate affects the character of + Self Mod..

+
+
Interp. LP [s]
+
+

Smoothing time of lowpass fitler applied to Delay Time + interplation.

+

Interp. LP affects the character of + Self Mod..

+
+
L-R Lean
+
+

The ratio of Delay Time between left and right + channels. L-R Lean also works when + Channel Type is M-S.

+
+
Cross
+
+

Stereo crossing amount. ParallelComb becomes ping-pong delay when + Cross knob is turned to rightmost.

+
+
Feedback
+
+

Feedback gain in amplitude.

+

When Feedback is less than 0.25, the + output will decay and stop at some point. Otherwise, output will most + likely not stop. Depending on the combination of Feedback + and Delay Time, there’s a situation that output will stop + even if Feedback exceeds 0.25.

+
+
Highpass [Hz]
+
+

Cutoff frequency of a highpass filter inserted in feedback + path.

+
+
Limiter R. [s]
+
+

Release time of limiter inserted in feedback path.

+

Setting Limiter R. to 0 applies soft clipping to + output. Feedback signal sounds more clean with longer release + time.

+
+
Self Mod.
+
+

Amount of Feedback amplitude to delay time modulation.

+

ParallelComb can be used as a distortion or fuzz by setting + Self Mod. to somewhere between 1 to 10, and setting + Feedback to 0.

+

The character of distortion is affected by the value of + Interp. Rate and Interp. LP.

+
+
Gate Th. [dB]
+
+

Gate threshold amplitude.

+

Gate closes when the input signal amplitude is below + Gate Th.

+
+
Gate R. [s]
+
+

Release time of gate.

+

This can be useful when using ParallelComb as a ordinary effector, + to control decay time of wet signal.

+
+
+

+
+
Dry [dB]
+
+

Input bypass gain.

+
+
Wet [dB]
+
+

Output gain of the signal that go through ParallelComb.

+
+
Channel Type
+
+

Select input channel type from left-right (L-R) or + mid-side (M-S).

+
+
16x OverSampling
+
+

When checked, 16 fold oversampling is enabled. Note that + oversampling increases CPU load for 16 times, and adds resampler + computation on top of it.

+
+
Panic!
+
+

When clicked, set Feedback to 0 .

+
+
+

+
    +
  • 0.2.12 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.2.11 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.2.10 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.2.9 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.2.8 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.2.7 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.2.6 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.2.5 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.2.4 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.2.3 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
    • Changed to remove pop noise when gate is activated. Cutoff + frequency of the filter of gate is lowered, and the filter coefficient + now refreshes when oversampling is turned on.
    • +
  • +
  • 0.2.1 +
      +
    • Fixed a bug that limiter on feedback path only output + silence.
    • +
  • +
  • 0.2.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

ParallelComb is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/ParallelComb/ParallelComb_ja.html b/docs/manual/ParallelComb/ParallelComb_ja.html index 5e4c8f9b..54ac3386 100644 --- a/docs/manual/ParallelComb/ParallelComb_ja.html +++ b/docs/manual/ParallelComb/ParallelComb_ja.html @@ -2,537 +2,575 @@ - - - - -ParallelComb_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ParallelComb

-

-

ParallelCombパラレル コム は 1 -つバッファの異なる 4 -つの時点をフィードバックするコムフィルタです。フィードバック経路にリミッタが挟んであるので、それなりにクリーンな音が出ます。フィードバックの振幅でディレイ時間を変調することで、変な歪みを出すこともできます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -552,290 +590,299 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 -の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを -左ドラッグ -で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

-
    -
  • 右クリック : 表示範囲のリセット
  • -
  • マウスホイール : ズームイン・ズームアウト
  • -
-

注意

-

Feedback が 0.25 -よりも大きいとき、出力はほぼ確実に発散します。発散するかどうかは -FeedbackDelay Time -の値の組み合わせに依存します。発散する状況ではディザリングノイズのような微弱な信号であってもフィードバックの飽和が起こります。フィードバックを確実に止めるためには -ParallelComb -の直前にゲートを挿入することを推奨します。ただし、ゲートがディザリングを行っていないことを確認してください。

-

Feedback の値を 0 -にするとフィードバックが止まります。右下の Panic! -ボタンを押すことで即座に Feedback を 0 にできます。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Delay

-
-
Delay Time [s]
-
-

ディレイ時間の秒数です。最終的なディレイ時間の秒数は以下の式で計算されます。

-
leanL = (L-R Lean) < 0 ? 1 + (L-R Lean) : 1;
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + の下にはスクロールバーがついています。細かい調整を行うときはスクロールバーの左右のハンドルを + 左ドラッグ + で動かすことで表示範囲を変更できます。スクロールバーでは次の操作が行えます。

+
    +
  • 右クリック : 表示範囲のリセット
  • +
  • マウスホイール : ズームイン・ズームアウト
  • +
+

+

Feedback が 0.25 + よりも大きいとき、出力はほぼ確実に発散します。発散するかどうかは + FeedbackDelay Time + の値の組み合わせに依存します。発散する状況ではディザリングノイズのような微弱な信号であってもフィードバックの飽和が起こります。フィードバックを確実に止めるためには + ParallelComb + の直前にゲートを挿入することを推奨します。ただし、ゲートがディザリングを行っていないことを確認してください。

+

Feedback の値を 0 + にするとフィードバックが止まります。右下の Panic! + ボタンを押すことで即座に Feedback を 0 にできます。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

+
+
Delay Time [s]
+
+

ディレイ時間の秒数です。最終的なディレイ時間の秒数は以下の式で計算されます。

+
leanL = (L-R Lean) < 0 ? 1 + (L-R Lean) : 1;
 leanR = (L-R Lean) < 0 ? 1              : 1 - (L-R Lean);
 
 upRate = (16x OverSampling) ? 16 : 1;
@@ -843,224 +890,232 @@ 

Delay

delayTimeL = time * leanL; delayTimeR = time * leanR;
-
-
Time Multi.
-
-

Delay Time -に乗算される値です。まとめてディレイ時間を変えたいときに便利です。

-
-
Interp. Rate
-
-

ディレイ時間の変動を補間するレートリミッタの 1 -サンプルあたりの制限量です。言い換えると Interp. Rate は 1 -サンプルあたりの Delay Time -の増分の絶対値の最大です。例えば Interp. Rate が 0.1 -のときは、 10 サンプル経過でディレイ時間が最大 ±0.1 * 10 = ±1 -サンプル変わります。

-

Interp. Rate の値は Self Mod. -のキャラクタに影響します。

-
-
Interp. LP [s]
-
-

Delay Time -の補間に使われるローパスフィルタのスムーシング時間です。

-

Interp. LP の値は Self Mod. -のキャラクタに影響します。

-
-
L-R Lean
-
-

左右のディレイ時間の比率です。 Channel Type が -M-S のときでも機能します。

-
-
Cross
-
-

フィードバックを左右のチャンネルでクロスする量です。右いっぱいに回すとピンポンディレイになります。

-
-
Feedback
-
-

振幅であらわされたフィードバックのゲインです。

-

Feedback0.25 -より小さいとき、出力は減衰してどこかの時点で止まります。 -Feedback0.25 -より大きいと出力はほぼ確実に発散します。ただし Feedback と -Delay Time の値の組み合わせによっては、 -Feedback の値が 0.25 -より大きくても出力が減衰することがあります。

-
-
Highpass [Hz]
-
-

フィードバック経路に挿入されているハイパスフィルタのカットオフ周波数です。

-
-
Limiter R. [s]
-
-

フィードバック経路に挿入されているリミッタのリリース時間です。

-

Limiter R. を 0 -にすると出力がソフトクリッピングします。リリース時間を長くするとフィードバックの歪みが減ってクリーンな音になります。

-
-
Self Mod.
-
-

フィードバック信号の振幅でディレイ時間を変調する量です。

-

Self Mod. を 1 から 10 の間、 Feedback を 0 -に設定することで ParallelComb -をディストーションやファズのように使えます。

-

歪みのキャラクタは Interp. Rate と -Interp. LP の値によって変わります。

-
-
Gate Th. [dB]
-
-

ゲートのしきい値となる振幅です。

-

ゲートは入力信号の振幅が Gate Th. -を下回ると閉じます。

-
-
Gate R. [s]
-
-

ゲートのリリース時間です。

-

Gate Th.-inf -より大きくしてゲートをかけたときに、どれくらい長く余韻を残すか調整するために使えます。

-
-
-

Mix

-
-
Dry [dB]
-
-

バイパスする入力信号のゲインです。

-
-
Wet [dB]
-
-

ParallelComb を通過した出力信号のゲインです。

-
-
Channel Type
-
-

入力信号のステレオチャンネルの種類を左右 (L-R) -とミッド-サイド (M-S) のいずれかから選択します。

-
-
16x OverSampling
-
-

チェックを入れると 16 倍のオーバーサンプリングが有効になります。 CPU -消費が 16 倍 + リサンプラの計算量だけ増えるので注意してください。

-
-
Panic!
-
-

クリックすると Feedback を 0 に設定します。

-
-
-

チェンジログ

-
    -
  • 0.2.12 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.2.11 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.2.10 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.2.9 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.2.8 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.2.7 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.2.6 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.2.5 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.2.4 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.2.3 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
    • ゲート有効時のポップノイズを抑えるように変更。フィルタのカットオフを下げて、オーバーサンプリング時に適切に係数が更新されるようにした。
    • -
  • -
  • 0.2.1 -
      -
    • フィードバック経路のリミッタが動作せず、 wet -信号が無音となるバグを修正。
    • -
  • -
  • 0.2.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

ParallelComb

- -

ライセンス

-

ParallelComb のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+
+
Time Multi.
+
+

Delay Time + に乗算される値です。まとめてディレイ時間を変えたいときに便利です。

+
+
Interp. Rate
+
+

ディレイ時間の変動を補間するレートリミッタの 1 + サンプルあたりの制限量です。言い換えると Interp. Rate は + 1 サンプルあたりの Delay Time + の増分の絶対値の最大です。例えば Interp. Rate が 0.1 + のときは、 10 サンプル経過でディレイ時間が最大 ±0.1 * 10 = ±1 + サンプル変わります。

+

Interp. Rate の値は Self Mod. + のキャラクタに影響します。

+
+
Interp. LP [s]
+
+

Delay Time + の補間に使われるローパスフィルタのスムーシング時間です。

+

Interp. LP の値は Self Mod. + のキャラクタに影響します。

+
+
L-R Lean
+
+

左右のディレイ時間の比率です。 Channel Type が + M-S のときでも機能します。

+
+
Cross
+
+

フィードバックを左右のチャンネルでクロスする量です。右いっぱいに回すとピンポンディレイになります。

+
+
Feedback
+
+

振幅であらわされたフィードバックのゲインです。

+

Feedback0.25 + より小さいとき、出力は減衰してどこかの時点で止まります。 + Feedback0.25 + より大きいと出力はほぼ確実に発散します。ただし Feedback + と Delay Time の値の組み合わせによっては、 + Feedback の値が 0.25 + より大きくても出力が減衰することがあります。

+
+
Highpass [Hz]
+
+

フィードバック経路に挿入されているハイパスフィルタのカットオフ周波数です。

+
+
Limiter R. [s]
+
+

フィードバック経路に挿入されているリミッタのリリース時間です。

+

Limiter R. を 0 + にすると出力がソフトクリッピングします。リリース時間を長くするとフィードバックの歪みが減ってクリーンな音になります。

+
+
Self Mod.
+
+

フィードバック信号の振幅でディレイ時間を変調する量です。

+

Self Mod. を 1 から 10 の間、 Feedback を + 0 に設定することで ParallelComb + をディストーションやファズのように使えます。

+

歪みのキャラクタは Interp. Rate と + Interp. LP の値によって変わります。

+
+
Gate Th. [dB]
+
+

ゲートのしきい値となる振幅です。

+

ゲートは入力信号の振幅が Gate Th. + を下回ると閉じます。

+
+
Gate R. [s]
+
+

ゲートのリリース時間です。

+

Gate Th.-inf + より大きくしてゲートをかけたときに、どれくらい長く余韻を残すか調整するために使えます。

+
+
+

+
+
Dry [dB]
+
+

バイパスする入力信号のゲインです。

+
+
Wet [dB]
+
+

ParallelComb を通過した出力信号のゲインです。

+
+
Channel Type
+
+

入力信号のステレオチャンネルの種類を左右 (L-R) + とミッド-サイド (M-S) のいずれかから選択します。

+
+
16x OverSampling
+
+

チェックを入れると 16 倍のオーバーサンプリングが有効になります。 + CPU 消費が 16 倍 + + リサンプラの計算量だけ増えるので注意してください。

+
+
Panic!
+
+

クリックすると Feedback を 0 に設定します。

+
+
+

+
    +
  • 0.2.12 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.2.11 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.2.10 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.2.9 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.2.8 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.2.7 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.2.6 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.2.5 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.2.4 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.2.3 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
    • ゲート有効時のポップノイズを抑えるように変更。フィルタのカットオフを下げて、オーバーサンプリング時に適切に係数が更新されるようにした。
    • +
  • +
  • 0.2.1 +
      +
    • フィードバック経路のリミッタが動作せず、 wet + 信号が無音となるバグを修正。
    • +
  • +
  • 0.2.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

ParallelComb のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/ParallelDetune/ParallelDetune_en.html b/docs/manual/ParallelDetune/ParallelDetune_en.html index 3055689d..a619da0e 100644 --- a/docs/manual/ParallelDetune/ParallelDetune_en.html +++ b/docs/manual/ParallelDetune/ParallelDetune_en.html @@ -2,537 +2,572 @@ - - - - -ParallelDetune_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ParallelDetune

-

-

ParallelDetune is a detuning effect with 8 pitch shifters connected -in parallel. It can be used to spread stereo image similar to chorus -effect.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -552,517 +587,529 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Note Event Input

-

ParallelDetune can receive note events to control pitch shift -amount.

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in ParallelDetune.

-
    -
  • [s]: second.
  • -
  • [oct.]: octave.
  • -
  • [st.]: semitone.
  • -
  • [cent]: 1/100 of a semitone.
  • -
-

Shifter

-
-
Dry
-
-

Gain for bypassing input signal.

-
-
Wet
-
-

Gain for output signal comes out from ParallelDetune.

-
-
Feedback
-
-

Pitch shifter feedback gain.

-
-
HP, LP
-
-

Cutoff frequency of highpass (HP) or lowpass -(LP) filter on feedback path.

-
-
Delay Time [s]
-
-

Buffer length of pitch shifter. The value is not exact, but a rough -indication.

-

When the value of Shift \[oct.\] is not 0.0, delay time -is doesn’t match the displayed value because of the change of buffer -playback speed.

-

LFO can be applied by turning the knob on the right side of number -slider.

-
-
Transpose [st.]
-
-

Pitch shift amount used for all the pitch shifters.

-

This might be convenient when changing all the pitch shift at -once.

-

LFO can be applied by turning the knob on the right side of number -slider.

-
-
Pan. Spread
-
-

Amount of stereo spread.

-

When Pan. Spread is 0.0, left and right channels are -processed without affecting other. When Pan. Spread is 1.0, -the output of the pitch shifters with same index on left and right -channel are summed, then stereo panning is applied from left to right in -order from lowest index to highest.

-

When LFO is applied, it rotates the pan. Note that waveform of LFO is -fixed to sine wave for Pan. Spread.

-

Tremolo can be used in combination of Pan. Spread to add -character to stereo spread.

-
-
Tremolo Mix, Tremolo Lean
-
-

Tremolo parameters.

-

Tremolo is disabled when Tremolo Lean is set to 12 -o’clock, or Tremolo Mix is set to leftmost.

-

Tremolo is fully applied when Tremolo Lean is set to -leftmost or rightmost, and Tremolo Mix is set to -rightmost.

-

When Pan. Spread is not 0.0, stereo image leans left or -right depending on the value of Tremolo Lean.

-
-
Pitch Shift [st.], Fine Tuning [cent]
-
-

Amount of pitch shift.

-

Pitch Shift is suitable to change large amount of pitch, -and Fine Tuning is suitable to change small amount. The -range of Pitch Shift is 1 octave, and the range of -Fine Tuning is 10 cents.

-
-
Gain
-
-

Gain for each pitch shifter.

-
-
Time Multiplier
-
-

Buffer length for each pitch shifter. The value is relative to -Delay Time.

-
-
HP Offset [oct.], LP Offset [oct.]
-
-

Highpass or lowpass filter cutoff frequency for each pitch shifter. -The value is relative to the value of HP or -LP.

-
-
-

LFO

-
-
L-R Offset
-
-

LFO phase offset between stereo channels.

-
-
Phase
-
-

A value that is added to LFO phase.

-

To manually control LFO phase, set Rate to leftmost to -stop LFO, then change the value of Phase. Also, the value -of Smoothing affects the response time when -Phase is changed.

-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

-
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
-
-
Tempo Lower
-
-

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Wave Interp.
-
-

LFO wave form interpolation method.

-
    -
  • Step: Holding.
  • -
  • Linear: Linear interpolation.
  • -
  • PCHIP: Monotonic cubic interpolation.
  • -
-

Step makes LFO to act like a sequencer. -Linear sounds similar to PCHIP, and the -computation cost is lower. PCHIP is the most smooth among -all 3.

-
-
LFO Wave
-
-

LFO waveform.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise. On the other hand, if the value of Smoothing is -set to 1.0 for example, the change of parameter is only -slowly followed.

-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
    • Changed GUI.
    • -
  • -
  • 0.0.1 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

ParallelDetune 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

ParallelDetune can receive note events to control pitch shift + amount.

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in ParallelDetune.

+
    +
  • [s]: second.
  • +
  • [oct.]: octave.
  • +
  • [st.]: semitone.
  • +
  • [cent]: 1/100 of a semitone.
  • +
+

+
+
Dry
+
+

Gain for bypassing input signal.

+
+
Wet
+
+

Gain for output signal comes out from ParallelDetune.

+
+
Feedback
+
+

Pitch shifter feedback gain.

+
+
HP, LP
+
+

Cutoff frequency of highpass (HP) or lowpass + (LP) filter on feedback path.

+
+
Delay Time [s]
+
+

Buffer length of pitch shifter. The value is not exact, but a rough + indication.

+

When the value of Shift \[oct.\] is not 0.0, delay + time is doesn’t match the displayed value because of the change of + buffer playback speed.

+

LFO can be applied by turning the knob on the right side of number + slider.

+
+
Transpose [st.]
+
+

Pitch shift amount used for all the pitch shifters.

+

This might be convenient when changing all the pitch shift at + once.

+

LFO can be applied by turning the knob on the right side of number + slider.

+
+
Pan. Spread
+
+

Amount of stereo spread.

+

When Pan. Spread is 0.0, left and right channels are + processed without affecting other. When Pan. Spread is + 1.0, the output of the pitch shifters with same index on left and + right channel are summed, then stereo panning is applied from left to + right in order from lowest index to highest.

+

When LFO is applied, it rotates the pan. Note that waveform of LFO + is fixed to sine wave for Pan. Spread.

+

Tremolo can be used in combination of Pan. Spread to + add character to stereo spread.

+
+
Tremolo Mix, Tremolo Lean
+
+

Tremolo parameters.

+

Tremolo is disabled when Tremolo Lean is set to 12 + o’clock, or Tremolo Mix is set to leftmost.

+

Tremolo is fully applied when Tremolo Lean is set to + leftmost or rightmost, and Tremolo Mix is set to + rightmost.

+

When Pan. Spread is not 0.0, stereo image leans left + or right depending on the value of Tremolo Lean.

+
+
Pitch Shift [st.], Fine Tuning [cent]
+
+

Amount of pitch shift.

+

Pitch Shift is suitable to change large amount of + pitch, and Fine Tuning is suitable to change small + amount. The range of Pitch Shift is 1 octave, and the + range of Fine Tuning is 10 cents.

+
+
Gain
+
+

Gain for each pitch shifter.

+
+
Time Multiplier
+
+

Buffer length for each pitch shifter. The value is relative to + Delay Time.

+
+
HP Offset [oct.], LP Offset [oct.]
+
+

Highpass or lowpass filter cutoff frequency for each pitch shifter. + The value is relative to the value of HP or + LP.

+
+
+

+
+
L-R Offset
+
+

LFO phase offset between stereo channels.

+
+
Phase
+
+

A value that is added to LFO phase.

+

To manually control LFO phase, set Rate to leftmost to + stop LFO, then change the value of Phase. Also, the value + of Smoothing affects the response time when + Phase is changed.

+
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

+
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
+
+
Tempo Lower
+
+

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Wave Interp.
+
+

LFO wave form interpolation method.

+
    +
  • Step: Holding.
  • +
  • Linear: Linear interpolation.
  • +
  • PCHIP: Monotonic cubic interpolation.
  • +
+

Step makes LFO to act like a sequencer. + Linear sounds similar to PCHIP, and the + computation cost is lower. PCHIP is the most smooth among + all 3.

+
+
LFO Wave
+
+

LFO waveform.

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise. On the other hand, if the value of + Smoothing is set to 1.0 for example, the + change of parameter is only slowly followed.

+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
    • Changed GUI.
    • +
  • +
  • 0.0.1 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

ParallelDetune is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/ParallelDetune/ParallelDetune_ja.html b/docs/manual/ParallelDetune/ParallelDetune_ja.html index ca8f06b7..36589818 100644 --- a/docs/manual/ParallelDetune/ParallelDetune_ja.html +++ b/docs/manual/ParallelDetune/ParallelDetune_ja.html @@ -2,541 +2,578 @@ - - - - -ParallelDetune_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

ParallelDetune

-

-

ParallelDetuneパラレル デチューン は 8 -つのピッチシフタを並列につないだエフェクタです。モノラルの音に薄くかけてコーラスのようにパンを左右に広げることもできます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -556,508 +593,525 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

ノートイベントの入力

-

ParallelDetune -はノートイベントによってピッチシフトの量を制御することができます。

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は ParallelDetune -のパラメータで使われている単位の一覧です。

-
    -
  • [s]: 秒 (second) 。
  • -
  • [oct.]: オクターブ (octave) 。
  • -
  • [st.]: 半音 (semitone) 。
  • -
  • [cent]: 1/100 半音。
  • -
-

Shifter

-
-
Dry
-
-

バイパスした入力信号のゲインです。

-
-
Wet
-
-

ParallelDetune を通過した信号のゲインです。

-
-
Feedback
-
-

ピッチシフタの出力をフィードバックするときのゲインです。

-
-
HP, LP
-
-

フィードバック経路のハイパスあるいはローパスフィルタのカットオフ周波数です。

-
-
Delay Time [s]
-
-

ピッチシフタのバッファの長さです。表示されている値は大まかな目安です。

-

Delay Time -の値はピッチシフトがかかっていないときだけ正確です。ピッチが変更されるとバッファを読み取る速度が変わるので、表示されている値とディレイ時間が一致しなくなります。

-

数値スライダの右のつまみで LFO をかけることができます。

-
-
Transpose [st.]
-
-

すべてのピッチシフタで共通して使われるシフト量です。

-

すべてのピッチをまとめて変更するときに便利です。

-

数値スライダの右のつまみで LFO をかけることができます。

-
-
Pan. Spread
-
-

ピッチシフタの出力を左右に広げて配置する割合です。

-

Pan. Spread が 0.0 -のとき、左右のチャネルは独立して処理されます。 Pan. Spread -が 1.0 -のときはピッチシフタのインデックスごとに左右の信号を加算した上で、インデックスの低いほうから高いほうに向かって、左から右にパンを振ります。

-

数値スライダの右のつまみで LFO -をかけると音を回すことができます。ただし Pan. Spread の LFO -の波形はサイン波に固定されています。

-

トレモロと組み合わせることで左右の広がり方に変化をつけることができます。

-
-
Tremolo Mix, Tremolo Lean
-
-

各ピッチシフタの出力にトレモロをかけるパラメータです。

-

Tremolo Lean が 12 時を指しているか、 -Tremolo Mix -が左いっぱいのときにトレモロは無効となります。

-

Tremolo Lean を左いっぱいか右いっぱいに設定した上で、 -Tremolo Mix -を右いっぱいにするとトレモロをかけた出力のみになります。

-

Pan. Spread が 0.0 でないときは -Tremolo Lean の値によって左あるいは右に音が偏ります。

-
-
Pitch Shift [st.], Fine Tuning [cent]
-
-

ピッチシフトの量です。

-

大きく音を変えるときは Pitch Shift -、少しだけデチューンを行うときは Fine Tuning が使えます。 -Pitch Shift は ± 1 オクターブ、 Fine Tuning は -± 10 セントの幅で調節できます。

-
-
Gain
-
-

各ピッチシフタのゲインです。

-
-
Time Multiplier
-
-

各ピッチシフタのバッファの長さを Delay Time -から相対的に変更する量です。

-
-
HP Offset [oct.], LP Offset [oct.]
-
-

各ピッチシフタのハイパスあるいはローパスフィルタのカットオフ周波数を -HP あるいは LP -の値から相対的に変更する量です。

-
-
-

LFO

-
-
L-R Offset
-
-

ステレオチャンネル間で LFO の位相をずらす量です。

-
-
Phase
-
-

LFO の位相に加算される値です。

-

Rate を左いっぱいに回して LFO の位相を止めているときに -Phase の値を変更することで、 LFO -の位相を制御することができます。また Smoothing の値によって -Phase を動かしたときの応答速度を変えることができます。

-
-
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 -の同期間隔を変えたいときに使えます。

-
-
Wave Interp.
-
-

LFO の波形の補間方法です。

-
    -
  • Step: ホールド。
  • -
  • Linear: 線形補間。
  • -
  • PCHIP: 単調な 3 次補間。
  • -
-

Step を選ぶと LFO をシーケンサのように使えます。 -LinearPCHIP -と似たような音になりますが、計算がすこし速いです。デフォルトの -PCHIP はサンプル間をだいたい滑らかに補間します。

-
-
LFO Wave
-
-

LFO の波形です。

-
-
Smoothing [s]
-
-

パラメータのスムーシング時間です。

-

例えば Smoothing の値を 0.01 -と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし -Smoothing -の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に -Smoothing の値を 1.0 -などと長くするとパラメータの値がゆっくりと切り替わるようになります。

-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
    • GUI を変更。
    • -
  • -
  • 0.0.1 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

ParallelDetune

- -

ライセンス

-

ParallelDetune のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

ParallelDetune + はノートイベントによってピッチシフトの量を制御することができます。

+

+

角かっこ [] で囲まれているのは単位です。以下は ParallelDetune + のパラメータで使われている単位の一覧です。

+
    +
  • [s]: 秒 (second) 。
  • +
  • [oct.]: オクターブ (octave) 。
  • +
  • [st.]: 半音 (semitone) 。
  • +
  • [cent]: 1/100 半音。
  • +
+

+
+
Dry
+
+

バイパスした入力信号のゲインです。

+
+
Wet
+
+

ParallelDetune を通過した信号のゲインです。

+
+
Feedback
+
+

ピッチシフタの出力をフィードバックするときのゲインです。

+
+
HP, LP
+
+

フィードバック経路のハイパスあるいはローパスフィルタのカットオフ周波数です。

+
+
Delay Time [s]
+
+

ピッチシフタのバッファの長さです。表示されている値は大まかな目安です。

+

Delay Time + の値はピッチシフトがかかっていないときだけ正確です。ピッチが変更されるとバッファを読み取る速度が変わるので、表示されている値とディレイ時間が一致しなくなります。

+

数値スライダの右のつまみで LFO をかけることができます。

+
+
Transpose [st.]
+
+

すべてのピッチシフタで共通して使われるシフト量です。

+

すべてのピッチをまとめて変更するときに便利です。

+

数値スライダの右のつまみで LFO をかけることができます。

+
+
Pan. Spread
+
+

ピッチシフタの出力を左右に広げて配置する割合です。

+

Pan. Spread が 0.0 + のとき、左右のチャネルは独立して処理されます。 + Pan. Spread が 1.0 + のときはピッチシフタのインデックスごとに左右の信号を加算した上で、インデックスの低いほうから高いほうに向かって、左から右にパンを振ります。

+

数値スライダの右のつまみで LFO + をかけると音を回すことができます。ただし Pan. Spread の + LFO の波形はサイン波に固定されています。

+

トレモロと組み合わせることで左右の広がり方に変化をつけることができます。

+
+
Tremolo Mix, Tremolo Lean
+
+

各ピッチシフタの出力にトレモロをかけるパラメータです。

+

Tremolo Lean が 12 時を指しているか、 + Tremolo Mix + が左いっぱいのときにトレモロは無効となります。

+

Tremolo Lean を左いっぱいか右いっぱいに設定した上で、 + Tremolo Mix + を右いっぱいにするとトレモロをかけた出力のみになります。

+

Pan. Spread が 0.0 でないときは + Tremolo Lean の値によって左あるいは右に音が偏ります。

+
+
Pitch Shift [st.], Fine Tuning [cent]
+
+

ピッチシフトの量です。

+

大きく音を変えるときは Pitch Shift + 、少しだけデチューンを行うときは Fine Tuning が使えます。 + Pitch Shift は ± 1 オクターブ、 Fine Tuning + は ± 10 セントの幅で調節できます。

+
+
Gain
+
+

各ピッチシフタのゲインです。

+
+
Time Multiplier
+
+

各ピッチシフタのバッファの長さを Delay Time + から相対的に変更する量です。

+
+
HP Offset [oct.], LP Offset [oct.]
+
+

各ピッチシフタのハイパスあるいはローパスフィルタのカットオフ周波数を + HP あるいは LP + の値から相対的に変更する量です。

+
+
+

+
+
L-R Offset
+
+

ステレオチャンネル間で LFO の位相をずらす量です。

+
+
Phase
+
+

LFO の位相に加算される値です。

+

Rate を左いっぱいに回して LFO の位相を止めているときに + Phase の値を変更することで、 LFO + の位相を制御することができます。また Smoothing + の値によって Phase + を動かしたときの応答速度を変えることができます。

+
+
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 + の同期間隔を変えたいときに使えます。

+
+
Wave Interp.
+
+

LFO の波形の補間方法です。

+
    +
  • Step: ホールド。
  • +
  • Linear: 線形補間。
  • +
  • PCHIP: 単調な 3 次補間。
  • +
+

Step を選ぶと LFO をシーケンサのように使えます。 + LinearPCHIP + と似たような音になりますが、計算がすこし速いです。デフォルトの + PCHIP はサンプル間をだいたい滑らかに補間します。

+
+
LFO Wave
+
+

LFO の波形です。

+
+
Smoothing [s]
+
+

パラメータのスムーシング時間です。

+

例えば Smoothing の値を 0.01 + と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし + Smoothing + の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。逆に + Smoothing の値を 1.0 + などと長くするとパラメータの値がゆっくりと切り替わるようになります。

+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
    • GUI を変更。
    • +
  • +
  • 0.0.1 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

ParallelDetune のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/PitchShiftDelay/PitchShiftDelay_en.html b/docs/manual/PitchShiftDelay/PitchShiftDelay_en.html index 280c589d..05a1331e 100644 --- a/docs/manual/PitchShiftDelay/PitchShiftDelay_en.html +++ b/docs/manual/PitchShiftDelay/PitchShiftDelay_en.html @@ -2,538 +2,574 @@ - - - - -PitchShiftDelay_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

PitchShiftDelay

-

-

PitchShiftDelay is a time domain pitch shifter based on usual delay. -The quirk of pitch shifter is somewhat reduced by 16x oversampling. Also -the internal buffer length can be changed in real time. PitchShiftDelay -doesn’t equipped with formant correction. So applying to voice may -sounds strange, like Helium is inhaled.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -553,561 +589,573 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Control with many blue vertical bars (BarBox) have some keyboard -shortcuts. LFO Wave on Main tab and Gain, -Width, Pitch, Phase on Wavetable -tab are using BarBox. Shortcuts are enabled after left clicking BarBox -and mouse cursor is on the inside of BarBox. Cheat sheet is available on -Infomation tab.

- ---- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
-

Snapping is not available for all BarBox. If you’d like to have -snapping for certain BarBox, feel free to open issue to GitHub repository.

-

Edit One Bar with Shift + Right Drag holds a -bar under the cursor when mouse right button is pressed. Then only -changes that one bar while holding down mouse right button.

-

Toggle Lock with Ctrl + Shift + Right -Drag behaves as line edit. When right mouse button (RMB) is -pressed, it holds the opposite state of the bar below mouse cursor, then -use the state for the rest of bars. For example, if RMB is pressed on a -locked bar, dragging unlocks bars while holding down RMB.

-

Some BarBox has scroll bar to zoom in. Scroll bar has handles on left -end and right end. To control zoom, use Left Drag on one of -the handle. Scroll bar also has following controls:

-
    -
  • Right Click : Reset zoom.
  • -
  • Mouse Wheel : Zoom in/out.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Delay

-
-
Pitch
-
-

Main pitch shift amount.

-

Main shifter multiplies pitch by the value of Pitch + -LFO amount.

-

Because of the 16 fold oversampling, aliasing noise don’t affect the -output when Pitch is below 31 which is equal -to 16 * 2 - 1.

-
-
Offset
-
-

Unison shifter pitch offset from Pitch.

-

Unison shifter pitch is calculated by following equation:

-
unisonPitch = mainPitch;
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

Control with many blue vertical bars (BarBox) have some keyboard + shortcuts. Shortcuts are enabled after left clicking BarBox and mouse + cursor is on the inside of BarBox.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InputControl
Left DragChange Value
Shift + Left DragChange Value (Snapped)
Ctrl + Left DragReset to Default
Ctrl + Shift + Left DragChange Value (Skip Between Frames)
Middle DragDraw Line
Shift + Middle DragEdit One Bar
Ctrl + Middle DragReset to Default
Ctrl + Shift + Middle DragToggle Lock
aAlternate Sign
dReset Everything to Default
DToggle Min/Mid/Max
eEmphasize Low
EEmphasize High
fLow-pass Filter
FHigh-pass Filter
iInvert Value (Preserve minimum)
IInvert Value (Minimum to 0)
lToggle Lock under Mouse Cursor
LToggle Lock for All
nNormalize (Preserve minimum)
NNormalize (Minimum to 0)
pPermute
rRandomize
RSparse Randomize
sSort Descending Order
SSort Ascending Order
tSubtle Randomize (Random walk)
TSubtle Randomize (Converge to 0)
zUndo
ZRedo
, (Comma)Rotate Back
. (Period)Rotate Forward
1Decrease
2-4Decrease 2n-4n
5-9Decimate by holding 2n-5n
+

Snapping is not available for all BarBox. If you’d like to have + snapping for certain BarBox, feel free to open issue to GitHub repository.

+

Edit One Bar with Shift + Right Drag holds a + bar under the cursor when mouse right button is pressed. Then only + changes that one bar while holding down mouse right button.

+

Toggle Lock with Ctrl + Shift + Right + Drag behaves as line edit. When right mouse button (RMB) is + pressed, it holds the opposite state of the bar below mouse cursor, + then use the state for the rest of bars. For example, if RMB is + pressed on a locked bar, dragging unlocks bars while holding down + RMB.

+

Some BarBox has scroll bar to zoom in. Scroll bar has handles on + left end and right end. To control zoom, use Left Drag on + one of the handle. Scroll bar also has following controls:

+
    +
  • Right Click : Reset zoom.
  • +
  • Mouse Wheel : Zoom in/out.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Pitch
+
+

Main pitch shift amount.

+

Main shifter multiplies pitch by the value of Pitch + + LFO amount.

+

Because of the 16 fold oversampling, aliasing noise don’t affect + the output when Pitch is below 31 which is + equal to 16 * 2 - 1.

+
+
Offset
+
+

Unison shifter pitch offset from Pitch.

+

Unison shifter pitch is calculated by following equation:

+
unisonPitch = mainPitch;
 if (Mirror) unisonPitch = max(1 / unisonPitch, 1000);
 if (S2 Reverse) unisonPitch = -unisonPitch;
 unisonPitch += ((To Pitch) + (To Unison)) * lfo;
-
-
Pitch Cross
-
-

Cross feedback amount between main shifter and unison shifter.

-
-
Mirror
-
-

When checked, it changes unison shifter pitch to -1 / Pitch.

-

Checking Mirror after initial state results in that the -feedback pitch will always be Pitch or -1 / Pitch. This state will be kept until one of -Offset, Pitch Cross, To Pitch, or -To Unison is changed from default.

-
-
S1 Reverse
-
-

Reverse the playback of main shifter.

-

Internally, S1 Reverse changes the sign of -Pitch to negative to moving the read pointer to reverse -direction.

-
-
S2 Reverse
-
-

Reverse the playback of unison shifter.

-
-
L-R Lean
-
-

The ratio of Delay Time between left and right channels. -L-R Lean also works when Channel Type is -M-S.

-
-
Delay Time [s]
-
-

Buffer length of pitch shifter. Note that the value only accurate -when Pitch is set to 1.

-

The exact delay time depends on the pitch shift amount and buffer -length. LFO farther complicates the computation of exact delay time. So -the value of Delay Time is usually a rough indication -rather than exact delay time.

-
-
Feedback
-
-

Feedback gain in amplitude.

-
-
Stereo Cross
-
-

Cross feedback amount between stereo channels. When the value is set -to 1.0, output becomes ping-pong delay.

-
-
Channel Type
-
-

Select input channel type from left-right (L-R) or -mid-side (M-S).

-
-
Highpass [Hz]
-
-

Cutoff frequency of highpass filter inserted on feedback path.

-
-
-

Mix

-
-
Dry [dB]
-
-

Input bypass gain.

-
-
Wet [dB]
-
-

Output gain of the signal that go through PitchShiftDelay.

-
-
Unison Mix
-
-

Mixing ratio of main shifter and unison shifter.

-
-
Smoothing [s]
-
-

Paramter smoothing time in seconds.

-

For example, if the value of Smoothing is set to -0.01 or something short, the change of parameter almost -immediately applies. So it sounds more snappy, but may introduce audible -pop noise.

-

On the other hand, if thevalue of -Smoothing is set to1.0for example, the change of parameter is only slowly followed. So when changingPitch`, -it may sounds like long slide/portamento.

-
-
-

LFO

-
-
Sync.
-
-

When checked, it enables tempo synchronization (tempo sync). LFO -phase also synchronize to the exact position derived from sync interval, -and time passed from the start of playback.

-

When not checked, LFO behaves as same as if synchronizing to 120 BPM. -It also disables LFO phase sync.

-
-
Tempo Upper
-
-

Numerator of sync interval.

-

LFO synchronizes to 1 bar when -(Tempo Upper) / (Tempo Lower) is 1/1. -1/4 synchronizes to 1 beat when time signature of -4/4. Note that Rate multiplies the sync -interval.

-

Following is the equation to calculate sync interval.

-
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
-
-
Tempo Lower
-
-

Denominator of sync interval.

-

Note that Rate multiplies the sync interval.

-
-
Rate
-
-

Multiplier to sync interval.

-

Rate is convenient when changing sync interval while -keeping the values of Tempo Upper and -Tempo Lower.

-
-
Stereo Offset
-
-

LFO phase offset between stereo channels.

-
-
Unison Offset
-
-

LFO phase offset between main shifter and unison shifter.

-
-
Wave Interp.
-
-

LFO wave form interpolation method.

-
    -
  • Step: Holding.
  • -
  • Linear: Linear interpolation.
  • -
  • PCHIP: Monotonic cubic interpolation.
  • -
-

Step makes LFO to act like a sequencer. -Linear sounds similar to PCHIP, and the -computation cost is lower. PCHIP is the most smooth among -all 3.

-
-
To Pitch
-
-

LFO modulation amount to main pitch.

-
-
To Unison
-
-

LFO modulation amount to unison shifter pitch that is added to -To Pitch amount.

-
-
-

Change Log

-
    -
  • 0.2.11 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.2.10 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.2.9 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.2.8 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.2.7 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.2.6 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.2.5 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.2.4 -
      -
    • Added decimation by holding shortcut to BarBox. Shortcut is -5-9.
    • -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
    • Fix to reset LFO.
    • -
  • -
  • 0.2.3 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.2.2 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
    • Change BarBox to only send modified parameter values to host. This -prevents to overwrite unchanged parameter automation on the same -BarBox.
    • -
  • -
  • 0.2.1 -
      -
    • Changed BarBox to get focus on mouse down, and release focus on -mouse exit.
    • -
  • -
  • 0.2.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

PitchShiftDelay 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.

+
+
Pitch Cross
+
+

Cross feedback amount between main shifter and unison shifter.

+
+
Mirror
+
+

When checked, it changes unison shifter pitch to + 1 / Pitch.

+

Checking Mirror after initial state results in that + the feedback pitch will always be Pitch or + 1 / Pitch. This state will be kept until one of + Offset, Pitch Cross, To Pitch, + or To Unison is changed from default.

+
+
S1 Reverse
+
+

Reverse the playback of main shifter.

+

Internally, S1 Reverse changes the sign of + Pitch to negative to moving the read pointer to reverse + direction.

+
+
S2 Reverse
+
+

Reverse the playback of unison shifter.

+
+
L-R Lean
+
+

The ratio of Delay Time between left and right + channels. L-R Lean also works when + Channel Type is M-S.

+
+
Delay Time [s]
+
+

Buffer length of pitch shifter. Note that the value only accurate + when Pitch is set to 1.

+

The exact delay time depends on the pitch shift amount and buffer + length. LFO farther complicates the computation of exact delay time. + So the value of Delay Time is usually a rough indication + rather than exact delay time.

+
+
Feedback
+
+

Feedback gain in amplitude.

+
+
Stereo Cross
+
+

Cross feedback amount between stereo channels. When the value is + set to 1.0, output becomes ping-pong delay.

+
+
Channel Type
+
+

Select input channel type from left-right (L-R) or + mid-side (M-S).

+
+
Highpass [Hz]
+
+

Cutoff frequency of highpass filter inserted on feedback path.

+
+
+

+
+
Dry [dB]
+
+

Input bypass gain.

+
+
Wet [dB]
+
+

Output gain of the signal that go through PitchShiftDelay.

+
+
Unison Mix
+
+

Mixing ratio of main shifter and unison shifter.

+
+
Smoothing [s]
+
+

Paramter smoothing time in seconds.

+

For example, if the value of Smoothing is set to + 0.01 or something short, the change of parameter almost + immediately applies. So it sounds more snappy, but may introduce + audible pop noise.

+

On the other hand, if thevalue of + Smoothing is set to1.0for example, the change of parameter is only slowly followed. So when changingPitch`, + it may sounds like long slide/portamento.

+
+
+

+
+
Sync.
+
+

When checked, it enables tempo synchronization (tempo sync). LFO + phase also synchronize to the exact position derived from sync + interval, and time passed from the start of playback.

+

When not checked, LFO behaves as same as if synchronizing to 120 + BPM. It also disables LFO phase sync.

+
+
Tempo Upper
+
+

Numerator of sync interval.

+

LFO synchronizes to 1 bar when + (Tempo Upper) / (Tempo Lower) is 1/1. + 1/4 synchronizes to 1 beat when time signature of + 4/4. Note that Rate multiplies the sync + interval.

+

Following is the equation to calculate sync interval.

+
syncInterval = (Rate) * (Tempo Upper) / (Tempo Lower);
+
+
Tempo Lower
+
+

Denominator of sync interval.

+

Note that Rate multiplies the sync interval.

+
+
Rate
+
+

Multiplier to sync interval.

+

Rate is convenient when changing sync interval while + keeping the values of Tempo Upper and + Tempo Lower.

+
+
Stereo Offset
+
+

LFO phase offset between stereo channels.

+
+
Unison Offset
+
+

LFO phase offset between main shifter and unison shifter.

+
+
Wave Interp.
+
+

LFO wave form interpolation method.

+
    +
  • Step: Holding.
  • +
  • Linear: Linear interpolation.
  • +
  • PCHIP: Monotonic cubic interpolation.
  • +
+

Step makes LFO to act like a sequencer. + Linear sounds similar to PCHIP, and the + computation cost is lower. PCHIP is the most smooth among + all 3.

+
+
To Pitch
+
+

LFO modulation amount to main pitch.

+
+
To Unison
+
+

LFO modulation amount to unison shifter pitch that is added to + To Pitch amount.

+
+
+

+
    +
  • 0.2.11 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.2.10 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.2.9 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.2.8 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.2.7 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.2.6 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.2.5 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.2.4 +
      +
    • Added decimation by holding shortcut to BarBox. Shortcut is + 5-9.
    • +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
    • Fix to reset LFO.
    • +
  • +
  • 0.2.3 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.2.2 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
    • Change BarBox to only send modified parameter values to host. This + prevents to overwrite unchanged parameter automation on the same + BarBox.
    • +
  • +
  • 0.2.1 +
      +
    • Changed BarBox to get focus on mouse down, and release focus on + mouse exit.
    • +
  • +
  • 0.2.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

PitchShiftDelay is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/PitchShiftDelay/PitchShiftDelay_ja.html b/docs/manual/PitchShiftDelay/PitchShiftDelay_ja.html index cd82e02f..00480b00 100644 --- a/docs/manual/PitchShiftDelay/PitchShiftDelay_ja.html +++ b/docs/manual/PitchShiftDelay/PitchShiftDelay_ja.html @@ -2,541 +2,578 @@ - - - - -PitchShiftDelay_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

PitchShiftDelay

-

-

PitchShiftDelayピッチ シフト ディレイ -はディレイを使った時間領域ピッチシフタです。 16 -倍のオーバーサンプリングによってピッチシフタ特有の癖を多少抑えています。また内部のバッファ長をリアルタイムで変更できます。フォルマント補正がないので、声に使うとヘリウムを吸ったときのような音になります。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -556,554 +593,572 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

青い縦棒が並んだコントロール (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 + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Delay

-
-
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 Pitch 、 -To Unison がデフォルト値である限り保たれます。

-
-
S1 Reverse
-
-

チェックを入れるとメインシフタの出力を逆再生させます。

-

内部的にはピッチシフトの倍率の値の符号を負に変えることで読み取りポインタを逆走させています。

-
-
S2 Reverse
-
-

チェックを入れるとユニゾンシフタの出力を逆再生させます。

-
-
L-R Lean
-
-

左右のディレイ時間の比率です。 Channel Type が -M-S のときでも機能します。

-
-
Delay Time [s]
-
-

ピッチシフタのバッファの長さです。 Pitch の値が 1 -のときだけ正確なディレイ時間を表すことに注意してください。

-

ピッチシフトの倍率が 1 -でないとき、正確なディレイ時間はピッチシフトの倍率とバッファの長さによって変わります。 -その上に LFO -がかかると正確なディレイ時間を計算することは困難になります。したがって -Delay Time -の値は、正確なディレイ時間というよりも、おおまかな指標です。

-
-
Feedback
-
-

振幅であらわされたフィードバックのゲインです。

-
-
Stereo Cross
-
-

ステレオチャンネル間でクロスフィードバックする量です。 -1.0 にするとピンポンディレイになります。

-
-
Channel Type
-
-

入力信号のステレオチャンネルの種類を左右 (L-R) -とミッド-サイド (M-S) のいずれかから選択します。

-
-
Highpass [Hz]
-
-

フィードバック経路に挿入されているハイパスフィルタのカットオフ周波数です。

-
-
-

Mix

-
-
Dry [dB]
-
-

バイパスする入力信号のゲインです。

-
-
Wet [dB]
-
-

PitchShiftDelay を通過した出力信号のゲインです。

-
-
Unison Mix
-
-

メインシフタとユニゾンシフタを混ぜる比率です。

-
-
Smoothing [s]
-
-

パラメータのスムーシング時間です。

-

例えば Smoothing の値を 0.01 -と短くするとパラメータの変更がほぼ瞬時に適用されます。ただし -Smoothing -の値を小さくするとパラメータ変更時のポップノイズが目立つようになります。

-

逆に Smoothing の値を 1.0 -などと長くするとパラメータの値がゆっくりと切り替わるようになります。特に -Pitch -などを動かしたときはスライドやポルタメントのようになります。

-
-
-

LFO

-
-
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: ホールド。
  • -
  • Linear: 線形補間。
  • -
  • PCHIP: 単調な 3 次補間。
  • -
-

Step を選ぶと LFO をシーケンサのように使えます。 -LinearPCHIP -と似たような音になりますが、計算がすこし速いです。デフォルトの -PCHIP はサンプル間をだいたい滑らかに補間します。

-
-
To Pitch
-
-

LFO でピッチを変調する量です。

-
-
To Unison
-
-

To Pitch で指定した量に加えて LFO -でユニゾンシフタのピッチを変調する量です。

-
-
-

チェンジログ

-
    -
  • 0.2.11 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.2.10 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.2.9 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.2.8 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.2.7 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.2.6 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.2.5 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.2.4 -
      -
    • BarBox にホールドのショートカットを追加。ショートカットキーは -5-9
    • -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
    • LFO をリセットするように修正。
    • -
  • -
  • 0.2.3 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.2.2 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
    • BarBox -が変更されたパラメータの値のみをホストに送るように変更。編集中の BarBox -上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • -
  • -
  • 0.2.1 -
      -
    • BarBox -がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • -
  • -
  • 0.2.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

-

PitchShiftDelay

- -

ライセンス

-

PitchShiftDelay のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

青い縦棒が並んだコントロール (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 Pitch 、 + To Unison がデフォルト値である限り保たれます。

+
+
S1 Reverse
+
+

チェックを入れるとメインシフタの出力を逆再生させます。

+

内部的にはピッチシフトの倍率の値の符号を負に変えることで読み取りポインタを逆走させています。

+
+
S2 Reverse
+
+

チェックを入れるとユニゾンシフタの出力を逆再生させます。

+
+
L-R Lean
+
+

左右のディレイ時間の比率です。 Channel Type が + M-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: ホールド。
  • +
  • Linear: 線形補間。
  • +
  • PCHIP: 単調な 3 次補間。
  • +
+

Step を選ぶと LFO をシーケンサのように使えます。 + LinearPCHIP + と似たような音になりますが、計算がすこし速いです。デフォルトの + PCHIP はサンプル間をだいたい滑らかに補間します。

+
+
To Pitch
+
+

LFO でピッチを変調する量です。

+
+
To Unison
+
+

To Pitch で指定した量に加えて LFO + でユニゾンシフタのピッチを変調する量です。

+
+
+

+
    +
  • 0.2.11 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.2.10 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.2.9 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.2.8 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.2.7 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.2.6 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.2.5 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.2.4 +
      +
    • BarBox にホールドのショートカットを追加。ショートカットキーは + 5-9
    • +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
    • LFO をリセットするように修正。
    • +
  • +
  • 0.2.3 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.2.2 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
    • BarBox + が変更されたパラメータの値のみをホストに送るように変更。編集中の + BarBox + 上の変更されていないパラメータのオートメーションが上書きされないようになった。
    • +
  • +
  • 0.2.1 +
      +
    • BarBox + がマウス押下でフォーカスを取得、マウスカーソルが範囲外に移動するとフォーカスを開放するように変更。
    • +
  • +
  • 0.2.0 +
      +
    • 初期リリース。
    • +
  • +
+

+

+ +

+

PitchShiftDelay のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/RingModSpacer/RingModSpacer_en.html b/docs/manual/RingModSpacer/RingModSpacer_en.html index 478f6ede..577554da 100644 --- a/docs/manual/RingModSpacer/RingModSpacer_en.html +++ b/docs/manual/RingModSpacer/RingModSpacer_en.html @@ -2,539 +2,576 @@ - - - - -RingModSpacer_en - - - - + + + + + RingModSpacer_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

RingModSpacer

-

-

RingModSpacer is a sidechain limiter that adds severe distortion. -First, full-wave rectification is applied to sidechain input. Then -rectified signal modulates amplitude of main input. The sum of modulated -main signal and raw sidechain signal won’t clip, when both peak -amplitudes are under 0 dB. That’s the theory. The hard part is to figure -out when to use this effect.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -554,210 +591,226 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Usage

-

First, prepare the main input and the sidechain input. Feed the -signal you want to keep clean into the sidechain. Main will be -distorted. Please refer to your DAW manual for instructions on how to -route to sidechain.

-

Next, increase Gain in Input and Gain section to set -peak amplitude of both inputs to 0 dB. This step ensures maximum effect, -but can be skipped.

-

Finally, change Ring-Sub. Mix, Attack, and -Release to adjust the texture. Setting is complete after -that.

-

RingModSpacer is a kind of distortion effect. If distortion is -undesirable, typical sidechain limiter with threshold set to -∞ dB is a -better fit.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Characters inside of square brackets [] represents unit. Following is -a list of units used in RingModSpacer.

-
    -
  • [dB] : Decibel.
  • -
  • [s] : Second.
  • -
-

Gain

-
-
Output [dB]
-
-

Output gain.

-
-
Side Mix
-
-

Amount to mix sidechain input into output.

-
-
Ring-Sub. Mix
-
-

Mixing amount between ring modulation and differential methods of -creating gaps in the waveform.

-

When Ring-Sub. Mix is 0, ring modulation method is used. -When Ring-Sub. Mix is 1, difference method is used.

-
-
-

Misc.

-
-
Smoothing [s]
-
-

Time to reach new value after change of parameter.

-
-
-

Input, Side

-
-
Gain[dB]
-
-

Limiter make up gain.

-
-
Attack [s]
-
-

Limiter attack time.

-
-
Release [s]
-
-

Limiter release time.

-
-
-

Change Log

-
    -
  • 0.1.4 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.3 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.2 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.1 -
      -
    • Changed update timing of Gain parameters to mouse -up.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

RingModSpacer 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

First, prepare the main input and the sidechain input. Feed the + signal you want to keep clean into the sidechain. Main will be + distorted. Please refer to your DAW manual for instructions on how to + route to sidechain.

+

Next, increase Gain in Input and Gain section to set + peak amplitude of both inputs to 0 dB. This step ensures maximum + effect, but can be skipped.

+

Finally, change Ring-Sub. Mix, Attack, + and Release to adjust the texture. Setting is complete + after that.

+

RingModSpacer is a kind of distortion effect. If distortion is + undesirable, typical sidechain limiter with threshold set to -∞ dB is + a better fit.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

Characters inside of square brackets [] represents unit. Following + is a list of units used in RingModSpacer.

+
    +
  • [dB] : Decibel.
  • +
  • [s] : Second.
  • +
+

+
+
Output [dB]
+
+

Output gain.

+
+
Side Mix
+
+

Amount to mix sidechain input into output.

+
+
Ring-Sub. Mix
+
+

Mixing amount between ring modulation and differential methods of + creating gaps in the waveform.

+

When Ring-Sub. Mix is 0, ring modulation method is + used. When Ring-Sub. Mix is 1, difference method is + used.

+
+
+

+
+
Smoothing [s]
+
+

Time to reach new value after change of parameter.

+
+
+

+
+
Gain[dB]
+
+

Limiter make up gain.

+
+
Attack [s]
+
+

Limiter attack time.

+
+
Release [s]
+
+

Limiter release time.

+
+
+

+
    +
  • 0.1.4 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.3 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.2 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.1 +
      +
    • Changed update timing of Gain parameters to mouse + up.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

RingModSpacer is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/RingModSpacer/RingModSpacer_ja.html b/docs/manual/RingModSpacer/RingModSpacer_ja.html index 408db12e..af2c72a0 100644 --- a/docs/manual/RingModSpacer/RingModSpacer_ja.html +++ b/docs/manual/RingModSpacer/RingModSpacer_ja.html @@ -2,537 +2,575 @@ - - - - -RingModSpacer_ja - - - - + + + + + RingModSpacer_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

RingModSpacer

-

-

RingModSpacerリング モッド スペーサ -は激しい歪みを生じるサイドチェインリミッタです。全波整流したサイドチェイン入力によってメインの入力を振幅変調することで、サイドチェインを足し合わせてもクリッピングしないような隙間をメインの入力にこじ開けることができます。当然、隙間をこじ開けられたメインの入力は歪むので使いどころが難しいです。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -552,207 +590,223 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

使い方

-

まず、メイン入力とサイドチェイン入力を用意します。クリーンにしておきたい信号をサイドチェインに入力してください。メインは歪みがかかります。サイドチェイン入力を行う方法はお使いの -DAW のマニュアルを参照してください。

-

次に Input と Side セクションの Gain -によってそれぞれのピーク振幅を 0 dB -まで上げます。この手順によって効果が最大となりますが、飛ばしても問題ありません。

-

後は Ring-Sub. MixAttack 、 -Release を調整して軽く質感を整えれば設定完了です。

-

RingModSpacer -はあくまでも歪みを加えるエフェクタです。歪みが不要であれば、しきい値 -(threshold) を -∞ dB -に設定したサイドチェインリミッタのほうが用途に適しています。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

-
    -
  • [dB] : デシベル (decibel) 。
  • -
  • [s] : 秒 (second) 。
  • -
-

Gain

-
-
Output [dB]
-
-

出力ゲインです。

-
-
Side Mix
-
-

サイドチェイン入力を出力に混ぜる量です。

-
-
Ring-Sub. Mix
-
-

波形に隙間を作る方法をリングモジュレーション方式と差分方式の間で切り替えます。

-

Ring-Sub. Mix が 0 のときはリングモジュレーション方式、 -1 のときは差分方式となります。

-
-
-

Misc.

-
-
Smoothing [s]
-
-

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

-
-
-

Input, Side

-
-
Gain[dB]
-
-

リミッタの前にかけられる入力ゲイン(メイクアップゲイン)です。

-
-
Attack [s]
-
-

リミッタのアタック時間です。

-
-
Release [s]
-
-

リミッタのリリース時間です。

-
-
-

チェンジログ

-
    -
  • 0.1.4 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.3 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.1 -
      -
    • Gain -パラメータの更新タイミングをマウスボタンを上げた時点に変更。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

RingModSpacer のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

まず、メイン入力とサイドチェイン入力を用意します。クリーンにしておきたい信号をサイドチェインに入力してください。メインは歪みがかかります。サイドチェイン入力を行う方法はお使いの + DAW のマニュアルを参照してください。

+

次に Input と Side セクションの Gain + によってそれぞれのピーク振幅を 0 dB + まで上げます。この手順によって効果が最大となりますが、飛ばしても問題ありません。

+

後は Ring-Sub. MixAttack 、 + Release を調整して軽く質感を整えれば設定完了です。

+

RingModSpacer + はあくまでも歪みを加えるエフェクタです。歪みが不要であれば、しきい値 + (threshold) を -∞ dB + に設定したサイドチェインリミッタのほうが用途に適しています。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

角かっこ [] で囲まれているのは単位です。以下は単位の一覧です。

+
    +
  • [dB] : デシベル (decibel) 。
  • +
  • [s] : 秒 (second) 。
  • +
+

+
+
Output [dB]
+
+

出力ゲインです。

+
+
Side Mix
+
+

サイドチェイン入力を出力に混ぜる量です。

+
+
Ring-Sub. Mix
+
+

波形に隙間を作る方法をリングモジュレーション方式と差分方式の間で切り替えます。

+

Ring-Sub. Mix が 0 + のときはリングモジュレーション方式、 1 + のときは差分方式となります。

+
+
+

+
+
Smoothing [s]
+
+

パラメータが変更されたときに、変更先の値に到達するまでにかかる大まかな時間です。

+
+
+

+
+
Gain[dB]
+
+

リミッタの前にかけられる入力ゲイン(メイクアップゲイン)です。

+
+
Attack [s]
+
+

リミッタのアタック時間です。

+
+
Release [s]
+
+

リミッタのリリース時間です。

+
+
+

+
    +
  • 0.1.4 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.3 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.1 +
      +
    • Gain + パラメータの更新タイミングをマウスボタンを上げた時点に変更。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

RingModSpacer のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/SevenDelay/SevenDelay_en.html b/docs/manual/SevenDelay/SevenDelay_en.html index 177b2832..fa139dc8 100644 --- a/docs/manual/SevenDelay/SevenDelay_en.html +++ b/docs/manual/SevenDelay/SevenDelay_en.html @@ -2,534 +2,569 @@ - - - - -SevenDelay_en - - - - + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

SevenDelay

-

-

SevenDelay is a stereo delay with 7th order lagrange interpolated -fractional delay and 7x oversampling.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -549,166 +584,174 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

When the value of Smooth is near zero and change the -value of Allpass Cut too fast, SevenDelay may output very -loud click noise. This is caused by the filter which becomes unstable -when cutoff frequency moves too fast. Recommendation is not to set -Smooth parameter too low unless you have some specific -purpose.

-

When the value of Time is set to minimum and the value -of Feedback is set to maximum, SevenDelay outputs direct -current (DC). To remove DC, Set DC Kill to be greater than -1.0.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Delay

-
-
Time
-
-

Delay time. Range is 0.0001 to 8.0.

-
    -
  • If Sync is on and Time is less than 1.0, -then delay time is set to Time / 16 beats.
  • -
  • If Sync is on and Time is greater or equal -to 1.0, then delay time is set to floor(2 * Time) / 32 -beats.
  • -
  • Otherwise, delay time is set to Time seconds.
  • -
-
-
Feedback
-
-

Delay feedback. Range is 0.0 to 1.0.

-
-
Stereo
-
-

L/R stereo offset. Range is -1.0 to 1.0.

-
    -
  • If Stereo is less than 0.0, then left channel delay -time is modified to timeL * (1.0 + Stereo).
  • -
  • Otherwise, right channel delay time is modified to -timeR * (1.0 - Stereo).
  • -
-
-
Wet
-
-

Output volume of delayed signal. Range is 0.0 to 1.0.

-
-
Dry
-
-

Output volume of input signal. Range is 0.0 to 1.0.

-
-
Sync
-
-

Toggle tempo sync.

-
-
Negative
-
-

Toggle negative feedback. This may be useful when delay time is very -short.

-
-
In/Out Spread/Pan
-
-

Panning controls. Range is 0.0 to 1.0.

-

In/Out Spread controls stereo spread. -In/Out Pan controls stereo panning.

-

These parameter can be used for inverse panning, ping-pong delay -etc.

-
    -
  • For inverse panning, set -[InSpread, InPan, OutSpread, OutPan] to -[0.0, 0.5, 1.0, 0.5].
  • -
  • For ping-pong delay, set -[InSpread, InPan, OutSpread, OutPan] to -[1.0, 0.5, 0.0, 0.5].
  • -
-
signalL = inL + spread * (inR - inL)
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

When the value of Smooth is near zero and change the + value of Allpass Cut too fast, SevenDelay may output very + loud click noise. This is caused by the filter which becomes unstable + when cutoff frequency moves too fast. Recommendation is not to set + Smooth parameter too low unless you have some specific + purpose.

+

When the value of Time is set to minimum and the value + of Feedback is set to maximum, SevenDelay outputs direct + current (DC). To remove DC, Set DC Kill to be greater + than 1.0.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Time
+
+

Delay time. Range is 0.0001 to 8.0.

+
    +
  • If Sync is on and Time is less than 1.0, + then delay time is set to Time / 16 beats.
  • +
  • If Sync is on and Time is greater or + equal to 1.0, then delay time is set to + floor(2 * Time) / 32 beats.
  • +
  • Otherwise, delay time is set to Time seconds.
  • +
+
+
Feedback
+
+

Delay feedback. Range is 0.0 to 1.0.

+
+
Stereo
+
+

L/R stereo offset. Range is -1.0 to 1.0.

+
    +
  • If Stereo is less than 0.0, then left channel delay + time is modified to timeL * (1.0 + Stereo).
  • +
  • Otherwise, right channel delay time is modified to + timeR * (1.0 - Stereo).
  • +
+
+
Wet
+
+

Output volume of delayed signal. Range is 0.0 to 1.0.

+
+
Dry
+
+

Output volume of input signal. Range is 0.0 to 1.0.

+
+
Sync
+
+

Toggle tempo sync.

+
+
Negative
+
+

Toggle negative feedback. This may be useful when delay time is + very short.

+
+
In/Out Spread/Pan
+
+

Panning controls. Range is 0.0 to 1.0.

+

In/Out Spread controls stereo spread. + In/Out Pan controls stereo panning.

+

These parameter can be used for inverse panning, ping-pong delay + etc.

+
    +
  • For inverse panning, set + [InSpread, InPan, OutSpread, OutPan] to + [0.0, 0.5, 1.0, 0.5].
  • +
  • For ping-pong delay, set + [InSpread, InPan, OutSpread, OutPan] to + [1.0, 0.5, 0.0, 0.5].
  • +
+
signalL = inL + spread * (inR - inL)
 signalR = inL + (1.0f - spread) * (inR - inL)
 
 if (pan < 0.5f) {
@@ -719,312 +762,319 @@ 

Delay

outL = signalL * (2.0f - 2.0f * pan) outR = (pan - 0.5f) * signalL + (1.5f - pan) * signalR }
-
-
Allpass Cut
-
-

SFV allpass filter cutoff frequency. Range is 90.0 to 20000.0.

-

If Allpass Cut is 20000.0, filter will be bypassed.

-
-
Allpass Q
-
-

SFV allpass filter resonance. Range is 0.00001 to 1.0.

-
-
DC Kill
-
-

Cutoff frequency of biquad highpass filter. Range is 1.0 to -120.0.

-

DC Kill removes direct current from delay feedback when -the value is set to be greater than 1.0.

-
-
Smooth
-
-

Parameter smoothing. Range is 0.0 to 1.0. Unit is seconds.

-

Some parameter may produce noise when the value is changed too fast. -Increasing Smooth reduces those noise.

-
-
-

LFO

-
-
To Time
-
-

LFO modulation amount to delay time. Range is 0.0 to 1.0.

-
-
To Allpass
-
-

LFO modulation amount to allpass cutoff frequency. Range is 0.0 to -1.0.

-
-
Freq
-
-

LFO frequency. Range is 0.01 to 100.0.

-
-
Shape
-
-

LFO waveform shape. Range is 0.01 to 10.0.

-
sign = 1 if (phase > π),
+  
+
Allpass Cut
+
+

SFV allpass filter cutoff frequency. Range is 90.0 to 20000.0.

+

If Allpass Cut is 20000.0, filter will be + bypassed.

+
+
Allpass Q
+
+

SFV allpass filter resonance. Range is 0.00001 to 1.0.

+
+
DC Kill
+
+

Cutoff frequency of biquad highpass filter. Range is 1.0 to + 120.0.

+

DC Kill removes direct current from delay feedback + when the value is set to be greater than 1.0.

+
+
Smooth
+
+

Parameter smoothing. Range is 0.0 to 1.0. Unit is seconds.

+

Some parameter may produce noise when the value is changed too + fast. Increasing Smooth reduces those noise.

+
+
+

+
+
To Time
+
+

LFO modulation amount to delay time. Range is 0.0 to 1.0.

+
+
To Allpass
+
+

LFO modulation amount to allpass cutoff frequency. Range is 0.0 to + 1.0.

+
+
Freq
+
+

LFO frequency. Range is 0.01 to 100.0.

+
+
Shape
+
+

LFO waveform shape. Range is 0.01 to 10.0.

+
sign = 1 if (phase > π),
       -1 if (phase < π),
        0 if (phase == π)
 lfo = sign * abs(sin(phase))^shape
-
-
Phase
-
-

LFO initial phase. Range is 0.0 to 2π.

-

LFO phase is reset to Phase for each time host starts -playing.

-
-
Hold
-
-

Toggle LFO phase hold. This may be useful for live performance.

-
-
-

Change Log

-
    -
  • 0.1.30 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.29 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.28 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.27 -
      -
    • Changed to use double precision floating point number.
    • -
    • Fixed presets. Bypass parameter was enabled in old -presets.
    • -
  • -
  • 0.1.26 -
      -
    • Added note event input to control delay times.
    • -
  • -
  • 0.1.25 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.24 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.23 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.22 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.21 -
      -
    • Resume macOS build.
    • -
  • -
  • 0.1.20 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.18 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.17 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.16 -
      -
    • Changed font to Tinos.
    • -
    • Fixed the clipping of knob.
    • -
  • -
  • 0.1.15 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.14 -
      -
    • Changed In Pan and Out Pan from stereo -balance to stereo panning.
    • -
    • Added time readout display.
    • -
  • -
  • 0.1.13 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.12 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.11 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.10 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.8 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.7 -
      -
    • Fixed to stop sounds when deactivated.
    • -
  • -
  • 0.1.6 -
      -
    • Enabled GUI for Linux build.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed wobbling knob bug.
    • -
  • -
  • 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.
    • -
    • Fixed a bug that LFO Hold on/off was inverted.
    • -
    • Removed a modulation from LFO to allpass mixing.
    • -
  • -
  • 0.1.2 -
      -
    • Changed internal parameter structure.
    • -
    • Changed UI looks.
    • -
  • -
  • 0.1.1 -
      -
    • Disabled GUI for Linux build. This is a makeshift change while -tracking down a bug related to VSTGUI.
    • -
    • Changed tuning of To Allpass of LFO.
    • -
    • Changed minimal value of DC Kill to 5.0 Hz.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

SevenDelay 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.

+
+
Phase
+
+

LFO initial phase. Range is 0.0 to 2π.

+

LFO phase is reset to Phase for each time host starts + playing.

+
+
Hold
+
+

Toggle LFO phase hold. This may be useful for live performance.

+
+
+

+
    +
  • 0.1.30 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.29 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.28 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.27 +
      +
    • Changed to use double precision floating point number.
    • +
    • Fixed presets. Bypass parameter was enabled in old + presets.
    • +
  • +
  • 0.1.26 +
      +
    • Added note event input to control delay times.
    • +
  • +
  • 0.1.25 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.24 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.23 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.22 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.21 +
      +
    • Resume macOS build.
    • +
  • +
  • 0.1.20 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.18 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.17 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.16 +
      +
    • Changed font to Tinos.
    • +
    • Fixed the clipping of knob.
    • +
  • +
  • 0.1.15 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.14 +
      +
    • Changed In Pan and Out Pan from stereo + balance to stereo panning.
    • +
    • Added time readout display.
    • +
  • +
  • 0.1.13 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.12 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.11 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.10 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.8 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.7 +
      +
    • Fixed to stop sounds when deactivated.
    • +
  • +
  • 0.1.6 +
      +
    • Enabled GUI for Linux build.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed wobbling knob bug.
    • +
  • +
  • 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.
    • +
    • Fixed a bug that LFO Hold on/off was inverted.
    • +
    • Removed a modulation from LFO to allpass mixing.
    • +
  • +
  • 0.1.2 +
      +
    • Changed internal parameter structure.
    • +
    • Changed UI looks.
    • +
  • +
  • 0.1.1 +
      +
    • Disabled GUI for Linux build. This is a makeshift change while + tracking down a bug related to VSTGUI.
    • +
    • Changed tuning of To Allpass of LFO.
    • +
    • Changed minimal value of DC Kill to 5.0 Hz.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

SevenDelay is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/SevenDelay/SevenDelay_ja.html b/docs/manual/SevenDelay/SevenDelay_ja.html index 5e18a5d2..94a6ef57 100644 --- a/docs/manual/SevenDelay/SevenDelay_ja.html +++ b/docs/manual/SevenDelay/SevenDelay_ja.html @@ -2,536 +2,572 @@ - - - - -SevenDelay_ja - - - - + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

SevenDelay

-

-

SevenDelayセブン ディレイ -は7次のラグランジュ補間による分数ディレイと7倍のオーバーサンプリングを使ったステレオディレイです。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -551,170 +587,179 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

Smooth の値が 0 に近く、 Allpass Cut -の値を速く動かしすぎたときに、非常に大きな音量のクリックノイズが出力されることがあります。これは -Allpass Cut -で使われているフィルタのカットオフ周波数が、速く、大きく、動きすぎると出力が発散する場合があることが原因です。特別な目的がない限り、Smooth -パラメータを低く設定しすぎないことを推奨します。

-

Time の値が最小かつ Feedback -の値が最大に設定されると直流信号が出ることがあります。 -DC Kill を 1.0 -より大きな値に設定することで直流信号を除去できます。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Delay

-
-
Time
-
-

ディレイ時間。範囲は 0.0001 から 8.0 です。

-
    -
  • もし Sync が有効で Time が 1.0 -より小さいときは、ディレイ時間が Time / 16 -拍に設定されます。
  • -
  • もし Sync が有効で Time が 1.0 -以上のときは、ディレイ時間が floor(2 * Time) / 32 -拍に設定されます。
  • -
  • それ以外のときは、ディレイ時間が time -秒に設定されます。
  • -
-
-
Feedback
-
-

ディレイのフィードバック。範囲は 0.0 から 1.0 です。

-
-
Stereo
-
-

左右のディレイ時間のオフセット。範囲は -1.0 から 1.0 です。

-
    -
  • もし Stereo が 0.0 -より小さいときは、左チャンネルのディレイ時間が -timeL * (1.0 + Stereo) に変更されます。
  • -
  • それ以外のときは、右チャンネルのディレイ時間が -timeR * (1.0 - Stereo) に変更されます。
  • -
-
-
Wet
-
-

ディレイ信号の出力音量。範囲は 0.0 から 1.0 。

-
-
Dry
-
-

入力信号の出力音量。範囲は 0.0 から 1.0 。

-
-
Sync
-
-

テンポシンクの切り替え。

-
-
Negative
-
-

負のフィードバックの切り替え。ディレイ時間がとても短いときに役立つかもしれません。

-
-
Spread/Pan
-
-

入力の広がり (In Spread) 、入力のパン (In Pan) 、出力の広がり (Out -Spread) 、出力のパン (Out Pan) 。範囲は 0.0 から 1.0 です。

-

In SpreadOut Spread -はステレオの広がりを制御します。 In Pan 、 -Out Pan はステレオのパンニングを制御します。

-

これらのパラメータはパンニングの逆転やピンポンディレイを作るときに使えます。

-
    -
  • パンニングの逆転を行うには -[InSpread, InPan, OutSpread, OutPan] を -[0.0, 0.5, 1.0, 0.5] に設定します。
  • -
  • ピンポンディレイにするには -[InSpread, InPan, OutSpread, OutPan] を -[1.0, 0.5, 0.0, 0.5] に設定します。
  • -
-
signalL = inL + spread * (inR - inL)
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

Smooth の値が 0 に近く、 Allpass Cut + の値を速く動かしすぎたときに、非常に大きな音量のクリックノイズが出力されることがあります。これは + Allpass Cut + で使われているフィルタのカットオフ周波数が、速く、大きく、動きすぎると出力が発散する場合があることが原因です。特別な目的がない限り、Smooth + パラメータを低く設定しすぎないことを推奨します。

+

Time の値が最小かつ Feedback + の値が最大に設定されると直流信号が出ることがあります。 + DC Kill を 1.0 + より大きな値に設定することで直流信号を除去できます。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

+
+
Time
+
+

ディレイ時間。範囲は 0.0001 から 8.0 です。

+
    +
  • もし Sync が有効で Time が 1.0 + より小さいときは、ディレイ時間が Time / 16 + 拍に設定されます。
  • +
  • もし Sync が有効で Time が 1.0 + 以上のときは、ディレイ時間が floor(2 * Time) / 32 + 拍に設定されます。
  • +
  • それ以外のときは、ディレイ時間が time + 秒に設定されます。
  • +
+
+
Feedback
+
+

ディレイのフィードバック。範囲は 0.0 から 1.0 です。

+
+
Stereo
+
+

左右のディレイ時間のオフセット。範囲は -1.0 から 1.0 です。

+
    +
  • もし Stereo が 0.0 + より小さいときは、左チャンネルのディレイ時間が + timeL * (1.0 + Stereo) に変更されます。
  • +
  • それ以外のときは、右チャンネルのディレイ時間が + timeR * (1.0 - Stereo) に変更されます。
  • +
+
+
Wet
+
+

ディレイ信号の出力音量。範囲は 0.0 から 1.0 。

+
+
Dry
+
+

入力信号の出力音量。範囲は 0.0 から 1.0 。

+
+
Sync
+
+

テンポシンクの切り替え。

+
+
Negative
+
+

負のフィードバックの切り替え。ディレイ時間がとても短いときに役立つかもしれません。

+
+
Spread/Pan
+
+

入力の広がり (In Spread) 、入力のパン (In Pan) 、出力の広がり (Out + Spread) 、出力のパン (Out Pan) 。範囲は 0.0 から 1.0 です。

+

In SpreadOut Spread + はステレオの広がりを制御します。 In Pan 、 + Out Pan はステレオのパンニングを制御します。

+

これらのパラメータはパンニングの逆転やピンポンディレイを作るときに使えます。

+
    +
  • パンニングの逆転を行うには + [InSpread, InPan, OutSpread, OutPan] を + [0.0, 0.5, 1.0, 0.5] に設定します。
  • +
  • ピンポンディレイにするには + [InSpread, InPan, OutSpread, OutPan] を + [1.0, 0.5, 0.0, 0.5] に設定します。
  • +
+
signalL = inL + spread * (inR - inL)
 signalR = inL + (1.0f - spread) * (inR - inL)
 
 if (pan < 0.5f) {
@@ -725,313 +770,321 @@ 

Delay

outL = signalL * (2.0f - 2.0f * pan) outR = (pan - 0.5f) * signalL + (1.5f - pan) * signalR }
-
-
Allpass Cut
-
-

SVF オールパスフィルタのカットオフ周波素。範囲は 90.0 から 20000.0 -です。

-

tone が 20000.0 のとき、フィルタはバイパスされます。

-
-
Allpass Q
-
-

SVF オールパスフィルタのレゾナンス。範囲は 0.00001 から 1.0 -です。

-

値が大きいほどレゾナンスが強くなります。

-
-
DC Kill
-
-

ハイパスフィルタのカットオフ周波数。範囲は 5.0 から 120.0 です。

-

DC Kill を 5.0 -より大きく設定すればディレイのフィードバックから直流信号を取り除くことができます。

-
-
Smooth
-
-

パラメータ平滑化の度合い。範囲は 0.0 から 1.0 で、単位は秒です。

-

パラメータによっては値が急激に変化するとノイズが出ることがあります。 -Smooth -の値を大きめにすることで、値の変化を緩やかにしてノイズを減らすことができます。

-
-
-

LFO

-
-
To Time
-
-

LFO によるディレイ時間の変調量。範囲は 0.0 から 1.0 です。

-
-
To Allpass
-
-

LFO によるオールパスフィルタのカットオフ周波数の変調量。範囲は 0.0 -から 1.0 です。

-
-
Frequency
-
-

LFO の周波数。範囲は 0.01 から 100.0 。

-
-
Shape
-
-

LFO の波形。範囲は 0.01 から 10.0 。

-
sign = 1 if (phase > π),
+  
+
Allpass Cut
+
+

SVF オールパスフィルタのカットオフ周波素。範囲は 90.0 から 20000.0 + です。

+

tone が 20000.0 + のとき、フィルタはバイパスされます。

+
+
Allpass Q
+
+

SVF オールパスフィルタのレゾナンス。範囲は 0.00001 から 1.0 + です。

+

値が大きいほどレゾナンスが強くなります。

+
+
DC Kill
+
+

ハイパスフィルタのカットオフ周波数。範囲は 5.0 から 120.0 + です。

+

DC Kill を 5.0 + より大きく設定すればディレイのフィードバックから直流信号を取り除くことができます。

+
+
Smooth
+
+

パラメータ平滑化の度合い。範囲は 0.0 から 1.0 + で、単位は秒です。

+

パラメータによっては値が急激に変化するとノイズが出ることがあります。 + Smooth + の値を大きめにすることで、値の変化を緩やかにしてノイズを減らすことができます。

+
+
+

+
+
To Time
+
+

LFO によるディレイ時間の変調量。範囲は 0.0 から 1.0 です。

+
+
To Allpass
+
+

LFO によるオールパスフィルタのカットオフ周波数の変調量。範囲は 0.0 + から 1.0 です。

+
+
Frequency
+
+

LFO の周波数。範囲は 0.01 から 100.0 。

+
+
Shape
+
+

LFO の波形。範囲は 0.01 から 10.0 。

+
sign = 1 if (phase > π),
       -1 if (phase < π),
        0 if (phase == π)
 lfo = sign * abs(sin(phase))^shape
-
-
Phase
-
-

LFO の位相の初期値。範囲は 0.0 から 2π 。

-

LFO の位相はホストが演奏を開始するたびに Phase -の値にリセットされます。

-
-
Hold
-
-

LFO -の位相のホールドの切り替え。ライブ演奏などで役に立つかもしれません。

-
-
-

チェンジログ

-
    -
  • 0.1.30 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.29 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.28 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.27 -
      -
    • 倍精度浮動小数点数を使うように変更。
    • -
    • プリセットを修正。古いプリセットでは Bypass -パラメータが有効になっていた。
    • -
  • -
  • 0.1.26 -
      -
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • -
  • -
  • 0.1.25 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.24 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.23 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.22 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.21 -
      -
    • macOS ビルドを復帰。
    • -
  • -
  • 0.1.20 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.19 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.18 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.17 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.16 -
      -
    • フォントを Tinos に変更。
    • -
    • GUI のつまみが正しくレンダリングされるように修正。
    • -
  • -
  • 0.1.15 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.14 -
      -
    • In PanOut Pan -をステレオバランスからステレオパンニングに変更。
    • -
    • 時間の値の表示を追加。
    • -
  • -
  • 0.1.13 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.12 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.11 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.10 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.9 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.8 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.7 -
      -
    • 非アクティブ化で音が止まるように修正。
    • -
  • -
  • 0.1.6 -
      -
    • Linux ビルドの GUI を有効化。
    • -
  • -
  • 0.1.5 -
      -
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • -
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • -
    • リロード時にクラッシュするバグを修正。
    • -
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • -
  • -
  • 0.1.3 -
      -
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • -
    • LFO Hold のオン・オフが逆転していたバグを修正。
    • -
    • オールパスのミキシングにかかっていた LFO による変調を除去。
    • -
  • -
  • 0.1.2 -
      -
    • 内部のパラメータの構造を変更。
    • -
    • UI の見た目を変更。
    • -
  • -
  • 0.1.1 -
      -
    • Linux ビルドの GUI を無効化。VSTGUI -に関するバグが治るまでの応急処置。
    • -
    • LFO の To Allpass のチューニングを変更。
    • -
    • DC Kill の最小値を 5.0 Hz に変更。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

SevenDelay のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+
+
Phase
+
+

LFO の位相の初期値。範囲は 0.0 から 2π 。

+

LFO の位相はホストが演奏を開始するたびに Phase + の値にリセットされます。

+
+
Hold
+
+

LFO + の位相のホールドの切り替え。ライブ演奏などで役に立つかもしれません。

+
+
+

+
    +
  • 0.1.30 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.29 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.28 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.27 +
      +
    • 倍精度浮動小数点数を使うように変更。
    • +
    • プリセットを修正。古いプリセットでは Bypass + パラメータが有効になっていた。
    • +
  • +
  • 0.1.26 +
      +
    • ディレイ時間を制御するためのノートイベント入力を追加。
    • +
  • +
  • 0.1.25 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.24 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.23 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.22 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.21 +
      +
    • macOS ビルドを復帰。
    • +
  • +
  • 0.1.20 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.19 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.18 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.17 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.16 +
      +
    • フォントを Tinos に変更。
    • +
    • GUI のつまみが正しくレンダリングされるように修正。
    • +
  • +
  • 0.1.15 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.14 +
      +
    • In PanOut Pan + をステレオバランスからステレオパンニングに変更。
    • +
    • 時間の値の表示を追加。
    • +
  • +
  • 0.1.13 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.12 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.11 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.10 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.9 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.8 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.7 +
      +
    • 非アクティブ化で音が止まるように修正。
    • +
  • +
  • 0.1.6 +
      +
    • Linux ビルドの GUI を有効化。
    • +
  • +
  • 0.1.5 +
      +
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • +
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • +
    • リロード時にクラッシュするバグを修正。
    • +
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • +
  • +
  • 0.1.3 +
      +
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • +
    • LFO Hold のオン・オフが逆転していたバグを修正。
    • +
    • オールパスのミキシングにかかっていた LFO による変調を除去。
    • +
  • +
  • 0.1.2 +
      +
    • 内部のパラメータの構造を変更。
    • +
    • UI の見た目を変更。
    • +
  • +
  • 0.1.1 +
      +
    • Linux ビルドの GUI を無効化。VSTGUI + に関するバグが治るまでの応急処置。
    • +
    • LFO の To Allpass のチューニングを変更。
    • +
    • DC Kill の最小値を 5.0 Hz に変更。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

SevenDelay のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/SyncSawSynth/SyncSawSynth_en.html b/docs/manual/SyncSawSynth/SyncSawSynth_en.html index 1d5d66fd..3a8ee473 100644 --- a/docs/manual/SyncSawSynth/SyncSawSynth_en.html +++ b/docs/manual/SyncSawSynth/SyncSawSynth_en.html @@ -2,538 +2,575 @@ - - - - -SyncSawSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

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.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -553,612 +590,629 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

The peak value of gain envelope is determined by the length of -attack. When gain envelope attack is small, the peak may be a bit higher -than usual.

-

When turning Dirty Filter on, a glitch may pops at the -timing of note on.

-

Some parameter configuration leads to massive DC offset. To be stay -safe, it’s better to insert high-pass filter after SyncSawSynth. -Monitoring output with oscilloscope is recommended.

-

Terms

-

An oscillator of SyncSawSynth internally have 2 separate oscillators. -One is for generating waveform, and other is to trigger hardsync. In -term of hardsync, waveform generator is called slave and oscillator used -to trigger is called master.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Osc

-
-
Gain
-
-

Oscillator gain. Range is 0.0 to 1.0.

-
-
Semi
-
-

Oscillator pitch. Range is -24.0 to 24.0. Unit is semitone.

-

The value will be floored. For example 6.3 becomes to 6 and -11.5 -becomes to -12.

-
-
Cent
-
-

Oscillator pitch. Range is -100.0 to 100.0. Unit is cent.

-
-
Sync and SyncType
-
-

Meaning of the value of Sync will be changed by -SyncType. Range of Sync is 0.01 to 16.0.

-

SyncType has 4 options.

-
    -
  • Off
  • -
  • Ratio
  • -
  • Fixed-Master
  • -
  • Fixed-Slave
  • -
-

Option Off turns off hardsync by setting master -frequency to 0 Hz. However, if the value of Osc*->Sync1 -is greater than 0, phase of master will be moved and possibly triggers -hardsync. When SyncType is Off, the value of -Sync won’t be used.

-

Option Ratio sets note frequency to master frequency. -Slave frequency will be the value of Sync multiplied by -master frequency. Also the destinations of modulation from -To Freq/Sync will be swapped.

-

Option Fixed-Master sets note frequency to slave -frequency. Master frequency will be only determined by the value of -Sync.

-

Option Fixed-Slave sets note frequency to master -frequency. Slave frequency will be only determined by the value of -Sync.

-

Below is equation of conversion of the value Sync to -freqeuncy used for Fixed-Master and -Fixed-Slave.

-
frequency = 2 * Sync^3
-
-
OscType
-
-

Oscillator waveform.

-

0 to 10th order PTR sawtooth oscillator and sine wave are -available.

-
-
Phase
-
-

Oscillator phase. Range is 0.0 to 1.0.

-

If Lock is checked, phase will be reset for each note -on.

-

If Invert on Osc2 is checked, phase will be -inverted by changing sign of the output of Osc2.

-
-
Unison
-
-

When checked, add same tone with different phase for each note. CPU -load will also be doubled.

-
-
Number of Voice
-
-

Maximum polyphony. Lowering the number of this option reduces CPU -load.

-
-
-

Modulation

-
-
Osc1->Sync1
-
-

Modulation from Osc1 output to Osc1 master -frequency. Range is 0.0 to 1.0.

-
-
Osc1->Freq2
-
-

Modulation from Osc1 output to Osc2 slave -frequency. Range is 0.0 to 1.0.

-
-
Osc2->Sync1
-
-

Modulation from Osc2 output to Osc1 master -frequency. Range is 0.0 to 1.0.

-
-
Attack
-
-

Attack of modulation AD envelope. Range is 0.0 to 4.0. Unit is -seconds.

-

Equation of AD envelope.

-
env(t) := t^a * exp(-b * t)
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

The peak value of gain envelope is determined by the length of + attack. When gain envelope attack is small, the peak may be a bit + higher than usual.

+

When turning Dirty Filter on, a glitch may pops at the + timing of note on.

+

Some parameter configuration leads to massive DC offset. To be stay + safe, it’s better to insert high-pass filter after SyncSawSynth. + Monitoring output with oscilloscope is recommended.

+

+

An oscillator of SyncSawSynth internally have 2 separate + oscillators. One is for generating waveform, and other is to trigger + hardsync. In term of hardsync, waveform generator is called slave and + oscillator used to trigger is called master.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Gain
+
+

Oscillator gain. Range is 0.0 to 1.0.

+
+
Semi
+
+

Oscillator pitch. Range is -24.0 to 24.0. Unit is semitone.

+

The value will be floored. For example 6.3 becomes to 6 and -11.5 + becomes to -12.

+
+
Cent
+
+

Oscillator pitch. Range is -100.0 to 100.0. Unit is cent.

+
+
Sync and SyncType
+
+

Meaning of the value of Sync will be changed by + SyncType. Range of Sync is 0.01 to 16.0.

+

SyncType has 4 options.

+
    +
  • Off
  • +
  • Ratio
  • +
  • Fixed-Master
  • +
  • Fixed-Slave
  • +
+

Option Off turns off hardsync by setting master + frequency to 0 Hz. However, if the value of + Osc*->Sync1 is greater than 0, phase of master will be + moved and possibly triggers hardsync. When SyncType is + Off, the value of Sync won’t be used.

+

Option Ratio sets note frequency to master frequency. + Slave frequency will be the value of Sync multiplied by + master frequency. Also the destinations of modulation from + To Freq/Sync will be swapped.

+

Option Fixed-Master sets note frequency to slave + frequency. Master frequency will be only determined by the value of + Sync.

+

Option Fixed-Slave sets note frequency to master + frequency. Slave frequency will be only determined by the value of + Sync.

+

Below is equation of conversion of the value Sync to + freqeuncy used for Fixed-Master and + Fixed-Slave.

+
frequency = 2 * Sync^3
+
+
OscType
+
+

Oscillator waveform.

+

0 to 10th order PTR sawtooth oscillator and sine wave are + available.

+
+
Phase
+
+

Oscillator phase. Range is 0.0 to 1.0.

+

If Lock is checked, phase will be reset for each note + on.

+

If Invert on Osc2 is checked, phase will + be inverted by changing sign of the output of Osc2.

+
+
Unison
+
+

When checked, add same tone with different phase for each note. CPU + load will also be doubled.

+
+
Number of Voice
+
+

Maximum polyphony. Lowering the number of this option reduces CPU + load.

+
+
+

+
+
Osc1->Sync1
+
+

Modulation from Osc1 output to Osc1 + master frequency. Range is 0.0 to 1.0.

+
+
Osc1->Freq2
+
+

Modulation from Osc1 output to Osc2 slave + frequency. Range is 0.0 to 1.0.

+
+
Osc2->Sync1
+
+

Modulation from Osc2 output to Osc1 + master frequency. Range is 0.0 to 1.0.

+
+
Attack
+
+

Attack of modulation AD envelope. Range is 0.0 to 4.0. Unit is + seconds.

+

Equation of AD envelope.

+
env(t) := t^a * exp(-b * t)
 
 t: time.
 a, b: some constants.
-
-
Curve
-
-

Curve of modulation AD envelope. Range is 1.0 to 96.0.

-

The length of decay is depends on the value of Curve.

-
-
To Freq1 (AD Envelope)
-
-

Modulation from AD envelope to Osc1 slave frequency. -Range is 0.0 to 16.0.

-
-
To Sync1 (AD Envelope)
-
-

Modulation from AD envelope to Osc1 master frequency. -Range is 0.0 to 16.0.

-
-
To Freq2 (AD Envelope)
-
-

Modulation from AD envelope to Osc2 slave frequency. -Range is 0.0 to 16.0.

-
-
To Sync2 (AD Envelope)
-
-

Modulation from AD envelope to Osc2 master frequency. -Range is 0.0 to 16.0.

-
-
LFO
-
-

LFO Frequency. Range is 0.01 to 20.0. Unit is Hz.

-
-
NoiseMix
-
-

Ratio of LFO and pink noise. Range is 0.0 to 1.0.

-

If the value is 0.0, the output becomes LFO only. If the value is -1.0, the output becomes pink noise only.

-

Note that modulation of pink noise causes some nasty spikes. To avoid -spikes, set the value of To Freq/Sync to lower than 1.0. -Spike is clipped to avoid exceeding 0dB.

-
-
To Freq1 (LFO/Noise)
-
-

Modulation from LFO/Noise to Osc1 slave frequency. Range -is 0.0 to 16.0.

-
-
To Sync1 (LFO/Noise)
-
-

Modulation from LFO/Noise to Osc1 master frequency. -Range is 0.0 to 16.0.

-
-
To Freq2 (LFO/Noise)
-
-

Modulation from LFO/Noise to Osc2 slave frequency. -Range is 0.0 to 16.0.

-
-
To Sync2 (LFO/Noise)
-
-

Modulation from LFO/Noise to Osc2 master frequency. -Range is 0.0 to 16.0.

-
-
-

Gain

-
-
Gain
-
-

Gain of the synthesizer output. Range is 0.0 to 1.0.

-
-
A
-
-

Length of gain envelope attack. Range is 0.0001 to 16.0. Unit is -seconds.

-
-
D
-
-

Length of gain envelope decay. Range is 0.0001 to 16.0. Unit is -seconds.

-
-
S
-
-

Value of gain envelope sustain. Range is 0.0 to 1.0.

-
-
R
-
-

Length of gain envelope release. Range is 0.0001 to 16.0. Unit is -seconds.

-
-
Curve
-
-

Curve of gain envelope. Range is 0.0 to 1.0.

-

This curve is linear interpolation between direct output and -saturated output.

-
gainEnv(t) := expEnv(t) * (tanh(3 * Curve * expEnv(t)) - expEnv(t))
-
-
-

Filter

-
-
Cut
-
-

Filter cutoff frequency. Range is 20.0 to 20000.0. Unit is Hz.

-
-
Res
-
-

Biquad filter resonance. Range is 0.001 to 1.0.

-

When the value is set to minimum, the output volume will be very -small.

-
-
Feed
-
-

Feedback of serial filter section. Range is 0.0 to 1.0.

-

Internally, 4 biquad filters are serially connected. Feedback send -the last output of the filter to first biquad filter in serial -section.

-
-
Sat
-
-

Saturation of filter. Range is 0.01 to 8.0.

-

This value is multiplied to the sum of input signal and feedback -before going into wave shaper.

-
filterIn = shaper(Sat * (input - Feed * filterOut))
-
-
Dirty Buffer
-
-

If Dirty Buffer is not checked, the buffer of filter -will be cleared for each note on.

-

Note that while Dirty Filter is turned on, sometimes a -glitch pops up at note on.

-
-
FilterType
-
-

Type of filter.

-
    -
  • LP : Low-pass
  • -
  • HP : High-pass
  • -
  • BP : Band-pass
  • -
  • Notch : Also called as band-stop
  • -
  • Bypass
  • -
-
-
ShaperType
-
-

Type of wave shaper used for filter saturation.

-
HardClip(x) := clamp(x, -1.0, 1.0)
+  
+
Curve
+
+

Curve of modulation AD envelope. Range is 1.0 to 96.0.

+

The length of decay is depends on the value of Curve.

+
+
To Freq1 (AD Envelope)
+
+

Modulation from AD envelope to Osc1 slave frequency. + Range is 0.0 to 16.0.

+
+
To Sync1 (AD Envelope)
+
+

Modulation from AD envelope to Osc1 master frequency. + Range is 0.0 to 16.0.

+
+
To Freq2 (AD Envelope)
+
+

Modulation from AD envelope to Osc2 slave frequency. + Range is 0.0 to 16.0.

+
+
To Sync2 (AD Envelope)
+
+

Modulation from AD envelope to Osc2 master frequency. + Range is 0.0 to 16.0.

+
+
LFO
+
+

LFO Frequency. Range is 0.01 to 20.0. Unit is Hz.

+
+
NoiseMix
+
+

Ratio of LFO and pink noise. Range is 0.0 to 1.0.

+

If the value is 0.0, the output becomes LFO only. If the value is + 1.0, the output becomes pink noise only.

+

Note that modulation of pink noise causes some nasty spikes. To + avoid spikes, set the value of To Freq/Sync to lower than + 1.0. Spike is clipped to avoid exceeding 0dB.

+
+
To Freq1 (LFO/Noise)
+
+

Modulation from LFO/Noise to Osc1 slave frequency. + Range is 0.0 to 16.0.

+
+
To Sync1 (LFO/Noise)
+
+

Modulation from LFO/Noise to Osc1 master frequency. + Range is 0.0 to 16.0.

+
+
To Freq2 (LFO/Noise)
+
+

Modulation from LFO/Noise to Osc2 slave frequency. + Range is 0.0 to 16.0.

+
+
To Sync2 (LFO/Noise)
+
+

Modulation from LFO/Noise to Osc2 master frequency. + Range is 0.0 to 16.0.

+
+
+

+
+
Gain
+
+

Gain of the synthesizer output. Range is 0.0 to 1.0.

+
+
A
+
+

Length of gain envelope attack. Range is 0.0001 to 16.0. Unit is + seconds.

+
+
D
+
+

Length of gain envelope decay. Range is 0.0001 to 16.0. Unit is + seconds.

+
+
S
+
+

Value of gain envelope sustain. Range is 0.0 to 1.0.

+
+
R
+
+

Length of gain envelope release. Range is 0.0001 to 16.0. Unit is + seconds.

+
+
Curve
+
+

Curve of gain envelope. Range is 0.0 to 1.0.

+

This curve is linear interpolation between direct output and + saturated output.

+
gainEnv(t) := expEnv(t) * (tanh(3 * Curve * expEnv(t)) - expEnv(t))
+
+
+

+
+
Cut
+
+

Filter cutoff frequency. Range is 20.0 to 20000.0. Unit is Hz.

+
+
Res
+
+

Biquad filter resonance. Range is 0.001 to 1.0.

+

When the value is set to minimum, the output volume will be very + small.

+
+
Feed
+
+

Feedback of serial filter section. Range is 0.0 to 1.0.

+

Internally, 4 biquad filters are serially connected. Feedback send + the last output of the filter to first biquad filter in serial + section.

+
+
Sat
+
+

Saturation of filter. Range is 0.01 to 8.0.

+

This value is multiplied to the sum of input signal and feedback + before going into wave shaper.

+
filterIn = shaper(Sat * (input - Feed * filterOut))
+
+
Dirty Buffer
+
+

If Dirty Buffer is not checked, the buffer of filter + will be cleared for each note on.

+

Note that while Dirty Filter is turned on, sometimes a + glitch pops up at note on.

+
+
FilterType
+
+

Type of filter.

+
    +
  • LP : Low-pass
  • +
  • HP : High-pass
  • +
  • BP : Band-pass
  • +
  • Notch : Also called as band-stop
  • +
  • Bypass
  • +
+
+
ShaperType
+
+

Type of wave shaper used for filter saturation.

+
HardClip(x) := clamp(x, -1.0, 1.0)
 Tanh(x)     := tanh(x)
 ShaperA(x)  := sin(2 * pi * x) / (1 + 10 * x * x)
 ShaperB(x)  := 0.7439087749328765 * x^3 * exp(-abs(x))
-
-
A
-
-

Lenght of filter envelope attack. Range is 0.0001 to 16.0 -。単位は.

-
-
D
-
-

Lenght of filter envelope decay. Range is 0.0001 to 16.0 -。単位は.

-
-
S
-
-

Value of filter envelope sustain. Range is 0.0 to 1.0.

-
-
R
-
-

Lenght of filter envelope release. Range is 0.0001 to 16.0 -。単位は.

-
-
To Cut
-
-

Modulation from filter envelope to cutoff frequency. Range is -1.0 to -1.0.

-
-
To Res
-
-

Modulation from filter envelope to resonance. Range is 0.0 to -1.0.

-
-
Key->Cut
-
-

Modulation from MIDI note number to cutoff frequency. Range is -1.0 -to 1.0.

-
-
Key->Feed
-
-

Modulation from MIDI note number to feedback. Range is -1.0 to -1.0.

-
-
-

Change Log

-
    -
  • 0.1.29 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.28 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.27 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.26 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.25 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.24 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.23 -
      -
    • Resume macOS build.
    • -
  • -
  • 0.1.22 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.21 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.20 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.19 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.18 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed a bug that insufficient reset of the sustain interpolation -filter in amplitude envelope was causing pop noise.
    • -
  • -
  • 0.1.16 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.15 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.14 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.13 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.12 -
      -
    • Changed parameter smoother to the one which works with variable size -audio buffer.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.10 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.9 -
      -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.8 -
      -
    • Enabled GUI for Linux build.
    • -
  • -
  • 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.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed smoothing algorithm to prevent blow up.
    • -
  • -
  • 0.1.4 -
      -
    • Changed semitone control to NumberKnob.
    • -
  • -
  • 0.1.3 -
      -
    • Added unison parameter.
    • -
    • Added number of voice parameter.
    • -
    • Changed internal parameter structure.
    • -
    • Changed UI looks.
    • -
    • Made filter and math function faster.
    • -
  • -
  • 0.1.1 -
      -
    • Added pitchbend support.
    • -
    • Added double precision PTR options.
    • -
    • Fix a bug that releasing gain envelope while attacking jumps the -output value of gain envelope to sustain level.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

SyncSawSynth 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.

+
+
A
+
+

Lenght of filter envelope attack. Range is 0.0001 to 16.0 + 。単位は.

+
+
D
+
+

Lenght of filter envelope decay. Range is 0.0001 to 16.0 + 。単位は.

+
+
S
+
+

Value of filter envelope sustain. Range is 0.0 to 1.0.

+
+
R
+
+

Lenght of filter envelope release. Range is 0.0001 to 16.0 + 。単位は.

+
+
To Cut
+
+

Modulation from filter envelope to cutoff frequency. Range is -1.0 + to 1.0.

+
+
To Res
+
+

Modulation from filter envelope to resonance. Range is 0.0 to + 1.0.

+
+
Key->Cut
+
+

Modulation from MIDI note number to cutoff frequency. Range is -1.0 + to 1.0.

+
+
Key->Feed
+
+

Modulation from MIDI note number to feedback. Range is -1.0 to + 1.0.

+
+
+

+
    +
  • 0.1.29 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.28 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.27 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.26 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.25 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.24 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.23 +
      +
    • Resume macOS build.
    • +
  • +
  • 0.1.22 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.21 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.20 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.19 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.18 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed a bug that insufficient reset of the sustain interpolation + filter in amplitude envelope was causing pop noise.
    • +
  • +
  • 0.1.16 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.15 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.14 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.13 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.12 +
      +
    • Changed parameter smoother to the one which works with variable + size audio buffer.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.10 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.9 +
      +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.8 +
      +
    • Enabled GUI for Linux build.
    • +
  • +
  • 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.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed smoothing algorithm to prevent blow up.
    • +
  • +
  • 0.1.4 +
      +
    • Changed semitone control to NumberKnob.
    • +
  • +
  • 0.1.3 +
      +
    • Added unison parameter.
    • +
    • Added number of voice parameter.
    • +
    • Changed internal parameter structure.
    • +
    • Changed UI looks.
    • +
    • Made filter and math function faster.
    • +
  • +
  • 0.1.1 +
      +
    • Added pitchbend support.
    • +
    • Added double precision PTR options.
    • +
    • Fix a bug that releasing gain envelope while attacking jumps the + output value of gain envelope to sustain level.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

SyncSawSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/SyncSawSynth/SyncSawSynth_ja.html b/docs/manual/SyncSawSynth/SyncSawSynth_ja.html index b96c88d5..fcbca148 100644 --- a/docs/manual/SyncSawSynth/SyncSawSynth_ja.html +++ b/docs/manual/SyncSawSynth/SyncSawSynth_ja.html @@ -2,540 +2,578 @@ - - - - -SyncSawSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

SyncSawSynth

-

-

SyncSawSynthシンク ソウ シンセ -は10次までのPTR鋸歯波オシレータが使える32ボイスのポリフォニックシンセサイザです。主にハードシンクと周波数変調で電池が切れかけのおもちゃのような音を作る用途に向いています。もちろん普通の音も出ます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER の Linux 版がプラグインを認識しないときは + ~/.config/REAPER/reaper-vstplugins64.ini を削除して + REAPER を再起動してみてください。

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -555,600 +593,619 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

アタックの長さによって音量エンベロープのピーク値が変わります。音量エンベロープのアタックが小さいとき、ピークは通常より少し高くなることがあります。

-

Dirty Filter -にチェックを入れるとノートオンによってプチノイズが出ることがあります。

-

パラメータの組み合わせによっては直流信号が乗るときがあります。ディストーションなどをかけると面白い音になることがあるので、直流は切っていません。安全のためには -SyncSawSynth -の後にハイパスフィルタを通すことが望ましいです。またオシロスコープで出力を監視することをお勧めします。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。 -

-

用語について

-

SyncSawSynth のオシレータは内部に 2 つのオシレータを持っています。 1 -つは波形生成のために使われ、もう 1 -つはハードシンクをトリガするために使われています。ハードシンクに関する用語として、波形生成のためのオシレータのことをスレーブ、トリガに使われるオシレータのことをマスタと呼んでいます。

-

パラメータ

-

Osc

-
-
Gain
-
-

オシレータの音量。範囲は 0.0 から 1.0 。

-
-
Semi
-
-

オシレータのピッチ。範囲は -24.0 から 24.0 。単位は半音。

-

値は floor 関数で整数に丸められます。例えば 6.3 なら 6 -、 -11.5 なら -12 になります。

-
-
Cent
-
-

オシレータのピッチ。範囲は -100.0 から 100.0 。単位はセント。

-
-
Sync と SyncType
-
-

Sync の値は SyncType -の値によって意味が変わります。 Sync の値の範囲は 0.01 から -16.0 です。

-

SyncType は次の4つから選択できます。

-
    -
  • Off
  • -
  • Ratio
  • -
  • Fixed-Master
  • -
  • Fixed-Slave
  • -
-

Off を選ぶとマスタ周波数を 0 Hz -にすることでハードシンクを無効にします。ただし Modulation -の Osc*->Sync1 が 0 -より大きいときはマスタ位相が動くのでハードシンクがかかることがあります。 -SyncTypeOff のときは、 Sync -の値は使われません。

-

Ratio -を選ぶと音程をマスタ周波数に使います。スレーブ周波数はマスタ周波数に -Sync の値をかけ合わせた値になります。また -Ratio のときだけ To Freq/Sync -の変調先が入れ替わります。

-

Fixed-Master -を選ぶと音程をスレーブ周波数に使います。マスタ周波数は Sync -の値のみによって決まります。

-

Fixed-Slave -を選ぶと音程をマスタ周波数に使います。スレーブ周波数は Sync -の値のみによって決まります。

-

Fixed-MasterFixed-Slave で使われる -Sync の値を周波数に変換する式は次の通りです。

-
frequency = 2 * Sync^3
-
-
OscType
-
-

オシレータの波形。

-

0 から 10 次までの PTR 鋸歯波オシレータとサイン波が選べます。

-
-
Phase
-
-

オシレータの位相。範囲は 0.0 から 1.0 。

-

Lock -にチェックを入れるとノートオンのたびに位相がリセットされます。

-

Osc2Invert にチェックを入れると、 -Osc2 の出力の正負の符号を変えることで位相を反転します。

-
-
Unison
-
-

チェックを入れるとノートごとに位相の異なる同じ高さの音を重ねます。CPU負荷も2倍になります。

-
-
Number of Voice
-
-

最大同時発音数。この値を減らすとCPU負荷を減らすことができます。

-
-
-

Modulation

-
-
Osc1->Sync1
-
-

Osc1 の出力による Osc1 -のマスタ周波数の変調。範囲は 0.0 から 1.0 。

-
-
Osc1->Freq2
-
-

Osc1 の出力による Osc2 -のスレーブ周波数の変調。範囲は 0.0 から 1.0 。

-
-
Osc2->Sync1
-
-

Osc2 の出力による Osc1 -のマスタ周波数の変調。範囲は 0.0 から 1.0 。

-
-
Attack
-
-

変調用の AD エンベロープのアタック。範囲は 0.0 から 4.0 -。単位は秒。

-

AD エンベロープの式です。

-
env(t) := t^a * exp(-b * t)
+  

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

アタックの長さによって音量エンベロープのピーク値が変わります。音量エンベロープのアタックが小さいとき、ピークは通常より少し高くなることがあります。

+

Dirty Filter + にチェックを入れるとノートオンによってプチノイズが出ることがあります。

+

パラメータの組み合わせによっては直流信号が乗るときがあります。ディストーションなどをかけると面白い音になることがあるので、直流は切っていません。安全のためには + SyncSawSynth + の後にハイパスフィルタを通すことが望ましいです。またオシロスコープで出力を監視することをお勧めします。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。 +

+

+

SyncSawSynth のオシレータは内部に 2 つのオシレータを持っています。 + 1 つは波形生成のために使われ、もう 1 + つはハードシンクをトリガするために使われています。ハードシンクに関する用語として、波形生成のためのオシレータのことをスレーブ、トリガに使われるオシレータのことをマスタと呼んでいます。

+

+

+
+
Gain
+
+

オシレータの音量。範囲は 0.0 から 1.0 。

+
+
Semi
+
+

オシレータのピッチ。範囲は -24.0 から 24.0 。単位は半音。

+

値は floor 関数で整数に丸められます。例えば 6.3 なら 6 + 、 -11.5 なら -12 になります。

+
+
Cent
+
+

オシレータのピッチ。範囲は -100.0 から 100.0 。単位はセント。

+
+
Sync と SyncType
+
+

Sync の値は SyncType + の値によって意味が変わります。 Sync の値の範囲は 0.01 + から 16.0 です。

+

SyncType は次の4つから選択できます。

+
    +
  • Off
  • +
  • Ratio
  • +
  • Fixed-Master
  • +
  • Fixed-Slave
  • +
+

Off を選ぶとマスタ周波数を 0 Hz + にすることでハードシンクを無効にします。ただし Modulation + の Osc*->Sync1 が 0 + より大きいときはマスタ位相が動くのでハードシンクがかかることがあります。 + SyncTypeOff のときは、 Sync + の値は使われません。

+

Ratio + を選ぶと音程をマスタ周波数に使います。スレーブ周波数はマスタ周波数に + Sync の値をかけ合わせた値になります。また + Ratio のときだけ To Freq/Sync + の変調先が入れ替わります。

+

Fixed-Master + を選ぶと音程をスレーブ周波数に使います。マスタ周波数は + Sync の値のみによって決まります。

+

Fixed-Slave + を選ぶと音程をマスタ周波数に使います。スレーブ周波数は + Sync の値のみによって決まります。

+

Fixed-MasterFixed-Slave で使われる + Sync の値を周波数に変換する式は次の通りです。

+
frequency = 2 * Sync^3
+
+
OscType
+
+

オシレータの波形。

+

0 から 10 次までの PTR 鋸歯波オシレータとサイン波が選べます。

+
+
Phase
+
+

オシレータの位相。範囲は 0.0 から 1.0 。

+

Lock + にチェックを入れるとノートオンのたびに位相がリセットされます。

+

Osc2Invert にチェックを入れると、 + Osc2 + の出力の正負の符号を変えることで位相を反転します。

+
+
Unison
+
+

チェックを入れるとノートごとに位相の異なる同じ高さの音を重ねます。CPU負荷も2倍になります。

+
+
Number of Voice
+
+

最大同時発音数。この値を減らすとCPU負荷を減らすことができます。

+
+
+

+
+
Osc1->Sync1
+
+

Osc1 の出力による Osc1 + のマスタ周波数の変調。範囲は 0.0 から 1.0 。

+
+
Osc1->Freq2
+
+

Osc1 の出力による Osc2 + のスレーブ周波数の変調。範囲は 0.0 から 1.0 。

+
+
Osc2->Sync1
+
+

Osc2 の出力による Osc1 + のマスタ周波数の変調。範囲は 0.0 から 1.0 。

+
+
Attack
+
+

変調用の AD エンベロープのアタック。範囲は 0.0 から 4.0 + 。単位は秒。

+

AD エンベロープの式です。

+
env(t) := t^a * exp(-b * t)
 
 t: 時間。
 a, b: 適当な定数。
-
-
Curve
-
-

変調用の AD エンベロープの特性。範囲は 1.0 から 96.0 。

-

Curve の値に応じてディケイの長さが決まります。

-
-
To Freq1 (AD エンベロープ)
-
-

AD エンベロープによる Osc1 -のスレーブ周波数の変調。範囲は 0.0 から 16.0 。

-
-
To Sync1 (AD エンベロープ)
-
-

AD エンベロープによる Osc1 のマスタ周波数の変調。範囲は -0.0 から 16.0 。

-
-
To Freq2 (AD エンベロープ)
-
-

AD エンベロープによる Osc2 -のスレーブ周波数の変調。範囲は 0.0 から 16.0 。

-
-
To Sync2 (AD エンベロープ)
-
-

AD エンベロープによる Osc2 のマスタ周波数の変調。範囲は -0.0 から 16.0 。

-
-
LFO
-
-

LFO の周波数。範囲は 0.01 から 20.0 。単位は Hz 。

-
-
NoiseMix
-
-

LFO とピンクノイズのミックスの比率。範囲は 0.0 から 1.0 。

-

値が 0.0 のときに LFO のみ、 1.0 -のときにピンクノイズのみになります。

-

ピンクノイズによる変調はスパイクを生じることがあるので注意してください。スパイクを避けるには -To Sync/Freq の値を 1.0 -より小さく設定してください。スパイクは0dBを超えないようにクリップされています。

-
-
To Freq1 (LFO/ノイズ)
-
-

LFO/ノイズによる Osc1 のスレーブ周波数の変調。範囲は 0.0 -から 16.0 。

-
-
To Sync1 (LFO/ノイズ)
-
-

LFO/ノイズによる Osc1 のマスタ周波数の変調。範囲は 0.0 -から 16.0 。

-
-
To Freq2 (LFO/ノイズ)
-
-

LFO/ノイズによる Osc2 のスレーブ周波数の変調。範囲は -0.0 から 16.0 。

-
-
To Sync2 (LFO/ノイズ)
-
-

LFO/ノイズによる Osc2 のマスタ周波数の変調。範囲は 0.0 -から 16.0 。

-
-
-

Gain

-
-
Gain
-
-

シンセサイザの出力音量。範囲は 0.0 から 1.0 。

-
-
A
-
-

音量エンベロープのアタックの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
D
-
-

音量エンベロープのディケイの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
S
-
-

音量エンベロープのサステインの大きさ。範囲は 0.0 から 1.0 。

-
-
R
-
-

音量エンベロープのリリースの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
Curve
-
-

音量エンベロープの特性。範囲は 0.0 から 1.0 。

-

素の音量エンベロープと tanh -によって飽和させたエンベロープとを線形補間しています。

-
gainEnv(t) := expEnv(t) * (tanh(3 * Curve * expEnv(t)) - expEnv(t))
-
-
-

Filter

-
-
Cut
-
-

フィルタのカットオフ周波数。範囲は 20.0 から 20000.0 。単位は Hz -。

-
-
Res
-
-

2 次フィルタのレゾナンス。範囲は 0.001 から 1.0 。

-

値を最小にすると音量がかなり小さくなります。

-
-
Feed
-
-

フィルタセクションのフィードバック。範囲は 0.0 から 1.0 。

-

直列につないだ 4 つの 2 次フィルタの出力を 1 -つ目のフィルタにフィードバックしています。

-
-
Sat
-
-

フィルタのサチュレーション。範囲は 0.01 から 8.0 。

-

フィードバックと入力を足し合わせた値をウェーブシェーパに入力するときにかけ合わせる値です。

-
filterIn = shaper(Sat * (input - Feed * filterOut))
-
-
Dirty Buffer
-
-

チェックを外すとノートオンのたびにフィルタのバッファをクリアします。

-

チェックを入れている間はノートオンのたびに音の始まりにプチノイズが乗ることがあります。

-
-
FilterType
-
-

フィルタの種類。

-
    -
  • LP : ローパス
  • -
  • HP : ハイパス
  • -
  • BP : バンドパス
  • -
  • Notch : ノッチ (バンドストップ)
  • -
  • Bypass : フィルタの迂回
  • -
-
-
ShaperType
-
-

フィルタのサチュレーションに使うウェーブシェーパの種類。

-
HardClip(x) := clamp(x, -1.0, 1.0)
+  
+
Curve
+
+

変調用の AD エンベロープの特性。範囲は 1.0 から 96.0 。

+

Curve の値に応じてディケイの長さが決まります。

+
+
To Freq1 (AD エンベロープ)
+
+

AD エンベロープによる Osc1 + のスレーブ周波数の変調。範囲は 0.0 から 16.0 。

+
+
To Sync1 (AD エンベロープ)
+
+

AD エンベロープによる Osc1 + のマスタ周波数の変調。範囲は 0.0 から 16.0 。

+
+
To Freq2 (AD エンベロープ)
+
+

AD エンベロープによる Osc2 + のスレーブ周波数の変調。範囲は 0.0 から 16.0 。

+
+
To Sync2 (AD エンベロープ)
+
+

AD エンベロープによる Osc2 + のマスタ周波数の変調。範囲は 0.0 から 16.0 。

+
+
LFO
+
+

LFO の周波数。範囲は 0.01 から 20.0 。単位は Hz 。

+
+
NoiseMix
+
+

LFO とピンクノイズのミックスの比率。範囲は 0.0 から 1.0 。

+

値が 0.0 のときに LFO のみ、 1.0 + のときにピンクノイズのみになります。

+

ピンクノイズによる変調はスパイクを生じることがあるので注意してください。スパイクを避けるには + To Sync/Freq の値を 1.0 + より小さく設定してください。スパイクは0dBを超えないようにクリップされています。

+
+
To Freq1 (LFO/ノイズ)
+
+

LFO/ノイズによる Osc1 のスレーブ周波数の変調。範囲は + 0.0 から 16.0 。

+
+
To Sync1 (LFO/ノイズ)
+
+

LFO/ノイズによる Osc1 のマスタ周波数の変調。範囲は 0.0 + から 16.0 。

+
+
To Freq2 (LFO/ノイズ)
+
+

LFO/ノイズによる Osc2 のスレーブ周波数の変調。範囲は + 0.0 から 16.0 。

+
+
To Sync2 (LFO/ノイズ)
+
+

LFO/ノイズによる Osc2 のマスタ周波数の変調。範囲は + 0.0 から 16.0 。

+
+
+

+
+
Gain
+
+

シンセサイザの出力音量。範囲は 0.0 から 1.0 。

+
+
A
+
+

音量エンベロープのアタックの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
D
+
+

音量エンベロープのディケイの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
S
+
+

音量エンベロープのサステインの大きさ。範囲は 0.0 から 1.0 。

+
+
R
+
+

音量エンベロープのリリースの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
Curve
+
+

音量エンベロープの特性。範囲は 0.0 から 1.0 。

+

素の音量エンベロープと tanh + によって飽和させたエンベロープとを線形補間しています。

+
gainEnv(t) := expEnv(t) * (tanh(3 * Curve * expEnv(t)) - expEnv(t))
+
+
+

+
+
Cut
+
+

フィルタのカットオフ周波数。範囲は 20.0 から 20000.0 。単位は Hz + 。

+
+
Res
+
+

2 次フィルタのレゾナンス。範囲は 0.001 から 1.0 。

+

値を最小にすると音量がかなり小さくなります。

+
+
Feed
+
+

フィルタセクションのフィードバック。範囲は 0.0 から 1.0 。

+

直列につないだ 4 つの 2 次フィルタの出力を 1 + つ目のフィルタにフィードバックしています。

+
+
Sat
+
+

フィルタのサチュレーション。範囲は 0.01 から 8.0 。

+

フィードバックと入力を足し合わせた値をウェーブシェーパに入力するときにかけ合わせる値です。

+
filterIn = shaper(Sat * (input - Feed * filterOut))
+
+
Dirty Buffer
+
+

チェックを外すとノートオンのたびにフィルタのバッファをクリアします。

+

チェックを入れている間はノートオンのたびに音の始まりにプチノイズが乗ることがあります。

+
+
FilterType
+
+

フィルタの種類。

+
    +
  • LP : ローパス
  • +
  • HP : ハイパス
  • +
  • BP : バンドパス
  • +
  • Notch : ノッチ (バンドストップ)
  • +
  • Bypass : フィルタの迂回
  • +
+
+
ShaperType
+
+

フィルタのサチュレーションに使うウェーブシェーパの種類。

+
HardClip(x) := clamp(x, -1.0, 1.0)
 Tanh(x)     := tanh(x)
 ShaperA(x)  := sin(2 * pi * x) / (1 + 10 * x * x)
 ShaperB(x)  := 0.7439087749328765 * x^3 * exp(-abs(x))
-
-
A
-
-

フィルタエンベロープのアタックの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
D
-
-

フィルタエンベロープのディケイの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
S
-
-

フィルタエンベロープのサステインの大きさ。範囲は 0.0 から 1.0 。

-
-
R
-
-

フィルタエンベロープのリリースの長さ。範囲は 0.0001 から 16.0 -。単位は秒。

-
-
To Cut
-
-

フィルタエンベロープによるカットオフ周波数の変調。範囲は -1.0 から -1.0 。

-
-
To Res
-
-

フィルタエンベロープによるレゾナンスの変調。範囲は 0.0 から 1.0 -。

-
-
Key->Cut
-
-

ノートの MIDI ノート番号によるカットオフ周波数の変調。範囲は -1.0 -から 1.0 。

-
-
Key->Feed
-
-

ノートの MIDI ノート番号によるフィードバックの変調。範囲は -1.0 から -1.0 。

-
-
-

チェンジログ

-
    -
  • 0.1.29 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.28 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.27 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.26 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.25 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.24 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.23 -
      -
    • macOS ビルドを復帰。
    • -
  • -
  • 0.1.22 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.21 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.20 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.19 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.18 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.17 -
      -
    • 振幅エンベロープのサステインの補間フィルタがリセットされずにポップノイズが起こっていたバグを修正。
    • -
  • -
  • 0.1.16 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.15 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.14 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.13 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.12 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する手法に変更。
    • -
  • -
  • 0.1.11 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.10 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.9 -
      -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.8 -
      -
    • Linux ビルドの GUI を有効化。
    • -
  • -
  • 0.1.7 -
      -
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • -
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • -
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • -
  • -
  • 0.1.6 -
      -
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • -
  • -
  • 0.1.5 -
      -
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • semi コントロールのノブが番号を表示するように変更。
    • -
  • -
  • 0.1.3 -
      -
    • ユニゾンパラメータを追加。
    • -
    • 最大同時発音数パラメータを追加。
    • -
    • 内部のパラメータ構造を変更。
    • -
    • UI の見た目を変更。
    • -
    • フィルタと数学関数の高速化。
    • -
  • -
  • 0.1.1 -
      -
    • ピッチベンドに対応。
    • -
    • double 型の PTR を追加。
    • -
    • 音量エンベロープをアタック中にリリースすると、リリースがサステインの大きさから始まるバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

SyncSawSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+
+
A
+
+

フィルタエンベロープのアタックの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
D
+
+

フィルタエンベロープのディケイの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
S
+
+

フィルタエンベロープのサステインの大きさ。範囲は 0.0 から 1.0 + 。

+
+
R
+
+

フィルタエンベロープのリリースの長さ。範囲は 0.0001 から 16.0 + 。単位は秒。

+
+
To Cut
+
+

フィルタエンベロープによるカットオフ周波数の変調。範囲は -1.0 から + 1.0 。

+
+
To Res
+
+

フィルタエンベロープによるレゾナンスの変調。範囲は 0.0 から 1.0 + 。

+
+
Key->Cut
+
+

ノートの MIDI ノート番号によるカットオフ周波数の変調。範囲は -1.0 + から 1.0 。

+
+
Key->Feed
+
+

ノートの MIDI ノート番号によるフィードバックの変調。範囲は -1.0 + から 1.0 。

+
+
+

+
    +
  • 0.1.29 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.28 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.27 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.26 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.25 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.24 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.23 +
      +
    • macOS ビルドを復帰。
    • +
  • +
  • 0.1.22 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.21 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.20 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.19 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.18 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.17 +
      +
    • 振幅エンベロープのサステインの補間フィルタがリセットされずにポップノイズが起こっていたバグを修正。
    • +
  • +
  • 0.1.16 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.15 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.14 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.13 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.12 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する手法に変更。
    • +
  • +
  • 0.1.11 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.10 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.9 +
      +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.8 +
      +
    • Linux ビルドの GUI を有効化。
    • +
  • +
  • 0.1.7 +
      +
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • +
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • +
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • +
  • +
  • 0.1.6 +
      +
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • +
  • +
  • 0.1.5 +
      +
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • semi コントロールのノブが番号を表示するように変更。
    • +
  • +
  • 0.1.3 +
      +
    • ユニゾンパラメータを追加。
    • +
    • 最大同時発音数パラメータを追加。
    • +
    • 内部のパラメータ構造を変更。
    • +
    • UI の見た目を変更。
    • +
    • フィルタと数学関数の高速化。
    • +
  • +
  • 0.1.1 +
      +
    • ピッチベンドに対応。
    • +
    • double 型の PTR を追加。
    • +
    • 音量エンベロープをアタック中にリリースすると、リリースがサステインの大きさから始まるバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

SyncSawSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/TrapezoidSynth/TrapezoidSynth_en.html b/docs/manual/TrapezoidSynth/TrapezoidSynth_en.html index 083531ec..ef469a6a 100644 --- a/docs/manual/TrapezoidSynth/TrapezoidSynth_en.html +++ b/docs/manual/TrapezoidSynth/TrapezoidSynth_en.html @@ -2,557 +2,593 @@ - - - - -TrapezoidSynth_en - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

TrapezoidSynth

-

-

TrapezoidSynth is a monophonic synthesizer equipped with 2 trapezoid -oscillator. Trapezoid oscillator is based on PTR (Polynomial Transition -Regions) and it has a drawback that increasing noise at high frequency. -Therefore 8 times oversampled. 2 pitch shifters are added to make some -chord.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -572,612 +608,642 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

It is recommended to insert high-pass when setting -SlideType to Reset to 0.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Oscillator Common

-
-
Semi
-
-

Change oscillator pitch in semitone.

-
-
Cent
-
-

Change oscillator pitch in cent. 100 cent = 1 semitone.

-
-
Slope
-
-

Change left and right side of slope of trapezoid.

-
-
PW
-
-

Pulse width. Change length of upper side of trapezoid.

-
-
-

Oscillator 1

-
-
Drift
-
-

Modulate pitch with white noise.

-
-
Feedback
-
-

Modulate phase of Oscillator 1 with feedback signal.

-
osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))
-
-
-

Oscillator 2

-
-
Overtone
-
-

Multiply the frequency of oscillator by number of -Overtone.

-
-
PM
-
-

Modulate Osillator 1 phase with Oscillator 2 output.

-
-
-

Envelope Common

-
-
Retrigger
-
-

When checked, reset envelope for each note on. When not checked, -reset envelope only if the number of pressed key is changed from 0 to 1 -or more.

-
-
A
-
-

Attack time in seconds.

-
-
D
-
-

Decay time in seconds.

-
-
S
-
-

Sustain level.

-
-
R
-
-

Release time in seconds.

-
-
Curve
-
-

Change envelope curve.

-
-
-

Gain Envelope

-
-
Gain
-
-

Master output gain.

-
-
-

Filter

-
-
Order
-
-

TrapezoidSynth is using 8 of serially connected first order filter. -Order changes where to get the signal from the filter.

-
-
Cut
-
-

Cutoff frequency in Hz.

-
-
Res
-
-

Resonance.

-
-
Sat
-
-

Filter saturation.

-
filterInput = tanh(Sat * (input + Res * filterOutput))
-
-
Env>Cut
-
-

Modulation amount from Filter Envelope to Cut.

-
-
Key>Cut
-
-

Modulation amount from note pitch to Cut.

-
-
+OscMix
-
-

Modulation amount from mixed signal of Oscillator 1 and Oscillator 2 -to Cut.

-
-
-

Filter Envelope

-
-
>Octave
-
-

Modulation amount from Filter Envelope to pitch in octave.

-
-
-

Misc

-
-
OscMix
-
-

Ratio of Oscillator 1 and Oscillator 2. When turned to left-most, -output becomes only the signal from Oscillator 1.

-
-
Octave
-
-

Change pitch in octave.

-
-
Smooth
-
-

Interpolation time in seconds from previous value to current value. -Following parameters are affected by Smooth.

-
    -
  • Drift
  • -
  • Slope
  • -
  • PW (for all parameter with identical name)
  • -
  • Feedback (for all parameter with identical name)
  • -
  • PM
  • -
  • Gain (for all parameter with identical name)
  • -
  • Cut
  • -
  • Res
  • -
  • Sat
  • -
  • Env>Cut
  • -
  • Key>Cut
  • -
  • +OscMix
  • -
  • OscMix
  • -
  • >PM
  • -
  • >Feedback
  • -
  • >LFO
  • -
  • >Slope2
  • -
  • >Shifter1
  • -
  • Shifter1.Semi
  • -
  • Shifter1.Cent
  • -
  • Shifter2.Semi
  • -
  • Shifter2.Cent
  • -
  • Freq
  • -
  • Shape
  • -
  • >Pitch1
  • -
  • >Slope1
  • -
  • >PW1
  • -
  • >Cut
  • -
-
-
-

Mod Common

-
-
Retrigger
-
-

When checked, reset envelope for each note on. When not checked, -reset envelope only if the number of pressed key is changed from 0 to 1 -or more.

-
-
Attack
-
-

Modulation envelope attack time in seconds.

-
-
Curve
-
-

Modulation envelope curve.

-
-
-

Mod 1

-
-
>PM
-
-

Modulation amount from modulation envelope 1 to -Oscillator2.PM.

-
-
-

Mod 2

-
-
>Feedback
-
-

Modulation amount from modulation envelope 2 to -Oscillator1.Feedback.

-
-
>LFO
-
-

Modulation amount from modulation envelope 2 to -LFO.Freq.

-
-
>Slope2
-
-

Modulation amount from modulation envelope 2 to -Oscillator2.Slope.

-
-
>Shifter1
-
-

Modulation amount from modulation envelope 2 to Shifter 1 pitch.

-
-
-

Shifter Common

-
-
Semi
-
-

Change amount of pitch shift in semitone.

-
-
Cent
-
-

Change amount of pitch shift pitch in cent. 100 cent = 1 -semitone.

-
-
Gain
-
-

Output gain of pitch shifter.

-
-
-

LFO

-
-
LFOType
-
-

4 waveforms are available for LFO.

-
    -
  • Sin : Sine wave. Output will be power of the value of -Shape.
  • -
  • Saw : Sawtooth wave. Can be turned into triangle with -Shape.
  • -
  • Pulse : Pulse wave. Duty ratio can be controlled by -Shape.
  • -
  • Noise : Brown noise. Wandering of noise can be changed -by Shape.
  • -
-
-
Tempo
-
-

Synchronize LFO frequency to tempo.

-
-
Freq
-
-

LFO frequency.

-
-
Shape
-
-

Change LFO wave shape.

-
-
>Pitch
-
-

Modulation amount from LFO to Oscillator 1 pitch.

-
-
>Slope1
-
-

Modulation amount from LFO to Oscillator1.Slope.

-
-
>PW1
-
-

Modulation amount from LFO to Oscillator1.PW.

-
-
>PW1
-
-

Modulation amount from LFO to Filter.Cut.

-
-
-

Slide

-
-
SlideType
-
-

3 type of pitch slide is available.

-
    -
  • Always : Always slide from the pitch of last note.
  • -
  • Sustain : Only slide when 2 or more keys are -pressed.
  • -
  • Reset to 0 : When number of pressed key is changed from -0 to 1, or 1 to 0, pitch will be slide to 0 Hz. Otherwise, slide behaves -same as other 2 options.
  • -
-
-
Time
-
-

Time of pitch sliding.

-
-
Offset
-
-

Oscillator 2 slide time with respect to Oscillator 1 slide time.

-
-
-

Change Log

-
    -
  • 0.1.26 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.25 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.24 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.23 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.22 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.21 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.20 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Resume macOS build.
    • -
  • -
  • 0.1.18 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.16 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.15 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.14 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.13 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.12 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.11 -
      -
    • Fixed Slide->Time is ignored and set as same as -Smooth. Fix in 1.10 was incorrect.
    • -
  • -
  • 0.1.10 -
      -
    • Added check that DSP is initialized or not.
    • -
    • Fixed Slide->Time is ignored and set as same as -Smooth.
    • -
  • -
  • 0.1.9 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.8 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.7 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.6 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.4 -
      -
    • Enabled GUI for Linux build.
    • -
    • Fixed plugin type from kFxInstrument to -kInstrumentSynth.
    • -
  • -
  • 0.1.3 -
      -
    • Fixed wobbling knob bug.
    • -
  • -
  • 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 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

TrapezoidSynth 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.

+

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

It is recommended to insert high-pass when setting + SlideType to Reset to 0.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Semi
+
+

Change oscillator pitch in semitone.

+
+
Cent
+
+

Change oscillator pitch in cent. 100 cent = 1 semitone.

+
+
Slope
+
+

Change left and right side of slope of trapezoid.

+
+
PW
+
+

Pulse width. Change length of upper side of trapezoid.

+
+
+

+
+
Drift
+
+

Modulate pitch with white noise.

+
+
Feedback
+
+

Modulate phase of Oscillator 1 with feedback signal.

+
osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))
+
+
+

+
+
Overtone
+
+

Multiply the frequency of oscillator by number of + Overtone.

+
+
PM
+
+

Modulate Osillator 1 phase with Oscillator 2 output.

+
+
+

+
+
Retrigger
+
+

When checked, reset envelope for each note on. When not checked, + reset envelope only if the number of pressed key is changed from 0 to + 1 or more.

+
+
A
+
+

Attack time in seconds.

+
+
D
+
+

Decay time in seconds.

+
+
S
+
+

Sustain level.

+
+
R
+
+

Release time in seconds.

+
+
Curve
+
+

Change envelope curve.

+
+
+

+
+
Gain
+
+

Master output gain.

+
+
+

+
+
Order
+
+

TrapezoidSynth is using 8 of serially connected first order filter. + Order changes where to get the signal from the + filter.

+
+
Cut
+
+

Cutoff frequency in Hz.

+
+
Res
+
+

Resonance.

+
+
Sat
+
+

Filter saturation.

+
filterInput = tanh(Sat * (input + Res * filterOutput))
+
+
Env>Cut
+
+

Modulation amount from Filter Envelope to Cut.

+
+
Key>Cut
+
+

Modulation amount from note pitch to Cut.

+
+
+OscMix
+
+

Modulation amount from mixed signal of Oscillator 1 and Oscillator + 2 to Cut.

+
+
+

+
+
>Octave
+
+

Modulation amount from Filter Envelope to pitch in octave.

+
+
+

+
+
OscMix
+
+

Ratio of Oscillator 1 and Oscillator 2. When turned to left-most, + output becomes only the signal from Oscillator 1.

+
+
Octave
+
+

Change pitch in octave.

+
+
Smooth
+
+

Interpolation time in seconds from previous value to current value. + Following parameters are affected by Smooth.

+
    +
  • Drift
  • +
  • Slope
  • +
  • PW (for all parameter with identical name)
  • +
  • Feedback (for all parameter with identical name)
  • +
  • PM
  • +
  • Gain (for all parameter with identical name)
  • +
  • Cut
  • +
  • Res
  • +
  • Sat
  • +
  • Env>Cut
  • +
  • Key>Cut
  • +
  • +OscMix
  • +
  • OscMix
  • +
  • >PM
  • +
  • >Feedback
  • +
  • >LFO
  • +
  • >Slope2
  • +
  • >Shifter1
  • +
  • Shifter1.Semi
  • +
  • Shifter1.Cent
  • +
  • Shifter2.Semi
  • +
  • Shifter2.Cent
  • +
  • Freq
  • +
  • Shape
  • +
  • >Pitch1
  • +
  • >Slope1
  • +
  • >PW1
  • +
  • >Cut
  • +
+
+
+

+
+
Retrigger
+
+

When checked, reset envelope for each note on. When not checked, + reset envelope only if the number of pressed key is changed from 0 to + 1 or more.

+
+
Attack
+
+

Modulation envelope attack time in seconds.

+
+
Curve
+
+

Modulation envelope curve.

+
+
+

+
+
>PM
+
+

Modulation amount from modulation envelope 1 to + Oscillator2.PM.

+
+
+

+
+
>Feedback
+
+

Modulation amount from modulation envelope 2 to + Oscillator1.Feedback.

+
+
>LFO
+
+

Modulation amount from modulation envelope 2 to + LFO.Freq.

+
+
>Slope2
+
+

Modulation amount from modulation envelope 2 to + Oscillator2.Slope.

+
+
>Shifter1
+
+

Modulation amount from modulation envelope 2 to Shifter 1 + pitch.

+
+
+

+
+
Semi
+
+

Change amount of pitch shift in semitone.

+
+
Cent
+
+

Change amount of pitch shift pitch in cent. 100 cent = 1 + semitone.

+
+
Gain
+
+

Output gain of pitch shifter.

+
+
+

+
+
LFOType
+
+

4 waveforms are available for LFO.

+
    +
  • Sin : Sine wave. Output will be power of the value of + Shape.
  • +
  • Saw : Sawtooth wave. Can be turned into triangle with + Shape.
  • +
  • Pulse : Pulse wave. Duty ratio can be controlled by + Shape.
  • +
  • Noise : Brown noise. Wandering of noise can be + changed by Shape.
  • +
+
+
Tempo
+
+

Synchronize LFO frequency to tempo.

+
+
Freq
+
+

LFO frequency.

+
+
Shape
+
+

Change LFO wave shape.

+
+
>Pitch
+
+

Modulation amount from LFO to Oscillator 1 pitch.

+
+
>Slope1
+
+

Modulation amount from LFO to Oscillator1.Slope.

+
+
>PW1
+
+

Modulation amount from LFO to Oscillator1.PW.

+
+
>PW1
+
+

Modulation amount from LFO to Filter.Cut.

+
+
+

+
+
SlideType
+
+

3 type of pitch slide is available.

+
    +
  • Always : Always slide from the pitch of last + note.
  • +
  • Sustain : Only slide when 2 or more keys are + pressed.
  • +
  • Reset to 0 : When number of pressed key is changed + from 0 to 1, or 1 to 0, pitch will be slide to 0 Hz. Otherwise, slide + behaves same as other 2 options.
  • +
+
+
Time
+
+

Time of pitch sliding.

+
+
Offset
+
+

Oscillator 2 slide time with respect to Oscillator 1 slide + time.

+
+
+

+
    +
  • 0.1.26 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.25 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.24 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.23 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.22 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.21 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.20 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Resume macOS build.
    • +
  • +
  • 0.1.18 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.16 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.15 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.14 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.13 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.12 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.11 +
      +
    • Fixed Slide->Time is ignored and set as same as + Smooth. Fix in 1.10 was incorrect.
    • +
  • +
  • 0.1.10 +
      +
    • Added check that DSP is initialized or not.
    • +
    • Fixed Slide->Time is ignored and set as same as + Smooth.
    • +
  • +
  • 0.1.9 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.8 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.7 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.6 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.4 +
      +
    • Enabled GUI for Linux build.
    • +
    • Fixed plugin type from kFxInstrument to + kInstrumentSynth.
    • +
  • +
  • 0.1.3 +
      +
    • Fixed wobbling knob bug.
    • +
  • +
  • 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 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

TrapezoidSynth is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html index 4285324f..2b22b640 100644 --- a/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html +++ b/docs/manual/TrapezoidSynth/TrapezoidSynth_ja.html @@ -2,560 +2,596 @@ - - - - -TrapezoidSynth_ja - - - - + audio { + vertical-align: middle; + } + + label { + vertical-align: middle; + } + + :not(.sourceCode)>pre { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + div.sourceCode { + overflow: auto; + border: 1px solid var(--border-color); + padding: 8px; + } + + pre>code.sourceCode>span>a:first-child::before { + border-right: 1px solid var(--border-color); + padding-right: 1em; + margin-right: 1em; + text-decoration: none; + } + + :not(pre)>code { + margin-left: 0.25em; + margin-right: 0.25em; + color: var(--code-inline-color); + } + + li { + margin: 8px; + } + + summary:hover { + background-color: var(--table-odd-color); + } + + header { + border-bottom: 1px var(--border-color) solid; + padding: 0.5em; + margin-bottom: 1em; + } + + footer { + border-top: 1px var(--border-color) solid; + padding: 0.5em; + margin-top: 1em; + } + + code { + white-space: pre-wrap; + } + + span.smallcaps { + font-variant: small-caps; + } + + span.underline { + text-decoration: underline; + } + + div.column { + display: inline-block; + vertical-align: top; + width: 50%; + } + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

TrapezoidSynth

-

-

TrapezoidSynthトラピゾイド シンセ -は台形オシレータを使ったモノフォニックシンセサイザです。台形オシレータは -PTR (Polynomial Transition Regions) -という手法に基づいて作ったのですが、ピッチが高くなると逆にノイズが増える欠点があるので -8 倍のオーバーサンプリングをしています。コードを作るために 2 つの AM -ピッチシフタを搭載しています。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

REAPER の Linux 版がプラグインを認識しないときは + ~/.config/REAPER/reaper-vstplugins64.ini を削除して + REAPER を再起動してみてください。

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -575,612 +611,639 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

SlideTypeReset to 0 -にすると極端に低い周波数が出るので、ハイパスフィルタをかけることを推奨します。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Oscillator 共通

-
-
Semi
-
-

ピッチを半音単位で変更します。

-
-
Cent
-
-

ピッチをセント単位で変更します。 100 セント = 1 半音です。

-
-
Slope
-
-

台形の両端の傾きです。

-
-
PW
-
-

台形の上辺の長さです。 Pulse Width の略です。

-
-
-

Oscillator 1

-
-
Drift
-
-

ホワイトノイズでピッチを変調します。

-
-
Feedback
-
-

Oscillator 1 の位相をフィードバックで変調します。

-
osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))
-
-
-

Oscillator 2

-
-
Overtone
-
-

周波数を Overtone 倍にします。

-
-
PM
-
-

Oscillator 1 の位相を Oscillator 2 の出力で変調します。

-
-
-

Envelope 共通

-
-
Retrigger
-
-

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が -0 から 1 以上になったときだけエンベロープをリセットします。

-
-
A
-
-

アタック時間の秒数です。アタックは音が最大音量に到達するまでのエンベロープの区間です。

-
-
D
-
-

ディケイ時間の秒数です。ディケイはアタックが終わった後にエンベロープが減衰する区間です。

-
-
S
-
-

サステインの大きさです。サステインはディケイが終わったのエンベロープの出力の大きさです。

-
-
R
-
-

リリース時間の秒数です。エンベロープは、鍵盤から指を離した時点(ノートオフ)からリリース状態に移行して、出力が -0 になるまで減衰します。

-
-
Curve
-
-

エンベロープの特性を変更します。

-
-
-

Gain Envelope

-
-
Gain
-
-

出力音量です。

-
-
-

Filter

-
-
Order
-
-

フィルタの次数です。 TrapezoidSynth では 1 次フィルタを 8 -個直列につないでいます。 Order -の値によってフィルタから信号を取り出す位置を変更しています。

-
-
Cut
-
-

カットオフ周波数です。

-
-
Res
-
-

レゾナンスの強さです。

-
-
Sat
-
-

フィルタのサチュレーションの強さです。

-
filterInput = tanh(Sat * (input + Res * filterOutput))
-
-
Env>Cut
-
-

Filter Envelope による Cut の変調量です。

-
-
Key>Cut
-
-

鍵盤の高さによる Cut の変調量です。

-
-
+OscMix
-
-

Oscillator 1 と Oscillator 2 をミックスした信号による -Cut の変調量です。

-
-
-

Filter Envelope

-
-
>Octave
-
-

Filter Envelope -の出力を使ってピッチをオクターブ単位で変調する量です。

-
-
-

Misc

-
-
OscMix
-
-

Osillator 1 と Oscillator 2 の比率です。左いっぱいに回すと Oscillator -1 の音だけになります。

-
-
Octave
-
-

ピッチをオクターブ単位で変更します。

-
-
Smooth
-
-

パラメータを変更したときに変更前の値から変更後の値に移行する秒数です。次のパラメータに影響します。

-
    -
  • Drift
  • -
  • Slope
  • -
  • PW (同名のパラメータすべて)
  • -
  • Feedback (同名のパラメータすべて)
  • -
  • PM
  • -
  • Gain (同名のパラメータすべて)
  • -
  • Cut
  • -
  • Res
  • -
  • Sat
  • -
  • Env>Cut
  • -
  • Key>Cut
  • -
  • +OscMix
  • -
  • OscMix
  • -
  • >PM
  • -
  • >Feedback
  • -
  • >LFO
  • -
  • >Slope2
  • -
  • >Shifter1
  • -
  • Shifter1.Semi
  • -
  • Shifter1.Cent
  • -
  • Shifter2.Semi
  • -
  • Shifter2.Cent
  • -
  • Freq
  • -
  • Shape
  • -
  • >Pitch1
  • -
  • >Slope1
  • -
  • >PW1
  • -
  • >Cut
  • -
-
-
-

Mod 共通

-
-
Retrigger
-
-

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が -0 から 1 以上になったときだけエンベロープをリセットします。

-
-
Attack
-
-

モジュレーションエンベロープのアタック時間の秒数です。

-
-
Curve
-
-

モジュレーションエンベロープの特性です。

-
-
-

Mod 1

-
-
>PM
-
-

Oscillator2.PM をモジュレーションエンベロープ 1 -で変調します。

-
-
-

Mod 2

-
-
>Feedback
-
-

Oscillator1.Feedback をモジュレーションエンベロープ 2 -で変調します。

-
-
>LFO
-
-

LFO.Freq をモジュレーションエンベロープ 2 -で変調します。

-
-
>Slope2
-
-

Oscillator2.Slope をモジュレーションエンベロープ 2 -で変調します。

-
-
>Shifter1
-
-

Shifter 1 のピッチをモジュレーションエンベロープ 2 で変調します。

-
-
-

Shifter 共通

-
-
Semi
-
-

半音単位でピッチシフトの量を変更します。

-
-
Cent
-
-

セント単位でピッチシフトの量を変更します。

-
-
Gain
-
-

ピッチシフトした信号を足し合わせる大きさです。

-
-
-

LFO

-
-
LFOType
-
-

LFO の波形の種類を次の 4 つから選択できます。

-
    -
  • Sin : サイン波です。 出力は Shape -乗されます。
  • -
  • Saw : 鋸歯波です。 Shape -によって三角波にもできます。
  • -
  • Pulse : 矩形波です。 Shape -によってデューティ比を変更できます。
  • -
  • Noise : ブラウンノイズです。 Shape -によってステップあたりの移動量を変更できます。
  • -
-
-
Tempo
-
-

LFO の周波数をテンポシンクします。

-
-
Freq
-
-

LFO の周波数です。

-
-
Shape
-
-

LFO の波形を変更します。

-
-
>Pitch
-
-

LFO による Oscillator 1 のピッチの変調量です。

-
-
>Slope1
-
-

LFO による Oscillator1.Slope の変調量です。

-
-
>PW1
-
-

LFO による Oscillator1.PW の変調量です。

-
-
>PW1
-
-

LFO による Filter.Cut の変調量です。

-
-
-

Slide

-
-
SlideType
-
-

ピッチスライドの種類を変更できます。

-
    -
  • Always : -常に最後に演奏されたノートのピッチからスライドします。
  • -
  • Sustain : 2 -つ以上の鍵盤が同時に押されたときだけスライドします。
  • -
  • Reset to 0 : 同時に押している鍵盤の数が 0 から 1 -、あるいは 1 から 0 になるときは 0 Hz -にスライドします。それ以外の場合は他の 2 -つと同じようにスライドします。
  • -
-
-
Time
-
-

ピッチスライドにかかる時間です。

-
-
Offset
-
-

Oscillator 1 のスライド時間に対する Oscillator 2 -のスライド時間の比率です。

-
-
-

チェンジログ

-
    -
  • 0.1.26 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.25 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.24 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.23 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.22 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.21 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.20 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.19 -
      -
    • macOS ビルドを復帰。
    • -
  • -
  • 0.1.18 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.17 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.16 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.15 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.14 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.13 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.12 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.11 -
      -
    • Slide->Time の値が無視されて、 Smooth -の値を使うようになっていたバグを修正。1.10 -では正しく修正されていなかった。
    • -
  • -
  • 0.1.10 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
    • Slide->Time の値が無視されて、 Smooth -の値を使うようになっていたバグを修正。
    • -
  • -
  • 0.1.9 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.8 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.7 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.6 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.5 -
      -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.4 -
      -
    • Linux ビルドの GUI を有効化。
    • -
    • プラグインの分類を kFxInstrument から -kInstrumentSynth に修正。
    • -
  • -
  • 0.1.3 -
      -
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • -
  • -
  • 0.1.2 -
      -
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • -
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • -
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • -
  • -
  • 0.1.1 -
      -
    • オシレータの実装の誤りを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

TrapezoidSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

+

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

SlideTypeReset to 0 + にすると極端に低い周波数が出るので、ハイパスフィルタをかけることを推奨します。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

+
+
Semi
+
+

ピッチを半音単位で変更します。

+
+
Cent
+
+

ピッチをセント単位で変更します。 100 セント = 1 半音です。

+
+
Slope
+
+

台形の両端の傾きです。

+
+
PW
+
+

台形の上辺の長さです。 Pulse Width の略です。

+
+
+

+
+
Drift
+
+

ホワイトノイズでピッチを変調します。

+
+
Feedback
+
+

Oscillator 1 の位相をフィードバックで変調します。

+
osc1Phase += Feedback * (osc1 + OscMix * (osc2 - osc1))
+
+
+

+
+
Overtone
+
+

周波数を Overtone 倍にします。

+
+
PM
+
+

Oscillator 1 の位相を Oscillator 2 の出力で変調します。

+
+
+

+
+
Retrigger
+
+

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が + 0 から 1 以上になったときだけエンベロープをリセットします。

+
+
A
+
+

アタック時間の秒数です。アタックは音が最大音量に到達するまでのエンベロープの区間です。

+
+
D
+
+

ディケイ時間の秒数です。ディケイはアタックが終わった後にエンベロープが減衰する区間です。

+
+
S
+
+

サステインの大きさです。サステインはディケイが終わったのエンベロープの出力の大きさです。

+
+
R
+
+

リリース時間の秒数です。エンベロープは、鍵盤から指を離した時点(ノートオフ)からリリース状態に移行して、出力が + 0 になるまで減衰します。

+
+
Curve
+
+

エンベロープの特性を変更します。

+
+
+

+
+
Gain
+
+

出力音量です。

+
+
+

+
+
Order
+
+

フィルタの次数です。 TrapezoidSynth では 1 次フィルタを 8 + 個直列につないでいます。 Order + の値によってフィルタから信号を取り出す位置を変更しています。

+
+
Cut
+
+

カットオフ周波数です。

+
+
Res
+
+

レゾナンスの強さです。

+
+
Sat
+
+

フィルタのサチュレーションの強さです。

+
filterInput = tanh(Sat * (input + Res * filterOutput))
+
+
Env>Cut
+
+

Filter Envelope による Cut の変調量です。

+
+
Key>Cut
+
+

鍵盤の高さによる Cut の変調量です。

+
+
+OscMix
+
+

Oscillator 1 と Oscillator 2 をミックスした信号による + Cut の変調量です。

+
+
+

+
+
>Octave
+
+

Filter Envelope + の出力を使ってピッチをオクターブ単位で変調する量です。

+
+
+

+
+
OscMix
+
+

Osillator 1 と Oscillator 2 の比率です。左いっぱいに回すと + Oscillator 1 の音だけになります。

+
+
Octave
+
+

ピッチをオクターブ単位で変更します。

+
+
Smooth
+
+

パラメータを変更したときに変更前の値から変更後の値に移行する秒数です。次のパラメータに影響します。

+
    +
  • Drift
  • +
  • Slope
  • +
  • PW (同名のパラメータすべて)
  • +
  • Feedback (同名のパラメータすべて)
  • +
  • PM
  • +
  • Gain (同名のパラメータすべて)
  • +
  • Cut
  • +
  • Res
  • +
  • Sat
  • +
  • Env>Cut
  • +
  • Key>Cut
  • +
  • +OscMix
  • +
  • OscMix
  • +
  • >PM
  • +
  • >Feedback
  • +
  • >LFO
  • +
  • >Slope2
  • +
  • >Shifter1
  • +
  • Shifter1.Semi
  • +
  • Shifter1.Cent
  • +
  • Shifter2.Semi
  • +
  • Shifter2.Cent
  • +
  • Freq
  • +
  • Shape
  • +
  • >Pitch1
  • +
  • >Slope1
  • +
  • >PW1
  • +
  • >Cut
  • +
+
+
+

+
+
Retrigger
+
+

チェックを入れると鍵盤が押されるたびにエンベロープをリセットします。チェックが外れているときは、同時に押している鍵盤の数が + 0 から 1 以上になったときだけエンベロープをリセットします。

+
+
Attack
+
+

モジュレーションエンベロープのアタック時間の秒数です。

+
+
Curve
+
+

モジュレーションエンベロープの特性です。

+
+
+

+
+
>PM
+
+

Oscillator2.PM をモジュレーションエンベロープ 1 + で変調します。

+
+
+

+
+
>Feedback
+
+

Oscillator1.Feedback をモジュレーションエンベロープ 2 + で変調します。

+
+
>LFO
+
+

LFO.Freq をモジュレーションエンベロープ 2 + で変調します。

+
+
>Slope2
+
+

Oscillator2.Slope をモジュレーションエンベロープ 2 + で変調します。

+
+
>Shifter1
+
+

Shifter 1 のピッチをモジュレーションエンベロープ 2 + で変調します。

+
+
+

+
+
Semi
+
+

半音単位でピッチシフトの量を変更します。

+
+
Cent
+
+

セント単位でピッチシフトの量を変更します。

+
+
Gain
+
+

ピッチシフトした信号を足し合わせる大きさです。

+
+
+

+
+
LFOType
+
+

LFO の波形の種類を次の 4 つから選択できます。

+
    +
  • Sin : サイン波です。 出力は Shape + 乗されます。
  • +
  • Saw : 鋸歯波です。 Shape + によって三角波にもできます。
  • +
  • Pulse : 矩形波です。 Shape + によってデューティ比を変更できます。
  • +
  • Noise : ブラウンノイズです。 Shape + によってステップあたりの移動量を変更できます。
  • +
+
+
Tempo
+
+

LFO の周波数をテンポシンクします。

+
+
Freq
+
+

LFO の周波数です。

+
+
Shape
+
+

LFO の波形を変更します。

+
+
>Pitch
+
+

LFO による Oscillator 1 のピッチの変調量です。

+
+
>Slope1
+
+

LFO による Oscillator1.Slope の変調量です。

+
+
>PW1
+
+

LFO による Oscillator1.PW の変調量です。

+
+
>PW1
+
+

LFO による Filter.Cut の変調量です。

+
+
+

+
+
SlideType
+
+

ピッチスライドの種類を変更できます。

+
    +
  • Always : + 常に最後に演奏されたノートのピッチからスライドします。
  • +
  • Sustain : 2 + つ以上の鍵盤が同時に押されたときだけスライドします。
  • +
  • Reset to 0 : 同時に押している鍵盤の数が 0 から 1 + 、あるいは 1 から 0 になるときは 0 Hz + にスライドします。それ以外の場合は他の 2 + つと同じようにスライドします。
  • +
+
+
Time
+
+

ピッチスライドにかかる時間です。

+
+
Offset
+
+

Oscillator 1 のスライド時間に対する Oscillator 2 + のスライド時間の比率です。

+
+
+

+
    +
  • 0.1.26 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.25 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.24 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.23 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.22 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.21 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.20 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.19 +
      +
    • macOS ビルドを復帰。
    • +
  • +
  • 0.1.18 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.17 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.16 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.15 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.14 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.13 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.12 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.11 +
      +
    • Slide->Time の値が無視されて、 Smooth + の値を使うようになっていたバグを修正。1.10 + では正しく修正されていなかった。
    • +
  • +
  • 0.1.10 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
    • Slide->Time の値が無視されて、 Smooth + の値を使うようになっていたバグを修正。
    • +
  • +
  • 0.1.9 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.8 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.7 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.6 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.5 +
      +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.4 +
      +
    • Linux ビルドの GUI を有効化。
    • +
    • プラグインの分類を kFxInstrument から + kInstrumentSynth に修正。
    • +
  • +
  • 0.1.3 +
      +
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • +
  • +
  • 0.1.2 +
      +
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • +
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • +
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • +
  • +
  • 0.1.1 +
      +
    • オシレータの実装の誤りを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

TrapezoidSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

- - + + diff --git a/docs/manual/UltraSynth/UltraSynth_en.html b/docs/manual/UltraSynth/UltraSynth_en.html index 1e087a36..cf8e0b8e 100644 --- a/docs/manual/UltraSynth/UltraSynth_en.html +++ b/docs/manual/UltraSynth/UltraSynth_en.html @@ -2,539 +2,575 @@ - - - - -UltraSynth_en - - - - + + + + + UltraSynth_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

UltraSynth

-

-

UltraSynth is an ordinary synthesizer except 64-fold oversampling -that is the same one used in UltrasonicRingMod. Because of the high -oversampling ratio, modulation sound is okay. However CPU load is -high.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -554,407 +590,426 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

XY pad provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Middle Drag: Only Change X value.
  • -
  • Mouse Wheel: Fine Adjustment X value.
  • -
  • Shift + Middle Drag: Only Change Y value.
  • -
  • Shift + Mouse Wheel: Fine Adjustment Y -value.
  • -
-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Gain

-
-
Gain
-
-

Output gain.

-
-
Rect.
-
-

Mixing ratio of full wave rectified signal.

-
-
Sat.
-
-

Mixing ratio of the signal distorted by square root.

-
-
A, D, S, R
-
-

Gain envelope parameters.

-
    -
  • A: Attack time.
  • -
  • D: Decay time.
  • -
  • S: Sustain amplitude.
  • -
  • R: Release time after note-off.
  • -
-
-
-

Oscillator

-

UltraSynth has 2 oscillators. The parameters of each oscillator -matchs to X or Y axis of X-Y pad.

-
-
Pitch
-
-

Oscillator pitch.

-

The value is not visible on GUI, but the unit is cent, which is 1/100 -of a semitone.

-
-
Wave Shape
-
-

Oscillator wave shape.

-

When Saw-Pulse is 0, the value [0, 0.5, 1] matches to -[Upward Sawtooth, Triangle, Downward Sawtooth]. When -Saw-Pulse is 1, the value becomes the duty ratio of pulse -wave.

-
-
Saw-Pulse
-
-

Mixing ratio of sawtooth and pulse wave in a oscillator.

-

When Saw-Pulse is 0, oscillator outputs sawtooth wave. -When Saw-Pulse is 1, oscillator outputs pulse wave.

-
-
X Oct., Y Oct.
-
-

Pitch of oscillator in octave.

-
-
Mix
-
-

Mixing ratio of 2 oscillators.

-

When Mix is 0, you can only hear oscillator X output. -When Mix is 1, you can only hear oscillator Y output.

-
-
LP>Osc.X
-
-

Modulation gain of filter output to oscillator X.

-
-
Cross PM
-
-

Cross phase modulation amount.

-

Horizontal (X) axis constrols Y to X modulation, and vertical (Y) -axis controls X to Y modulation.

-
-
Feedback PM
-
-

Feedback phase modulation amount.

-

Horizontal (X) axis constrols X to X modulation, and vertical (Y) -axis controls Y to Y modulation.

-
-
-

Filter

-

Lowpass filter parameters.

-
-
Cut
-
-

Cutoff frequency of lowpass filter.

-
-
Q
-
-

Q factor of lowpass filter.

-
-
A, D
-
-

Cutoff envelope parameters.

-
    -
  • A: Attack time.
  • -
  • D: Decay time.
  • -
-
-
Env>Cut
-
-

Modulation amount from envelope to cutoff frequency.

-
-
Key
-
-

Cutoff tuning ratio depending on the pitch of note.

-

When set to leftmost, cutoff frequency doesn’t change regardless of -the pitch of note. When set to rightmost, cutoff frequency precisely -follows the pitch of note.

-
-
-

Tuning

-
-
Semitone, Cent
-
-

Pitch in semitone or cent. 1 semitone equals to 100 cents.

-
-
Equal Temp., A4 [Hz]
-
-

Equal Temp. is abbreviation of equal temperament (ET). -When Equal Temp. is 12, then the tuning becomes standard 12 -ET. Setting Equal Temp. to less than 12 might increase the -range of note that doesn’t change sound, or doesn’t output sound. This -is due to the internal pitch becomes too high or too low.

-

A4 [Hz] is freqeuncy of note A4.

-
-
P.Bend Range [st.]
-
-

Range of pitch bend in semitone.

-
-
-

LFO

-
-
Rate
-
-

Rate of LFO.

-

When Sync. is turned off, Rate becomes the -frequency of LFO. When Sync. is turned on, -Rate becomes the multiplier to the interval of -synchronization. For example, if Rate is 2 and -Sync. is turned off, LFO cycles at 2 Hz. If -Rate is 2 and Sync. is turned on, the interval -of synchronization becomes half (1/2).

-
-
Shape
-
-

LFO distortion amount.

-

The wave shape becomes close to square wave when Shape -is set to rightmost.

-
-
Retrigger
-
-

When checked, it resets LFO phase to 0 for each note-on.

-
-
Sync.
-
-

When checked, it enables tempo synchronization.

-
-
Sync. Upper, Sync. Lower
-
-

These are the numbers on the right side of Sync. -checkbox. They indicates the interval of synchronization in beats.

-

Note that Sync. Upper and Sync. Lower are -not time signature, but beats in fractional number. For example, if time -signature is set to 3/4, and Sync. Upper and -Sync. Lower are both set to 1, LFO cycles 3 time in a -bar.

-

Following is the calculation of the interval of synchronization.

-
syncIntervalInBeats = (Sync. Upper) / (Sync. Lower).
-
-
>Pitch
-
-

LFO modulation amount for oscillator pitch.

-
-
>OscMix
-
-

LFO modulation amount for Oscillator -> Mix.

-
-
>Cutoff
-
-

LFO modulation amount for filter cutoff frequency.

-
-
>Pre Sat.
-
-

LFO modulation amount for the amplitude of signal right before -passing Sat..

-
-
>X Shape, >Y Shape
-
-

LFO modulation amount for Wave Shape.

-
-
-

Misc.

-
-
Phase Reset
-
-

When checked, it resets oscillator phase at note-on, only if gain -envelope is resting.

-

Gain envelope rests when the output value after release becomes -sufficiently small. Therefore, if note-on is given when you are still -perceiving release of the previous note, the oscillator phase won’t -reset because gain envelope is not resting. Also note that when release -time is long, it’s hard to determine if gain envelope is resting or not -by using hearing.

-
-
Slide
-
-

Time to slide the pitch of latest note.

-
-
-

Change Log

-
    -
  • 0.1.9 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.8 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.7 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.6 -
      -
    • Added presets.
    • -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.5 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Removed bypass processing that is causing crash. Parameter is still -available, but it has no effect.
    • -
  • -
  • 0.1.4 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.1.3 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.1.2 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed to reset filter internal values to match the values set on -GUI.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

UltraSynth 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

XY pad provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Middle Drag: Only Change X value.
  • +
  • Mouse Wheel: Fine Adjustment X value.
  • +
  • Shift + Middle Drag: Only Change Y + value.
  • +
  • Shift + Mouse Wheel: Fine Adjustment Y + value.
  • +
+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+
+
Gain
+
+

Output gain.

+
+
Rect.
+
+

Mixing ratio of full wave rectified signal.

+
+
Sat.
+
+

Mixing ratio of the signal distorted by square root.

+
+
A, D, S, R
+
+

Gain envelope parameters.

+
    +
  • A: Attack time.
  • +
  • D: Decay time.
  • +
  • S: Sustain amplitude.
  • +
  • R: Release time after note-off.
  • +
+
+
+

+

UltraSynth has 2 oscillators. The parameters of each oscillator + matchs to X or Y axis of X-Y pad.

+
+
Pitch
+
+

Oscillator pitch.

+

The value is not visible on GUI, but the unit is cent, which is + 1/100 of a semitone.

+
+
Wave Shape
+
+

Oscillator wave shape.

+

When Saw-Pulse is 0, the value [0, 0.5, 1] matches to + [Upward Sawtooth, Triangle, Downward Sawtooth]. When + Saw-Pulse is 1, the value becomes the duty ratio of pulse + wave.

+
+
Saw-Pulse
+
+

Mixing ratio of sawtooth and pulse wave in a oscillator.

+

When Saw-Pulse is 0, oscillator outputs sawtooth wave. + When Saw-Pulse is 1, oscillator outputs pulse wave.

+
+
X Oct., Y Oct.
+
+

Pitch of oscillator in octave.

+
+
Mix
+
+

Mixing ratio of 2 oscillators.

+

When Mix is 0, you can only hear oscillator X output. + When Mix is 1, you can only hear oscillator Y output.

+
+
LP>Osc.X
+
+

Modulation gain of filter output to oscillator X.

+
+
Cross PM
+
+

Cross phase modulation amount.

+

Horizontal (X) axis constrols Y to X modulation, and vertical (Y) + axis controls X to Y modulation.

+
+
Feedback PM
+
+

Feedback phase modulation amount.

+

Horizontal (X) axis constrols X to X modulation, and vertical (Y) + axis controls Y to Y modulation.

+
+
+

+

Lowpass filter parameters.

+
+
Cut
+
+

Cutoff frequency of lowpass filter.

+
+
Q
+
+

Q factor of lowpass filter.

+
+
A, D
+
+

Cutoff envelope parameters.

+
    +
  • A: Attack time.
  • +
  • D: Decay time.
  • +
+
+
Env>Cut
+
+

Modulation amount from envelope to cutoff frequency.

+
+
Key
+
+

Cutoff tuning ratio depending on the pitch of note.

+

When set to leftmost, cutoff frequency doesn’t change regardless of + the pitch of note. When set to rightmost, cutoff frequency precisely + follows the pitch of note.

+
+
+

+
+
Semitone, Cent
+
+

Pitch in semitone or cent. 1 semitone equals to 100 cents.

+
+
Equal Temp., A4 [Hz]
+
+

Equal Temp. is abbreviation of equal temperament (ET). + When Equal Temp. is 12, then the tuning becomes standard + 12 ET. Setting Equal Temp. to less than 12 might increase + the range of note that doesn’t change sound, or doesn’t output sound. + This is due to the internal pitch becomes too high or too low.

+

A4 [Hz] is freqeuncy of note A4.

+
+
P.Bend Range [st.]
+
+

Range of pitch bend in semitone.

+
+
+

+
+
Rate
+
+

Rate of LFO.

+

When Sync. is turned off, Rate becomes + the frequency of LFO. When Sync. is turned on, + Rate becomes the multiplier to the interval of + synchronization. For example, if Rate is 2 and + Sync. is turned off, LFO cycles at 2 Hz. If + Rate is 2 and Sync. is turned on, the + interval of synchronization becomes half (1/2).

+
+
Shape
+
+

LFO distortion amount.

+

The wave shape becomes close to square wave when Shape + is set to rightmost.

+
+
Retrigger
+
+

When checked, it resets LFO phase to 0 for each note-on.

+
+
Sync.
+
+

When checked, it enables tempo synchronization.

+
+
Sync. Upper, Sync. Lower
+
+

These are the numbers on the right side of Sync. + checkbox. They indicates the interval of synchronization in beats.

+

Note that Sync. Upper and Sync. Lower are + not time signature, but beats in fractional number. For example, if + time signature is set to 3/4, and Sync. Upper and + Sync. Lower are both set to 1, LFO cycles 3 time in a + bar.

+

Following is the calculation of the interval of + synchronization.

+
syncIntervalInBeats = (Sync. Upper) / (Sync. Lower).
+
+
>Pitch
+
+

LFO modulation amount for oscillator pitch.

+
+
>OscMix
+
+

LFO modulation amount for Oscillator -> Mix.

+
+
>Cutoff
+
+

LFO modulation amount for filter cutoff frequency.

+
+
>Pre Sat.
+
+

LFO modulation amount for the amplitude of signal right before + passing Sat..

+
+
>X Shape, >Y Shape
+
+

LFO modulation amount for Wave Shape.

+
+
+

+
+
Phase Reset
+
+

When checked, it resets oscillator phase at note-on, only if gain + envelope is resting.

+

Gain envelope rests when the output value after release becomes + sufficiently small. Therefore, if note-on is given when you are still + perceiving release of the previous note, the oscillator phase won’t + reset because gain envelope is not resting. Also note that when + release time is long, it’s hard to determine if gain envelope is + resting or not by using hearing.

+
+
Slide
+
+

Time to slide the pitch of latest note.

+
+
+

+
    +
  • 0.1.9 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.8 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.7 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.6 +
      +
    • Added presets.
    • +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.5 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Removed bypass processing that is causing crash. Parameter is + still available, but it has no effect.
    • +
  • +
  • 0.1.4 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.1.3 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.1.2 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed to reset filter internal values to match the values set on + GUI.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

UltraSynth is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/UltraSynth/UltraSynth_ja.html b/docs/manual/UltraSynth/UltraSynth_ja.html index c117a7f8..5babf9d4 100644 --- a/docs/manual/UltraSynth/UltraSynth_ja.html +++ b/docs/manual/UltraSynth/UltraSynth_ja.html @@ -2,541 +2,578 @@ - - - - -UltraSynth_ja - - - - + + + + + UltraSynth_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

UltraSynth

-

-

UltraSynthウルトラ シンセ は UltrasonicRingMod -と同じく 64 -倍のオーバーサンプリングを行っていることを除けば、これといった特長のないモノフォニックのシンセサイザです。オーバーサンプリングの倍率が高いので変調をかけた音が得意ですが、 -CPU 負荷は高めです。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

DAW によっては上記とは別に VST3 + をインストールできるディレクトリを提供していることがあります。詳しくは利用している + DAW のマニュアルを参照してください。

+

+

注意: プリセットの無いプラグインもあります。

+

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

+
    +
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. +
  3. ダウンロードした zip ファイルを解凍。
  4. +
  5. presets ディレクトリ内の Uhhyou + ディレクトリを OS ごとに決められたディレクトリに配置。
  6. +
+

以下は OS ごとのプリセットの配置先の一覧です。

+
    +
  • Windows : + /Users/$USERNAME/Documents/VST3 Presets
  • +
  • Linux : $HOME/.vst3/presets
  • +
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • +
+

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

+ +

+

プラグインが DAW に認識されないときは C++ redistributable + をインストールしてみてください。インストーラは次のリンクからダウンロードできます。ファイル名は + vc_redist.x64.exe です。

+ +

+

Ubuntu 22.04 では次のパッケージのインストールが必要です。

+
sudo apt install libxcb-cursor0  libxkbcommon-x11-0
+

もし DAW がプラグインを認識しないときは、下のリンクの + Package Requirements を参考にして VST3 + に必要なパッケージがすべてインストールされているか確認してください。

+ +

REAPER の Linux 版がプラグインを認識しないときは + ~/.config/REAPER/reaper-vstplugins64.ini を削除して + REAPER を再起動してみてください。

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -556,401 +593,418 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

XY パッドでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • ホイールドラッグ : X 軸の値のみ変更。
  • -
  • マウスホイール : X 軸の値の微調整。
  • -
  • Shift + ホイールドラッグ : Y -軸の値のみ変更。
  • -
  • Shift + マウスホイール : Y -軸の値の微調整。
  • -
-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Gain

-
-
Gain
-
-

出力ゲインです。

-
-
Rect.
-
-

全波整流した信号を混ぜる比率です。

-
-
Sat.
-
-

平方根によって歪ませた信号を混ぜる比率です。

-
-
A, D, S, R
-
-

出力ゲインにかかるエンベロープのパラメータです。

-
    -
  • A: 立ち上がり時間 (Attack) 。
  • -
  • D: 減衰時間 (Decay) 。
  • -
  • S: 持続区間の音量 (Sustain) 。
  • -
  • R: ノートオフの後に続く減衰時間 (Release) 。
  • -
-
-
-

Oscillator

-

UltraSynth には 2 -つのオシレータが備えられており、それぞれのパラメータが X-Y -パッドの縦軸と横軸に対応しています。

-
-
Pitch
-
-

オシレータのピッチです。

-

GUI には表示されませんが、パラメータの値の単位はセント (1/100 半音) -です。

-
-
Wave Shape
-
-

オシレータの波形です。

-

Saw-Pulse が 0 のときは [0, 0.5, 1] がそれぞれ -[のこぎり波 (上り), 三角波, のこぎり波 (下り)] -と対応します。Saw-Pulse が 1 -のときはパラメータの値が矩形波のデューティ比を表します。

-
-
Saw-Pulse
-
-

オシレータの波形を、のこぎり波と矩形波の間で混ぜる比率です。

-

Saw-Pulse が 0 のときはのこぎり波、 1 -のときは矩形波になります。

-
-
X Oct., Y Oct.
-
-

オクターブ単位のオシレータのピッチです。

-
-
Mix
-
-

2 つのオシレータを混ぜる比率です。

-

Mix が 0 のときはオシレータ X 、 1 のときはオシレータ Y -からの出力だけが聞こえるようになります。

-
-
LP>Osc.X
-
-

フィルタ出力によってオシレータ X を変調する量です。

-
-
Cross PM
-
-

オシレータを互い違いに変調する量です。

-

横軸は Y から X 、縦軸は X から Y への変調量です。

-
-
Feedback PM
-
-

オシレータの自己変調の量です。

-

横軸は X から X 、縦軸は Y から Y への変調量です。

-
-
-

Filter

-

ローパスフィルタの設定です。

-
-
Cut
-
-

カットオフ周波数です。

-
-
Q
-
-

Q 値あるいはレゾナンスです。

-
-
A, D
-
-

カットオフ周波数にかかるエンベロープのパラメータです。

-
    -
  • A: 立ち上がり時間 (Attack) 。
  • -
  • D: 減衰時間 (Decay) 。
  • -
-
-
Env>Cut
-
-

エンベロープのかかり具合です。

-
-
Key
-
-

与えられたノートに応じてカットオフ周波数を調整する割合です。

-

左いっぱいにするとノートのピッチによらず常に一定、右いっぱいにするとノートのピッチに完全に追従するようになります。

-
-
-

Tuning

-
-
Semitone, Cent
-
-

全体の音の高さを変更します。

-
    -
  • Semitone: 半音
  • -
  • Cent: 1 半音の 1 / 100 。
  • -
-
-
Equal Temp., A4 [Hz]
-
-

音律を変更します。

-

Equal Temp. は Equal Temperament (平均律) の略です。 -Equal Temp. が 12 のときは 12 平均律となります。 -Equal Temp. を 12 -よりも小さくすると、内部的なピッチが高すぎるか低すぎるために、音が出なくなる、あるいは変わらなくなる範囲が増えるので注意してください。

-

A4 [Hz] は、音程 A4 の周波数です。

-
-
P.Bend Range [st.]
-
-

ピッチベンドの範囲です。

-
-
-

LFO

-
-
Rate
-
-

LFO の周期です。

-

Sync. -が無効の時は周波数、有効の時は同期間隔への係数として使われます。例えば -Rate が 2 のとき、 Sync. が無効なら LFO は 2 -Hz 、有効なら同期間隔を 1/2 倍に短縮します。

-
-
Shape
-
-

LFO のサイン波を歪ませる量です。

-

右いっぱいにすると矩形波に近い波形になります。

-
-
Retrigger
-
-

有効にするとノートオンごとに位相を 0 にリセットします。

-
-
Sync.
-
-

有効にするとテンポに同期します。

-
-
Sync. Upper, Sync. Lower
-
-

Sync. の右にある 2 つの縦に重なった数字のことで、 LFO -の同期間隔を拍で表しています。

-

Sync. UpperSync. Lower -は拍を分数であらわしたときの分子と分母であって、拍子記号ではないことに注意してください。例えば -3/4 拍子のときに Sync. UpperSync. Lower -がどちらも 1 であれば、 LFO の同期間隔は 1 拍なので、 1 小節の間に LFO -は 3 周します。

-

以下は同期間隔の計算式です。

-
syncIntervalInBeats = (Sync. Upper) / (Sync. Lower).
-
-
>Pitch
-
-

オシレータのピッチへの LFO による変調量です。

-
-
>OscMix
-
-

Oscillator -> Mix への LFO による変調量です。

-
-
>Cutoff
-
-

フィルタのカットオフ周波数への LFO による変調量です。

-
-
>Pre Sat.
-
-

Sat. による歪みが加えられる前の信号の振幅への、 LFO -による変調量です。

-
-
>X Shape, >Y Shape
-
-

Wave Shape への LFO による変調量です。

-
-
-

Misc.

-
-
Phase Reset
-
-

有効にすると、ゲイン・エンベロープが休止状態のときにノートオンが与えられたときにオシレータの位相をリセットします。

-

ゲイン・エンベロープはリリース中の値が十分に小さくなった時に休止状態へと移行します。つまり、リリースの音がまだ聞こえているときにノートオンを与えると、休止状態ではないのでオシレータの位相はリセットされません。また、リリース時間を長く設定しているときは人間の耳で音が止まっているかどうかを判断することは難しいことに注意してください。

-
-
Slide
-
-

最後に与えられたノートのピッチへとスライドする時間です。

-
-
-

チェンジログ

-
    -
  • 0.1.9 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.8 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.6 -
      -
    • プリセットを追加。
    • -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.5 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため -bypass -パラメータは保持されるが、変更による効果はなくなった。
    • -
  • -
  • 0.1.4 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.1.3 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.1.2 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.1 -
      -
    • フィルタのパラメータが GUI -で設定した値にリセットされるように修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

UltraSynth のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

XY パッドでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • ホイールドラッグ : X 軸の値のみ変更。
  • +
  • マウスホイール : X 軸の値の微調整。
  • +
  • Shift + ホイールドラッグ : Y + 軸の値のみ変更。
  • +
  • Shift + マウスホイール : Y + 軸の値の微調整。
  • +
+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

+
+
Gain
+
+

出力ゲインです。

+
+
Rect.
+
+

全波整流した信号を混ぜる比率です。

+
+
Sat.
+
+

平方根によって歪ませた信号を混ぜる比率です。

+
+
A, D, S, R
+
+

出力ゲインにかかるエンベロープのパラメータです。

+
    +
  • A: 立ち上がり時間 (Attack) 。
  • +
  • D: 減衰時間 (Decay) 。
  • +
  • S: 持続区間の音量 (Sustain) 。
  • +
  • R: ノートオフの後に続く減衰時間 (Release) 。
  • +
+
+
+

+

UltraSynth には 2 + つのオシレータが備えられており、それぞれのパラメータが X-Y + パッドの縦軸と横軸に対応しています。

+
+
Pitch
+
+

オシレータのピッチです。

+

GUI には表示されませんが、パラメータの値の単位はセント (1/100 半音) + です。

+
+
Wave Shape
+
+

オシレータの波形です。

+

Saw-Pulse が 0 のときは [0, 0.5, 1] がそれぞれ + [のこぎり波 (上り), 三角波, のこぎり波 (下り)] + と対応します。Saw-Pulse が 1 + のときはパラメータの値が矩形波のデューティ比を表します。

+
+
Saw-Pulse
+
+

オシレータの波形を、のこぎり波と矩形波の間で混ぜる比率です。

+

Saw-Pulse が 0 のときはのこぎり波、 1 + のときは矩形波になります。

+
+
X Oct., Y Oct.
+
+

オクターブ単位のオシレータのピッチです。

+
+
Mix
+
+

2 つのオシレータを混ぜる比率です。

+

Mix が 0 のときはオシレータ X 、 1 のときはオシレータ + Y からの出力だけが聞こえるようになります。

+
+
LP>Osc.X
+
+

フィルタ出力によってオシレータ X を変調する量です。

+
+
Cross PM
+
+

オシレータを互い違いに変調する量です。

+

横軸は Y から X 、縦軸は X から Y への変調量です。

+
+
Feedback PM
+
+

オシレータの自己変調の量です。

+

横軸は X から X 、縦軸は Y から Y への変調量です。

+
+
+

+

ローパスフィルタの設定です。

+
+
Cut
+
+

カットオフ周波数です。

+
+
Q
+
+

Q 値あるいはレゾナンスです。

+
+
A, D
+
+

カットオフ周波数にかかるエンベロープのパラメータです。

+
    +
  • A: 立ち上がり時間 (Attack) 。
  • +
  • D: 減衰時間 (Decay) 。
  • +
+
+
Env>Cut
+
+

エンベロープのかかり具合です。

+
+
Key
+
+

与えられたノートに応じてカットオフ周波数を調整する割合です。

+

左いっぱいにするとノートのピッチによらず常に一定、右いっぱいにするとノートのピッチに完全に追従するようになります。

+
+
+

+
+
Semitone, Cent
+
+

全体の音の高さを変更します。

+
    +
  • Semitone: 半音
  • +
  • Cent: 1 半音の 1 / 100 。
  • +
+
+
Equal Temp., A4 [Hz]
+
+

音律を変更します。

+

Equal Temp. は Equal Temperament (平均律) の略です。 + Equal Temp. が 12 のときは 12 平均律となります。 + Equal Temp. を 12 + よりも小さくすると、内部的なピッチが高すぎるか低すぎるために、音が出なくなる、あるいは変わらなくなる範囲が増えるので注意してください。

+

A4 [Hz] は、音程 A4 の周波数です。

+
+
P.Bend Range [st.]
+
+

ピッチベンドの範囲です。

+
+
+

+
+
Rate
+
+

LFO の周期です。

+

Sync. + が無効の時は周波数、有効の時は同期間隔への係数として使われます。例えば + Rate が 2 のとき、 Sync. が無効なら LFO は 2 + Hz 、有効なら同期間隔を 1/2 倍に短縮します。

+
+
Shape
+
+

LFO のサイン波を歪ませる量です。

+

右いっぱいにすると矩形波に近い波形になります。

+
+
Retrigger
+
+

有効にするとノートオンごとに位相を 0 にリセットします。

+
+
Sync.
+
+

有効にするとテンポに同期します。

+
+
Sync. Upper, Sync. Lower
+
+

Sync. の右にある 2 つの縦に重なった数字のことで、 LFO + の同期間隔を拍で表しています。

+

Sync. UpperSync. Lower + は拍を分数であらわしたときの分子と分母であって、拍子記号ではないことに注意してください。例えば + 3/4 拍子のときに Sync. UpperSync. Lower + がどちらも 1 であれば、 LFO の同期間隔は 1 拍なので、 1 小節の間に LFO + は 3 周します。

+

以下は同期間隔の計算式です。

+
syncIntervalInBeats = (Sync. Upper) / (Sync. Lower).
+
+
>Pitch
+
+

オシレータのピッチへの LFO による変調量です。

+
+
>OscMix
+
+

Oscillator -> Mix への LFO による変調量です。

+
+
>Cutoff
+
+

フィルタのカットオフ周波数への LFO による変調量です。

+
+
>Pre Sat.
+
+

Sat. による歪みが加えられる前の信号の振幅への、 LFO + による変調量です。

+
+
>X Shape, >Y Shape
+
+

Wave Shape への LFO による変調量です。

+
+
+

+
+
Phase Reset
+
+

有効にすると、ゲイン・エンベロープが休止状態のときにノートオンが与えられたときにオシレータの位相をリセットします。

+

ゲイン・エンベロープはリリース中の値が十分に小さくなった時に休止状態へと移行します。つまり、リリースの音がまだ聞こえているときにノートオンを与えると、休止状態ではないのでオシレータの位相はリセットされません。また、リリース時間を長く設定しているときは人間の耳で音が止まっているかどうかを判断することは難しいことに注意してください。

+
+
Slide
+
+

最後に与えられたノートのピッチへとスライドする時間です。

+
+
+

+
    +
  • 0.1.9 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.8 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.6 +
      +
    • プリセットを追加。
    • +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.5 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュの原因となっていたバイパス処理を除去。後方互換性のため + bypass + パラメータは保持されるが、変更による効果はなくなった。
    • +
  • +
  • 0.1.4 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.1.3 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.1.2 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.1 +
      +
    • フィルタのパラメータが GUI + で設定した値にリセットされるように修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

UltraSynth のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/UltrasonicRingMod/UltrasonicRingMod_en.html b/docs/manual/UltrasonicRingMod/UltrasonicRingMod_en.html index 2720fa49..3640c2bf 100644 --- a/docs/manual/UltrasonicRingMod/UltrasonicRingMod_en.html +++ b/docs/manual/UltrasonicRingMod/UltrasonicRingMod_en.html @@ -2,534 +2,571 @@ - - - - -UltrasonicRingMod_en - - - - + + + + + UltrasonicRingMod_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

UltrasonicRingMod

-

-

UltrasonicRingMod is a ring modulator with 64-fold oversampling. -Maximum modulator frequency is 1 MHz. That said, just modulating with -ultrasonic frequency doesn’t produce anything audible. Therefore, phase -modulation and hard clipping are added to make some noise in audible -frequency.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -549,290 +586,305 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

Amplitude increases by 120 dB maximum when Mod. Scale is -turned to right. Recommend to use limiter.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-
-
Mix
-
-

Mixing ratio of input and modulated signal.

-

Note that mixing is done before hard clipping. In other words, hard -clipping is applied even if Mix is set to leftmost, and -Hardclip is not set to leftmost.

-

UltrasonicRingMod do not bypass multi-rate processing (oversampling). -To bypass completely, use mixer on DAW.

-
-
Pre Clip
-
-

A gain right before Hardclip.

-
-
Out
-
-

Output gain.

-

Beware that maximum gain is +60 dB.

-
-
Frequency
-
-

Modulator frequency.

-
-
DC Offset
-
-

Amplitude of direct current (DC) added to modulator.

-

Range of amplitude becomes [-1, 1] at leftmost, and -[0, 1] at rightmost.

-
-
Feedback
-
-

Amount of feedback from ring modulator output to modulator phase.

-
-
Mod. Scale
-
-

Ratio to make amplitude of modulator proportional to -Frequency.

-
-
Mod. Wrap
-
-

Mixing ratio of raw and wrapped-at-1 modulator signal.

-

Wrapped-at-1 is same operation as fmod(value, 1.0).

-
-
Hardclip
-
-

Mixing ratio of raw and hard-clipped ring modulator output.

-
-
Smoothing [s]
-
-

Parameter smoothing time in second.

-

Internally, inverse of Smoothing is used as cutoff -frequency. Therefore the time is not exact, but a rough estimate.

-
-
-

Note

-

Modulator frequency can be controled by note-on. To send note events, -please refer to the manual of DAW you are using.

-
-
Negative, Scale
-
-

Scale is a multiplier to note. When -Negative is lit, it negates the value of -Scale.

-

Provided note multiplies the value of Frequency. -Following is the equation to calculate modulator frequency.

-
sign = negative ? -1 : 1.
+  

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

Amplitude increases by 120 dB maximum when Mod. Scale + is turned to right. Recommend to use limiter.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+
+
Mix
+
+

Mixing ratio of input and modulated signal.

+

Note that mixing is done before hard clipping. In other words, hard + clipping is applied even if Mix is set to leftmost, and + Hardclip is not set to leftmost.

+

UltrasonicRingMod do not bypass multi-rate processing + (oversampling). To bypass completely, use mixer on DAW.

+
+
Pre Clip
+
+

A gain right before Hardclip.

+
+
Out
+
+

Output gain.

+

Beware that maximum gain is +60 dB.

+
+
Frequency
+
+

Modulator frequency.

+
+
DC Offset
+
+

Amplitude of direct current (DC) added to modulator.

+

Range of amplitude becomes [-1, 1] at leftmost, and + [0, 1] at rightmost.

+
+
Feedback
+
+

Amount of feedback from ring modulator output to modulator + phase.

+
+
Mod. Scale
+
+

Ratio to make amplitude of modulator proportional to + Frequency.

+
+
Mod. Wrap
+
+

Mixing ratio of raw and wrapped-at-1 modulator signal.

+

Wrapped-at-1 is same operation as + fmod(value, 1.0).

+
+
Hardclip
+
+

Mixing ratio of raw and hard-clipped ring modulator output.

+
+
Smoothing [s]
+
+

Parameter smoothing time in second.

+

Internally, inverse of Smoothing is used as cutoff + frequency. Therefore the time is not exact, but a rough estimate.

+
+
+

+

Modulator frequency can be controled by note-on. To send note + events, please refer to the manual of DAW you are using.

+
+
Negative, Scale
+
+

Scale is a multiplier to note. When + Negative is lit, it negates the value of + Scale.

+

Provided note multiplies the value of Frequency. + Following is the equation to calculate modulator frequency.

+
sign = negative ? -1 : 1.
 modulatorFrequency = frequency * 2^(sign * scale * (midiNote + offset - 69) / 12).
-
-
Offset [st.]
-
-

A value added to input note number. Unit is semitone.

-
-
Slide Time [s]
-
-

Pitch slide time from previous note to current note.

-

Internally, inverse of Slide Time is used as cutoff -frequency. Therefore the time is not exact, but a rough estimate.

-
-
-

Change Log

-
    -
  • 0.1.5 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.4 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.3 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.2 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
  • -
  • 0.1.0 -
      -
    • Updated splash screen text.
    • -
  • -
  • 0.0.6 -
      -
    • Added floor shortcut to number sliders. Shortcut is Shift -+ Middle Click.
    • -
  • -
  • 0.0.5 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.0.4 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.0.3 -
      -
    • Changed to use double precision for entire DSP.
    • -
    • Fixed a bug that sampling rate is ignored.
    • -
  • -
  • 0.0.2 -
      -
    • Added gains to hard clipping and to output.
    • -
    • Added parameter smoothing time, as a parameter.
    • -
    • Changed modulator amplitude clipping algorithm to floating point -number modulo.
    • -
    • Changed center note number to note offset from C4.
    • -
  • -
  • 0.0.1 -
      -
    • Initial release. Not distributed.
    • -
  • -
-

Old Versions

- -

License

-

UltrasonicRingMod 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.

- - - +
+
Offset [st.]
+
+

A value added to input note number. Unit is semitone.

+
+
Slide Time [s]
+
+

Pitch slide time from previous note to current note.

+

Internally, inverse of Slide Time is used as cutoff + frequency. Therefore the time is not exact, but a rough estimate.

+
+
+

+
    +
  • 0.1.5 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.4 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.3 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.2 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
  • +
  • 0.1.0 +
      +
    • Updated splash screen text.
    • +
  • +
  • 0.0.6 +
      +
    • Added floor shortcut to number sliders. Shortcut is + Shift + Middle Click.
    • +
  • +
  • 0.0.5 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.0.4 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.0.3 +
      +
    • Changed to use double precision for entire DSP.
    • +
    • Fixed a bug that sampling rate is ignored.
    • +
  • +
  • 0.0.2 +
      +
    • Added gains to hard clipping and to output.
    • +
    • Added parameter smoothing time, as a parameter.
    • +
    • Changed modulator amplitude clipping algorithm to floating point + number modulo.
    • +
    • Changed center note number to note offset from C4.
    • +
  • +
  • 0.0.1 +
      +
    • Initial release. Not distributed.
    • +
  • +
+

+ +

+

UltrasonicRingMod is licensed under GPLv3. Complete licenses are + linked below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/UltrasonicRingMod/UltrasonicRingMod_ja.html b/docs/manual/UltrasonicRingMod/UltrasonicRingMod_ja.html index 5996f649..c90dc6a2 100644 --- a/docs/manual/UltrasonicRingMod/UltrasonicRingMod_ja.html +++ b/docs/manual/UltrasonicRingMod/UltrasonicRingMod_ja.html @@ -2,537 +2,575 @@ - - - - -UltrasonicRingMod_ja - - - - + + + + + UltrasonicRingMod_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

UltrasonicRingMod

-

-

UltrasonicRingModウルトラソニック リング モッド -は 64 倍のオーバーサンプリングを行うリングモジュレータで、最高 1 MHz -のサイン波による変調をかけることができます。とは言っても単に変調すると可聴域外なので何も聞こえなくなってしまいますが、フィードバックによる位相変調やハードクリッピングができるので、いくらかノイズが出せます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -552,294 +590,310 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

Mod. Scale を右へ回すと Frequency -の高さに比例して振幅が上がります。オーバーサンプリングの影響でやや低めになりますが、振幅が最大で -120 dB 上がるので、リミッタの使用を推奨します。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-
-
Mix
-
-

入力と変調された信号を混ぜる割合です。

-

信号を混ぜる処理はハードクリッピングの直前に行われます。つまり -Mix が左いっぱいで入力をバイパスしているときであっても、 -Hardclip -が左いっぱいでなければ、歪みが加えられる可能性があります。

-

また、マルチレート処理、つまりオーバーサンプリングによる音の変化はバイパスされません。完全なバイパスを行うときは -DAW 側のミキサーを使ってください。

-
-
Pre Clip
-
-

Hardclip -の直前に乗算されるゲインです。歪みを加えたいときに使えます。

-
-
Out
-
-

出力ゲインです。

-

最大値は +60 dB とやや高めなので注意してください。

-
-
Frequency
-
-

変調波の周波数です。

-
-
DC Offset
-
-

変調波に加える直流信号 (direct current, DC) の量です。

-

変調波の振幅の範囲は、左いっぱいで [-1, 1] -、右いっぱいで [0, 1] になります。

-
-
Feedback
-
-

リングモジュレータを通過した信号を変調波の位相へとフィードバックする量です。

-
-
Mod. Scale
-
-

変調波の振幅を Frequency の値に比例させる割合です。

-
-
Mod. Wrap
-
-

変調波と、変調波を振幅 1.0 で巻き戻した信号を混ぜる割合です。

-

1.0 で巻き戻す計算は fmod(value, 1.0) と同じです。

-
-
Hardclip
-
-

リングモジュレータの出力と、リングモジュレータからの出力をハードクリップした信号を混ぜる割合です。

-
-
Smoothing [s]
-
-

パラメータの値を変えたときに、変更先の値にたどり着くまでの大まかな時間です。

-

内部的には Smoothing -の値の逆数を平滑化フィルタのカットオフ周波数として使っているので、厳密な時間を表しているわけではない点に注意してください。

-
-
-

Note

-

ノートオン・ノートオフによって変調波の周波数を変えることができます。ノートイベントをエフェクトに送る方法については、使用している -DAW のマニュアルを参照してください。

-
-
Negative, Scale
-
-

Scale は入力されたノートのピッチに掛け合わされる値です。 -Negative をクリックして点灯させると Scale -が負の値として内部的に扱われるようになります。

-

ノートの音程は C4 を中心とした比率に置き換えられて -Frequency の値に乗算されます。以下は計算方法です。

-
modulatorFrequency = frequency * 2^((midiNote + offset - 69) / 12).
-
-
Offset [st.]
-
-

入力されたノート番号に加算される値です。単位は半音 (semitone, st.) -です。

-
-
Slide Time [s]
-
-

ひとつ前の音程から、新しく入力された音程に向かってピッチをスライドさせる大まかな時間です。

-

内部的には Slide Time -の値の逆数を平滑化フィルタのカットオフ周波数として使っているので、厳密な時間を表しているわけではない点に注意してください。

-
-
-

チェンジログ

-
    -
  • 0.1.5 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.4 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.2 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.1 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • スプラッシュ画面のテキストを更新。
    • -
  • -
  • 0.0.6 -
      -
    • 数値スライダに Shift + ホイールクリック -による値の切り捨てのショートカットを追加。
    • -
  • -
  • 0.0.5 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.0.4 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.0.3 -
      -
    • すべての DSP 処理で double を使うように変更。
    • -
    • サンプリング周波数が無視されていたバグを修正。
    • -
  • -
  • 0.0.2 -
      -
    • ハードクリッピングと出力のゲインを追加。
    • -
    • パラメータ平滑化時間をパラメータとして追加。
    • -
    • 変調波の振幅のクリッピングを浮動小数点数のモジュロに変更。
    • -
    • ノートの転調を行うパラメータの表現を C4 -からのオフセットに変更。
    • -
  • -
  • 0.0.1 -
      -
    • 初期リリース。未配布。
    • -
  • -
-

旧バージョン

-

UltrasonicRingMod

- -

ライセンス

-

UltrasonicRingMod のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

Mod. Scale を右へ回すと Frequency + の高さに比例して振幅が上がります。オーバーサンプリングの影響でやや低めになりますが、振幅が最大で + 120 dB 上がるので、リミッタの使用を推奨します。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+
+
Mix
+
+

入力と変調された信号を混ぜる割合です。

+

信号を混ぜる処理はハードクリッピングの直前に行われます。つまり + Mix が左いっぱいで入力をバイパスしているときであっても、 + Hardclip + が左いっぱいでなければ、歪みが加えられる可能性があります。

+

また、マルチレート処理、つまりオーバーサンプリングによる音の変化はバイパスされません。完全なバイパスを行うときは + DAW 側のミキサーを使ってください。

+
+
Pre Clip
+
+

Hardclip + の直前に乗算されるゲインです。歪みを加えたいときに使えます。

+
+
Out
+
+

出力ゲインです。

+

最大値は +60 dB とやや高めなので注意してください。

+
+
Frequency
+
+

変調波の周波数です。

+
+
DC Offset
+
+

変調波に加える直流信号 (direct current, DC) の量です。

+

変調波の振幅の範囲は、左いっぱいで [-1, 1] + 、右いっぱいで [0, 1] になります。

+
+
Feedback
+
+

リングモジュレータを通過した信号を変調波の位相へとフィードバックする量です。

+
+
Mod. Scale
+
+

変調波の振幅を Frequency + の値に比例させる割合です。

+
+
Mod. Wrap
+
+

変調波と、変調波を振幅 1.0 で巻き戻した信号を混ぜる割合です。

+

1.0 で巻き戻す計算は fmod(value, 1.0) と同じです。

+
+
Hardclip
+
+

リングモジュレータの出力と、リングモジュレータからの出力をハードクリップした信号を混ぜる割合です。

+
+
Smoothing [s]
+
+

パラメータの値を変えたときに、変更先の値にたどり着くまでの大まかな時間です。

+

内部的には Smoothing + の値の逆数を平滑化フィルタのカットオフ周波数として使っているので、厳密な時間を表しているわけではない点に注意してください。

+
+
+

+

ノートオン・ノートオフによって変調波の周波数を変えることができます。ノートイベントをエフェクトに送る方法については、使用している + DAW のマニュアルを参照してください。

+
+
Negative, Scale
+
+

Scale + は入力されたノートのピッチに掛け合わされる値です。 + Negative をクリックして点灯させると Scale + が負の値として内部的に扱われるようになります。

+

ノートの音程は C4 を中心とした比率に置き換えられて + Frequency の値に乗算されます。以下は計算方法です。

+
modulatorFrequency = frequency * 2^((midiNote + offset - 69) / 12).
+
+
Offset [st.]
+
+

入力されたノート番号に加算される値です。単位は半音 (semitone, st.) + です。

+
+
Slide Time [s]
+
+

ひとつ前の音程から、新しく入力された音程に向かってピッチをスライドさせる大まかな時間です。

+

内部的には Slide Time + の値の逆数を平滑化フィルタのカットオフ周波数として使っているので、厳密な時間を表しているわけではない点に注意してください。

+
+
+

+
    +
  • 0.1.5 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.4 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.2 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.1 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • スプラッシュ画面のテキストを更新。
    • +
  • +
  • 0.0.6 +
      +
    • 数値スライダに Shift + ホイールクリック + による値の切り捨てのショートカットを追加。
    • +
  • +
  • 0.0.5 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.0.4 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.0.3 +
      +
    • すべての DSP 処理で double を使うように変更。
    • +
    • サンプリング周波数が無視されていたバグを修正。
    • +
  • +
  • 0.0.2 +
      +
    • ハードクリッピングと出力のゲインを追加。
    • +
    • パラメータ平滑化時間をパラメータとして追加。
    • +
    • 変調波の振幅のクリッピングを浮動小数点数のモジュロに変更。
    • +
    • ノートの転調を行うパラメータの表現を C4 + からのオフセットに変更。
    • +
  • +
  • 0.0.1 +
      +
    • 初期リリース。未配布。
    • +
  • +
+

+

+ +

+

UltrasonicRingMod のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/WaveCymbal/WaveCymbal_en.html b/docs/manual/WaveCymbal/WaveCymbal_en.html index 2729d1e5..12779817 100644 --- a/docs/manual/WaveCymbal/WaveCymbal_en.html +++ b/docs/manual/WaveCymbal/WaveCymbal_en.html @@ -2,542 +2,580 @@ - - - - -WaveCymbal_en - - - - + + + + + WaveCymbal_en – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

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.

- -

full package contains following builds.

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux build is built on Ubuntu 22.04. If you are using distribution -other than Ubuntu 22.04, plugin will not likely to run. In this case, -please take a look at build -instruction.

-

macOS package is recommended for macOS user. I can’t -purchase Apple Developer Program, therefore installation requires a -workaround to bypass Gatekeeper. Details of workaround are written in -Installation -> macOS Specific -section.

-

Contact

-

Feel free to contact me on GitHub -repository or ryukau@gmail.com.

-

You can fund the development through paypal.me/ryukau.

-

Installation

-

Plugin

-

Move *.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.

-

Presets

-

Notice: Some plugins don’t have presets provided by -Uhhyou Plugins.

-

Presets are included in the plugin package linked at the top of this -page. To install presets, follow the steps below.

-
    -
  1. Download plugin from a link at the top of this page.
  2. -
  3. Extract downloaded zip file.
  4. -
  5. Open presets directory placed in extracted -package.
  6. -
  7. Move Uhhyou directory into an OS specific preset -directory (see below).
  8. -
-

Below is a list of preset directories for each OS.

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

Preset directory name must be the same as the plugin. If preset -directory does not exist, create it.

- -

Windows Specific

-

If DAW doesn’t recognize the plugin, try installing C++ -redistributable (vc_redist.x64.exe). Installer can be found -in the link below.

- -

Linux Specific

-

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to -delete a file ~/.config/REAPER/reaper-vstplugins64.ini and -restart REAPER.

-

macOS Specific

-

Important: full package is not -confirmed working. When using full, try removing following -files.

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS package doesn’t contain above files. Also, all -packages are in “ad-hoc signing” state set by codesign -command.

-

Remove Quarantine

-

When trying to run plugin first time, following message may appear on -macOS.

-
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
-

In this case, open terminal and try running one or both of following -command to unzipped .vst3 directory. Replace -/path/to/PluginName.vst3 according to your install -location.

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

Preset directory name must be the same as the plugin. If preset + directory does not exist, create it.

+ +

+

If DAW doesn’t recognize the plugin, try installing C++ + redistributable (vc_redist.x64.exe). Installer can be + found in the link below.

+ +

+

On Ubuntu 22.04, 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 on Linux may not recognize the plugin. A workaround is to + delete a file ~/.config/REAPER/reaper-vstplugins64.ini + and restart REAPER.

+

+

Important: full package is not + confirmed working. When using full, try removing + following files.

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

macOS package doesn’t contain above files. Also, all + packages are in “ad-hoc signing” state set by codesign + command.

+

+

When trying to run plugin first time, following message may appear + on macOS.

+
<PluginName>.vst3 is damaged and can't be opened. You should move it to the Trash.
+

In this case, open terminal and try running one or both of + following command to unzipped .vst3 directory. Replace + /path/to/PluginName.vst3 according to your install + location.

+
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
 xattr -rc /path/to/PluginName.vst3
-

Bypass Gatekeeper

-

Plugin may be considered as unsigned/un-notarized application. In -this case, open System Preferences, go to Security & Privacy → -General, then click the Open Anyway button. The offcial Apple help page -linked below has screenshots for the procedure. See “If you want to open -an app that hasn’t been notarized or is from an unidentified developer” -section.

- -

If the plugin is still not working, try changing install location to -/Library/Audio/Plug-ins/VST3/ or -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever -still haven’t tried.

-

If all the above methods do not work, try following the steps -below.

-
    -
  1. Open terminal and run sudo spctl --master-disable.
  2. -
  3. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select “Anywhere”.
  4. -
-

Beware that steps above degrades security of your system. To revert -the settings, follow the steps below.

-
    -
  1. Go to System Preferences → Security and Privacy → General → Allow -apps downloaded from, then select option to “App Store and identified -developers”.
  2. -
  3. Open terminal and run sudo spctl --master-enable.
  4. -
-

Applying codesign

-

Note This section may not relevant to -macOS packages. However it’s not verified. (GitHub -issue)

-

To use full package, following command might be -used.

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign might not be available without installing Xcode.

-

Reference

- -

GUI Style Configuration

-

At first time, create color config file to:

-
    -
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json -on Windows.
  • -
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on -Linux. -
      -
    • If $XDG_CONFIG_HOME is empty, make -$HOME/.config/UhhyouPlugins/style/style.json.
    • -
  • -
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -on macOS.
  • -
-

style.json will be loaded for each time a plugin window -opens.

-

Several color themes are available on the link below.

- -

Below is a example of style.json.

-
{
+  

+

Plugin may be considered as unsigned/un-notarized application. In + this case, open System Preferences, go to Security & Privacy → + General, then click the Open Anyway button. The offcial Apple help + page linked below has screenshots for the procedure. See “If you want + to open an app that hasn’t been notarized or is from an unidentified + developer” section.

+ +

If the plugin is still not working, try changing install location + to /Library/Audio/Plug-ins/VST3/ or + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ whichever + still haven’t tried.

+

If all the above methods do not work, try following the steps + below.

+
    +
  1. Open terminal and run + sudo spctl --master-disable.
  2. +
  3. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select “Anywhere”.
  4. +
+

Beware that steps above degrades security of your system. To revert + the settings, follow the steps below.

+
    +
  1. Go to System Preferences → Security and Privacy → General → Allow + apps downloaded from, then select option to “App Store and identified + developers”.
  2. +
  3. Open terminal and run + sudo spctl --master-enable.
  4. +
+

+

Note This section may not relevant to + macOS packages. However it’s not verified. (GitHub + issue)

+

To use full package, following command might be + used.

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign might not be available without installing Xcode.

+

+ +

+

At first time, create color config file to:

+
    +
  • /Users/USERNAME/AppData/Roaming/UhhyouPlugins/style/style.json + on Windows.
  • +
  • $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json on + Linux. +
      +
    • If $XDG_CONFIG_HOME is empty, make + $HOME/.config/UhhyouPlugins/style/style.json.
    • +
  • +
  • /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + on macOS.
  • +
+

style.json will be loaded for each time a plugin + window opens.

+

Several color themes are available on the link below.

+ +

Below is a example of style.json.

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -557,440 +595,463 @@ 

GUI Style Configuration

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

Font Options

-

Following is a list of font options.

-
    -
  • fontFamily: Font family name.
  • -
  • fontBold: Enable bold style when -true, disable when false.
  • -
  • fontItalic: Enable italic style when -true, disable when false.
  • -
-

To use custom font, place *.ttf file into custom font -path: *.vst3/Contents/Resources/Fonts.

-

Notice: If the combination of -fontFamily, fontBold, fontItalic -is not exists in custom font path, default font of VSTGUI is used.

-

If fontFamily is set to empty string "", -then "Tinos" -is used as fallback. If the length is greater than 1 and the font family -name doesn’t exists, default font of VSTGUI is used.

-

Styles other than bold, italic or bold-italic are not supported by -VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights -cannot be used.

-

Color Options

-

Hex color codes are used.

-
    -
  • 6 digit color is RGB.
  • -
  • 8 digit color is RGBA.
  • -
-

First letter # is conventional. Plugins ignore the first -letter of color code, thus ?102938, \n11335577 -are valid.

-

Do not use characters outside of 0-9a-f for color -value.

-

Following is a list of color options. If an option is missing, -default color will be used.

-
    -
  • foreground: Text color.
  • -
  • foregroundButtonOn: Text color of active toggle button. -Recommend to use the same value of foreground or -boxBackground.
  • -
  • foregroundInactive: Text color of inactive components. -Currently, only used for TabView.
  • -
  • background: Background color.
  • -
  • boxBackground: Background color of inside of box shaped -components (Barbox, Button, Checkbox, OptionMenu, TextKnob, -VSlider).
  • -
  • border: Border color of box shaped components.
  • -
  • borderCheckbox: Border color of CheckBox.
  • -
  • borderLabel: Line color of parameter section -label.
  • -
  • unfocused: Color to fill unfocused components. -Currently, only used for knobs.
  • -
  • highlightMain: Color to indicate focus is on a -component. Highlight colors are also used for value of slider components -(BarBox and VSlider).
  • -
  • highlightAccent: Same as highlightMain. -Used for cosmetics.
  • -
  • highlightButton: Color to indicate focus is on a -button.
  • -
  • highlightWarning: Same as highlightMain, -but only used for parameters which requires extra caution.
  • -
  • overlay: Overlay color. Used to overlay texts and -indicators.
  • -
  • overlayHighlight: Overlay color to highlight current -focus.
  • -
-

Controls

-

Right Click on the controls pops up a context menu -provided by DAW.

-

Knob and slider provides following controls:

-
    -
  • Ctrl + Left Click: Reset value.
  • -
  • Shift + Left Drag: Fine adjustment.
  • -
  • Middle Click : Rotate through minimum, default and -maximum value.
  • -
  • Shift + Middle Click : Take floor of current -value. -
      -
    • Note: For decibel (dB) parameters, -floor is applied after the value is converted to amplitude.
    • -
  • -
-

Caution

-

Parameters that turns red when pointing can drastically change output -gain. Changing those parameters with Shift + Left Drag is recommended. -To prevent sudden clipping, always insert limiter after WaveCymbal.

-

Block Diagram

-

If the image is small, use Ctrl + Mouse Wheel -or “View Image” on right click menu to scale.

-

Diagram only shows overview. It’s not exact implementation.

-

-

Parameters

-

Gain

-

Output gain.

-

Excitation

-

Short delays that turns impulse to tone.

-
-
Feedback
-
-

Feedback of excitor delays.

-
-
Time
-
-

Delay time of excitor delays. Beware that when the value of this -parameter is high, output will be loud.

-
-
-

Objects

-
-
nCymbal
-
-

Number of cymbal-ish objects.

-
-
nString
-
-

Number of Karplus-Strong string per cymbal object.

-
-
-

Wave

-
-
Damping
-
-

Damping of 1D wave simulation. Beware that when the value of this -parameter is high, output will be loud.

-
-
PulsePosition
-
-

Position where oscillator input causes wave.

-
-
PulseWidth
-
-

Width of wave caused by oscillator input.

-
-
-

Collision

-

When turns on, it sounds like a rubbing on surface of thin light -metal plate. When nCymbal is 1, this doesn’t change output -sound.

-
-
Distance
-
-

Distance between cymbals. Collision will more likely to occur when -turning this knob to left.

-
-
-

Random

-
-
Seed
-
-

Random seed. Output will be the same for each note while checking -Retrigger.

-
-
Amount
-
-

Amount of random number effects to delay time and band-pass cutoff. -Beware that when the value of this parameter is low, output may be -loud.

-
-
-

String

-
-
MinHz
-
-

Lower bound of Karplus-Strong string frequency.

-
-
MaxHz
-
-

Upper bound of Karplus-Strong string frequency.

-
-
Decay
-
-

Decay of Karplus-Strong string. Decay time will be longer when -turning this knob to left.

-
-
Q
-
-

Band-pass filter Q.

-
-
-

Oscillator

-
-
Retrigger
-
-

When checking, each note on resets random seed.

-
-
OscType
-
-

Oscillator type.

-
    -
  • Off : Stop making noise for each note on. This option -will be used when using WaveCymbal as FX.
  • -
  • Impulse : Outputs impulse for each note on. Simulates -hit of cymbal with stick.
  • -
  • Sustain : Outputs impulse train with pitch of note. -Simulates drawing of bow on surface of cymbal.
  • -
  • Velvet Noise : Outputs velvet noise of a density -respect to pitch of note. Simulates less uniform drawing than -Sustain.
  • -
  • Brown Noise : Outputs brown noise of a brightness -respect to pitch of note. Kind of like dragging cymbal on asphalt.
  • -
-
-
Bandpass Cutoff Distribution
-
-
    -
  • Log : Sound becomes relatively natural.
  • -
  • Linear : Leans sound to higher frequency.
  • -
-
-
-

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.26 -
      -
    • Fixed GUI on Linux.
    • -
  • -
  • 0.1.25 -
      -
    • Changed to include presets in plugin zip package.
    • -
    • Fixed a bug that invalid style.json crashes -plugin.
    • -
  • -
  • 0.1.24 -
      -
    • Changed default style color of foregroundInactive.
    • -
    • Fixed performance drop caused by subnormal floating point -numbers.
    • -
  • -
  • 0.1.23 -
      -
    • Fixed crash on Renoise. Previous code was trying to access freed -memory of GUI widgets, and it was causing the crash.
    • -
  • -
  • 0.1.22 -
      -
    • Fixed stuttering on Audacity where processContext is -nullptr.
    • -
    • Fixed a bug in delay time computation. This may fix freeze or crash -in some cases.
    • -
  • -
  • 0.1.21 -
      -
    • Added to virtual to destructor of common components. -This may prevent some cause of crash or memory leak.
    • -
  • -
  • 0.1.20 -
      -
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when -opening multiple GUI of same plugin on Linux.
    • -
  • -
  • 0.1.19 -
      -
    • Resume macOS build.
    • -
  • -
  • 0.1.18 -
      -
    • Fixed crash on Linux.
    • -
  • -
  • 0.1.17 -
      -
    • Fixed the condition of acceptable channel count. This is a fix for -unintentional muting on sidechain in REAPER.
    • -
  • -
  • 0.1.16 -
      -
    • Added custom font options for style.json.
    • -
  • -
  • 0.1.15 -
      -
    • Updated VSTGUI from 4.10 to 4.11.
    • -
  • -
  • 0.1.14 -
      -
    • Changed font to Tinos.
    • -
  • -
  • 0.1.13 -
      -
    • Fixed to reset properly.
    • -
    • Fixed bypass parameter behavior. This fixes playing all -the notes at the moment of unmute, even if host sends note to plugin -while muting. This bug was only happening on the hosts which respect VST -3 bypass parameter.
    • -
  • -
  • 0.1.12 -
      -
    • Implemented process context requirements.
    • -
  • -
  • 0.1.11 -
      -
    • Added check that DSP is initialized or not.
    • -
  • -
  • 0.1.10 -
      -
    • Added color configuration.
    • -
  • -
  • 0.1.9 -
      -
    • Reverted parameter smoother to the old one which works with variable -size audio buffer.
    • -
  • -
  • 0.1.8 -
      -
    • Fixed a bug that cause crash when drawing string.
    • -
  • -
  • 0.1.7 -
      -
    • Changed display method for pop-up which shows up by clicking plugin -title.
    • -
  • -
  • 0.1.6 -
      -
    • Fixed to stop sounds when deactivated.
    • -
    • Fixed a bug that was causing noise on PreSonus Studio One -4.6.1.
    • -
  • -
  • 0.1.5 -
      -
    • Enabled GUI for Linux build.
    • -
    • Fixed broken presets.
    • -
  • -
  • 0.1.4 -
      -
    • Fixed wobbling knob bug.
    • -
  • -
  • 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.
    • -
  • -
  • 0.1.1 -
      -
    • Fixed smoothing algorithm to prevent blow up.
    • -
  • -
  • 0.1.0 -
      -
    • Initial release.
    • -
  • -
-

Old Versions

- -

License

-

WaveCymbal 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.

- - - +

+

Following is a list of font options.

+
    +
  • fontFamily: Font family name.
  • +
  • fontBold: Enable bold style when + true, disable when false.
  • +
  • fontItalic: Enable italic style when + true, disable when false.
  • +
+

To use custom font, place *.ttf file into custom font + path: *.vst3/Contents/Resources/Fonts.

+

Notice: If the combination of + fontFamily, fontBold, + fontItalic is not exists in custom font path, default + font of VSTGUI is used.

+

If fontFamily is set to empty string "", + then "Tinos" + is used as fallback. If the length is greater than 1 and the font + family name doesn’t exists, default font of VSTGUI is used.

+

Styles other than bold, italic or bold-italic are not supported by + VSTGUI. For example, “Thin”, “Light”, “Medium”, and “Black” weights + cannot be used.

+

+

Hex color codes are used.

+
    +
  • 6 digit color is RGB.
  • +
  • 8 digit color is RGBA.
  • +
+

First letter # is conventional. Plugins ignore the + first letter of color code, thus ?102938, + \n11335577 are valid.

+

Do not use characters outside of 0-9a-f for color + value.

+

Following is a list of color options. If an option is missing, + default color will be used.

+
    +
  • foreground: Text color.
  • +
  • foregroundButtonOn: Text color of active toggle + button. Recommend to use the same value of foreground or + boxBackground.
  • +
  • foregroundInactive: Text color of inactive + components. Currently, only used for TabView.
  • +
  • background: Background color.
  • +
  • boxBackground: Background color of inside of box + shaped components (Barbox, Button, Checkbox, OptionMenu, TextKnob, + VSlider).
  • +
  • border: Border color of box shaped components.
  • +
  • borderCheckbox: Border color of CheckBox.
  • +
  • borderLabel: Line color of parameter section + label.
  • +
  • unfocused: Color to fill unfocused components. + Currently, only used for knobs.
  • +
  • highlightMain: Color to indicate focus is on a + component. Highlight colors are also used for value of slider + components (BarBox and VSlider).
  • +
  • highlightAccent: Same as highlightMain. + Used for cosmetics.
  • +
  • highlightButton: Color to indicate focus is on a + button.
  • +
  • highlightWarning: Same as highlightMain, + but only used for parameters which requires extra caution.
  • +
  • overlay: Overlay color. Used to overlay texts and + indicators.
  • +
  • overlayHighlight: Overlay color to highlight current + focus.
  • +
+

+

Right Click on the controls pops up a context menu + provided by DAW.

+

Knob and slider provides following controls:

+
    +
  • Ctrl + Left Click: Reset value.
  • +
  • Shift + Left Drag: Fine adjustment.
  • +
  • Middle Click : Rotate through minimum, default and + maximum value.
  • +
  • Shift + Middle Click : Take floor of current + value. +
      +
    • Note: For decibel (dB) parameters, + floor is applied after the value is converted to amplitude.
    • +
  • +
+

+

Parameters that turns red when pointing can drastically change + output gain. Changing those parameters with Shift + Left Drag is + recommended. To prevent sudden clipping, always insert limiter after + WaveCymbal.

+

+

If the image is small, use Ctrl + Mouse Wheel + or “View Image” on right click menu to scale.

+

Diagram only shows overview. It’s not exact implementation.

+

+

+

+

Output gain.

+

+

Short delays that turns impulse to tone.

+
+
Feedback
+
+

Feedback of excitor delays.

+
+
Time
+
+

Delay time of excitor delays. Beware that when the value of this + parameter is high, output will be loud.

+
+
+

+
+
nCymbal
+
+

Number of cymbal-ish objects.

+
+
nString
+
+

Number of Karplus-Strong string per cymbal object.

+
+
+

+
+
Damping
+
+

Damping of 1D wave simulation. Beware that when the value of this + parameter is high, output will be loud.

+
+
PulsePosition
+
+

Position where oscillator input causes wave.

+
+
PulseWidth
+
+

Width of wave caused by oscillator input.

+
+
+

+

When turns on, it sounds like a rubbing on surface of thin light + metal plate. When nCymbal is 1, this doesn’t change + output sound.

+
+
Distance
+
+

Distance between cymbals. Collision will more likely to occur when + turning this knob to left.

+
+
+

+
+
Seed
+
+

Random seed. Output will be the same for each note while checking + Retrigger.

+
+
Amount
+
+

Amount of random number effects to delay time and band-pass cutoff. + Beware that when the value of this parameter is low, output may be + loud.

+
+
+

+
+
MinHz
+
+

Lower bound of Karplus-Strong string frequency.

+
+
MaxHz
+
+

Upper bound of Karplus-Strong string frequency.

+
+
Decay
+
+

Decay of Karplus-Strong string. Decay time will be longer when + turning this knob to left.

+
+
Q
+
+

Band-pass filter Q.

+
+
+

+
+
Retrigger
+
+

When checking, each note on resets random seed.

+
+
OscType
+
+

Oscillator type.

+
    +
  • Off : Stop making noise for each note on. This option + will be used when using WaveCymbal as FX.
  • +
  • Impulse : Outputs impulse for each note on. Simulates + hit of cymbal with stick.
  • +
  • Sustain : Outputs impulse train with pitch of note. + Simulates drawing of bow on surface of cymbal.
  • +
  • Velvet Noise : Outputs velvet noise of a density + respect to pitch of note. Simulates less uniform drawing than + Sustain.
  • +
  • Brown Noise : Outputs brown noise of a brightness + respect to pitch of note. Kind of like dragging cymbal on + asphalt.
  • +
+
+
Bandpass Cutoff Distribution
+
+
    +
  • Log : Sound becomes relatively natural.
  • +
  • Linear : Leans sound to higher frequency.
  • +
+
+
+

+

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.

+

+
    +
  • 0.1.26 +
      +
    • Fixed GUI on Linux.
    • +
  • +
  • 0.1.25 +
      +
    • Changed to include presets in plugin zip package.
    • +
    • Fixed a bug that invalid style.json crashes + plugin.
    • +
  • +
  • 0.1.24 +
      +
    • Changed default style color of + foregroundInactive.
    • +
    • Fixed performance drop caused by subnormal floating point + numbers.
    • +
  • +
  • 0.1.23 +
      +
    • Fixed crash on Renoise. Previous code was trying to access freed + memory of GUI widgets, and it was causing the crash.
    • +
  • +
  • 0.1.22 +
      +
    • Fixed stuttering on Audacity where processContext is + nullptr.
    • +
    • Fixed a bug in delay time computation. This may fix freeze or + crash in some cases.
    • +
  • +
  • 0.1.21 +
      +
    • Added to virtual to destructor of common components. + This may prevent some cause of crash or memory leak.
    • +
  • +
  • 0.1.20 +
      +
    • Updated VST 3 SDK to version 3.7.6. This also fixes the crash when + opening multiple GUI of same plugin on Linux.
    • +
  • +
  • 0.1.19 +
      +
    • Resume macOS build.
    • +
  • +
  • 0.1.18 +
      +
    • Fixed crash on Linux.
    • +
  • +
  • 0.1.17 +
      +
    • Fixed the condition of acceptable channel count. This is a fix for + unintentional muting on sidechain in REAPER.
    • +
  • +
  • 0.1.16 +
      +
    • Added custom font options for style.json.
    • +
  • +
  • 0.1.15 +
      +
    • Updated VSTGUI from 4.10 to 4.11.
    • +
  • +
  • 0.1.14 +
      +
    • Changed font to Tinos.
    • +
  • +
  • 0.1.13 +
      +
    • Fixed to reset properly.
    • +
    • Fixed bypass parameter behavior. This fixes playing + all the notes at the moment of unmute, even if host sends note to + plugin while muting. This bug was only happening on the hosts which + respect VST 3 bypass parameter.
    • +
  • +
  • 0.1.12 +
      +
    • Implemented process context requirements.
    • +
  • +
  • 0.1.11 +
      +
    • Added check that DSP is initialized or not.
    • +
  • +
  • 0.1.10 +
      +
    • Added color configuration.
    • +
  • +
  • 0.1.9 +
      +
    • Reverted parameter smoother to the old one which works with + variable size audio buffer.
    • +
  • +
  • 0.1.8 +
      +
    • Fixed a bug that cause crash when drawing string.
    • +
  • +
  • 0.1.7 +
      +
    • Changed display method for pop-up which shows up by clicking + plugin title.
    • +
  • +
  • 0.1.6 +
      +
    • Fixed to stop sounds when deactivated.
    • +
    • Fixed a bug that was causing noise on PreSonus Studio One + 4.6.1.
    • +
  • +
  • 0.1.5 +
      +
    • Enabled GUI for Linux build.
    • +
    • Fixed broken presets.
    • +
  • +
  • 0.1.4 +
      +
    • Fixed wobbling knob bug.
    • +
  • +
  • 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.
    • +
  • +
  • 0.1.1 +
      +
    • Fixed smoothing algorithm to prevent blow up.
    • +
  • +
  • 0.1.0 +
      +
    • Initial release.
    • +
  • +
+

+ +

+

WaveCymbal is licensed under GPLv3. Complete licenses are linked + below.

+ +

If the link above doesn’t work, please send email to + ryukau@gmail.com.

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/WaveCymbal/WaveCymbal_ja.html b/docs/manual/WaveCymbal/WaveCymbal_ja.html index 450c6ee2..63f33228 100644 --- a/docs/manual/WaveCymbal/WaveCymbal_ja.html +++ b/docs/manual/WaveCymbal/WaveCymbal_ja.html @@ -2,544 +2,583 @@ - - - - -WaveCymbal_ja - - - - + + + + + WaveCymbal_ja – Uhhyou Plugins + + + + -
-

Back to Index

-

- Update: 2024-01-02 -

-
- Table of Contents - -
-
-

WaveCymbal

-

-

WaveCymbalウェイブ シンバル は banded -wave-guide -という手法を用いてシンバルの音が鳴るはずだったシンセサイザです。実際のところはシンバルというよりも、アスファルトの上でトタン板や紐につないだ空き缶を引きずったときのような音が出ます。

- -

full パッケージには次のビルドが含まれています。

-
    -
  • Windows (x86_64)
  • -
  • Linux (x86_64)
  • -
  • macOS (Universal 2)
  • -
-

Linux ビルドは Ubuntu 22.04 でビルドしています。もし Ubuntu 22.04 -以外のディストリビューションを使っているときは、プラグインが読み込まれないなどの不具合が起こることがあります。この場合はビルド手順に沿ってソースコードからビルドしてください。

-

macOS で使用するときは macOS -パッケージのダウンロードを推奨します。また Apple Developer Program -に加入していないので、インストール時に Gatekeeper -を迂回するように設定する必要があります。詳細は -インストール -> macOS -の節を参照してください。

-

連絡先

-

何かあれば GitHub -のリポジトリに issue を作るか ryukau@gmail.com -までお気軽にどうぞ。

-

paypal.me/ryukau -から開発資金を投げ銭することもできます。

-

インストール

-

プラグイン

-

名前が .vst3 で終わるディレクトリを OS -ごとに決められた位置に配置してください。

-
    -
  • Windows では /Program Files/Common Files/VST3/ -に配置します。
  • -
  • Linux では $HOME/.vst3/ に配置します。
  • -
  • macOS では /Library/Audio/Plug-ins/VST3/ あるいは -/Users/$USERNAME/Library/Audio/Plug-ins/VST3/ -に配置します。
  • -
-

DAW によっては上記とは別に VST3 -をインストールできるディレクトリを提供していることがあります。詳しくは利用している -DAW のマニュアルを参照してください。

-

プリセット

-

注意: プリセットの無いプラグインもあります。

-

プリセットはページの最上部のリンクからダウンロードできるプラグインパッケージに含まれています。以下はプリセットのインストール手順です。

-
    -
  1. ページの最上部のリンクからプラグインをダウンロード。
  2. -
  3. ダウンロードした zip ファイルを解凍。
  4. -
  5. presets ディレクトリ内の Uhhyou -ディレクトリを OS ごとに決められたディレクトリに配置。
  6. -
-

以下は OS ごとのプリセットの配置先の一覧です。

-
    -
  • Windows : /Users/$USERNAME/Documents/VST3 Presets
  • -
  • Linux : $HOME/.vst3/presets
  • -
  • macOS : /Users/$USERNAME/Library/Audio/Presets
  • -
-

プリセットディレクトリの名前はプラグインと同じである必要があります。配置先のディレクトリが無いときは作成してください。

- -

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 -されていないので削除する必要があるかもしれません。

-
    -
  • Contents/Resources/Documentation
  • -
  • Contents/x86_64-linux
  • -
  • Contents/x86_64-win
  • -
-

macOS -パッケージでは上記のファイルの削除は不要です。また、すべてのパッケージは -codesign コマンドの ad-hoc signing -の状態になっています。

-

隔離の解除

-

プラグインの初回起動時に「破損している」という趣旨のメッセージが表示されることがあります。この場合は、ターミナルを開いて、解凍した -.vst3 -ディレクトリに次のコマンドのどちらか、あるいは両方を適用してみてください。 -/path/to/PluginName.vst3 -の部分はインストールしたプラグインのパスに置き換えてください。

-
xattr -rd com.apple.quarantine /path/to/PluginName.vst3
+  

+

Ubuntu 22.04 では次のパッケージのインストールが必要です。

+
sudo apt install libxcb-cursor0  libxkbcommon-x11-0
+

もし DAW がプラグインを認識しないときは、下のリンクの + Package Requirements を参考にして VST3 + に必要なパッケージがすべてインストールされているか確認してください。

+ +

REAPER の Linux 版がプラグインを認識しないときは + ~/.config/REAPER/reaper-vstplugins64.ini を削除して + REAPER を再起動してみてください。

+

+

重要: full + パッケージは動作未確認です。以下のファイルは codesign + されていないので削除する必要があるかもしれません。

+
    +
  • Contents/Resources/Documentation
  • +
  • Contents/x86_64-linux
  • +
  • Contents/x86_64-win
  • +
+

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. -
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. -
-

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

-
    -
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 → -「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store -と認証済みの開発元からのアプリケーションを許可」を選択。
  2. -
  3. ターミナルを開いて sudo spctl --master-enable -を実行。
  4. -
-

codesign の適用

-

注意 この節の内容は macOS -パッケージには関連しないと考えられますが未検証です。 (GitHub の -issue)

-

full -パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

-
sudo codesign --force --deep -s - /path/to/PluginName.vst3
-

codesign の利用には Xcode -のインストールが必要となるかもしれません。

-

参考リンク

- -

GUI の見た目の設定

-

初回設定時は手動で次のファイルを作成してください。

-
    -
  • Windows では -/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json -。
  • -
  • Linux では -$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 -
      -
    • $XDG_CONFIG_HOME が空のときは -$HOME/.config/UhhyouPlugins/style/style.json
    • -
  • -
  • macOS では -/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json -。
  • -
-

プラグインのウィンドウを開くたびに style.json -が読み込まれて更新されます。

-

既存の色のテーマを次のリンクに掲載しています。 -style.json にコピペして使ってください。

- -

style.json の設定例です。

-
{
+  

+

プラグインは署名されていない (unsigned) 、または公証されていない + (un-notarized) + アプリケーションとして認識されることがあります。この場合は、警告メッセージが表示された後に、システム環境設定を開いて「セキュリティとプライバシー」 + → 「一般」の「このまま開く」ボタンを押してください。以下にリンクした + Apple + 公式のヘルプページにスクリーンショット付きで同じ手順が掲載されています。「ノータリゼーションを受けていない + App や未確認の開発元の App を開きたい場合」を参照してください。

+ +

ここまでの手順を経てまだ動かないときはインストール先を + /Library/Audio/Plug-ins/VST3/ あるいは + /Users/$USERNAME/Library/Audio/Plug-ins/VST3/ + のいずれか使っていなかったほうに変えてみてください。

+

上記の方法がすべて上手くいかなかったときは以下の手順を試してみてください。

+
    +
  1. ターミナルを開いて sudo spctl --master-disable + を実行。
  2. +
  3. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → + 「ダウンロードしたアプリケーションの実行許可」と辿り、「全てのアプリケーションを許可」を選択。
  4. +
+

上記の手順を実行するとシステムのセキュリティが弱くなるので注意してください。元に戻すには以下の手順を実行してください。

+
    +
  1. システム環境設定を開いて「セキュリティとプライバシー」 → 「一般」 + → 「ダウンロードしたアプリケーションの実行許可」と辿り、「App Store + と認証済みの開発元からのアプリケーションを許可」を選択。
  2. +
  3. ターミナルを開いて sudo spctl --master-enable + を実行。
  4. +
+

+

注意 この節の内容は macOS + パッケージには関連しないと考えられますが未検証です。 (GitHub の + issue)

+

full + パッケージを利用する場合は以下のコマンドを適用することで利用できるかもしれません。

+
sudo codesign --force --deep -s - /path/to/PluginName.vst3
+

codesign の利用には Xcode + のインストールが必要となるかもしれません。

+

+ +

+

初回設定時は手動で次のファイルを作成してください。

+
    +
  • Windows では + /Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json + 。
  • +
  • Linux では + $XDG_CONFIG_HOME/UhhyouPlugins/style/style.json 。 +
      +
    • $XDG_CONFIG_HOME が空のときは + $HOME/.config/UhhyouPlugins/style/style.json
    • +
  • +
  • macOS では + /Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json + 。
  • +
+

プラグインのウィンドウを開くたびに style.json + が読み込まれて更新されます。

+

既存の色のテーマを次のリンクに掲載しています。 + style.json にコピペして使ってください。

+ +

style.json の設定例です。

+
{
   "fontFamily": "Tinos",
   "fontBold": true,
   "fontItalic": true,
@@ -559,436 +598,458 @@ 

GUI の見た目の設定

"overlay": "#00000088", "overlayHighlight": "#00ff0033" }
-

フォントオプション

-

以下はフォントオプションの一覧です。

-
    -
  • fontFamily: フォントファミリ名。
  • -
  • fontBold: ボールドスタイル (太字) を true -で有効、 false で無効。
  • -
  • fontItalic: イタリックスタイル (斜体) を -true で有効、 false で無効。
  • -
-

カスタムフォントを使用するには、プラグインディレクトリの -*.vst3/Contents/Resources/Fonts*.ttf -ファイルを配置します。

-

注意: fontFamily 、 -fontBoldfontItalic -で設定したフォントファミリ名とスタイルの組み合わせが -*.vst3/Contents/Resources/Fonts 以下のいずれかの -*.ttf ファイルに含まれていないときは VSTGUI -が指定するデフォルトフォントが使用されます。

-

fontFamily が長さ 0 の文字列 "" -のときはフォールバックとして "Tinos" -に設定されます。長さが 1 -以上かつ、存在しないフォントファミリ名が指定されると VSTGUI -が指定するデフォルトフォントが使用されます。

-

ボールドあるいはイタリック以外のスタイルは VSTGUI -がサポートしていないので動作確認していません。該当する例としては Noto -フォントの Demi Light や、 Roboto フォントの Thin や Black -などがあります。

-

色のオプション

-

16 進数カラーコードを使っています。

-
    -
  • 6 桁の色は RGB 。
  • -
  • 8 桁の色は RGBA 。
  • -
-

プラグインはカラーコードの 1 文字目を無視します。よって -?102938\n11335577 -も有効なカラーコードです。

-

2 文字目以降のカラーコードの値に 0-9a-f -以外の文字を使わないでください。

-

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

-
    -
  • foreground: 文字の色。
  • -
  • foregroundButtonOn: オンになっているボタンの文字の色。 -foregroundboxBackground -のいずれかと同じ値にすることを推奨します。
  • -
  • foregroundInactive: 非アクティブなタブの文字の色。
  • -
  • background: 背景色。
  • -
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • -
  • border: ふちの色。
  • -
  • borderCheckbox: チェックボックスの縁の色。
  • -
  • borderLabel: -パラメータセクションのラベルの左右の直線の色。
  • -
  • unfocused: -つまみがフォーカスされていないときの色。
  • -
  • highlightMain: -フォーカスされたときの色。スライダの値の表示にも使用されます。
  • -
  • highlightAccent: -フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • -
  • highlightButton: -ボタンがフォーカスされたときの色。
  • -
  • highlightWarning: 変更に注意を要する UI -がフォーカスされたときの色。
  • -
  • overlay: オーバーレイの色。
  • -
  • overlayHighlight: -フォーカスを示すオーバーレイの色。
  • -
-

操作

-

パラメータが割り当てられているコントロールの上で -右クリック すると、 DAW -から提供されるコンテキストメニューが開きます。

-

つまみと数値スライダでは次の操作ができます。

-
    -
  • Ctrl + 左クリック : 値のリセット。
  • -
  • Shift + 左ドラッグ : 細かい値の変更。
  • -
  • ホイールクリック : -最小値、デフォルト値、最大値の切り替え。
  • -
  • Shift + ホイールクリック : -現在値の小数点以下を切り捨て。 -
      -
    • 注意: -デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • -
  • -
-

注意

-

マウスカーソルを合わせたときに赤くハイライトされるパラメータは音量を大きく変えることができます。これらのパラメータは -Shift + -左ドラッグを使ってゆっくりと変更することを推奨します。また突然の音割れを防ぐために、WaveCymbaの後には必ずリミッタをインサートすることを推奨します。

-

ブロック線図

-

図が小さいときはブラウザのショートカット Ctrl + -マウスホイール -や、右クリックから「画像だけを表示」などで拡大できます。

-

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

-

-

パラメータ

-

Gain

-

出力音量です。

-

Excitation

-

インパルスをトーンに変えるショートディレイです。

-
-
Feedback
-
-

エキサイタのショートディレイのフィードバックです。

-
-
Time
-
-

エキサイタのショートディレイのディレイ時間です。この値が大きくなると音量がとても大きくなるので注意してください。

-
-
-

Objects

-
-
nCymbal
-
-

シンバルの枚数を表現するはずだった値です。シンバルとは程遠い何らかのシミュレーションのオブジェクトが増えます。

-
-
nString
-
-

シンバル1枚あたりのシミュレーションの解像度を表現するはずだった値です。 -Karplus-Strong アルゴリズムによる弦の数を変更できます。

-
-
-

Wave

-

1次元の波のシミュレーションです。

-
-
Damping
-
-

波のダンピングを変更します。この値が大きくなると音量がとても大きくなるので注意してください。

-
-
PulsePosition
-
-

オシレータの出力が波を起こす位置です。

-
-
PulseWidth
-
-

オシレータの出力によって起こされる波の幅です。

-
-
-

Collision

-

シンバルを衝突させてハイハットのような音になるはずでした。オンにすると軽い金属が擦れるようなノイズが出ます。 -nCymbal が 1 のときは効果がありません。

-
-
Distance
-
-

シンバルの間隔です。左に回すほど間隔が狭くなるので、衝突の可能性が増えます。

-
-
-

Random

-
-
Seed
-
-

乱数のシード値です。 Retrigger -にチェックを入れることで音を固定できます。

-
-
Amount
-
-

乱数の影響を調整します。この値が小さくなると音量がとても大きくなることがあるので注意してください。

-
-
-

String

-
-
MinHz
-
-

Karplus-Strong アルゴリズムによる弦の周波数の範囲の下限です。

-
-
MaxHz
-
-

Karplus-Strong アルゴリズムによる弦の周波数の範囲の上限です。

-
-
Decay
-
-

Karplus-Strong -アルゴリズムによる弦の減衰の速さを調整します。左に回すほど減衰が遅くなります。

-
-
Q
-
-

バンドパスフィルタの Q 値(レゾナンス)です。右に回すほど Q -が大きくなります。

-
-
-

Oscillator

-
-
Retrigger
-
-

チェックが入っているときはノートオンのたびに乱数シードをリセットします。

-
-
OscType
-
-

オシレータの種類です。

-
    -
  • Off : -ノートオンに反応しなくなります。エフェクトとして使うときに利用できます。
  • -
  • Impulse : -ノートオンでインパルスを出力します。ばちで叩いたときのような音を想定しています。
  • -
  • Sustain : -ノートに応じた高さのインパルス列を出力します。バイオリンの弓のようなもので擦ったときのような音を想定しています。
  • -
  • Velvet Noise : -ノートに応じた密度のベルベットノイズを出力します。 Sustain -よりも不均一にシンバルを擦ったときのような音を想定しています。
  • -
  • Brown Noise : -ノートに応じた明るさのブラウンノイズを出力します。Velvet Noise -よりも不均一に擦ったときのような音を想定しています。
  • -
-
-
Bandpass Cutoff Distribution
-
-

バンドパスフィルタのカットオフ周波数の分布を変更します。

-
    -
  • Log : 低域寄りの比較的自然な音になります。
  • -
  • Linear : 高域寄りのとげとげしい音になります。
  • -
-
-
-

Smoothness

-

Gain, Excitation.Time, -Random.Amount, Bandpass.MinCutoff, -Bandpass.MaxCutoff -を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。 -OscType.Sustain のスライドの長さも Smoothness -で調整できます。

-

チェンジログ

-
    -
  • 0.1.26 -
      -
    • Linux での GUI を修正。
    • -
  • -
  • 0.1.25 -
      -
    • Zip パッケージにプリセットを同梱するよう変更。
    • -
    • 不正な style.json -によりプラグインがクラッシュするバグを修正。
    • -
  • -
  • 0.1.24 -
      -
    • デフォルトの foregroundInactive の色を変更。
    • -
    • サブノーマル数によるパフォーマンスの低下を修正。
    • -
  • -
  • 0.1.23 -
      -
    • Renoise で GUI がクラッシュするバグを修正。 GUI -要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • -
  • -
  • 0.1.22 -
      -
    • processContextnullptr であるために -Audacity で音が正しく出力されなかったバグを修正。
    • -
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • -
  • -
  • 0.1.21 -
      -
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに -virtual を追加。
    • -
  • -
  • 0.1.20 -
      -
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux -で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • -
  • -
  • 0.1.19 -
      -
    • macOS ビルドを復帰。
    • -
  • -
  • 0.1.18 -
      -
    • Linux でのクラッシュを修正。
    • -
  • -
  • 0.1.17 -
      -
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER -のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • -
  • -
  • 0.1.16 -
      -
    • style.json -でカスタムフォントを設定するオプションを追加。
    • -
  • -
  • 0.1.15 -
      -
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • -
  • -
  • 0.1.14 -
      -
    • フォントを Tinos に変更。
    • -
  • -
  • 0.1.13 -
      -
    • リセットが正しく行われるように修正。
    • -
    • bypass -パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは -VST 3 の bypass -パラメータを正しく実装しているホストでのみ発生していた。
    • -
  • -
  • 0.1.12 -
      -
    • Process context requirements を実装。
    • -
  • -
  • 0.1.11 -
      -
    • DSP が初期化されているかどうかのチェックを追加。
    • -
  • -
  • 0.1.10 -
      -
    • カラーコンフィグを追加。
    • -
  • -
  • 0.1.9 -
      -
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • -
  • -
  • 0.1.8 -
      -
    • 文字列の描画でクラッシュするバグを修正。
    • -
  • -
  • 0.1.7 -
      -
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • -
  • -
  • 0.1.6 -
      -
    • 非アクティブ化で音が止まるように修正。
    • -
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • -
  • -
  • 0.1.5 -
      -
    • Linux ビルドの GUI を有効化。
    • -
    • 読み込めないプリセットを修正。
    • -
  • -
  • 0.1.4 -
      -
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • -
  • -
  • 0.1.3 -
      -
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • -
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • -
    • リロード時にクラッシュするバグを修正。
    • -
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • -
  • -
  • 0.1.2 -
      -
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • -
  • -
  • 0.1.1 -
      -
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • -
  • -
  • 0.1.0 -
      -
    • 初期リリース。
    • -
  • -
-

旧バージョン

- -

ライセンス

-

WaveCymbal のライセンスは GPLv3 です。 GPLv3 -の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

- -

リンクが切れているときは ryukau@gmail.com -にメールを送ってください。

-

VST® について

-

VST is a trademark of Steinberg Media Technologies GmbH, registered -in Europe and other countries.

- - - +

+

以下はフォントオプションの一覧です。

+
    +
  • fontFamily: フォントファミリ名。
  • +
  • fontBold: ボールドスタイル (太字) を + true で有効、 false で無効。
  • +
  • fontItalic: イタリックスタイル (斜体) を + true で有効、 false で無効。
  • +
+

カスタムフォントを使用するには、プラグインディレクトリの + *.vst3/Contents/Resources/Fonts*.ttf + ファイルを配置します。

+

注意: fontFamily 、 + fontBoldfontItalic + で設定したフォントファミリ名とスタイルの組み合わせが + *.vst3/Contents/Resources/Fonts 以下のいずれかの + *.ttf ファイルに含まれていないときは VSTGUI + が指定するデフォルトフォントが使用されます。

+

fontFamily が長さ 0 の文字列 "" + のときはフォールバックとして "Tinos" + に設定されます。長さが 1 + 以上かつ、存在しないフォントファミリ名が指定されると VSTGUI + が指定するデフォルトフォントが使用されます。

+

ボールドあるいはイタリック以外のスタイルは VSTGUI + がサポートしていないので動作確認していません。該当する例としては Noto + フォントの Demi Light や、 Roboto フォントの Thin や Black + などがあります。

+

+

16 進数カラーコードを使っています。

+
    +
  • 6 桁の色は RGB 。
  • +
  • 8 桁の色は RGBA 。
  • +
+

プラグインはカラーコードの 1 文字目を無視します。よって + ?102938\n11335577 + も有効なカラーコードです。

+

2 文字目以降のカラーコードの値に 0-9a-f + 以外の文字を使わないでください。

+

以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。

+
    +
  • foreground: 文字の色。
  • +
  • foregroundButtonOn: + オンになっているボタンの文字の色。 foreground か + boxBackground + のいずれかと同じ値にすることを推奨します。
  • +
  • foregroundInactive: + 非アクティブなタブの文字の色。
  • +
  • background: 背景色。
  • +
  • boxBackground: 矩形の UI 部品の内側の背景色。
  • +
  • border: ふちの色。
  • +
  • borderCheckbox: チェックボックスの縁の色。
  • +
  • borderLabel: + パラメータセクションのラベルの左右の直線の色。
  • +
  • unfocused: + つまみがフォーカスされていないときの色。
  • +
  • highlightMain: + フォーカスされたときの色。スライダの値の表示にも使用されます。
  • +
  • highlightAccent: + フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。
  • +
  • highlightButton: + ボタンがフォーカスされたときの色。
  • +
  • highlightWarning: 変更に注意を要する UI + がフォーカスされたときの色。
  • +
  • overlay: オーバーレイの色。
  • +
  • overlayHighlight: + フォーカスを示すオーバーレイの色。
  • +
+

+

パラメータが割り当てられているコントロールの上で + 右クリック すると、 DAW + から提供されるコンテキストメニューが開きます。

+

つまみと数値スライダでは次の操作ができます。

+
    +
  • Ctrl + 左クリック : 値のリセット。
  • +
  • Shift + 左ドラッグ : 細かい値の変更。
  • +
  • ホイールクリック : + 最小値、デフォルト値、最大値の切り替え。
  • +
  • Shift + ホイールクリック : + 現在値の小数点以下を切り捨て。 +
      +
    • 注意: + デシベル表記のパラメータは、振幅に変換された後の値について切り捨て。
    • +
  • +
+

+

マウスカーソルを合わせたときに赤くハイライトされるパラメータは音量を大きく変えることができます。これらのパラメータは + Shift + + 左ドラッグを使ってゆっくりと変更することを推奨します。また突然の音割れを防ぐために、WaveCymbaの後には必ずリミッタをインサートすることを推奨します。

+

+

図が小さいときはブラウザのショートカット Ctrl + + マウスホイール + や、右クリックから「画像だけを表示」などで拡大できます。

+

図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。

+

+

+

+

出力音量です。

+

+

インパルスをトーンに変えるショートディレイです。

+
+
Feedback
+
+

エキサイタのショートディレイのフィードバックです。

+
+
Time
+
+

エキサイタのショートディレイのディレイ時間です。この値が大きくなると音量がとても大きくなるので注意してください。

+
+
+

+
+
nCymbal
+
+

シンバルの枚数を表現するはずだった値です。シンバルとは程遠い何らかのシミュレーションのオブジェクトが増えます。

+
+
nString
+
+

シンバル1枚あたりのシミュレーションの解像度を表現するはずだった値です。 + Karplus-Strong アルゴリズムによる弦の数を変更できます。

+
+
+

+

1次元の波のシミュレーションです。

+
+
Damping
+
+

波のダンピングを変更します。この値が大きくなると音量がとても大きくなるので注意してください。

+
+
PulsePosition
+
+

オシレータの出力が波を起こす位置です。

+
+
PulseWidth
+
+

オシレータの出力によって起こされる波の幅です。

+
+
+

+

シンバルを衝突させてハイハットのような音になるはずでした。オンにすると軽い金属が擦れるようなノイズが出ます。 + nCymbal が 1 のときは効果がありません。

+
+
Distance
+
+

シンバルの間隔です。左に回すほど間隔が狭くなるので、衝突の可能性が増えます。

+
+
+

+
+
Seed
+
+

乱数のシード値です。 Retrigger + にチェックを入れることで音を固定できます。

+
+
Amount
+
+

乱数の影響を調整します。この値が小さくなると音量がとても大きくなることがあるので注意してください。

+
+
+

+
+
MinHz
+
+

Karplus-Strong アルゴリズムによる弦の周波数の範囲の下限です。

+
+
MaxHz
+
+

Karplus-Strong アルゴリズムによる弦の周波数の範囲の上限です。

+
+
Decay
+
+

Karplus-Strong + アルゴリズムによる弦の減衰の速さを調整します。左に回すほど減衰が遅くなります。

+
+
Q
+
+

バンドパスフィルタの Q 値(レゾナンス)です。右に回すほど Q + が大きくなります。

+
+
+

+
+
Retrigger
+
+

チェックが入っているときはノートオンのたびに乱数シードをリセットします。

+
+
OscType
+
+

オシレータの種類です。

+
    +
  • Off : + ノートオンに反応しなくなります。エフェクトとして使うときに利用できます。
  • +
  • Impulse : + ノートオンでインパルスを出力します。ばちで叩いたときのような音を想定しています。
  • +
  • Sustain : + ノートに応じた高さのインパルス列を出力します。バイオリンの弓のようなもので擦ったときのような音を想定しています。
  • +
  • Velvet Noise : + ノートに応じた密度のベルベットノイズを出力します。 + Sustain + よりも不均一にシンバルを擦ったときのような音を想定しています。
  • +
  • Brown Noise : + ノートに応じた明るさのブラウンノイズを出力します。Velvet Noise + よりも不均一に擦ったときのような音を想定しています。
  • +
+
+
Bandpass Cutoff Distribution
+
+

バンドパスフィルタのカットオフ周波数の分布を変更します。

+
    +
  • Log : 低域寄りの比較的自然な音になります。
  • +
  • Linear : 高域寄りのとげとげしい音になります。
  • +
+
+
+

+

Gain, Excitation.Time, + Random.Amount, Bandpass.MinCutoff, + Bandpass.MaxCutoff + を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。 + OscType.Sustain のスライドの長さも + Smoothness で調整できます。

+

+
    +
  • 0.1.26 +
      +
    • Linux での GUI を修正。
    • +
  • +
  • 0.1.25 +
      +
    • Zip パッケージにプリセットを同梱するよう変更。
    • +
    • 不正な style.json + によりプラグインがクラッシュするバグを修正。
    • +
  • +
  • 0.1.24 +
      +
    • デフォルトの foregroundInactive の色を変更。
    • +
    • サブノーマル数によるパフォーマンスの低下を修正。
    • +
  • +
  • 0.1.23 +
      +
    • Renoise で GUI がクラッシュするバグを修正。 GUI + 要素のメモリが解放された後にアクセスを行おうとしていたことがクラッシュの原因。
    • +
  • +
  • 0.1.22 +
      +
    • processContextnullptr であるために + Audacity で音が正しく出力されなかったバグを修正。
    • +
    • クラッシュやフリーズの原因となっていたディレイ時間の計算を修正。
    • +
  • +
  • 0.1.21 +
      +
    • クラッシュやメモリリークを防ぐため、共通コンポーネントのデストラクタに + virtual を追加。
    • +
  • +
  • 0.1.20 +
      +
    • VST 3 SDK をバージョン 3.7.6 に更新。これにより Linux + で同一プラグインの GUI を複数開くとクラッシュするバグを修正。
    • +
  • +
  • 0.1.19 +
      +
    • macOS ビルドを復帰。
    • +
  • +
  • 0.1.18 +
      +
    • Linux でのクラッシュを修正。
    • +
  • +
  • 0.1.17 +
      +
    • プラグインが許可するチャネル数の条件を修正。この修正は REAPER + のサイドチェインで意図しないミュートがかかることを防ぐために行った。
    • +
  • +
  • 0.1.16 +
      +
    • style.json + でカスタムフォントを設定するオプションを追加。
    • +
  • +
  • 0.1.15 +
      +
    • VSTGUI を 4.10 から 4.11 にアップデート。
    • +
  • +
  • 0.1.14 +
      +
    • フォントを Tinos に変更。
    • +
  • +
  • 0.1.13 +
      +
    • リセットが正しく行われるように修正。
    • +
    • bypass + パラメータの挙動を修正。この修正によって、ホストがミュート中のプラグインにノートを送り続けても、ミュート解除とともにそれまでに送られたノートがすべて再生されなくなった。このバグは + VST 3 の bypass + パラメータを正しく実装しているホストでのみ発生していた。
    • +
  • +
  • 0.1.12 +
      +
    • Process context requirements を実装。
    • +
  • +
  • 0.1.11 +
      +
    • DSP が初期化されているかどうかのチェックを追加。
    • +
  • +
  • 0.1.10 +
      +
    • カラーコンフィグを追加。
    • +
  • +
  • 0.1.9 +
      +
    • パラメータの補間を可変サイズのオーディオバッファでも機能する以前の手法に巻き戻した。
    • +
  • +
  • 0.1.8 +
      +
    • 文字列の描画でクラッシュするバグを修正。
    • +
  • +
  • 0.1.7 +
      +
    • プラグインタイトルをクリックすると表示されるポップアップの表示方法の変更。
    • +
  • +
  • 0.1.6 +
      +
    • 非アクティブ化で音が止まるように修正。
    • +
    • PreSonus Studio One 4.6.1 で出力にノイズが乗るバグを修正。
    • +
  • +
  • 0.1.5 +
      +
    • Linux ビルドの GUI を有効化。
    • +
    • 読み込めないプリセットを修正。
    • +
  • +
  • 0.1.4 +
      +
    • Ableton Live 10.1.6 で特定のノブが揺れ戻るバグを修正。
    • +
  • +
  • 0.1.3 +
      +
    • 複数の GUI インスタンス間で表示を同期するように変更。
    • +
    • スプラッシュスクリーンを開くとクラッシュするバグを修正。
    • +
    • リロード時にクラッシュするバグを修正。
    • +
    • GUI がホストのオートメーションに応じて更新されるように修正。
    • +
  • +
  • 0.1.2 +
      +
    • ノートオン・オフが正確なタイミングでトリガされるように修正。
    • +
  • +
  • 0.1.1 +
      +
    • スムーシングのアルゴリズムの値が決められた範囲を超えるバグを修正。
    • +
  • +
  • 0.1.0 +
      +
    • 初期リリース。
    • +
  • +
+

+ +

+

WaveCymbal のライセンスは GPLv3 です。 GPLv3 + の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。

+ +

リンクが切れているときは ryukau@gmail.com + にメールを送ってください。

+

+

VST is a trademark of Steinberg Media Technologies GmbH, registered + in Europe and other countries.

+ + + diff --git a/docs/manual/common/gui_barbox_en.md b/docs/manual/common/gui_barbox_en.md index b199c4d1..0e32fd21 100644 --- a/docs/manual/common/gui_barbox_en.md +++ b/docs/manual/common/gui_barbox_en.md @@ -1,7 +1,7 @@ -Control with many blue vertical bars (BarBox) have some keyboard shortcuts. `LFO Wave` on Main tab and `Gain`, `Width`, `Pitch`, `Phase` on Wavetable tab are using BarBox. Shortcuts are enabled after left clicking BarBox and mouse cursor is on the inside of BarBox. Cheat sheet is available on Infomation tab. +Control with many blue vertical bars (BarBox) have some keyboard shortcuts. Shortcuts are enabled after left clicking BarBox and mouse cursor is on the inside of BarBox. | Input | Control | -| ----------------------------------------------------------- | ---------------------------------- | +|-------------------------------------------------------------|------------------------------------| | Left Drag | Change Value | | Shift + Left Drag | Change Value (Snapped) | | Ctrl + Left Drag | Reset to Default | diff --git a/docs/pandocfilter.lua b/docs/pandocfilter.lua new file mode 100644 index 00000000..c8b18b19 --- /dev/null +++ b/docs/pandocfilter.lua @@ -0,0 +1,24 @@ +--[=====[ + +Reference: + +- https://github.com/jgm/pandoc-website/pull/50 +- https://pandoc.org/lua-filters.html#type-header +- https://pandoc.org/lua-filters.html#type-link +- https://pandoc.org/lua-filters.html#pandoc.list:insert + +--]=====] + +function Header(h) + if h.identifier ~= '' then + local anchor_link = pandoc.Link( + h.content, -- content + '#' .. h.identifier, -- href + '', -- title + { class = 'header-anchor', ['aria-hidden'] = 'true' } -- attributes + ) + h.content = pandoc.List() + h.content:insert(anchor_link) + return h + end +end diff --git a/docs/style.css b/docs/style.css deleted file mode 100644 index 550c31ab..00000000 --- a/docs/style.css +++ /dev/null @@ -1,178 +0,0 @@ - diff --git a/docs/template.html b/docs/template.html index 6baf8900..9aa8aa48 100644 --- a/docs/template.html +++ b/docs/template.html @@ -2,76 +2,323 @@ - - - -$for(author-meta)$ - -$endfor$ -$if(date-meta)$ - -$endif$ -$if(keywords)$ - -$endif$ -$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$ - -$if(highlighting-css)$ - -$endif$ -$for(css)$ - -$endfor$ -$if(math)$ -$math$ -$endif$ -$for(header-includes)$ -$header-includes$ -$endfor$ - - - -$for(include-before)$ -$include-before$ -$endfor$ -
- $if(index-relative-path)$ -

Back to Index

- $endif$ + + + + $for(author-meta)$ + + $endfor$ $if(date-meta)$ -

- Update: $date-meta$ -

+ $endif$ - $if(toc)$ -
- Table of Contents - -
+ $if(keywords)$ + $endif$ -
-$body$ + $if(title-prefix)$$title-prefix$ – $endif$$pagetitle$ – Uhhyou Plugins + + + + $for(css)$ + + $endfor$ + $if(math)$ + $math$ $endif$ - -$for(include-after)$ -$include-after$ -$endfor$ + $for(header-includes)$ + $header-includes$ + $endfor$ + + + + $for(include-before)$ + $include-before$ + $endfor$ +
+ $if(index-relative-path)$ +

Back to Index

+ $endif$ + $if(date-meta)$ +

+ Update: $date-meta$ +

+ $endif$ + $if(toc)$ +
+ Table of Contents + +
+ $endif$ +
+ $body$ + + + $for(include-after)$ + $include-after$ + $endfor$ diff --git a/package/style/ColorConfig.md b/package/style/ColorConfig.md index 014ea7ed..229a63cd 100644 --- a/package/style/ColorConfig.md +++ b/package/style/ColorConfig.md @@ -6,7 +6,7 @@ For details, see GUI Style Configuration section on `docs/manual/common/contact_ - [VSTPlugins/contact_installation_guiconfig_en.md at master · ryukau/VSTPlugins](https://github.com/ryukau/VSTPlugins/blob/master/docs/manual/common/contact_installation_guiconfig_en.md#gui-style-configuration) -Default `style.json` is `LightOnDark.json`. +Default `style.json` is `BlackOnWhite.json`. ## Color Config Source Code This section describes how to modify source code to add/change colors. Source code is available on following link. diff --git a/package/style/invert.py b/package/style/invert.py new file mode 100644 index 00000000..7443fed1 --- /dev/null +++ b/package/style/invert.py @@ -0,0 +1,42 @@ +import json + + +def hexColorToRgba(hexColorStr: str) -> list[int]: + stripped = valueStr[1:] + if len(stripped) == 6: + stripped += "ff" + return [int(stripped[i : i + 2], 16) for i in (0, 2, 4, 6)] + + +def rgbaToHexColor(rgba: list[int]) -> str: + alpha = rgba[-1] + if alpha == 0xFF: + return f"#{rgba[0]:x}{rgba[1]:x}{rgba[2]:x}" + return f"#{rgba[0]:x}{rgba[1]:x}{rgba[2]:x}{rgba[3]:x}" + + +def invertColor(rgba: list[int], ratio: float) -> list[int]: + dest = rgba.copy() + for i in range(3): + dest[i] = int(dest[i] + ratio * (0xFF - 2 * dest[i])) + return dest + + +if __name__ == "__main__": + with open("themes/Orbit.json", "r", encoding="utf-8") as fp: + data = json.load(fp) + + for key, valueStr in data.items(): + if key == "fontPath": + continue + + rgba = hexColorToRgba(valueStr) + inverted = invertColor(rgba, 1 - 0x20 / 0xFF) + invStr = rgbaToHexColor(inverted) + + print(valueStr, invStr) + + data[key] = invStr + + with open("style.json", "w", encoding="utf-8") as fp: + json.dump(data, fp) diff --git a/package/style/style.json b/package/style/style.json deleted file mode 100644 index d5968727..00000000 --- a/package/style/style.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "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" -} diff --git a/package/style/themes/ArcDark.json b/package/style/themes/ArcDark.json index 39681d17..b75ba354 100644 --- a/package/style/themes/ArcDark.json +++ b/package/style/themes/ArcDark.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#d3dae3", - "foregroundButtonOn": "#d3dae3", - "foregroundInactive": "#979da7", - "background": "#2f343f", - "boxBackground": "#444a58", - "border": "#2d323c", - "borderCheckbox": "#2d323c", - "borderLabel": "#85a8b5", - "unfocused": "#5c69b4", - "highlightMain": "#5294e2", - "highlightAccent": "#2c8a58", - "highlightButton": "#505666", - "highlightWarning": "#aaaaff", - "overlay": "#d3dae3bb", - "overlayHighlight": "#5294e232" + "foreground" : "#d3dae3" , + "foregroundButtonOn": "#d3dae3" , + "foregroundInactive": "#979da7" , + "background" : "#2f343f" , + "boxBackground" : "#444a58" , + "border" : "#2d323c" , + "borderCheckbox" : "#2d323c" , + "borderLabel" : "#85a8b5" , + "unfocused" : "#5c69b4" , + "highlightMain" : "#5294e2" , + "highlightAccent" : "#2c8a58" , + "highlightButton" : "#505666" , + "highlightWarning" : "#aaaaff" , + "overlay" : "#d3dae3bb", + "overlayHighlight" : "#5294e232" } diff --git a/package/style/themes/BB.json b/package/style/themes/BB.json index d56702f4..86870527 100644 --- a/package/style/themes/BB.json +++ b/package/style/themes/BB.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#be7a33", - "foregroundButtonOn": "#d3dae3", - "foregroundInactive": "#6e5943", - "background": "#333333", - "boxBackground": "#333333", - "border": "#333333", - "borderCheckbox": "#4e4e4e", - "borderLabel": "#6e5943", - "unfocused": "#4e4e4e", - "highlightMain": "#54a16f", - "highlightAccent": "#2c8a58", - "highlightButton": "#4e4e4e", - "highlightWarning": "#aaaaff", - "overlay": "#d2dccfcc", - "overlayHighlight": "#54a16f32" + "foreground" : "#be7a33" , + "foregroundButtonOn": "#d3dae3" , + "foregroundInactive": "#6e5943" , + "background" : "#333333" , + "boxBackground" : "#333333" , + "border" : "#333333" , + "borderCheckbox" : "#4e4e4e" , + "borderLabel" : "#6e5943" , + "unfocused" : "#4e4e4e" , + "highlightMain" : "#54a16f" , + "highlightAccent" : "#2c8a58" , + "highlightButton" : "#4e4e4e" , + "highlightWarning" : "#aaaaff" , + "overlay" : "#d2dccfcc", + "overlayHighlight" : "#54a16f32" } diff --git a/package/style/themes/BlackOnWhite.json b/package/style/themes/BlackOnWhite.json index d5968727..60cc6ee6 100644 --- a/package/style/themes/BlackOnWhite.json +++ b/package/style/themes/BlackOnWhite.json @@ -1,18 +1,17 @@ { - "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" + "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" } diff --git a/package/style/themes/BlackOnWhiteInvert.json b/package/style/themes/BlackOnWhiteInvert.json new file mode 100644 index 00000000..421d337b --- /dev/null +++ b/package/style/themes/BlackOnWhiteInvert.json @@ -0,0 +1,17 @@ +{ + "foreground" : "#dfdfdf" , + "foregroundButtonOn": "#dfdfdf" , + "foregroundInactive": "#777777" , + "background" : "#202020" , + "boxBackground" : "#202020" , + "border" : "#dfdfdf" , + "borderCheckbox" : "#dfdfdf" , + "borderLabel" : "#dfdfdf" , + "unfocused" : "#393939" , + "highlightMain" : "#d6642a" , + "highlightAccent" : "#d04eb6" , + "highlightButton" : "#224fa3" , + "highlightWarning" : "#227f7f" , + "overlay" : "#dfdfdf88", + "overlayHighlight" : "#df20df33" +} diff --git a/package/style/themes/Leaf.json b/package/style/themes/Leaf.json index 3463f690..9fed8673 100644 --- a/package/style/themes/Leaf.json +++ b/package/style/themes/Leaf.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#000000", - "foregroundButtonOn": "#5c5c5c", - "foregroundInactive": "#8a8a8a", - "background": "#d4d4d4", - "boxBackground": "#d4d4d4", - "border": "#aaaaaa", - "borderCheckbox": "#777777", - "borderLabel": "#aaaaaa", - "unfocused": "#aaaaaa", - "highlightMain": "#88ad43", - "highlightAccent": "#88ad43", - "highlightButton": "#88ad43", - "highlightWarning": "#95e000", - "overlay": "#000000aa", - "overlayHighlight": "#c6ff5333" + "foreground" : "#000000" , + "foregroundButtonOn": "#5c5c5c" , + "foregroundInactive": "#8a8a8a" , + "background" : "#d4d4d4" , + "boxBackground" : "#d4d4d4" , + "border" : "#aaaaaa" , + "borderCheckbox" : "#777777" , + "borderLabel" : "#aaaaaa" , + "unfocused" : "#aaaaaa" , + "highlightMain" : "#88ad43" , + "highlightAccent" : "#88ad43" , + "highlightButton" : "#88ad43" , + "highlightWarning" : "#95e000" , + "overlay" : "#000000aa", + "overlayHighlight" : "#c6ff5333" } diff --git a/package/style/themes/LightOnDark.json b/package/style/themes/LightOnDark.json index e4625bd6..9d61f765 100644 --- a/package/style/themes/LightOnDark.json +++ b/package/style/themes/LightOnDark.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#ffffff", - "foregroundButtonOn": "#000000", - "foregroundInactive": "#8a8a8a", - "background": "#353d3e", - "boxBackground": "#000000", - "border": "#808080", - "borderCheckbox": "#808080", - "borderLabel": "#808080", - "unfocused": "#b8a65c", - "highlightMain": "#368a94", - "highlightAccent": "#2c8a58", - "highlightButton": "#a77842", - "highlightWarning": "#8742a7", - "overlay": "#ffffff88", - "overlayHighlight": "#00ff0033" + "foreground" : "#ffffff" , + "foregroundButtonOn": "#000000" , + "foregroundInactive": "#8a8a8a" , + "background" : "#353d3e" , + "boxBackground" : "#000000" , + "border" : "#808080" , + "borderCheckbox" : "#808080" , + "borderLabel" : "#808080" , + "unfocused" : "#b8a65c" , + "highlightMain" : "#368a94" , + "highlightAccent" : "#2c8a58" , + "highlightButton" : "#a77842" , + "highlightWarning" : "#8742a7" , + "overlay" : "#ffffff88", + "overlayHighlight" : "#00ff0033" } diff --git a/package/style/themes/OrangeOnBlack.json b/package/style/themes/OrangeOnBlack.json index 7803499a..b63be1f4 100644 --- a/package/style/themes/OrangeOnBlack.json +++ b/package/style/themes/OrangeOnBlack.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#ffffff", - "foregroundButtonOn": "#ffffff", - "foregroundInactive": "#8a8a8a", - "background": "#000000", - "boxBackground": "#000000", - "border": "#ffffff", - "borderCheckbox": "#ffffff", - "borderLabel": "#ffffff", - "unfocused": "#dddddd", - "highlightMain": "#E4A052", - "highlightAccent": "#E4A052", - "highlightButton": "#E4A052", - "highlightWarning": "#E4A052", - "overlay": "#ffffff", - "overlayHighlight": "#f5ea2738" -} \ No newline at end of file + "foreground" : "#ffffff" , + "foregroundButtonOn": "#ffffff" , + "foregroundInactive": "#8a8a8a" , + "background" : "#000000" , + "boxBackground" : "#000000" , + "border" : "#ffffff" , + "borderCheckbox" : "#ffffff" , + "borderLabel" : "#ffffff" , + "unfocused" : "#dddddd" , + "highlightMain" : "#E4A052" , + "highlightAccent" : "#E4A052" , + "highlightButton" : "#E4A052" , + "highlightWarning" : "#E4A052" , + "overlay" : "#ffffff" , + "overlayHighlight" : "#f5ea2738" +} diff --git a/package/style/themes/Orbit.json b/package/style/themes/Orbit.json index 5f3abaab..759c8c5d 100644 --- a/package/style/themes/Orbit.json +++ b/package/style/themes/Orbit.json @@ -1,18 +1,17 @@ { - "fontPath": "", - "foreground": "#c0c8cf", - "foregroundButtonOn": "#000000", - "foregroundInactive": "#8a8a8a", - "background": "#081048", - "boxBackground": "#000000", - "border": "#008888", - "borderCheckbox": "#008888", - "borderLabel": "#008888", - "unfocused": "#333844", - "highlightMain": "#e80008", - "highlightAccent": "#00e810", - "highlightButton": "#ff8800", - "highlightWarning": "#ffee00", - "overlay": "#00ffff88", - "overlayHighlight": "#00ff4433" + "foreground" : "#c0c8cf" , + "foregroundButtonOn": "#000000" , + "foregroundInactive": "#8a8a8a" , + "background" : "#081048" , + "boxBackground" : "#000000" , + "border" : "#008888" , + "borderCheckbox" : "#008888" , + "borderLabel" : "#008888" , + "unfocused" : "#333844" , + "highlightMain" : "#e80008" , + "highlightAccent" : "#00e810" , + "highlightButton" : "#ff8800" , + "highlightWarning" : "#ffee00" , + "overlay" : "#00ffff88", + "overlayHighlight" : "#00ff4433" } diff --git a/package/style/themes/SoftBlue.json b/package/style/themes/SoftBlue.json index fa080863..745828b4 100644 --- a/package/style/themes/SoftBlue.json +++ b/package/style/themes/SoftBlue.json @@ -1,20 +1,17 @@ { - "fontFamily": "VT323", - "fontBold": false, - "fontItalic": false, - "foreground": "#ffffff", - "foregroundButtonOn": "#ffffff", - "foregroundInactive": "#c0cad8", - "background": "#8e99b9", - "boxBackground": "#66748f", - "border": "#66748f", - "borderCheckbox": "#66748f", - "borderLabel": "#66748f", - "unfocused": "#dddddd", - "highlightMain": "#c0cad8", - "highlightAccent": "#3ecbd8", - "highlightButton": "#ffb380", - "highlightWarning": "#ffaaaa", - "overlay": "#ffffffc0", - "overlayHighlight": "#3ecbd840" + "foreground" : "#ffffff" , + "foregroundButtonOn": "#ffffff" , + "foregroundInactive": "#c0cad8" , + "background" : "#8e99b9" , + "boxBackground" : "#66748f" , + "border" : "#66748f" , + "borderCheckbox" : "#66748f" , + "borderLabel" : "#66748f" , + "unfocused" : "#dddddd" , + "highlightMain" : "#c0cad8" , + "highlightAccent" : "#3ecbd8" , + "highlightButton" : "#ffb380" , + "highlightWarning" : "#ffaaaa" , + "overlay" : "#ffffffc0", + "overlayHighlight" : "#3ecbd840" } diff --git a/package/style/themes/Warmth.json b/package/style/themes/Warmth.json new file mode 100644 index 00000000..364a2140 --- /dev/null +++ b/package/style/themes/Warmth.json @@ -0,0 +1,17 @@ +{ + "foreground" : "#4f4943" , + "foregroundButtonOn": "#dfdfdf" , + "foregroundInactive": "#777777" , + "background" : "#d9d3a9" , + "boxBackground" : "#dfdfdf" , + "border" : "#df7979" , + "borderCheckbox" : "#df7979" , + "borderLabel" : "#df7979" , + "unfocused" : "#b8b5ac" , + "highlightMain" : "#31dfd9" , + "highlightAccent" : "#df31d3" , + "highlightButton" : "#2079df" , + "highlightWarning" : "#202cdf" , + "overlay" : "#df202088", + "overlayHighlight" : "#df20ac33" +}