2022/08/22

"found in animals" on Electronic Frequencies

Thanks to Kirk Markarian, one of my improvisation "found in animals" is aired on a radio show called Electronic Frequencies, which is a program on Concertzender.nl. Below is a link to the show.

Electronic Frequencies | Concertzender.nl :: Radio

Electronic Frequencies is hosted by Kirk, also as known as his artist alias Neuro... No Neuro. I honestly recommend to listen to his music instead of mine. They are far more well tuned.

---

Kirk Markarian さんによって、私の "found in animals" という即興が Concertzender.nl というサイトの Electronic Frequencies というラジオ番組で紹介されました。 Kirk さん、ありがとうございました!下記は番組へのリンクです。

Electronic Frequencies | Concertzender.nl :: Radio

Electronic Frequencies のホストを務める Kirk さんは Neuro... No Neuro (NNN) というアーティスト名でも活動されています。正直なところ、私の曲よりも Kirk さんによる曲のほうが遥かに丁寧に作られているのでお勧めです。

2022/08/14

UltrasonicRingMod

 

Download and User Manual (github.io) 

Source Code (github.com)

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.

---

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

ソースコード (github.com)

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

---

I also made a demo video of PitchShiftDelay.

PitchShiftDelay のデモ動画も作りました。


2022/08/04

ClangCymbal β

ClangCymbal β Download & User Manual (github.io)

ClangCymbal is a spin off of ClangSynth, which is introduced in a previous post.

Note the β version. Bugs might be still remaining, and breaking change might be introduced. If you are planning to use it on production, make sure to write the result to file before closing DAW.

Below is a list of changes:

  • Increased FDN size from 8 * 8 to 64 * 64.
  • Added independent controls for each FDN filter on feedback path.
  • Added tremolo.
  • Added modulation envelope destination.
  • Changed oscillator from static wavetable to noise/pulse mix.
  • Reduced number of voice to 1, which means monophonic.
  • Removed LFO.

It can make more rich sounds because of the increased size of FDN. However, it also becomes monophonic due to the increased CPU load. To put more focus on percussion sounds, oscillator is changed to noise/pulse generator. Also LFO is omitted.

Change log:

  • 0.0.2 (β4): Fix initialization failure on Bitwig and Live 11.
  • β3: Fix to load saved state at the opening of project file on FL Studio.
  • β2: Fix BarBox to get focus on mouse down, and release focus on mouse exit.
  • β1: Initial release.

---

ClangCymbal のダウンロードとマニュアル (github.io)

ClangCymbal は、一つ前の記事で β 版を公開した ClangSynth のスピンオフです。

β 版なのでバグが残っていたり、後方互換の無い変更が行われる可能性があります。制作に使用するときは DAW を閉じる前に必ずファイルに書き出すことをお勧めします。

以下は変更点の一覧です。

  • FDN のサイズを 8 * 8 から 64 * 64 へと増加。
  • FDN のフィードバック経路のフィルタを独立して操作できるように変更。
  • トレモロを追加。
  • エンベロープの変調先を追加。
  • オシレータをウェーブテーブルからノイズとパルス列の混合に変更。
  • 最大同時発音数を 1 に低減。
  • LFO を除去。

FDN が大きくなってリッチな倍音が出るようになった代わりに CPU 負荷が増えたのでモノフォニックになっています。また、打楽器に特化するためにオシレータを変更して、変調器をエンベロープのみに絞りました。

変更点:

  • 0.0.2 (β4): Bitwig と Live 11 で初期化に失敗するバグを修正。
  • β3: FL Studio のプロジェクトを開いた時に保存した状態が DSP 側に読み込まれない問題を修正。
  • β2: BarBox がマウスボタン押下 (mouse down イベント) でフォーカスを取得、マウスカーソルが領域外に出る (mouse exit イベント) とフォーカスを開放するように修正。
  • β1: 初期リリース。

 

2022/07/18

ClangSynth β Version

ClangSynth Download & User Manual (github.io)

β version of ClangSynth is now available. ClangSynth is a metal percussion synthesizer using feedback delay network (FDN). With some tuning, it can resemble the sound of real cymbals.

If you have some feedback, please let me know through discussion or issue on GitHub repository, or email (ryukau@gmail.com).

Note that breaking change might be introduced. If you are considering to use it for production, make sure to render the result to file before closing DAW.

  • β2: Reset behavior is fixed.
  • β1: Reset behavior is not tested, so reopening the project may break the settings in some way.

This one is the same synthesizer showed in the video in previous blog post, which was PluckSynth. Name is changed to be more descriptive.

The CPU load is high. To reduce CPU load, decrease `nVoice` parameter on bottom left. CPU load also spikes at note on, either if the note is in resting state, or `Reset at Note On` parameter is checked.

Some tips to make percussion sounds:

  • Make oscillator to resemble the hit of stick.
    • Switch `FDN`  to check the raw oscillator output.
    • Shorten `Decay` to less than 0.01 second.
    • Emphasize higher overtones by changing `Denom. Slope` and `OT Amp.`
  • Tune FDN well.
    • Increase `Identity` for more cross feedback between delays.
    • Change `OT` parameters to tune delay time. OT stands for overtone.
    • Change lowpass or highpass. Q is as important as cutoff.
  • Add accent with Envelope.
    • Shorten `Decay` to around 0.1 second.
    • Press Shift + R on `Envelope Wave` to randomize, then press F to smooth.
    • Change `HP Cut`. 

