2022/12/31

LongPhaser

Download (github.com)
Source Code (github.com)

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.

Output becomes darker by increasing `Stage`. This is due to linear interpolation used in delay. Turning off the oversampling emphasize the effect, but it might be useful to add some character.

When modulating delay time by increasing `LFO > Time`, it might be better to also change `Interp. Rate` at the same time to control the character of modulation. Setting `Interp. Rate` to integer value by using Shift + Middle Mouse Click might make the clear texture. The change of texture caused by `Interp. Rate` is the same one that can be heard in ParallelComb.

---

ダウンロード (github.com)
ソースコードを見る (github.com)

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

ディレイで行っている線形補間の影響で `Stage` の数を増やすほど音の高い部分が低減されて、暗い音になります。オーバーサンプリングを無効にすると線形補間の影響がはっきりと分かるくらいになりますが、逆に味付けとして使えるかもしれません。

`LFO > Time` を上げてディレイ時間を変調するときは `Interp. Rate` も同時に調整すると音の質感を変えることができます。また `Interp. Rate` を Shift + ホイールクリックで整数に設定することで、ディレイ時間が大きく変化したときのピッチシフトが整数倍となって聞きやすい音が出せます。この効果は ParallelComb の特徴的な音が出る仕組みと同じです。

2022/12/30

OrdinaryPhaser

Download (github.com)
Source Code (github.com)

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. Usual first order all-pass filter is used.

Phaser has some tuning possibility around the spread of cutoff frequency (cutoff spread) , and how to apply LFO signal to cutoff frequency. In OrdinaryPhaser, cutoff spread can be smoothly transformed between uniform (1, 1, 1, ...) and overtones (1, 2, 3, ...) by changing `Cut Spread` parameter. LFO signal goes through exp2 function, and is multiplied to all-pass cutoff frequency.

Probably the use of distortion and second or higher order all-pass filters could provide more character to phaser.

---

ダウンロード (github.com)
ソースコードを見る (github.com)

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

フェイザは、カットオフ周波数の分布と、 LFO のスケーリングについてチューニングの余地があります。 OrdinaryPhaser のカットオフ周波数の分布は `Cut Spread` によって一様 (1, 1, 1, ...) と倍音列 (1, 2, 3, ...) との間で滑らかに切り替えられます。また、 LFO による変調は exp2 を通した値をカットオフ周波数に乗算しています。

2 次以上のオールパスフィルタや歪みの導入によって、より個性的な音が出せるかもしれません。

2022/12/01

MaybeSnare の VST 3 版

Download and User Manual (github.io)
Source Code (github.com) 

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.

To make snare drum sound, set a side with weak modulation and higher pitch, and another side with strong modulation and lower pitch. `Interp. Rate` are the strength of modulation, and `Snare Side Octave` is the difference of pitch between 2 sides. Also set `LP Cut` to higher value for the side with strong modulation, to emphasize rattling of snare wire.

On mix, it's better to use with equalizer, limiter, or saturator to trim the output.

---

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

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

チューニングのコツとしては、片面はモジュレーション弱めかつピッチ高め、もう片面はモジュレーション強めかつピッチ低めに設定することでスネアドラムに近い音が出ます。モジュレーションの強弱は Interp. Rate 、ピッチの差は Snare Side Octave で設定できます。モジュレーションを強くした面は、 LP Cut の値を高めに設定することでスナッピーによるノイズのような音が目立つようになります。

他の音と混ぜるときはイコライザで整えたり、リミッタやサチュレータでダイナミックレンジを潰したほうが雰囲気が出ます。

2022/11/21

MembraneSynth

Download and User Manual (github.io)
Source Code (github.com)

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.

---

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

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

2022/11/07

MaybeSnare

Try MaybeSnare (github.io)
See list of other web synthesizers (github.io)

MaybeSnare is a snare drum synthesizer using feedback delay network (FDN) with self modulation. It's also possible to make bass drum sounds.

Alberto Torin's PhD thesis was helpful to grasp the behaviour of snare drum. There are some nice simulation results of gong and bass drum in Chapter 6.

In the thesis, von Kármán equations are used to model plate vibration. I didn't understand the equation well, but I got an implementation idea after reading about it. 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 (self modulation).

The above method worked well to imitate the non-linearity of snare drum membranes. However, I didn't get the ideas about how to implement the coupling between batter side and snare side, and collision of snare wire, into FDN. So they were empirically tuned without any basis.

---

MaybeSnare を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

