Update: 2020-06-15
EnvelopedSineはノート 1 つあたり 64 のサイン波を計算する加算合成シンセサイザです。各サイン波に AD エンベロープとサチュレータがついているので IterativeSinCluster よりもパーカッシブな音が得意です。
EnvelopedSine を使うには CPU が AVX 以降の SIMD 命令セットをサポートしている必要があります。
パッケージには次のビルドが含まれています。
Mac を持っていないので、 macOS ビルドはテストできていません。もしバグを見つけたときは GitHub のリポジトリに issue を作るか、 ryukau@gmail.com
までメールを送っていただければ対応します。
Linux ビルドは Ubuntu 18.0.4 でビルドしています。また Bitwig 3.1.2 と REAPER 6.03 で動作確認を行いました。 Bitwig 3.1.2 では GUI が真っ黒になるバグがあるようです。
名前が .vst3
で終わるディレクトリを OS ごとに決められた位置に配置してください。
/Program Files/Common Files/VST3/
に配置します。$HOME/.vst3/
に配置します。/Users/$USERNAME/Library/Audio/Plug-ins/VST3/
に配置します。DAW によっては上記とは別に VST3 をインストールできるディレクトリを提供していることがあります。詳しくは利用している DAW のマニュアルを参照してください。
解凍して出てきたディレクトリを OS ごとに決められた位置に配置すると使えるようになります。
/Users/$USERNAME/Documents/VST3 Presets/Uhhyou
$HOME/.vst3/presets/Uhhyou
/Users/$USERNAME/Library/Audio/Presets/Uhhyou
プリセットディレクトリの名前はプラグインと同じである必要があります。 Uhhyou
ディレクトリが無いときは作成してください。
プラグインが DAW に認識されないときは C++ redistributable をインストールしてみてください。インストーラは次のリンクからダウンロードできます。ファイル名は vc_redist.x64.exe
です。
Ubuntu 18.0.4 では次のパッケージのインストールが必要です。
もし DAW がプラグインを認識しないときは、下のリンクの Package Requirements
を参考にして VST3 に必要なパッケージがすべてインストールされているか確認してみてください。
REAPER の Linux 版がプラグインを認識しないときは ~/.config/REAPER/reaper-vstplugins64.ini
を削除して REAPER を再起動してみてください。
初回設定時は手動で次のファイルを作成してください。
/Users/ユーザ名/AppData/Roaming/UhhyouPlugins/style/style.json
。$XDG_CONFIG_HOME/UhhyouPlugins/style/style.json
。
$XDG_CONFIG_HOME
が空のときは $HOME/.config/UhhyouPlugins/style/style.json
。/Users/$USERNAME/Library/Preferences/UhhyouPlugins/style/style.json
。既存の色のテーマを次のリンクに掲載しています。 style.json
にコピペして使ってください。
style.json
の設定例です。
{
"fontPath": "",
"foreground": "#ffffff",
"foregroundButtonOn": "#000000",
"foregroundInactive": "#8a8a8a",
"background": "#353d3e",
"boxBackground": "#000000",
"border": "#808080",
"borderCheckbox": "#808080",
"unfocused": "#b8a65c",
"highlightMain": "#368a94",
"highlightAccent": "#2c8a58",
"highlightButton": "#a77842",
"highlightWarning": "#8742a7",
"overlay": "#ffffff88",
"overlayHighlight": "#00ff0033"
}
16 進数カラーコードを使っています。
プラグインはカラーコードの 1 文字目を無視します。よって ?102938
や \n11335577
も有効なカラーコードです。
2 文字目以降のカラーコードの値に 0-9a-f
以外の文字を使わないでください。
以下は設定できる色の一覧です。設定に抜けがあるとデフォルトの色が使われます。
fontPath
: フォント (*.ttf) の絶対パス。VST 3 版では実装されていません。foreground
: 文字の色。foregroundButtonOn
: オンになっているボタンの文字の色。 foreground
か boxBackground
のいずれかと同じ値にすることを推奨します。foregroundInactive
: 非アクティブなタブの文字の色。background
: 背景色。xboxBackground
: 矩形の UI 部品の内側の背景色。border
: 縁の色。borderCheckbox
: チェックボックスの縁の色。unfocused
: つまみがフォーカスされていないときの色。highlightMain
: フォーカスされたときの色。スライダの値の表示にも使用されます。highlightAccent
: フォーカスされたときの色。一部のプラグインをカラフルにするために使用されます。highlightButton
: ボタンがフォーカスされたときの色。highlightWarning
: 変更に注意を要する UI がフォーカスされたときの色。overlay
: オーバーレイの色。overlayHighlight
: フォーカスを示すオーバーレイの色。操作できる箇所を右クリックすると DAW によって提供されているコンテキストメニューを開くことができます。
つまみとスライダーでは次の操作ができます。
Octave
、 Seed
などで使われている数値スライダーでは、上記に加えて次の操作ができます。
Attack
、 Decay
、 Gain
、 Saturation
を操作する、青い縦棒が並んだインターフェイス (BarBox) ではショートカットが使えます。ショートカットは BarBox を左クリックしてフォーカスした上で、マウスカーソルが BarBox の領域内にあるときだけ有効になります。左下にあるプラグインのタイトルをクリックするとショートカットの一覧を見ることができます。
入力 | 操作 |
---|---|
Ctrl + 左ドラッグ | デフォルト値にリセット |
Shift + 左ドラッグ | 素朴な描画 (フレーム間の補間が無効) |
ホイールドラッグ | 直線の描画 |
a | 符号を交互に入れ替え |
d | すべての値をデフォルト値にリセット |
D | 最小値・中央値・最大値の切り替え |
e | 低域の強調 |
E | 高域の強調 |
f | ローパスフィルタ |
F | ハイパスフィルタ |
i | 値の反転 (最小値を保存) |
I | 値の反転 (最小値を 0 に設定) |
n | 最大値を 1 に正規化 (最小値を保存) |
N | 最大値を 1 に正規化 (最小値を 0 に設定) |
p | ランダムに並べ替え |
r | ランダマイズ |
R | まばらなランダマイズ |
s | 降順にソート |
S | 昇順にソート |
t | 少しだけランダマイズ (ランダムウォーク) |
T | 少しだけランダマイズ (0 に収束) |
z | アンドゥ |
Z | リドゥ |
, (Comma) | 左に回転 |
. (Period) | 右に回転 |
1 | すべての値を低減 |
2-9 | インデックスが 2n-9n の値を低減 |
図が小さいときはブラウザのショートカット Ctrl + マウスホイール や、右クリックから「画像だけを表示」などで拡大できます。
図で示されているのは大まかな信号の流れです。実装と厳密に対応しているわけではないので注意してください。
右上にある 4 つの大きなコントロールです。
各オシレータの音量エンベロープのアタックとディケイです。
各オシレータの音量です。
各オシレータのサチュレーションの大きさです。
どちらも音量を調整します。出力のピーク値は Boost * Gain
となります。
チェックを入れると、ナイキスト周波数より高い周波数が指定されたサイン波もレンダリングします。
ナイキスト周波数とは、ざっくりいえば録音したデータが再現可能な最高周波数のことです。音を生成するときはナイキスト周波数以上の値を指定することができますが、折り返し(エイリアシング)と呼ばれる現象によって計算結果は予期しない周波数になってしまいます。 Add Aliasing
は、こうしたエイリアシングノイズを足し合わせるオプションです。
ノートのオクターブです。
サイン波の周波数を変更します。
計算式は ノートの周波数 * (1 + fmod(Multiply * pitch, Modulo))
のようになっています。 pitch
はノートの音程と倍音のインデックスから計算される係数です。 fmod(a, b)
は a
を b
で割った余りを計算する関数です。
倍音コントロールのインデックスを拡大・縮小するスケーリング係数です。
倍音コントロールのインデックスを右シフトする量です。
ランダマイズに関するパラメータです。 Unison
にチェックを入れた状態で使うと効果的です。
チェックを入れると、ノートオンごとに乱数列をリセットします。
乱数のシード値です。この値を変えると生成される乱数が変わります。
倍音コントロールの値をランダマイズします。ランダマイズの式は value * random
です。 random
の値の範囲は [0.0, 1.0)
です。
ピッチをランダマイズします。
位相をランダマイズします。
特定の値を変更したときに、変更前の値から変更後の値に移行する時間(秒)です。
Smooth
と関連するパラメータのリストです。 *
はワイルドカードです。
Gain
セクションの全てPhaser
セクションの nStages
以外他のパラメータはノートオンのタイミングで指定されていた値を、ノートの発音が終わるまで使い続けます。
最大同時発音数です。
チェックを入れるとユニゾンを有効にします。
ユニゾンが有効になると 1 つのノートについて左右のチャンネルに 1 つずつボイスを配置します。 Random.To Phase
や Random.To Pitch
と組み合わせることで広がりのある音を作ることができます。
倍音コントロールの Attack
と Decay
にかけ合わせる値です。まとめて長さを変えたいときに使えます。
チェックを入れると、倍音コントロールの Attack
あるいは Decay
の値が 0 のときに生じるプチノイズを低減します。各オシレータのピッチに応じた値を足し合わせます。
倍音コントロールの Gain
をべき乗する値です。 1 つのオシレータの最終的なゲインは次の式で計算されます。
Gain.Boost * Gain.Gain * pow(Overtone.Gain, Modifier.Gain^)
サチュレーションの Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 : 1 になります。
オールパスフィルタの数です。
フェイザの Dry : Wet の信号比です。右いっぱいにすると Dry : Wet = 0 : 1 になります。
LFO の周波数です。
フィードバックの大きさです。 12 時にするとフィードバックなし、左に回すと負のフィードバック、右に回すと正のフィードバックとなります。
LFO によって変更するオールパスフィルタの特性の幅です。
LFO によって変調するオールパスフィルタの特性の最小値です。
左右の LFO の位相差です。
LFO の位相です。オートメーションで音を作りたいときに使えます。 Freq
を左いっぱいに回すことで LFO の周波数を 0 にできます。
EnvelopedSine のライセンスは GPLv3 です。 GPLv3 の詳細と、利用したライブラリのライセンスは次のリンクにまとめています。リンクが切れているときは ryukau@gmail.com
にメールを送ってください。
VST is a trademark of Steinberg Media Technologies GmbH, registered in Europe and other countries.