2022/06/09

Partially Resuming macOS Build/macOSビルドの部分的な復帰

In the early part of this week, I was working to resume on macOS build for some plugins. Download link can be found in the issue on GitHub.

MacOS build · Issue #17 · ryukau/VSTPlugins · GitHub

Note that the build is experimental, and as same as previous releases, it wasn't tested on macOS. If the plugins are working on your environment, please let me know. (Edit on 2022-06-10: nekotaro6 reported that they are working on M1 mac. Thank you nekotaro6!)

ParallelComb and PitchShiftDelay are not up to date. They are built from beta code.

Below is a list of missing plugins from current macOS build.

  • CubicPadSynth
  • EnvelopedSine
  • EsPhaser 
  • IterativeSinCluster

---

今週の頭に macOS ビルドの復帰に取り組んでいました。一部のプラグインを除けば以下のリンク先からダウンロードできます。

MacOS build · Issue #17 · ryukau/VSTPlugins · GitHub 

現状のビルドは、以前と同様に macOS 上で動作確認できていません。もしプラグインが動くようであればメールや GitHub の issue などでご一報いただければ助かります。 (2022-06-10 追記: nekotaro6 さんによると M1 mac で動作確認できたようです。ありがとうございました!)

ParallelComb と PitchShiftDelay はひとつ前の記事のベータ版のコードからビルドしているので、次のバージョンではパラメータや音が変わります。

以下は現在の macOS ビルドから除かれているプラグインの一覧です。

  • CubicPadSynth
  • EnvelopedSine
  • EsPhaser 
  • IterativeSinCluster

2022/06/04

ParallelComb と PitchShiftDelay

Uhhyou Plugins に 2 つの新しいプラグインを加えました。 Windows と Linux (Ubuntu) のバイナリは以下のリンク先からダウンロードして試すことができます。マニュアルとプリセットはまだできていません。

ParallelComb 0.1.0 (github.com) 
PitchShiftDelay 0.1.0 (github.com) 

PitchShiftDelay はベータ版です。次のバージョンではディレイ時間が長くなります。

---

ParallelComb の音のサンプル (Google Drive)

ParallelComb は 1 つのディレイから異なる 4 つの時点の値を取り出してフィードバックするコムフィルタです。 Freeverb アルゴリズムなどで使われている初期反響音 (early reflection) のディレイと同じ構造です。書き込むバッファを 1 つに節約したことで、そのままだとフィードバックが強くかけられず面白い音は出ませんでした。そこでフィードバック経路にリミッタを挿して音が止まらないディレイへと変えることにしました。

リミッタのリリース時間 (Limiter R.) を 0 に近づけるとソフトクリッピング、 0 から離すとクリーンな音になります。クリーンな音にすると Highpass の値に近い周波数のサイン波になることがほとんどです。

フィードバック信号によるディレイ時間の変調 (Self Mod.) で変な歪みが出せます。 

不要なフィードバックを打ち切るためのゲートもついています。

---

PitchShiftDelay の音のサンプル (Google Drive)

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

LFO の波形は 2 ミリ秒ごとにリアルタイムで更新されます。内部的には 2 つのテーブルを用意してクロスフェードしています。そしてクロスフェードの終了時に片方のテーブルを更新することで波形を次々と書き換えています。この手法は FFT によるアンチエイリアシングを行っていない点を除けば Vital のオシレータと同じです。

ピッチシフトの範囲は 0 から 1000 倍です。

バージョン 0.1.0 のディレイ時間は 1 秒とやや短いので、次の版では 10 秒前後に増やす予定です。

2022/05/25

BasicLimiterAutoMake

ダウンロードとマニュアル (github.io)
ソースコード (github.com)

BasicLimiter に自動メイクアップゲイン、サイドチェイン、左右とミッド・サイドの切り替えをつけた BasicLimiterAutoGain を公開しました。マニュアルは BasicLimiter と共有しています。

自動メイクアップゲインを実装するコツは、しきい値をスムーシングすることのようです。ただし、今回の実装はやや不安定でオーバーシュートすることがあります。

REAPER はサイドチェインを設定すると、すべての入力のチャネル数が、すべての入力のチャネル数の総和と等しくなる、という変わった仕様になっていました。例えば 2 つのステレオ入力があると 2 * 2 = 4 チャネルを持つ 2 つの入力が VST 3 プラグインから見えるようになります。以下は BasicLimiterAutoMake のサイドチェインを使うときに設定した REAPER のルーティング・マトリックスの画像です。

2022/05/16