MaybeSnare は自己変調するフィードバック・ディレイ・ネットワーク (FDN) を用いたスネアドラムのような音が出るシンセサイザです。チューニング次第ではバスドラムのような音も出ます。

制作にあたっては Alberto Torin さんによる PhD 論文が参考になりました。リンク先の論文のページの Chapter 6 からダウンロードできるバスドラムやゴングのシミュレーション結果はとてもいい音が出ています。

論文のシミュレーションでは薄い板の振動のモデルとして、ストレスの要素が組み込まれた von Kármán 方程式を使っています。数式の部分についてはよく分からなかったのですが、調べているうちにぼんやりと FDN のディレイ時間を自己変調すればいいのではないかと思いつきました。板は揺れているときに伸び縮みしますが、定常状態から離れた分だけ内部的なストレスによって張力が一時的に増えるはずです。そして、張力が増えるということは音のピッチが上がることを意味します。これを FDN に当てはめると、フィードバックされた信号の振幅に応じてディレイ時間を短くすること (自己変調) でピッチを上げるという実装が考えられます。

上記の方法で打面と裏面の揺れの非線形性については雰囲気が出たのですが、打面と裏面のカップリングや、スナッピーの挙動についてはよく分からなかったので適当にごまかしています。

2022/10/13

ClangSnare

Try ClangSnare (github.io)
See list of other web synthesizers (github.io)

ClangSnare is a modified version of ClangCymbal. It is more suitable for snare drum sounds.

Snare drum has roughly 4 parts:

  • Batter side membrane
  • Snare side membrane
  • Snare wire
  • Body

ClangSnare is not so bad for membrane sounds, but it's not good at rattling of snare wire. Attack also feels weak. I'd recommend to apply additional gain envelope after loaded the output to some sampler.

ClangSnare sometimes blows up. In that case, reduce the value of `FDN Matrix & Delay` -> `Cross`. "Blow up" here means that a peak appears on the end of the sound.

---

ClangSnare を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

ClangSnare は ClangCymbal を改変した、スネアドラムのような音を合成するシンセサイザです。

スネアドラムは、おおまかに 4 つの部品に分けることができます。

  • 打面 (batter side) 
  • スネア面 (snare side) 
  • スナッピー (snare wire)

ClangSnare は打面とスネア面の膜の音については似たような音が出ているのですが、スナッピーによるざらついた音については上手く合成できていません。アタックも弱いので外部のサンプラーのエンベロープなどでさらに加工することをお勧めします。

音が発散したときは `FDN Matrix & Delay` -> `Cross` を下げてください。音の終端にピークがある状態だと発散しています。

2022/10/06

PadChoir3

Try PadChoir3 (github.io)
See list of other web synthesizers (github.io)

PadChoir3 is maybe a choir sound synthesizer using PADsynth algorithm. Most of the time, the sound is far from real choir. The difference to previous PADchoir is that PadChoir3 uses formant table from Csound manual.

---

PadChoir3 を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

PadChoir3 は PADsynth アルゴリズムを使った、どことなく合唱のような音を合成するシンセサイザです。たいていは本物の合唱とは程遠いシンセサイザの音が出ます。以前の PADchoir との違いは Csound のマニュアルに掲載されているフォルマントの表を使っていることです。

2022/10/04

ResonantBD

Try ResonantBD (github.io)
See list of other web synthesizers (github.io)

ResonantBD is a synthesizer that can make bass drums similar to the ones in old rhythm machines. The sine sweep comes from oscillation of high Q state variable filter (SVF). This idea was explored in SingenBD3, but dropped to reduce complexity.

To control saturation, change Limiter -> Release and Limiter -> Input Gain.

---

ResonantBD を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

ResonantBD は Q を高めに設定した state variable filter (SVF) の発振を使って古いリズムマシンのようなバスドラムを作ることができるシンセサイザです。 SVF を使うアイデアは SingenBD3 の制作時に試していたのですが、あまり特徴のない音だったので、複雑さを減らすために採用を見送っていました。

Limiter -> Release と Limiter -> Input Gain で大まかに歪みを調整できます。

2022/10/01

L4Reverb on Web / L4Reverb の Web 版

Try L4Reverb (github.io)
See list of other web synthesizers (github.io)

L4Reverb is a reverb using 4 times nested lattice structure. This is the same L4Reverb from VST 3 version.

---

L4Reverb を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

L4Reverb は 4 回入れ子になった格子構造を使ったリバーブです。 VST 3 版の L4Reverb と同じものです。

SingenBD3

Try SingenBD3 (github.io)
See list of other web synthesizers (github.io)

