2023/07/29

TechnoSnare

 

Try TechnoSnare (github.io)
Read Source Code (github.com)

TechnoSnare is a web synthesizer that resembles snare drums of old rhythm machines.

That said, default randomization doesn't sound like a snare drum. To increase the chance to get a snare sound, open menu on the left of Random button, then select Snare1 or Snare2.

I was trying to synthesize Weddell seal "ugh" noise, and one of the tuning sounded like 909 snare. Then I gathered all the half baked components and put them into this web synth.

---

TechnoSnare を試す (github.io)
ソースコードを読む (github.com)

TechnoSnare は古いリズムマシンのようなスネアドラムの音が出るシンセサイザです。

... というのは建前で、適当にランダマイズするとスネアドラムの音は出ません。  Random ボタンの左にあるメニューから Snare1 か Snare2 を選ぶとスネアドラムのような音になる確率が上がります。

ウェッデルアザラシの「うっ」という声を合成していたときに、チューニングの一つが TR-909 のスネアのように聞こえました。そこからアザラシをそっちのけにして作ったのが、このシンセサイザです。

2023/07/22

GrowlSynth Plugin β

Download GrowlSynth β (github.com)

GrowlSynth is now ported to VST 3 plugin. More information is available on the link above.

2023-07-23: GrowlSynth is now updated to version 0.0.1. CPU load is slightly improved, and "AM Amount" parameter scaling is fixed.

---

GrowlSynth β をダウンロード (github.com)

GrowlSynth を VST 3 プラグインに移植しました。詳細は上のリンク先に掲載しています。 

2023-07-23: バージョン 0.0.1 にアップデートしました。 CPU 負荷がやや改善され、 "AM Amount" のスケーリングが修正されました。

2023/07/18

IntegerArpeggio


Try IntegerArpeggio (github.io)
Read Source Code (github.com)

IntegerArpeggio is a synthesizer to render arpeggio. The arpeggio follows a musical scale which makes the period of oscillator to always be integer samples. It sounds more akin to just intonation rather than 12 equal temperament, especially at higher frequencies.

It's intended to be used with external slicer, for example slicex in FL. Start of each note is written in cue chunk of WAVE file, however it's not confirmed to work. It seems like FL Studio v21.0.3 doesn't support multiple cue or smpl point.

The idea is based on the observation that integer-sample periodic waveforms do not appear to be aliased when looking at the spectrum. In this case, aliasing isn't disappeared, but the aliased frequencies exactly overlaps to the original non-zero frequency. so it is not perceived as noise for human ears.

2023-07-18: Changed description about aliasing. I found that initial description was wrong with experiment.

---

IntegerArpeggio を試す (github.io)
ソースコードを読む (github.com)

IntegerArpeggio はオシレータの周期が整数のサンプル数となる音楽スケールに沿ってアルペジオを生成するシンセサイザです。高い周波数では 12 平均律よりも純正律に近い音程が得られます。

出力を slicex のようなスライサに読み込んで使うことを想定しています。WAVE の cue チャンクで各音程の開始位置を指定しているはずですが、 FL Studio v21.0.3 では複数の cue あるいは smpl ポイントがサポートされていないようなので動作確認はできていません。

アイデアとしては整数サンプルの周期波形は周波数成分を見てもエイリアシングが起きていないように見えるという観察に基づいています。実際にはエイリアシングは起こっているのですが、折り返してきた周波数成分が元の 0 でない周波数成分とちょうど重なるので、耳で聞き取れるようなノイズとはなりません。

2023-07-18: エイリアシングに関する記述を変更。実験して確認したところ間違いがあった。

2023/07/12

FMTechnoBass

Try FMTechnoBass (github.io)
Read Source Code (github.com)

FMTechnoBass is an ordinary FM synthesizer. Sytrus can make almost same sounds, but it felt tedious to set envelopes for every time. So I made this to save time.

This one was made long time ago, but abandoned for a while because the sound wasn't interesting. FM algorithm is serially connected 3 operators. Pitch LFO is available to add some low frequencies.

---

FMTechnoBass を試す (github.io)
ソースコードを読む (github.com)

FMTechnoBass はごく普通の FM シンセサイザです。 Sytrus で同じような音が出ますが、毎回エンベロープを設定するのが手間だったので作りました。

かなり前に作ったのですが、面白い音が出なかったので放置していました。FM アルゴリズムは 3 オペレータ直列で、低い周波数成分を足すためにピッチに緩やかな LFO をかけることができます。

2023/07/10

GlitchSprinkler

Try GlitchSprinkler (github.io)
Read Source Code (github.com)