---

ClangSynth のダウンロードとマニュアル (github.io)

ClangSynth の β 版を公開しました。 ClangSynth はフィードバック・ディレイ・ネットワーク (FDN) を使った、金属的な打楽器の音が得意なシンセサイザです。いくらかチューニングすれば本物のシンバルと似たような音が作れます。

バグやその他のご意見があれば GitHub の discussion あるいは issue 、またはメール (ryukau@gmail.com) でお知らせください。

β 版なので後方互換性のない変更を行うことがあります。制作に使うときは DAW を閉じる前にファイルへと書き出してください。

  • β2: リセットの動作を修正しました。
  • β1: リセットの動作をテストしていないので、プロジェクトを開きなおすと以前の設定から音が変わってしまうかもしれません。

このシンセサイザはひとつ前の投稿で紹介しているものと同じです。金属音が出るということをわかりやすくするために PluckSynth から ClangSynth へと名前を変えました。

CPU 負荷は高めです。負荷を減らすには、GUI 左下の `nVoice` の値を下げてください。またノートオンの瞬間に CPU 負荷のスパイクが起こることがあります。スパイクは内部的なノートの状態が休止中であるか、 `Reset at Note On` にチェックが入っているときに起こります。

以下は打楽器の音を作るときのコツです。 

  •  オシレータは、ばちの衝突音に似せるように調整する。
    • `FDN` を切ってオシレータの出力を直に確認できる。
    • `Decay` を 0.01 秒以下に短くする。
    • `Denom. Slope` と `OT Amp.` を変えて高い倍音を強調する。
  • FDN は念入りにチューニングする。
    • `Identity` を上げてディレイ間のクロス・フィードバックを増やす。
    • `OT` とついたパラメータを変更してディレイ時間を調整する。 OT は overtone の略。
    • ローパスとハイパスを変える。 Q はカットオフと同等に重要。
  • エンベロープでアクセントをつける。
    • `Decay` を 0.1 秒くらいに短くする。
    • `Envelope Wave` のコントロール上で Shift + R を押してランダマイズ、 F を押して平滑化できる。
    • `HP Cut` を変える。

---

  • 2022-07-18: Added a basic hi-hat setup video.
  • 2022-07-26: Download link is changed to β2. Manual link is added.
  • 2022-07-18: 基本的なハイハットの設定の動画を追加。
  • 2022-07-26: ダウンロードリンクを β2 に変更。マニュアルへのリンクを追加。

2022/07/12

開発中の新しいシンバルシンセサイザ

 

The video shows my new cymbal synthesizer in development. It sounds better than previous cymbal synths I made, however it still sounds artificial.

---

動画では開発中の新しいシンバルシンセサイザを紹介しています。以前に作ったシンバルシンセサイザよりもそれらしい音が出ていますが、本物と比べると物足りない感じがします。

2022/06/10

MiniCliffEQ

macOS build is partially resumed now.

macOS ビルドが部分的に復帰しました。

---

Download MiniCliffEQ (github.io)

MiniCliffEQ is a FIR filter with 2^15 = 32768 taps. Because of this too many taps, latency is massive that it exceeds 1 second 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.

Edited on 2022-06-11: Experimental macOS build is available now. Note that all the explicit SIMD options on FFTW3 are disabled, so it may runs slow. The manual is also work in progress.

This is made as an experiment to see how efficient FFT convolution (overlap-add method) is. That many number of taps is used to enable lower cutoff frequency. The filter design method is windowed sinc. Nuttall window is used.

The range of gain is ±144.5 dB, which is slightly above/below 24bit dynamic range. This can be useful to catch dither, and subtle discontinuity. Two common subtle discontinuities are caused by transition of envelope state (attack to decay, and so on), and integer arithmetic. This is sometimes useful to guess the internal of plugins.

Edited on 2022-07-26: Change download link. 

---

MiniCliffEQ のダウンロード (github.io)

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

2022-06-11 追記: 実験的な macOS ビルドを作りました。 FFTW3 の SIMD オプションをすべて無効にしているので遅いかもしれません。マニュアルも作成中です。

FFTを使った畳み込み (overlap-add 法) がどれくらい効率がいいのかを試す目的で作りました。フィルタのタップ数がやたら多いのは FIR フィルタのカットオフ周波数を低くするためです。フィルタ設計法は windowed sincNuttall 窓を使っています。

ゲインの範囲は 24bit のダイナミックレンジを少し超える ±144.5 dB となっていて、ディザや、細かい不連続点を見つけることができます。よくある細かい不連続点の原因としては整数演算とエンベロープの状態遷移 (アタックからディケイへの切り替えなど) の 2 つが挙げられます。こうした情報はプラグインの内部の動作を推測するときに役立ちます。

2022-07-26 編集: ダウンロードリンクを変更。

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 で計算という手もあるかもしれません。