SingenBD3 is possibly a bass drum synthesizer based on FM synthesis technique.

"Possibly" means that randomize is currently not well tuned and it mostly produce the sound far from bass drum. This is more suitable for quickly make sound effects, rather than to obtain drum sounds.

Depending on randomization and reverb settings, the stereo image can be quite strange. To reduce the stereo spread, click "Stereo" button on Overtone section, and reduce Mix value on Reverb section.

The reverb is using same algorithm as FDNReverb.

---

SingenBD3 を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

SingenBD3 はバスドラムの音に特化した FM シンセサイザとなるはずでした。

実態としてはピッチが下降するよくわからない効果音をランダムに生成するシンセサイザとなっています。ランダマイズのチューニングが適当なので、ドラムの音の合成はあまり得意ではありません。

リバーブとランダマイズの設定によっては変なステレオ感になります。Overtone セクションの "Stereo" と表示されているボタンをクリックして、 Reverb セクションの Mix を下げることで左右の広がりを抑えることができます。

リバーブは FDNReverb と同じアルゴリズムを使っています。

2022/09/28

PadCymbal2

Try PadCymbal2 (github.io)
See list of web generators (github.io)

PadCymbal2 is now available. It is a successor of PADcymbal. Layer and serial comb section are the notable addition.

To get metallic texture, set nDelay to even number. When Feedback is not close to ±0.99, second peak with slow attack may appear.

---

PadCymbal2 を試す (github.io)
Webジェネレータのリストを見る (github.io)

PADcymbal を改善した PadCymbal2 を公開しました。PADcymbal との違いはレイヤと直列コムフィルタが追加されたことです。

nDelay を偶数にすると金属的な質感が出やすいです。また Feedback が ±0.99 付近でなければアタックの遅い 2 つ目のピークが現れることがあります。

2022/09/27

ClangCymbal Web Version / ClangCymbal の Web 版

Try ClangCymbal (github.io)
See list of other web generators (github.io)

ClangCymbal is ported to run on browser.

The page layout is messy. I'd recommend to reduce the zooming with Ctrl + Mouse Wheel.

Note that it doesn't run on Firefox for now.

---

ClangCymbal を試す (github.io)
他の Web ジェネレータの一覧を見る (github.io)

ClangCymbal をブラウザ上で動くように移植しました。

レイアウトの見通しが悪いですが、 Ctrl + マウスホイールなどで表示倍率を変えることで多少ましになります。

今のところ Firefox では動作しないので注意してください。

2022/09/24

SerialCombCymbal

Try SerialCombCymbal (github.io)
Go to the list of web synthesizers (github.io)

SerialCombCymbal is a cymbal-esque sound synthesizer using serially connected comb filters. Note that SerialCombCymbal doesn't work on current version of Firefox.

Below is a recipe to make cymbal like sounds:

  • Set nDelay to even number.
  • Set Feedback to some number close to -1.0, like -0.99.
  • Shorten Delay Time and Time Randomness.
  • Set Highpass Cutoff to lower than 100 Hz.
  • Set Highpass Q, Lowpass Cutoff, Lowpass Q to upper limit (default value).

It's also possible to make gong-ish sounds by increasing nDelay and subtly adding lowpass.

ClangCymbal was so heavy, so I was looking for faster cymbal synth algorithm. Then I found that Image-Line DrumPad can make some nice cymbal sounds. DrumPad was released for a decade ago, and CPU load is very small. After playing with it for a bit, I got a guess that DrumPad is using serially connected integer comb filter. Then SerialCombCymbal is made up from this guess.

---

SerialCombCymbal を試す (github.io)
Web シンセサイザの一覧を見る (github.io)

SerialCombCymbal は直列につないだコムフィルタによるシンバルのような音が合成できるシンセサイザです。コムフィルタと言っていますが、厳密にはリバーブで使われるようなフィードバックとフィードフォワードが両方ついたオールパスフィルタです。 Firefox 104 では動かないので注意してください。

以下はシンバル風の音を出すときのレシピです。

  • nDelay は偶数に設定。
  • Feedback を -0.99 など、 -1.0 に近い値に設定。
  • Delay Time と Time Randomness を適当に短くする。
  • Highpass Cutoff は 100 Hz 以下に設定。
  • Highpass Q, Lowpass Cutoff, Lowpass Q を、上限に設定。 (デフォルトのまま)

nDelay を増やしてローパスをうまくかけると銅鑼のような音も出ます。