BasicLimiter と FDN64Reverb を公開

ダウンロードとマニュアル (github.io)
ソースコード (github.com)

BasicLimiter と FDN64Reverb を公開しました。

SIMD 関連の問題で macOS 向けのユニバーサルバイナリのビルドができていません。開発用の M1 mac が必要ですが、今のところお財布が厳しいので、近々 PayPal のアカウントでも作ってお布施を募る予定です。

2022/05/13

Feedback Delay Network の実装

Feedback Delay Network の実装を読む (github.io) 

Feedback delay network (FDN) が発散しないフィードバック行列について調べました。配布準備がまだですが VST 3 プラグインの FDN64Reverb として実装もしました。画像は FDN のブロック線図です。

リバーブであれば、浮動小数点数が使えるならランダムな直交行列、整数演算ならアダマール行列か conference 行列がよさそうです。巡回行列を作る方法は細長い管を通したような音がでます。フィードバック行列にこだわるよりも、ディレイ時間などの変調をうまくかけたほうが簡単に雰囲気がでます。

FDN は素朴な実装だと行列の乗算で N^2 の計算量がかかるのでかなり重たいです。行列の種類によっては FDN ではない形に実装を特殊化するほうがよさそうです。行列の乗算をより高速に計算できるアルゴリズムもあるようですが、 Eigen の開発者による 10 年前のコメントによると 2000*2000 ほどの大きさを超えないと高速化は期待できないそうです。オーディオレートに追いつけるのであれば GPU で計算という手もあるかもしれません。

2022/05/08

リミッタの改善

リミッタの実装を大幅に改善しました。移動平均フィルタの修正、トゥルーピークモードの設計と評価、リリースの計算あたりが大きな変更です。まだマニュアルを書いていないのでリリースはしていませんが、プラグインのリポジトリに BasicLimiter という名前で実装を追加しています。 

BasicLimiter は名前の通りベーシックなので特に目新しい音は出ませんが、オープンソースであることと、トゥルーピークモードがやや贅沢に作ってあることが特長です。トゥルーピークモードについてはオーバーサンプリングが 8 倍で、アップサンプラとダウンサンプラの FIR フィルタ係数の長さがどちらも 512 です。ナイキスト周波数付近の成分はトゥルーピークの検出が困難なので、オーバーサンプリングの前にプリフィルタをかけて落とすようにしています。

上の画像のようにデフォルトで Threshold が -0.1 dB になっているのは、 sinc 補間で得られる理論上のトゥルーピークを完全に制限することはできないからです。 BasicLimiter の性能を簡単に調べたところ +8.8 dB のトゥルーピークを +0.05 dB まで制限することができていました。 -0.1 という数字はこの 0.05 を 2 倍しただけのざっくりした値です。

ついでにすべてのプラグインでカスタムフォントを使うようにしたことで見た目がだいぶましになりました。

2022/05/07

3 次補間の比較

 3 次補間の比較を読む (github.io)

いろいろな 3 次補間の周波数特性を比較しました。線形補間もついでに特性を出しています。

音の補間では 3 次のラグランジュ補間がよさそうです。 PCHIP などの入力によって傾きの計算を変える方法は音の補間には不向きのようです。

画像は 3 次ラグランジュ補間の周波数特性です。

2022/01/11

Robert Cecil - Orbit EP

ハウスです。 This Time Around がいい感じです。 YouTube で公開されている動画ではアルバムアートが動きます。

2022/01/08

Mister Water Wet - Welcome To The Farm EP

3曲目の Untitled (Live Version) が良いです。狭い管の中にいるような気分になれます。

2022/01/07

ウェッデルアザラシの鳴き声

McMurdo Oceanographic Observatory (MOO) が公開している、南極の海氷の下で録音されたウェッデルアザラシの鳴き声です。

どのようにして鳴き声を出しているかは、まだよくわかっていません。動画についている MOO のコメントによると、ウェッデルアザラシは鳴き声を出すときに口や鼻から気泡を出さないそうです。

2022/01/06

霧 - 晴れ EP

シンセパッドに歪みやスタッターなどの加工を施した音です。ところどころ声のサンプルも入っています。ノイズというほどには歪みがきつくないことと、1曲が短いので聞きやすいです。

以下は説明文の訳です。

 ---

これは"霧"という名前での初の作品です。

晴れ EPは、霧に総じても言えることですが、私が長い間行いたかったプロジェクトで、結果に満足しています。私が制作中に感じたようにあなたも楽しんでいただけると幸いです。

ありがとうございます。霧