GlitchSprinkler is an usual synthesizer with oscillator and arpeggiator.

Oscillator is using polynomial approximation to generate waveform. The approximation only tries to cross the control points on top right canvas. That's why the waveform slithers. Also polynomial approximation only works for smooth functions, which means that it can't approximate sharp edges.

Arpeggiator is using overtone series to make variation for detune, as following.

  1. List all the prime numbers up to `2^(Pitch Variation)`.
  2. Convert the prime numbers into octave and take float modulo of 1, which is `fmod(log2(prime), 1.0)`.
  3. Add a variation if wrapped octave falls into a scale by computing `abs(octave - pitchInScale) < (Pitch Drift) / 2400`.

I'm not sure if this makes audible difference. Probably it's too subtle to distinguish from random detune.

---

GlitchSprinkler を試す (github.io)
ソースコードを読む (github.com)

GlitchSprinkler はオシレータとアルペジエータを備えたよくあるシンセサイザです。

オシレータは波形の生成に多項式近似を用いています。ここでの近似は、右上のキャンバスに表示されている制御点を通過する以外の制約を与えていません。なので、制御点を動かすと波形がくねります。また多項式近似は滑らかな関数しか近似できないので鋭い角は表現できません。

アルペジエータは倍音列からデチューンのバリエーションを生成しています。以下は手順です。

  1. `2^(Pitch Variation)` までの素数をリスト。
  2. 得られた素数をオクターブに変換して小数部のみを取り出す。 `fmod(log2(prime), 1.0)` 。
  3. 得られたオクターブの値がスケール内のいずれかのピッチに近ければバリエーションに追加。 `abs(octave - pitchInScale) < (Pitch Drift) / 2400` 。

耳でわかるような質感の差が出るかどうかはわかりません。ランダムにデチューンした音と区別がつかない気がします。

2023/07/08

MetalSqueak

Try MetalSqueak (github.io)
Read Source Code (github.com)

MetalSqueak is a synthesizer which can make metal squeak sound. The squeaking comes from modulated all-pass filter on the feedback paths of FDN (feedback delay network).

This is yet another cymbal synthesizer. However, it's less CPU intensive than ClangCymbal, more stable than FDNCymbal and KSCymbal, and easier to make cymbal sounds than SerialCombCymbal.

Internal is serially connected 4*4 FDN. 2 cascaded FDN is sufficient for cymbal sound. Number of cascade can be changed from `Delay->Quantity`.

---

MetalSqueak を試す (github.io)
ソースコードを読む (github.com)

MetalSqueak は軋むような金属音が出るシンセサイザです。軋みは FDN (feedback delay network) のフィードバック経路に位置するオールパスフィルタのカットオフ周波数が内部の信号の振幅に応じて変調されることで生じています。

また新しいシンバルシンセですが、 ClangCymbal よりも軽く、 FDNCymbalKSCymbal よりも安定しており、 SerialCombCymbal よりも簡単にシンバルのような質感が出せます。

内部では行列の大きさが 4 の FDN を直列につないでいます。シンバルであれば FDN を 2 つ直列につなげば十分なのでかなり軽量です。直列接続数は `Delay->Quantity` から変更できます。

2023/07/03

GrowlSynth

Try GrowlSynth (github.io)
Read Source Code (github.com)

GrowlSynth is a synthesizer that resembles animal growl.

Internal is similar to vocal tract model. Most of the development time was spent on oscillator to resemble glottis. Vocal tract part is just some feedback comb filters (short delays). The synth has 3 oscillators that are noise generator, granular synth, and BLIT + formant filter. Original intention was to make successor of Pluck with adding all-pass filter on feedback path. However, the synth became totally different thing after some trial and error.

Edited on 2023-07-04: I noticed that sine sweep of accumulative AM is adding some tones that's not suitable for animal growl. Sound becomes a bit more plausible by increasing oversampling ratio.

---

GrowlSynth を試す (github.io)
ソースコードを読む (github.com)

GrowlSynth は動物のうなり声のような音を出すことができるシンセサイザです。

中身は声道・声帯モデルに似た構造になっています。声帯にあたるオシレータには力を入れましたが、声道にあたる部分は単純なフィードバックコムフィルタ(ディレイ)です。オシレータはノイズ、グラニュラーシンセ、 BLIT + フォルマントフィルタの 3 つを混ぜることができます。元は Pluck のフィードバック経路にオールパスフィルタを挟んで Pluck2 とするつもりだったのですが、音がいまいちだったので色々と試しているうちに脱線しました。

2023-07-04 追記: オーバーサンプリング比を上げると AM によるトーンが目立たなくなります。