ClangCymbal があまりにも重かったので何とかならないかと思っていたところ、 Image-Line の DrumPad でかなりいいシンバルの音が作れることを知りました。 DrumPad は 10 年以上前に公開されたシンセサイザということもあって CPU 負荷がかなり低いです。どうなっているのだろうと思いつつ Membrane セクションのパラメータを変えながら音を聞いたところ、整数ディレイによるコムフィルタを直列につないでいるような気がしました。この適当な観察からでっち上げたのが SerialCombCymbal です。

2022/09/22

FDN64Reverb on Web Browser/FDN64Reverb の Web 版

Try FDNReverb (github.io)

Web version of FDN64Reverb is now available. It was too heavy to run on real-time, so ported to run on browser with off-line (non real-time) computation. 64 is dropped from the name, because matrix size can be changed from 1 to 256.

Note that FDNReverb doesn't run on Firefox version 104 or earlier. It requires ECMAScript module support on Web Worker, which Firefox haven't implemented yet. Chrome or Safari can be used.

List of web synthesizers are also moved to new page.

---

FDNReverb を使う (github.io)

FDN64Reverb が重たくて使いづらかったのでブラウザ上で動くように移植しました。行列のサイズを 1 から 256 の範囲で変更できるので、名前を FDNReverb に変えています。

Firefox 104.0.2 では動作しないので注意してください。 Web Worker で ECMAScript module が使えないことが原因です。 Chrome での動作は確認しています。また MDN に掲載されている互換性の表によると Safari でも動作するようです。

Web シンセサイザの一覧も新しいページに移動しました。ページ上部で言語を日本語に変更できますが、今のところブラウザのクッキーを使っていないのでページを閉じるたびに設定がリセットされます。

2022/09/03

Animals - A Showcase of Uhhyou Plugins

 

"Animals" is an album, and a showcase of Uhhyou Plugins (うっひょうプラグイン).

Animal names used in titles are cut up from random Wikipedia articles.

Most of the composition is made by improvisation and overdub. But I'm bad at playing instruments and that's why rhythm is so inconsistent. Once this waddling mess is recorded, there appears some sparse part and dense part. While overdubbing, I put more notes on dense part, and not so much for sparse part. After some iteration, that waddling mess becomes a mass of waddling mess, and ended up as this album.

Plugin development, especially testing DSP components, was the hardest part of making this album. The first commit was 3 years ago, and I didn't even know how to write C++ at that time. The strategy here was perfecting the sound design part by developing plugins, so that I can just drop the random sound and it will be good. I'd call this circuitous John Cage strategy. I went through great effort of developing plugins, and finally threw the resulting sounds into WAV files after 3 years. But John Cage just dropped real physical objects into bathtub, and it sounds plainly gorgeous compared to my bastardized synthesizers which have to run on real-time.

Let's move on to the contents, and the advertisement of my plugins. Distinctive short decaying high metal tones are mostly made from EnvelopedSine, and that's the most used synthesizer in this album. Low drums in "Crimson-headed partridge" is also made from it. If you hear long decaying reverb, that's almost certainly comes out from L3/L4Reverb. You can hear them in "Ibexes and deer" and "Tigerwings". Those reverbs are the savior of my bad plays. They are also good to use with CollidingCombSynth. "Quagga" is the loudest piece in this album. Typical sound of ParallelComb and UltrasonicRingMod can be heard.

---

"Animals" は Uhhyou Plugins (うっひょうプラグイン) の音の見本となるアルバムです。

曲のタイトルの動物の名前は適当な Wikipedia の記事からカットアップしました。

このアルバムで苦労した点はプラグインの開発、特に DSP のテストです。最初のコミットは 3 年前の 2019 年で、そのときは C++ をろくに理解できていませんでした。今でもよく分かりません。方針としては、いい音の出るプラグインを作って投げやりに鳴らすということを念頭に置いていました。この方針を私は勝手に「回りくどいジョン・ケージ戦略」と呼んでいます。 YouTube で John Cage と検索すると浴槽に実際の物を次々と投げ込む動画が出てきますが、そんな投げやりなパフォーマンスでもリアルタイムで動かすために質が下がってしまったシンセサイザに比べると遥かにいい音が出ています。 Animals ではマイクによる録音という手っ取り早い方法を使わずに、わざわざ手間をかけて微妙な出来のシンセサイザを作った上で、適当に演奏した音を次々と WAV ファイルに投げ込むという回りくどいことをしているわけです。

曲のほとんどは即興とオーバーダブで作りました。リズムが無い、というかよれているのは私の演奏が下手だからです。よれよれであっても一度録音してしまえば、密な部分と疎な部分が現れます。そこにオーバーダブで密な部分をさらに密にするということを繰り返した結果のよれよれの塊が、このアルバムです。

話を曲の内容とプラグインの宣伝に移します。アルバム全体を通して現れる、金属的な短い減衰音のほとんどは EnvelopedSine によるものです。そのおかげで、このアルバムで最も使ったシンセサイザは EnvelopedSine となっています。また Crimson-headed partridge の冒頭から入っている低いドラムの音も EnvelopedSine によるものです。やたらと長く残る残響はまず間違いなく L3/L4Reverb を使っています。 Ibexes and deer や Tigerwings では、この残響をはっきりと聴くことができます。 L3/L4Reverb は私のどうしようもない演奏を何とかしてくれる素晴らしいエフェクトでした。 CollidingCombSynth とも相性がいいです。このアルバムでおすすめの一曲は最も音が大きい Quagga です。 ParallelComb と UltrasonicRingMod の典型的な音を聴くことができます。

2022/08/31

レイテンシのない畳み込み

レイテンシのない畳み込みを読む (github.io)

MiniCliffEQ の FIR フィルタの畳み込みのレイテンシを何とかしたときに調べたことを記事にしました。リンク先では William G. Gardner さんによる "Efficient Convolution Without Latency" で紹介されている最小計算コスト法 (minimum computation cost solution) と一定計算コスト法 (constant demand solution) を参考にして改変した手法を紹介しています。

画像は改変した手法の計算の概要と、各部の出力の遅延を示した図です。

2022/08/28

二重 EMA フィルタによる AD エンベロープ

二重 EMA フィルタによる AD エンベロープを読む (github.io)

ClangSynth で使った二重 EMA フィルタによる AD エンベロープについて調べたことを記事にしました。以前に調べた ExpPoly エンベロープの高速な代替品として使うことを想定していたのですが、あまり似たような音にはなりませんでした。

ここでは EMA (exponential moving average) フィルタを 2 つ直列につないだものを二重 EMA フィルタ (double EMA filter) と呼んでいます。異なるフィルタを指していることもあるようです。

画像は二重 EMA フィルタによる AD エンベロープの、ディケイの値を変えたときの出力です。

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/22

A Call for Funding/出資の呼びかけ

If you think Uhhyou Plugins have some worth, you can now fund the development through PayPal.

paypal.me/ryukau (donation link)

The primary goal of this call is to make some money to purchase M1 mac, so that I can port my plugins to latest macOS. Keep in mind that I can't promise the macOS port because it's uncertain to get enough funding.

Even if you are not interested in funding, but would like to port my plugins to macOS, feel free to contact me. I can answer questions regarding to the plugin code. My goal is not to make money, but to fuel the development.

Links below are some samples made only by using Uhhyou Plugins.

---

もし Uhhyou Plugins に価値があると感じたなら、 PayPal 経由で開発に出資することができるようになりました。

paypal.me/ryukau (投げ銭リンク)

この呼びかけの目標は、集めた資金で M1 mac を購入して最新の macOS にプラグインを移植することです。ただし、十分な資金があつまるとは限らないので必ず移植するとは約束できないことには留意してください。

出資はしないけれどもプラグインを macOS に移植したいという場合でも、お気軽にお問い合わせください。プラグインのコードについての質問には回答できます。私の目標はお金を稼ぐことではなく、開発を進めることです。

以下のリンクは Uhhyou Plugins だけで作った音のサンプルです。

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

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

2022/01/05

Black Dice - Pigs

 

速めでゆるい4つ打ちとギターリフのループがいい感じです。

2022/01/04

Dolphin Tears ‎- Reflections On Waterfront Property

やたらとローファイでメロディアスな短いループが次々と切り替わる音です。

Dolphin Tears | Discography (discogs.com)

2022/01/03

FACIALMESS LIVE FLYING TEAPOT TOKYO 9/15/2012

ノイズです。音が止まるところでは止まっているのがいい感じです。パフォーマンスもいいですが、観客もあわせて妙な雰囲気が出ているところが面白いです。

2022/01/02

Stalker Humanoid - VR4300_R3000A

 

ほとんどが速いブレイクビートと、やや高めのシンセサイザ 1 音からなる 2 曲です。 R3000A の終わり方が面白いです。

Google や Discogs で検索しても情報が出てこなかったのですが、下の YouTube チャンネルの R3000A の曲は似たような音がします。

Billy Lapworth - YouTube